Healthcare
The CMS-1500 is the standard paper claim form providers use to bill Medicare, Medicaid, and most commercial payers. Its 33 numbered boxes pack patient, insured, diagnosis, and service-line data into a dense red-ink grid, and forms arrive printed, stamped, handwritten, or scanned. Sensible converts CMS-1500 forms into structured JSON for claims intake and adjudication.
Validated JSON
Schema-enforced output; every field matches your contract
Source coordinates
Every value links back to page + bounding box for audit
Per-document pricing
Predictable cost. No token-volatility surprises
Trusted by teams turning documents into production data






The CMS-1500 has a fixed layout, which makes it a strong candidate for positional extraction. The difficulty is everything around the layout: a tight boxed grid where labels sit in the margins, a repeating service-line table in Box 24, and scan quality that ranges from clean PDFs to faxed and handwritten copies. Layout-based rules pin the consistent boxes; LLM parsing handles the messy inputs.
01
Thirty-three numbered boxes sit inches apart, with field labels printed in the margins rather than next to their values. Box 24 alone splits into lettered sub-columns (24A through 24J). Anchored region rules read each box by its position on the form, so Box 2 stays the patient name and Box 1a stays the insured ID across every claim.
02
Box 24 holds up to six service lines, each with a date of service, place of service, CPT/HCPCS code plus modifiers, diagnosis pointer, charge, units, and rendering NPI. Sensible reads the table as structured rows, keeping each line's code tied to its charge and diagnosis pointer instead of flattening the grid into loose text.
03
Some CMS-1500s come off a billing system as clean PDFs. Others are typed into the red form, stamped, signed by hand in Box 31, or faxed until the boxes blur. Hybrid extraction combines positional rules for the clean forms with LLM parsing for degraded scans, and flags low-confidence fields for review rather than guessing.
Managed services
Solutions engineers handle plan, build, deploy, and adjust on your behalf. You see clean JSON in your API response. Same engine as self-serve, just with the configuration work outsourced.
What's included
01Plan.Engineers review your samples and pick the right method
02Build.SenseML configs written from your samples
03Deploy.Same engine as self-serve, ready for production
04Adjust.We update configs when formats shift or new edge cases appear
05Integrate.Help with custom integration into your downstream systems
Every claims pipeline maps the CMS-1500 to its own schema, so we build the config around your fields rather than a fixed list. These are the boxes claims teams pull most often; we map whatever else your intake or adjudication workflow needs.
01
Patient & insured
Insurance type (Box 1), insured's ID (1a), patient name (2), patient DOB and sex (3), insured's name (4), patient relationship (6), insured's policy/group number (11)
02
Service lines (Box 24)
Date of service (24A), place of service (24B), CPT/HCPCS code and modifiers (24D), diagnosis pointer (24E), charges (24F), units (24G), rendering provider NPI (24J)
03
Provider, billing & totals
Referring provider and NPI (17, 17b), diagnosis codes (21, ICD-10 A–L), federal TIN (25), total charge (28), service facility (32), billing provider name and NPI (33)
config.json
SenseML
{ /* SenseML: CMS-1500 claim extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{ "id": "patient_name", "description": "patient name, box 2, patient last first MI" },
{ "id": "insured_id", "description": "insured ID number, box 1a, member ID" },
{ "id": "total_charge", "description": "total charge, box 28, total" },
{ "id": "diagnosis_codes", "description": "diagnosis codes, box 21, ICD-10 A through L" }
// + service lines and provider fields, mapped to your schema
]
}
}
]
}Sensible processes CMS-1500 forms across payers and submission channels. Fingerprints identify the form revision (02-12 or the older 08-05) so the right configuration runs, and new variations can be configured in hours. The extraction logic is explicit in SenseML, not buried in prompt tuning.
Medicare, Medicaid, TRICARE, commercial carriers, Medicare Advantage plans, and the older HCFA-1500 layout
System-printed PDFs, typed red-form originals, handwritten claims, faxed and scanned copies, and image-based EDI companion documents
Answers about form revisions, Box 24 service-line extraction, and handling handwritten or scanned claims.
Yes. Hybrid extraction combines positional rules for clean system-printed PDFs with LLM parsing for typed red-form originals, stamped or hand-signed forms, and faxed scans where the boxes blur. Low-confidence fields are flagged for review rather than guessed.
Box 24 holds up to six service lines, each with a date of service, place of service, CPT/HCPCS code and modifiers, diagnosis pointer, charge, units, and rendering NPI. Sensible reads the table as structured rows, keeping each line's code tied to its charge and diagnosis pointer instead of flattening the grid.
Patient and insured identity, payer, diagnosis codes (Box 21), the Box 24 service lines, provider NPIs, federal TIN, and the Box 28 total charge are all extracted. Custom fields can be added in SenseML to match your claims intake or adjudication schema.
Sensible processes CMS-1500 forms across Medicare, Medicaid, TRICARE, commercial carriers, and Medicare Advantage plans. Fingerprints identify the form revision, either the 02-12 or the older 08-05 HCFA-1500 layout, so the right config runs.
Start free
Free 14-day trial. No credit card required. Start extracting in minutes.