For AI agents: the documentation index is at /docs/payerbox/llms.txt. A Markdown version of this page is available at /docs/payerbox/data-integration/carin-bb/explanation-of-benefit.md or by requesting it with the Accept: text/markdown header.
Payerbox Docs

Explanation of Benefit

Datasets

CARIN Blue Button STU 2.1.0 defines one abstract profile, C4BB ExplanationOfBenefit, and derives the five claim-type profiles from it. No resource is built from the abstract profile directly; it fixes what every claim shares, and that is what this page documents. The columns below appear in every claims_<type> file and every claims_<type>_lines file. The claim-type pages list only the columns their profile adds.

DatasetCARIN BB STU 2.1.0 target profile
claims_<type>one of the five ExplanationOfBenefit profiles, by claim type
claims_<type>_linesExplanationOfBenefit.item of the same profile

The two templates below carry exactly these shared columns. Each claim-type page ships its own pair of templates, which add that type's columns to them.

claims

One row per adjudicated claim. The claim type and the profile are decided by which file the row is in, so there is no claim-type column: a row in claims_pharmacy becomes a Pharmacy ExplanationOfBenefit with type = pharmacy and use = claim.

ColumnRequiredFormat / valuesExample
record_idYesyour claim control number, stable across adjustments to the same claim C4BBClaimIdentifierTypeCLM-0001
patient_identifierYespatient key from patientsMRN-4471903
coverage_idYeskey from coverage, the plan the claim was adjudicated againstCOV-0001
payer_org_npiYes10 digits, or your payer id; the same payer named on that coverage9999999993
billing_provider_npiYes10 digits; key from practitioners or organizations9999999991
statusYesactive, cancelled explanationofbenefit-statusactive
outcomeYescomplete, partial, error, queued remittance-outcomecomplete
billable_period_startYesdate; statement covers from date2026-02-03
billable_period_endRecommendeddate; statement covers through date2026-02-09
adjudication_dateYesdate the claim was adjudicated2026-02-20
payee_typeRecommendedsubscriber, provider, beneficiary, other C4BBPayeeTypeprovider
payee_npiIf payee_type is other10 digits; key from practitioners or organizations9999999994
related_claim_idsIf adjusted;-separated record_id values of the claims this one adjusts or is adjusted byCLM-0000
related_relationshipsIf adjustedprior, replacedby, ;-separated, aligned with related_claim_ids C4BBRelatedClaimRelationshipCodesprior
payment_statusRecommendedpaid, denied, partiallypaid C4BBPayerClaimPaymentStatusCodepaid
payment_dateIf availabledate the payment was issued2026-02-22
payment_amountIf availabledecimal18200.00
process_note_<n>If availablefree text; <n> starts at 1 and lines refer to it in note_numbersProcessed as primary
amount columnsSee Amount columnsclaim-level totals, one column per category
last_updatedYesdatetime the claim last changed in your system, or its creation time if never changed2026-02-20T18:05:00-05:00
is_deletedIf retractingtrue retracts this claim and all of its linestrue
  • record_id becomes the claim's unique identifier, typed uc, the payer-assigned claim id. CARIN expects the number a member sees on a paper EOB. Keep it stable: a corrected version of the same claim keeps its record_id and is an update. An adjustment that your system numbers as a new claim is a new record, and the two point at each other through related_claim_ids.
  • status is active for a claim in force and cancelled for one voided or reversed. The value set also has draft and entered-in-error; CARIN does not expect either on an adjudicated claim, so a row with them is reported back rather than published.
  • outcome is the adjudication result. complete is the expected value for a processed claim, paid or denied; a denial is complete with a payment_status of denied. partial and queued describe a claim still in process.
  • payer_org_npi and coverage_id must agree: the payer on the claim is the payer on the coverage it was adjudicated against. Payerbox sets that coverage as the focal insurance on the resource.
  • billing_provider_npi is the party that submitted the claim. Whether it becomes a Practitioner or an Organization reference is decided by which dataset defines that NPI, so a provider named here must exist in practitioners or organizations, in network or not.
  • payee_type says who was paid. subscriber and provider need no payee_npi; beneficiary resolves to the patient; other must name the party in payee_npi, or the row is rejected.
  • related_relationships are read from the current claim's point of view: prior means the claim in related_claim_ids is the one this claim adjusts; replacedby means this claim has itself been adjusted by that one. Name the immediately preceding or following claim, not the first or the last in a chain.
  • payment_status is the claim-level paid, denied or partially paid decision. It is separate from outcome, which says whether adjudication finished.
  • last_updated is mandatory on every claim: CARIN requires meta.lastUpdated on each resource, and it also builds the Provenance record.
  • The template rows show the cases that matter: a paid two-line claim (CLM-0001), a denial with two process notes (CLM-0002), an adjustment pair where the cancelled original and its replacement name each other (CLM-0003, CLM-0004), a payment to a third party through payee_type = other (CLM-0005), and a retraction (CLM-0006). Their keys resolve against the patients, coverage, practitioners and organizations templates.

