Essay··checked live the same day
On the Facilities Desk
Most hospital finders are advertising with a search box on it. This one is a relay to a federal file with the ratings left exactly as the government wrote them — including, on three rows in five that I sampled, not written at all.
There is a particular sentence that tells you whether a piece of health software was built by someone who thought about the person it describes. On the facilities desk inside Rx.Luxury it arrives in the fifth line of the opening paragraph, and it explains a design decision that costs the page a feature:
“Where CMS has rated a hospital its own star rating is shown unaltered; where it has not, nothing is shown rather than a zero, because an unrated hospital is not a bad one.”
Every comparison site in this category renders an absence as a zero, or as a half-filled star, or as a grey ghost that a scanning eye reads as bad. It is the cheapest lie in consumer software and nobody is ever held to account for it. Here the field is simply empty, and the reason is printed above the search box. Hold on to that sentence; the rest of this desk is an argument for taking it seriously, and the rest of this essay is an argument about the one word in the paragraph above it that does less work than it appears to.
Where the rows come from, and why that was the hard part
The desk searches the Centers for Medicare & Medicaid Services’ Hospital General Information file — the dataset behind Hospital Compare. I asked the desk’s own relay for an unfiltered count at 22:36 UTC and it answered 5,419: every Medicare-certified hospital in the United States and its territories, each row carrying the facility’s name, street, city, county, telephone, hospital type, ownership, whether it runs an emergency department, and CMS’s overall star rating.
Choosing that file over the obvious alternative is the single best decision on this desk, and the code explains itself at length about why. The obvious way to list hospitals is to ask the national provider registry for organisational records — and it is wrong, because that register enumerates billing entities rather than buildings. Search it for a well-known hospital name and it will hand back a cardiology fellow’s single-member company, because the fellow registered under a name containing those words. No beds, no ownership, no emergency flag, no rating, and thousands of shell entries per city. Anyone who has tried to build a facility list from that register recognises the description immediately. Most projects discover it after launch.
A second note in the same file is the one I would put on a wall. The CMS endpoint accepts an obvious, intuitive filter syntax that it does not honour: ask it politely for one state and it returns all 5,419 rows as though nothing had been asked. The relay therefore writes every condition out the long way, and the comment gives the reason in eleven words — silently returning the wrong answer is the worst failure shape there is. That is a sentence about engineering ethics disguised as a note about query strings, and it is the reason to trust the counts on this desk rather than merely to read them.
The relay exists at all for a dull and honest reason: the CMS endpoint sends no cross-origin header of any kind, so a browser on labs.llc may not read it directly and the server asks on the page’s behalf, same origin, identifying itself as what it is. Seven and a half kilobytes of PHP, no library, one outbound call.
What I measured, and what “read live” turned out to mean
The opening paragraph says the file is “read live”. It is a true statement and it is doing two different jobs at once, and only one of them is the job the reader will assume.
The job it is really doing is at request time, as opposed to from a snapshot shipped months ago. That is a genuine and unusual virtue, and it is the same argument the registers elsewhere in this estate make against static generation. The job the reader will assume it is doing is current — and no relay can make a federal file fresher than the agency publishes it. What you are reading live is a fetch, not a fact.
Then there is the cost. I called the relay twice, paced, from outside:
- A state query for Alaska at 22:36:11 UTC: HTTP 200, 6,904 bytes, 13.4 seconds to first byte. Twenty-five hospitals.
- An unfiltered call seventeen seconds later: HTTP 200, 53,787 bytes, 2.6 seconds to first byte. Two hundred rows of 5,419.
For comparison, the property’s own front page answered me in 0.31 seconds. The difference is not the desk; it is the round trip to a federal API that the desk is honest enough to make rather than fake. But thirteen seconds is thirteen seconds, and it is the number a visitor experiences.
What it gets wrong
“Read live” is printed where a visitor will read it as “current”, and the
hour-long cache behind it is printed nowhere. The relay returns
Cache-Control: public, max-age=3600 — I read the header off the live response at
22:36:28 UTC. That is a sensible engineering choice and it is why my second call was five times faster
than my first. It also means the answer on your screen may be up to an hour old, and that a result you are
treating as a live lookup is a cached one. A desk that goes out of its way to explain why an unrated hospital
shows no star should be able to spare a clause for this.
The rating column is mostly empty, and the page under-prepares you for how empty. Of the 25 Alaska hospitals the relay returned, 10 carried a CMS star rating and 15 did not. In the first 200 rows of the unfiltered national call, 120 were rated and 80 were not. The blanks are correct — CMS writes “Not Available” and the desk honours it — but a visitor who came to compare hospitals in a rural state will find the column they came for empty three times in five, and the one clause explaining why sits five lines above the search box rather than beside the results.
The door. Facilities is one of fourteen routes inside Rx.Luxury, and Rx.Luxury opens with a single field asking how you should be addressed. The name is optional and an empty return admits you as a guest — but nothing on the door says so, and a visitor arriving from a link about hospital search meets a form before they meet the search. Two words under the field would close that gap.
What is not here, which is most of what you would expect
This is a directory of certified places, and it should be read as nothing more. It does not know whether a hospital has a bed tonight. It does not know your insurance. It cannot book, hold or cancel anything, it carries no reviews, and it computes no score of its own — the twelve fields it returns per facility are twelve fields CMS publishes, reformatted and nothing else. The desk it lives on states the same limit more bluntly on every screen: educational software, not for diagnosis or emergency decisions, call local emergency services when needed.
One further limit is structural and easy to miss from the room index: this desk is United States only, and cannot be otherwise, because it is a front end to an American federal programme. Neighbouring desks in the same estate cover sixty-nine countries. This one covers one.
And because the property is often described as a desk that reads scans as well as registers, one sentence to prevent a wrong inference: the imaging tool elsewhere in Rx.Luxury is a viewer. It displays medical images, applies window and level, and pages through slices. It does not interpret them, detect anything in them or produce a report, and neither does this desk do anything of the kind with a hospital row.
The verdict
Judged against what a hospital finder usually is — a lead-generation form wearing a stethoscope — this is not in the same category. There is no ranking to sell, no sponsored row, no computed star, no network filter the operator could monetise, and the one number on the page that could have been flattered is left blank when the government has not filled it in. The dataset choice is right, the reason for it is documented, and the query construction is paranoid in the way you want a query against a government API to be paranoid.
What it needs is a sentence about its own latency and its own cache, in the same voice it already uses for the star ratings. The honesty on this page is real; it just stops one clause short of the place where a visitor would actually feel the difference.
A relay, not a marketplace — and the distinction is the whole value. It fetches 5,419 federal rows at request time and refuses to invent the ones CMS left blank. Read “live” as “asked when you asked”, allow it up to an hour of cache and up to thirteen seconds on a cold call, and it is the most trustworthy hospital search I have measured.