We have been digging through the hospital transparency data that hospitals were ordered to make public Jan. 1, 2021.
It’s not a pretty story — now more than a year and a half later.
Many hospitals in the New York area are completely out of compliance with the law. Others are nominally compliant, making files available in the way the regulations suggest — but they are hard to find and impossible to manipulate for the average civilian.
Even if you have data chops, the files are hard to manage — size alone makes them hard to download for many average computer users.
The transparency rules, described
Describing the new rules, the Centers for Medicare and Medicaid Services say on their website: “Starting January 1, 2021, each hospital operating in the United States will be required to provide clear, accessible pricing information online about the items and services they provide in two ways:
“As a comprehensive machine-readable file with all items and services.
“In a display of shoppable services in a consumer-friendly format.” [This was specified as 300 “shoppable” services, with many hospitals deciding that referring customers to their price estimator tool was sufficient for compliance..]
“This information will make it easier for consumers to shop and compare prices across hospitals and estimate the cost of care before going to the hospital.”
The rule required hospitals to list discounted cash or self-pay prices, but many hospitals did not — or the discounted cash prices they listed were clearly wrong — for example, the 35-cent MRI at Bergen New Bridge Medical Center in New Jersey.
We’ve been writing about this since early 2021; see here and here and here. Early compliance was spotty, and hospitals pleaded for leniency given the pandemic and what they called the magnitude of the task. But now they’ve had time to get this work done, we have taken another look — with an eye to ingesting as many prices as possible into our database for consumer-friendly searches.
We’re doing this in an attempt to make the data available for searching for comparison purposes. Most civilians won’t be able to find these files, because the hospitals tend to squirrel them away on a back page. Once you find them, if you download them (and they don’t crash your computer because they’re so big), you have to understand them. And many of them are not in the common comma-separated values format, but rather in an unwieldy JSON (JavaScript Object Notation) format — described online as “a lightweight data-interchange format,” but one that most people can’t manipulate. (I can’t either, but I found some data people who were really interested in the topic and gave us a hand.)
A few bright spots
Here’s a selective list of what we found in the New York area.
There appeared to be some bright spots: The New York Health + Hospitals group, the city’s public hospitals, were straightforward. The individual hospitals all had comma-separated values (.csv) files that were fairly easy to decipher and manipulate, including the standard 5-digit Current Procedural Terminology (CPT) codes that are commonly used in the medical coding system — and the codes that our software is built on. We don’t use the Diagnosis-Related Group (DRG) codes that many of these lists use. But with further digging, we realized that they did not comply at all. (See related post.)
The Stony Brook Medicine system was straightforward too: .csv files, pretty complete, using the 5-digit CPT codes. The only problem: The gross charges are the same as the discounted cash price.
For University Hospital SUNY Downstate, we had to use json to decipher. When we did, there were three kinds of charges: Shoppable services, standard charges and physician group charges. We stripped out the duplicates by using first shoppable services and then standard charges, and adding physician group charges only where the hospital had no standard charges. Then we deleted all of them that had an N/A in the “discounted cash price” field (235) and wound up with 2,483 lines.
At Mount Sinai, it had only these entries: No cash price that I could find:
“facility_id|Code_type|Primary_Code|Revenue_Code|CPT_HCPCS|description|Service_Type|Gross_Charge|Contract_Name|Product_Name|Place_of_Service|Negotiated_Charge|Minimum_Negotiated_Charge|Maximum_Negotiated_Charge.”
Jamaica Hospital Medical Center has a .csv that has all the insurers and uses CPT codes — but does not have a discounted cash rate. For the 300 shoppable procedures, they send you to their price estimator.
Maimonides Medical Center has a .csv file of 107,973 lines, using their own coding system and recording only the code and the Chargemaster price. For the 300 shoppable procedures, they send you to their price estimator — where you have to search one by one, meaning that any effort like ours to sweep up a data set is impossible.
Means testing for a New Jersey hospital group
Hackensack Meridian Health in New Jersey encompasses several hospitals and medical centers. They did have a list of prices, with the discounted cash price described under their “Compassionate Care I” and “Compassionate Care II” and “Compassionate Care III” policies. Basically they are means tested — your annual income and the federal poverty level come into play. We did not incorporate this into our database because the means testing qualification would be too confusing — other hospitals’ cash rates are not based on means testing.
“Hospitals Compassionate Care I Discounting Policy: When the Compassionate Care discount is applied to an account at the time of bill creation, the total amount due will be based on the Inpatient and Outpatient Self-Pay Compassionate Care rates for the services rendered,” the site says. “The Inpatient Compassionate Care rates are the Medicare DRG rates for the current year. The Outpatient Compassionate Care rates are based on the Medicare APC Rate times one or the Medicare Fee Schedule Rate times one depending on the services rendered.
Compassionate Care II For patients that do not qualify for Medicaid or Charity Care and their income is not in excess of 600 % of the Federal poverty level.
“HMH will apply our Compassionate Care II rate which is 50 % of Medicare’s rates for the current year. Both Inpatient and Outpatient Services will be reduced to 50% of current Medicare DRGs and/or appropriate fee schedules. … An application to receive Compassionate Care is not required. This discount represents the self-pay portion of the uninsured patient.”
“Effective 2/4/09, uninsured patients whose family income falls between 300% and 500% of Federal Poverty Guidelines will be screened using our current Charity Care Screening process. … The Inpatient New Jersey State 15 Care rates are the Medicare DRG rates for the current year. The Outpatient New Jersey State 15 Care rates are based on the Medicare APC Rate times 115% or the Medicare Fee Schedule Rate times 115% depending on the service rendered. Self-Pay after Insurance balances (deductibles, coinsurances, and copays) will not be discounted, unless the patient otherwise qualifies under this policy.”
New Jersey and financial aid
New Jersey hospitals are required to make financial aid available under a 2008 law.
“Uninsured New Jersey state resident patients who do not qualify for Charity Care and whose income falls less than or equal to 500% of the federal poverty guidelines will be eligible for a discount based upon Medicare rates as per the NJ state statute P.L. 2008, Chapter 60, approved on August 8, 2008, Assembly, No. 2609, as enacted by the Senate and General Assembly of the State of New Jersey,” Holy Name Hospital explains on its website. “Patients who qualify for the uninsured discount will be charged the lesser of 115% of the Medicare rate or Amount Generally Billed (AGB); whichever is less.
“A determination of need and/or approval of financial assistance through this program will require the completion of the financial assistance application form. The application will allow the collection of pertinent financial information as outlined on under ‘Methods to Apply for Financial Assistance’ on page 1.
New Jersey Charity Care is also an option — described on the Holy Name site as ” free or reduced charge care which is provided to patients who receive inpatient and outpatient services at acute care hospitals throughout the state of New Jersey. Charity Care is available only for emergent or medically necessary hospital care. Some services such as physician fees, anesthesiology fees, radiology interpretation, and outpatient prescriptions are separate from hospital charges and may not be eligible for reduction.”
Applications with details on income and assets are required in both cases.
Yes and no at one system
The Carepoint system in New Jersey has three hospitals. Their machine-readable file used their own coding system, so we could not use it for an apples-to-apples price list. Instead, we looked at their much smaller “shoppable” files with this result:
They did not use a price estimator but instead had a spreadsheet. For Bayonne Medical Center, there are 438, so we used that. We took out 101 Diagnosis-Related Group (DRG) codes and 159 alphanumerics, and 4 NA prices for a total of 174 plain-vanilla CPT codes.
Christ Hospital had 438 shoppable; we removed 101 DRG codes and 159 allphanumerics, as well as 5 N/A prices for a total of 172. Hoboken University Medical Center had 441 shoppable; we trimmed 101 DRG codes and 154 alphanumerics, plus 4 N/A prices, for a total of 176.
Valley Health System in northern New Jersey and southern New York has lovely spreadsheets with both CPT and DRG (diagnosis-related group) coding, but all the cash price blocks say N/A. They do have rates for a range of insurers, and they do use CPT codes, so it’s not all dark.
At the RWJF system in New Jersey, the spreadsheets bear a note: “Discounted cash price represents the average estimated Gross Charge and not necessarily the discounted amount.” The prices do indeed match — gross charge is the same as discounted amount. They go on to say that the hospitals have various resources for uninsured people, including helping them apply for assistance.
In the Trinitas Regional Medical Center file, another RWJF affiliate, the “self-pay amount” for all CPT codes is listed as “packaged item.” The file does list the apparent negotiated or contract rates for insurers, but there seems to be no self-pay amount.
The Nuvance hospitals in Connecticut, and in Putnam and Dutchess counties in New York, all have some variation of this message: “Norwalk Hospital Association does not have an upfront discounted cash pricing policy but does work with patients to address their financial assistance needs. To obtain more information about our financial assistance programs please contact our Customer Service Dept. https://www.nuvancehealth.org/patients-and-visitors/billing-and-insurance/price-transparency-and-cost-estimator-tools.”
The Hospital for Special Surgery also has a lovely Json file, but there is nothing labeled cash price, discounted price, self-pay price or anything similar.
Enforcement of rules not energetic
It does seem clear that the Centers for Medicare and Medicaid Services, which would be the enforcement agency, is not really paying a lot of attention to enforcement. Two Georgia hospitals were fined in June for not complying.
“CMS has issued a total 352 warning letters to hospitals as of this month, according to a CMS spokesperson,” Fierce Healthcare reported. “Among these, 171 received case closure notices after addressing the agency’s citations while 157 remain non-compliant, the spokesperson said.
“Industry-wide compliance with the federal transparency requirements has been spotty to date. Only 14.3% of hospitals were compliant with both major components of the mandate one year after it went into effect, according to a review by PatientRightsAdvocate.org.“
Colorado hospitals are subject to different enforcement, Beckers Hospital Review reported.
“A new Colorado state law prohibits hospitals from pursuing debt collections against patients if the hospital is not in compliance with federal price transparency laws, according to an Aug. 6 report from The Gazette,” Beckers wrote. “Noncompliant hospitals cannot use debt collectors, file negative credit reports, or obtain state court judgments for outstanding debts. Hospitals can still bill patients, but if they pursue collections, they must refund any debt paid by the patient, in addition to legal fees.”
The 35-cent MRI
Bergen New Bridge Medical Center in New Jersey: They list different insurers on different rows, instead of different columns, so it’s hard to manipulate. Also I don’t believe the numbers for “discounted cash price”: 648 items are .01 for discounted cash rate. Another 450 are .02, while 954 are .03. Our 72148, MRI of the lower back, is .35, along with “excise forehead wrinkles” “excise skin wrinkles” and “remove sutures same surgeon” and “suction lipectomy head/neck” and “suction lipectomy trunk.”
University Hospital Newark was very straightforward: Had about 5500 straightforward lines; removed DRG and some alphanumerics and have 2567 lines.
St. Barnabas Hospital has a protected spreadsheet. That means that I cannot copy it or manipulate it. So I went to collect the several columns I am interested in: Procedure code, procedure description, and discount price. But the description and discount price were the only ones I could copy-paste; the procedure code came up as “REFI” — an Excel function for the formula, not the actual number.
Stamford Hospital in Connecticut had a massive file with 27,237 records. But our coding expert said the code was flawed: It spewed out in JSON but not correctly, he said. For example, there were multiple entries with ” ” — yes, two pairs of quotes — right in the middle of a word; that’s what he called a “delimiter” and is improper JSON notation. In other places, random line breaks were entered in the middle of a word. When he tried to run a program to decipher it, the program complained bitterly that the underlying data was flawed. He said “someone would have to insert these characters on purpose,” because there’s no other way for these mistakes to be generated.
Englewood Hospital had a file that repeatedly hung up and refused to download, both on my laptop and on his, which is built for big data. He then later downloaded and broke up into 4 pieces to ship to me. The first spreadsheet was 543,472 lines. A bewildering number of them were N/A prices. A massive number of duplications: Code C2621, the PACEMAKER BIV PERCEPTA QUAD, alone has 50 lines for various insurers. The second one was 386,775 lines, also with a lot of N/A. A total of 24,054 lines were for the HCPCS code C1713, which variously applies to screws, cannula, dilators and other things for surgery, with a discounted cash price of $5,567.32 for each one of them. We couldn’t find some simple things like the MRI of the lower back, CPT 72148.
East Orange General Hospital has a massive spreadsheet with multiple duplicates, all with the same price. We searched for 72148, MRI of the lower back without contrast, and got this:
The Atlantic Health System in New Jersey had a 310-page spreadsheet with DRG descriptions — not the numbers, just descriptions — and average charges for each of Atlantic’s several locations.
10 decimal points
New York Presbyterian had a really large spreadsheet in JSON. When our coding experts turned it into a .csv, we noticed something really strange — the .csv file had some perfectly normal-looking round numbers, and some with data that went out to out to 4 decimal places and even 6 decimals.
I asked him whether this reflected the underlying data, because of course 2 decimal points is common in pricing.
He sent back this note:
“Yes it is, I pasted the json object which it came from and bolded the discounted cash price.
{“Code (CPT/DRG)”: 91010, “Description”: “ESOPHAGUS MOTILITY STUDY”, “Rev Code”: 360, “Inpatient/Outpatient”: “Inpatient/Outpatient”, “Gross Charges”: 7009.9527861953, “Discounted Cash Price”: 7009.9527861953, “Aetna”: 8586, “Cigna”: 7333.137, “Empire Blue Cross Blue Shield”: 4977.0664781987, “Emblem Health”: 9474.4, “United Health Group”: 2383, “Aetna Medicare”: 591.384472, “AgeWell Medicare”: 739.23059, “Empire Medicare”: 591.384472, “Fidelis Medicare”: 591.384472, “Emblem Medicare”: 591.384472, “Healthfirst Medicare”: 609.12600616, “UHC Community Plan/United Medicare”: 597.29831672, “VNS Medicare”: 609.12600616, “WellCare Medicare”: 612.08292852, “1199”: 3504.9763930976, “Affinity Molina Medicaid/CHP”: 651.5882475585, “Affinity Molina Essential”: 1466.0735570066, “Amida Care Medicaid”: 749.3264846922, “Empire Healthplus Medicaid”: 651.5882475585, “Empire Healthplus Essential”: 1009.9617837156, “Empire Healthplus Exchange”: 1628.9706188962, “Fidelis Medicaid/CHP”: 651.5882475585, “Fidelis Essential/Exchange”: 1628.9706188962, “Healthfirst Essential/Exchange”: 4205.9716717172, “Healthfirst Medicaid/CHP”: 684.1676599364, “Emblem Medicaid/CHP”: 749.3264846922, “MVP Medicaid/CHP”: 651.5882475585, “MVP Essential”: 781.9058970702, “United Commuity Plan Medicaid/CHP”: 651.5882475585, “United Commuity Plan Essential”: 912.2235465819, “VNS Medicaid”: 651.5882475585, “Consumer Health Network”: 3172.704631032, “CMN Global”: 3172.704631032, “Devon”: 3172.704631032, “Equian”: 3172.704631032, “First Health”: 3172.704631032, “Magnacare”: 3172.704631032, “Multiplan/Beechstreet/PHCS”: 3172.704631032, “QHM”: 3172.704631032, “Worldwide”: 3172.704631032, “Minimum Negotiated Charge”: 591.384472, “Maximum Negotiated Charge”: 9474.4}”
I said “so it actually goes out to 10?” And he answered yes: “I think it is excel doing some rounding, because that is the only object with “ESOPHAGUS MOTILITY STUDY” in the file.”
We don’t have a good explanation for this, other than the assumption that Columbia Presbyterian is performing some formula to create the gross charge.
Also we noticed that the gross charge in this case equals the discounted cash price, meaning that there is no discount, although it is described as a discounted price. We did spot checks on a few others too, and it looks like it’s common to have this file display a discounted cash price that is equal to the gross charge. So … no discount.
At St. Joseph’s University Medical Center in Paterson, N.J., the file ran to 74,800 lines. We noticed that many lines had two codes and one price, so we threw them out. There were also multiple duplicate lines for the same code — for example, around 30 for our favorite 72148 MRI of the lower back. We removed duplicates, and found 1,920 lines remaining.
St. Joseph’s Wayne campus did not seem to have a separate file, so we guessed that prices are the same at both. But we decided not to use the St. Joseph’s main campus numbers as a Wayne spreadsheet because we did not know beyond a shadow of a doubt that the prices were the same — possibly there is a separate listing for Wayne and we just did not find it. These pesky hospitals make it really hard to find their data.
Charge price and discount price identical
At Hartford Hospital, there were thousands of lines. After we removed all the alphanumerics and DRG codes, we still had some duplicates. And, inexplicably, the outpatient standard charge, inpatient cash price and outpatient cash price were identical for the 5,000-some codes remaining. Further, the duplicates seemed to be caused by the place of service: For one code, it specified that it $2,177 and a HC FINE NEEDLE ASPIRATION BIOPSY, INCLUDE ULTRASOUND GUIDANCE; FIRST LESION, and that it was an operating room venue in a separate “revenue code” column; the duplicate had “N/A” in the same column. So it seems that the more expensive one is in the operating room, and the less expensive one, at $306, is maybe in an office.
At Cooper University Hospital in Camden, there were 100,000-plus lines, and multiple columns for payers and individual plans. When we removed that, we found there were anomalies like 60 entries for our 72148 CPT code. Deduplicating, we got 3,815 lines — and the inpatient gross charges, outpatient gross charges and cash prices are all the same.
At St. Mary’s in Waterbury, Ct., we edited down to get a total of 1,713 codes — and indeed the cash price is a discount from the gross charges.
At Margaretville Hospital in the Catskills, there were 18,154 lines to start. We deduplicated and found ourselves with 3,285 entries, but in many cases there were two identical codes with different descriptions and different prices. Finding ourselves unable to explain why, we removed those in the interest of clarity. (One procedure can’t have two prices in our database.)
At Yale-New Haven hospital, there were 31,062 lines in the original. We removed 1,356 DRG codes and a slew of alphanumerics, leaving us with 7,982 lines. Then we deleted about 20 that had the price listed as ” – ” — only to find the spreadsheet had the same problem of two identical codes with different descriptions and different prices. We removed those too.
At St. Francis in Trenton, we wound up with 1,206 lines, no duplicates and cash prices that indeed showed a discount from the charged price.
For Westchester Medical Center, we started out with a list with 3,451 lines. When we removed 942 duplicates, we were left with 2,509 lines — and some of them were duplicate codes with different descriptions. But the prices seemed to be the same. So we removed another 1,545 duplicates, leaving 1,905 remaining.
The magic sum: $5,776
Some of them we just didn’t believe.
Our data experts broke out one Northwell hospital, North Shore University Hospital. It had many similar charges, making me not believe much of the underlying data. However, the 70000 series (imaging), the 80000 series (blood and urine testing etc.) and the 90000 series (vaccines, emergency room) seem plausible.
A third Northwell establishment, Phelps Hospital, had a list that had 1336 lines, of which 935 were 0. I re-ordered to see the prices that do exist are in the 80000 series (blood tests) and 90000 (emergency room visits) though the 90000 series vaccines are 0. We deleted the ones with no prices.
This one, from Huntington Hospital, had many many entries at $5,776, including removal of an intrauterine device, treatment of miscarriage and nervous system surgery. When we saw numbers that looked like that, we took them out — and used only the numbers that seemed plausible. That turned out to be CPT codes in the 70000, 80000 and 90000 series. Do better, Huntington Hospital.
This and the 35-cent MRI and the other vagaries leave us wondering if anyone is doing a quality check on this work. It seems not — not at the hospital systems themselves, we are guessing. And it’s not clear if anyone at the Centers for Medicare and Medicaid Services is checking.
What we found at Huntington Hospital was generally true for all the Northwell system hospitals — though at Long Island Jewish Forest Hills, the magic number was $5,804.91, as it is at L.I.J. Valley Stream. At Glen Cove, it’s $5,079.16. It’s $5,236.92 at South Shore University Hospital.
For Northern Westchester Hospital, after excising the alphanumerics, we had a list of 788 prices. The discounted cash price for 378 of them was listed as $0 — all the imaging, for example, leaving us with a series of 80000 CPT codes for blood tests.
Do better, Huntington Hospital. Do better, LIJ Forest Hills. Do better, Northern Westchester. Do better, Northwell.