claims lines

One row per service line. A claim with three service lines has three rows carrying the same claim_record_id. Lines have no is_deleted: a claim is delivered as a whole, so re-sending it replaces its previous lines, and retracting the claim retracts them.

ColumnRequiredFormat / valuesExample
claim_record_idYesthe claim's record_idCLM-0001
line_numberYespositive integer, unique within the claim; your line identification number1
service_codeYesthe billed product or service, with service_code_system; the claim-type page names the systems it accepts99213
service_code_systemYescode system URI of service_codehttp://www.ama-assn.org/go/cpt
service_date_startRecommendeddate; the claim-type page says when it is required2026-02-03
service_date_endIf a perioddate; blank for a single-day service2026-02-03
note_numbersIf available;-separated <n> values of process_note_<n> columns on the claim1
amount columnsSee Amount columnsline-level adjudication, one column per category
  • line_number becomes item.sequence. Send the number your adjudication system assigned; it is how the line is identified on the paper EOB and across deliveries.
  • service_code is the one field every line must have. The abstract profile does not fix its code system; each claim-type page does (CPT and HCPCS for professional, revenue codes for institutional, NDC for pharmacy, CDT for oral).
  • note_numbers link a line to the claim's process notes. A number with no matching process_note_<n> column on the claim is reported.

Amount columns

The same amount columns appear in both files. On a claim they become the claim totals; on a line they become that line's adjudication. Each column is one category from C4BBAdjudication; the claim-type pages say which of them are required for that type. All are decimal, US dollars.

ColumnCategoryCode system
submitted_amountsubmitted Submitted Amount, what the provider billedhttp://terminology.hl7.org/CodeSystem/adjudication
eligible_amounteligible Eligible Amount, the allowed amounthttp://terminology.hl7.org/CodeSystem/adjudication
deductible_amountdeductible Deductiblehttp://terminology.hl7.org/CodeSystem/adjudication
copay_amountcopay CoPayhttp://terminology.hl7.org/CodeSystem/adjudication
benefit_amountbenefit Benefit Amounthttp://terminology.hl7.org/CodeSystem/adjudication
coinsurance_amountcoinsurance Coinsurancehttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
noncovered_amountnoncovered Noncoveredhttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
paid_to_provider_amountpaidtoprovider Paid to providerhttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
paid_to_patient_amountpaidtopatient Paid to patienthttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
paid_by_patient_amountpaidbypatient Paid by patienthttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
paid_by_patient_cash_amountpaidbypatientcash Paid by patient, cashhttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
paid_by_patient_other_amountpaidbypatientother Paid by patient, otherhttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
member_liability_amountmemberliability Member liabilityhttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
discount_amountdiscount Discounthttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
prior_payer_paid_amountpriorpayerpaid Prior payer paidhttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
drug_cost_amountdrugcost Drug costhttp://hl7.org/fhir/us/carin-bb/CodeSystem/C4BBAdjudication
  • A blank cell means the category does not apply to the claim or line and no adjudication entry is built. 0.00 means it applies and the amount is zero, and an entry is built. A deductible that was not charged is 0.00, not blank.
  • Claim totals are the payer's figures, not sums Payerbox computes from the lines. Send them as adjudicated.
  • The abstract profile allows every category at both levels: the line and total bindings use the same value set. Which columns a claim type requires, and on which file, is stated on that type's page; a column that page does not list is accepted and published if you send it.

These resources are served by Patient Access with amounts, and by Provider Access and Payer-to-Payer without them.

Last updated: