Schema Care

Itemized Medical Bill Extraction, Line by Line

By Schema CarePublished Updated

Itemized medical bill extraction captures every charge line on a hospital or provider bill as its own record: date, revenue code, procedure code, description, units and charge. Done well, no line is dropped or doubled across page breaks, and the extracted lines add up to the total the bill prints. That sum is the proof the extraction is complete.

How do you read an itemized hospital bill?

An itemized hospital bill lists each service or item a patient received, one per line, rather than grouping them into department totals. Read it in three parts: the header that identifies the patient and the stay, the line table that holds every charge, and the summary that totals the charges and shows payments and the balance.

The word "itemized" has a specific meaning in Medicare rules. The CMS Medicare Program Integrity Manual, chapter 4, section 4.11.8.1, defines an itemized statement as a listing of each service or item provided to the beneficiary, and says a statement that groups services or items, such as by revenue code, is not an itemized statement. The same section says Medicare beneficiaries can request one from their provider, who then has 30 days to furnish it.

The header usually gives the hospital's name, the patient's name, an account number, the admission and discharge dates for an inpatient stay or the visit date for an outpatient one, and the date the bill was printed. Some headers also name the insurance plan that was billed.

The line table is the body of the bill. Hospitals arrange it in one of two ways. Some list every line in date order, so a two-day stay shows day one's charges and then day two's. Others group lines by department, such as pharmacy, laboratory and supplies, with a subtotal for each. Both orders hold the same lines; only the grouping differs.

The summary block closes the bill. It shows total charges and, on a patient copy, any insurance payments, adjustments and the amount the patient owes. On a long bill the summary may sit on the last of many pages, so read the page count first and confirm you have every page.

A provider's professional bill looks different. Physician and other professional charges follow the layout of the CMS-1500 claim form, where each service line sits in item 24. The guide to CMS-1500 form fields explained walks through those columns. This post focuses on the hospital side.

Itemized medical bill columns and what each one holds

Itemized medical bill columns follow the same pattern on most hospital bills: date of service, revenue code, CPT or HCPCS procedure code, description, units and charge. Each line is one row across these columns. Knowing the job of each column lets you capture any hospital's bill into the same six fields, whatever its labels say.

The columns map closely to the charge area of the UB-04, the institutional claim form. The CMS Medicare Claims Processing Manual, chapter 25, describes those form locators, and an itemized bill usually prints the same data in the same order.

ColumnCommon labelsWhat it holdsUB-04 counterpart
DateDate of service, service date, svc dtThe day the service or item was givenFL 45, service date
Revenue codeRev code, rev cd, dept codeA four-digit code for the hospital department or type of chargeFL 42, revenue code
CPT/HCPCSProcedure code, CPT, HCPCS, codeA procedure or supply code, when the line has oneFL 44, HCPCS, rates or HIPPS codes
DescriptionDescription, service, itemA short text name for the lineFL 43, revenue description
UnitsQty, units, quantityHow many of the service or itemFL 46, units of service
ChargeAmount, charges, totalThe charge for this lineFL 47, total charges

A few notes on each column help when lines look odd.

Date. Chapter 25 says outpatient bills must show a line item date of service for every iteration of every revenue code, so a service given five times appears on five lines, once per date. Two identical lines with different dates are not duplicates.

Revenue code. Chapter 25 notes that revenue codes come from the NUBC's official UB-04 data specifications. A revenue code names the type of charge, not the exact service. The Noridian JE Part A revenue code list, for example, groups 030X under Laboratory, 025X under Pharmacy and 012X under semi-private room and board. What revenue codes tell a payer, and how they group charges on a claim, is explained in the guide to what UB-04 revenue codes in FL 42 tell a payer.

CPT/HCPCS. Chapter 25 says that for outpatient services the provider enters the HCPCS code describing the procedure in FL 44, while on inpatient bills that box shows the accommodation rate. On an itemized inpatient bill, many lines therefore have no procedure code at all.

Units. Chapter 25 says units generally count services by revenue code category, such as days in a type of room, and that when HCPCS codes are required, units equal the number of times the procedure was performed.

Charge. The charge is the line total. Some bills also print a unit price, in which case units times unit price should equal the charge.

Itemized medical bill extraction line by line

Itemized medical bill extraction line by line means reading the charge table as rows, giving each row its date, revenue code, procedure code, description, units and charge, and counting rows across every page. The goal is one record per printed line, with no row skipped, doubled, or confused with a header or subtotal.

Long bills are where extraction goes wrong. An inpatient stay can run to dozens of pages, and each page break is a chance to lose or repeat a row. Four habits prevent most errors.

  1. Read every page in order and record the page number with each row. When a total does not match later, the page number tells a reviewer where to look.
  2. Treat repeated header rows as headers. Many bills reprint the column names at the top of each page. These are not charges.
  3. Separate subtotals from charges. A department subtotal or a "page total" line has an amount but no date or code. Store it as a check value, not as a line.
  4. Watch for continuation rows. Some bills repeat the last line of one page at the top of the next, marked "continued", or wrap a long description onto a second line with no amount. Join the wrapped text to its line and drop the repeated row.

Each extracted row should also carry a confidence score for each field and a pointer to where it sits on the page. A reviewer who sees a low score on a charge can then open the page at that line and check it in seconds, rather than hunting through forty pages.

Schema Care reads billing statements and claim fields, returning each value with a score and a link to its spot on the page, and the list of documents Schema Care reads shows which fields it captures from each type.

Bills that arrive as part of a records request, such as when a payer, attorney or reviewer asks for a full account history, follow the same steps. The records retrieval and review category covers how those requests are handled.

Do itemized bill lines add up to the printed bill total?

Itemized bill lines add up to the printed bill total when the sum of every extracted charge equals the total charges figure on the bill. On a UB-04, that total sits on its own line. Comparing the two is the clearest test that extraction caught every line exactly once.

The CMS claims processing manual chapter on the UB-04 explains how the form shows that total: there is no fixed total line in the charge area, so the provider enters revenue code 0001 as the last revenue code, and its charge in FL 47 is the grand total of all charges billed. When an itemized bill prints a similar total, it is the figure to reconcile against.

A fictional six-line itemized bill

This example is a two-day inpatient stay for a fictional patient, Maria Chen, account H-20931. Every value is made up for the example. Revenue code groupings follow the Noridian JE Part A list of revenue codes, and the panel code follows a CMS transmittal on chemistry panels that lists 80053 as the comprehensive metabolic panel.

LineDateRev codeCPT/HCPCSDescriptionUnitsCharge
106/020120(none)Room and board, semi-private1$1,850.00
206/020258(none)IV solutions2$94.00
306/020272(none)Sterile supply1$38.50
406/02030180053Comprehensive metabolic panel1$212.00
506/030120(none)Room and board, semi-private1$1,850.00
606/030250(none)Pharmacy3$147.60
TotalTotal charges (printed)$4,192.10

Reconciling the lines to the total

Suppose a first extraction pass returned seven rows, because page two opened by repeating line 4 with the word "continued".

StepCalculationResult
Sum of seven extracted rows$4,192.10 + $212.00$4,404.10
Printed total chargesAs read from the summary$4,192.10
Difference$4,404.10 − $4,192.10$212.00
Matching lineLine 4 charge$212.00
After removing the repeated rowSum of six rows$4,192.10, matches

The difference equals one line's charge exactly, which points to a doubled row rather than a misread digit. A reviewer confirms the repeat on page two and drops it. Lines 1 and 5 look alike but are not duplicates: they carry different dates, one for each day of the stay.

Two quick rules follow. A gap that equals a single line's charge means a doubled or dropped row. A gap that differs by one digit means a misread figure. Statement-level checks, which also bring in payments and adjustments, are covered in the guide to whether the extracted medical bill adds up.

Itemized bill lines with vague descriptions or no codes

Itemized bill lines with vague descriptions or no codes are common, especially for pharmacy and supplies. A line that reads only "Pharmacy" or "Supplies" with a revenue code and no CPT or HCPCS code is still a valid line to extract. The task is to capture it faithfully and flag it, not to guess what it was.

These lines have a plain cause. The CMS claims processing manual chapter on the UB-04 says inpatient bills put the accommodation rate in FL 44 rather than a HCPCS code, and revenue codes name a category of charge rather than the exact item. A pharmacy line under 0250 can stand for several drugs given on one day, and a supply line under 0270 can stand for many small items.

Extract these lines with the same fields as any other line, leaving the procedure code empty rather than inventing one. Then add a flag that marks the line as non-specific. That flag is useful downstream. A bill reviewer may want to request a more detailed breakdown, and a patient or payer comparing bills will want to know which charges lack detail.

Some patterns to recognize:

  • Department-only lines. "Pharmacy", "Med/surg supplies" or "Laboratory" with a revenue code and a charge. Capture as-is and flag.
  • Internal charge numbers. Some hospitals print their own charge code, often a long number, in place of a CPT or HCPCS code. Store it in its own field so it is not mistaken for a standard code.
  • Abbreviated descriptions. "IV SOLN 1000ML" or "SUPPLY STERILE" are typical. Keep the printed text exactly; normalizing it risks changing its meaning.
  • Zero-charge lines. Some bills list items with a $0.00 charge for completeness. Extract them so the line count matches the page, but they will not affect the total.

What happens after extraction, such as checking codes against fee schedules or flagging unusual charges, is the job of medical bill review software. Its rules can only be as good as the lines it receives, which is why a complete, reconciled extraction comes first.

All posts in Claims and Medical Bills