Why ERA payments don’t match claim charges
Feb 11, 2026
Guide
In most industries, billing is a straightforward process. You invoice for a specific amount. The payer pays that amount and sends you a receipt.
Healthcare works differently. Claims are essentially invoices. Providers or their billing partners submit claims to insurers – called payers – to request payment for patient care.
But payers rarely pay the amount listed on a claim. The payment amount on the Electronic Remittance Advice (ERA) – the claim’s receipt – is often much lower.
That gap is expected. But if you’re trying to match claims to payments – a process called reconciliation – it can be confusing.
This guide explains why payer-to-provider payments often don’t match claim charges. It also tells you where to find the information needed to reconcile them.
Terms at a glance
Matching a claim’s charges to its payment requires understanding several healthcare-specific payment terms.
The following table outlines the terms at a high level. They’re explained in more depth in the sections below.
Term | What is it? | Where to find it |
The amount the provider charges for a service on a claim. | The claim submission | |
The maximum amount the payer will pay the provider for a service. | For commercial payers, the payer’s contract with the provider. | |
Changes applied to the billed amount by the payer during adjudication. | ||
The amount the patient must pay for a service. | ERA | |
What the payer paid for a specific claim. | ||
The total payment amount for all claims listed in an ERA or Explanation of Benefits (EOB). This can include multiple claim payments. |
Coding
Coding – also called medical coding – is the process of translating healthcare services into standardized codes. They’re a key input into how a claim is priced and paid.
Example
A provider, such as a doctor, might bill a medical office visit using a CPT procedure code of 99213 (Mid-level established patient visit).
That code, along with others on the claim, helps determine:
How the service appears on the claim
How the provider prices the service
The actual amount the payer will pay for the service
Why coding matters for payment
Coding affects how a claim is adjudicated – processed and paid – by the payer. Small coding differences can significantly change how much a payer will pay for a service.
This guide doesn’t cover coding in depth. What matters for reconciliation is that coding determines what appears on a claim’s service lines, where each service is described and charged by the provider.
Allowed amounts
An allowed amount is the maximum amount a payer will pay the provider for a service.
For commercial payers, this is a negotiated price. It’s set in the payer’s contract – called the provider agreement or payer contract – with the provider. The prices in those contracts are called fee schedules.
For government payers, like Medicare, fee schedules are set unilaterally by the payer (the government). The provider can take the price or leave it. There’s no negotiation.
The allowed amount is a ceiling. Payers generally pay the lesser of the allowed amount or what’s billed by the provider. To get maximum payment, providers typically bill at or above the allowed amount.
Where to find allowed amounts
Allowed amounts aren’t returned by payers in ERAs, claim acknowledgments, or other HIPAA-adopted electronic transactions.
For government payers – like Medicare or state Medicaid payers – allowed amounts are published publicly in their fee schedules.
For commercial payers, allowed amounts are typically only available in the payer contract. Some payers may return allowed amounts in Explanation of Benefits (EOBs) or disclose allowed amounts in electronic price transparency files. However, it’s inconsistent across payers and often not reliable enough for reconciliation.
Instead, provider or RCM teams often try to deduce allowed amounts for commercial payers from adjustments and payments in related ERAs.
Billed amounts
The billed amount – also called the charged amount – is the amount the provider charges for a service. This is the amount submitted on the claim.
Billed amounts are not typically what providers expect to be paid by a payer. Actual payment is driven by the allowed amount.
How providers calculated billed amounts
Providers have a lot of leeway in setting billed amounts. There’s no single standard. Providers can largely choose how charges are set.
Common approaches
Using Medicare rates and applying a multiplier, such as the Medicare rate x2
Reusing fee schedules from older payer contracts with a yearly percentage increase
Setting high list prices and relying on the payer’s allowed amounts to cap payment
Because they don’t often reflect what the provider is paid, billed amounts aren’t updated often. Most providers update billed amounts once a year at most.
Where to find billed amounts
Providers specify billed amounts as charges on a claim. Each service line has a charge, which is added up to calculate the claim-level charge.
JSON API
If you’re using Stedi’s JSON Claim Submission APIs, you specify charges in the following fields:
JSON Dental Claims API field | |||
Claim-level charge | |||
Service line charge |
For example, in the JSON Professional Claim Submission API endpoint’s request body:
{ "claimInformation": { "claimChargeAmount": "109.20", // Claim-level charge ... "serviceLines": [ { "professionalService": { "lineItemChargeAmount": "109.20", // Service line charge "procedureCode": "90837", ... }, ... } ], ... }, ... }
X12
If you’re using X12, you specify charges in the following elements.
837P Professional Claim X12 element | 837D Dental Claim X12 element | 837I Institutional Claim X12 element | |
Claim-level charge |
|
|
|
Service line charge |
|
|
|
For example, in an 837P Professional Claim:
CLM*26463774*109.20***11>B>1*Y*A*Y*I~ // Claim-level charge ... SV1*HC>90837*109.20*UN*1***1~ // Service line charge
Adjustments
Adjustments represent the difference – usually reductions – between the provider’s billed amount and the payer’s allowed amount.
Adjustments are applied during adjudication, when the payer formally reviews the claim and decides how much to pay.
Payers return adjustment and payment information in ERAs.
Repricing
The process of reducing a claim’s billed amount – using adjustments – down to the allowed amount is called repricing. Smaller regional payers often outsource claim repricing to specialized vendors.
Claim adjustment codes
In an ERA, the payer explains why an adjustment was made using two related codes:
The Claim Adjustment Group Code tells you who is financially responsible for the adjustment amount, such as the patient or provider. The CARC tells you why the adjustment was applied.
Some payers may also include optional Remittance Advice Remark Codes (RARCs) that provide additional details about why an adjustment was made or next steps.
Contractual write-offs
The most common type of adjustment is a contractual write-off. Payers typically use contractual write-offs to reduce the provider’s billed amount to the payer’s allowed amount.
In an ERA, contractual write-offs have a Claim Adjustment Group Code of CO (Contractual Obligation) with a CARC of 45, indicating the claim’s billed amount exceeds the allowed amount.
Patient responsibility
Another common type of adjustment is patient responsibility, the portion of the claim the patient must pay. Patient responsibility covers things like deductibles, copays, and coinsurance.
Like other adjustments, patient responsibility is returned in the ERA for a claim.
In many cases, providers can also estimate patient responsibility before care using an eligibility check. This lets the provider collect the patient’s portion upfront and avoid billing the patient.
For more details on estimating patient responsibility using eligibility checks, see our Patient responsibility docs.
Where to find adjustments
In ERAs, adjustments are provided at both the claim and service-line level.
Important: ERAs are tied to a payment, not an individual claim. An ERA may contain information for multiple claims (or no claims). You can match claims in an ERA to a claim submission using the claim’s patient control number (PCN). See Correlate claims to ERAs in the Stedi docs.
JSON API
If you’re using Stedi’s ERA Report API endpoint, you can find adjustment amounts in the following fields.
Adjustment level | ERA Report API field |
Claim level | |
Service line level |
For example, in the ERA Report API response:
{ "transactions": [ { "detailInfo": [ { "paymentInfo": [ { "claimAdjustments": [ { "adjustmentAmount1": "30", // $30 deductible "adjustmentReasonCode": "1", // Deductible Amount "claimAdjustmentGroupCode": "PR" // Patient Responsibility } ], ... "serviceLines": [ { "serviceAdjustments": [ { "adjustmentAmount1": "600", // $600 reduction "adjustmentReasonCode1": "45", // Charge exceeds allowed amount "claimAdjustmentGroupCode": "CO", // Contractual Obligation } ], ... } ] }, ... ] } ], ... } ], ... }
X12
If you’re using X12, you can find adjustment amounts in the following elements.
Adjustment level | 835 ERA X12 element |
Claim level |
|
Service line level |
|
For example:
CAS*PR*1*30.00~ // Claim-level adjustment ... CAS*CO*45*600.00~ // Service line adjustment
Payment amounts
Claims have several different payment amounts. These terms are commonly used to keep them straight:
Remittance payment amount – The total payment amount for all claims in an ERA. Can include multiple claim payments.
Claim payment amount – The amount the payer paid for a single claim, which can cover multiple service lines. Also called the claim remittance amount.
Service line payment amount – The amount paid for a specific service line in a claim.
Where to find payment amounts
Payers return remittance, claim, and service-line payment amounts in the ERA.
JSON API
If you’re using Stedi’s ERA Report API endpoint, you can find payment amounts in the following fields.
Payment level | ERA Report API field |
Remittance | |
Claim | |
Service line |
For example, in the ERA Report API response:
{ "transactions": [ { "financialInformation": { "totalActualProviderPaymentAmount": "1100", // Remittance payment amount ... }, "detailInfo": [ { "paymentInfo": [ { "claimPaymentInfo": { "claimPaymentAmount": "600", // Claim payment amount ... }, "serviceLines": [ { "servicePaymentInformation": { "lineItemProviderPaymentAmount": "600", // Service line payment amount ... }, ... } ], ... } ], ... } ], ... } ], ... }
X12
If you’re using X12, you can find payment amounts in the following elements.
Payment level | 835 ERA X12 element |
Remit |
|
Claim |
|
Service line |
|
For example:
BPR*C*1100.00*C*CHK************20260210~ // Remittance payment amount ... CLP*26463774*1*1200.00*600.00*30.00*12*PAYERCLM0001*11~ // Claim payment amount ... SVC*HC:90837*1200.00*600.00**1~ // Service line payment amount
How payment amounts are calculated
In addition to remittance payment and claim payment amounts, ERAs include payments and adjustments for each service line.
Remittance payments
To calculate the remittance payment amount for an ERA, sum all the claim payments in the ERA, accounting for any provider-level adjustments:
Remittance payment amount = sum of all claim payment amounts ± provider-level adjustments
Claim payments
To calculate the claim payment, sum all the service-line payments for the claim:
Claim payment amount = sum of all service-line payment amounts
Service-line payments
Service-line payments are calculated as follows:
Service-line payment amount = billed amount − adjustments
Provider-level adjustments
ERAs can include provider-level adjustments that aren’t related to any specific claim or service. They don’t change what was paid for individual service lines.
These adjustments are a common reason why an ERA’s remittance payment amount doesn’t equal the sum of all claim payments.
Provider-level adjustments typically represent things like interest for late payment, tax withholding, advance payments, or money the payer is taking back from earlier payments.
Provider Adjustment Reason Codes
Provider Adjustment Reason Codes explain why a payer made a provider-level adjustment. For example, a Provider Adjustment Reason Code of BN (Bonus) indicates a payer bonus to the provider. A Provider Adjustment Reason Code of AH (Origination Fee) is used to bill for claim transmission fees.
Where to find provider-level adjustments
Provider-level adjustments are listed separately from claims in the ERA.
JSON API
If you’re using Stedi’s ERA Report API endpoint, provider-level adjustments are in the response’s providerAdjustments field.
X12
If you’re receiving ERAs as raw X12, you can find provider-level adjustments in the PLB (Provider Adjustment) segment.
Sales tax
Many payers include sales tax information for service lines in ERAs.
If you’re using Stedi’s ERA Report API endpoint, tax amounts for service lines are in the response’s serviceSupplementalAmounts.tax fields.
If you’re receiving ERAs as raw X12, you can find tax amounts for service lines in the AMT (Amount) segment of Loop 2110 (Service Payment Information), using the T (Tax) qualifier.
These tax amounts are informational. They reflect the provider’s tax liability, but they don’t affect actual payment amounts. The way they’re reported can vary by payer.
Standalone tax amount (most common)
Most payers include tax amounts as a standalone informational value.
Example
An ERA shows:
Tax amount: $10
Service-line payment amount: $100
In this case, the provider is paid $100 for the service line. The $10 just identifies the taxable portion of the $100 payment.
Tax-inclusive breakdown (less common, easy to misread)
Some ERAs show a pre-tax amount and a tax amount that sum to the total payment amount.
Example
An ERA shows:
A pre-tax payment amount: $90
Tax amount: $10
Service-line payment amount: $100
In this case, the provider is paid $100 for the service line: the $90 pre-tax payment amount + the $10 tax amount.
Where to find pre-tax payment amounts
If you’re using Stedi’s ERA Report API endpoint, the pre-tax amount is reported in the service line’s totalClaimBeforeTaxes field.
However, if you’re receiving ERAs as raw X12, pre-tax payment amounts may appear in the AMT (Amount) segment of Loop 2110 (Service Payment Information), using the T2 (Pre-tax) qualifier.
Rule of thumb: Tax and pre-tax values never increase the service-line payment amount.
Underpayments
An underpayment is when the final claim payment amount is lower than the allowed amount. Underpayment can happen for several reasons:
Incorrect coding
Missing or incorrect modifiers
Patient benefits that haven’t yet been met
Repricing
Payer errors
One of the main reasons providers perform reconciliation is to catch underpayments. When they do, the provider can appeal the claim or request a corrected payment.
Process claims and ERAs with Stedi
Stedi lets you submit claims and retrieve ERAs through easy-to-use, JSON-based APIs.
We also handle transaction enrollment – including ERA enrollment – for you. It can eliminate up to 90% of your team’s enrollment paperwork.
If you’re not a Stedi customer yet, you can start on our free Basic plan. It includes 100 free claim submissions and free ERAs for the first 100 paid claims each month.
Signup takes less than two minutes. No credit card required.
In most industries, billing is a straightforward process. You invoice for a specific amount. The payer pays that amount and sends you a receipt.
Healthcare works differently. Claims are essentially invoices. Providers or their billing partners submit claims to insurers – called payers – to request payment for patient care.
But payers rarely pay the amount listed on a claim. The payment amount on the Electronic Remittance Advice (ERA) – the claim’s receipt – is often much lower.
That gap is expected. But if you’re trying to match claims to payments – a process called reconciliation – it can be confusing.
This guide explains why payer-to-provider payments often don’t match claim charges. It also tells you where to find the information needed to reconcile them.
Terms at a glance
Matching a claim’s charges to its payment requires understanding several healthcare-specific payment terms.
The following table outlines the terms at a high level. They’re explained in more depth in the sections below.
Term | What is it? | Where to find it |
The amount the provider charges for a service on a claim. | The claim submission | |
The maximum amount the payer will pay the provider for a service. | For commercial payers, the payer’s contract with the provider. | |
Changes applied to the billed amount by the payer during adjudication. | ||
The amount the patient must pay for a service. | ERA | |
What the payer paid for a specific claim. | ||
The total payment amount for all claims listed in an ERA or Explanation of Benefits (EOB). This can include multiple claim payments. |
Coding
Coding – also called medical coding – is the process of translating healthcare services into standardized codes. They’re a key input into how a claim is priced and paid.
Example
A provider, such as a doctor, might bill a medical office visit using a CPT procedure code of 99213 (Mid-level established patient visit).
That code, along with others on the claim, helps determine:
How the service appears on the claim
How the provider prices the service
The actual amount the payer will pay for the service
Why coding matters for payment
Coding affects how a claim is adjudicated – processed and paid – by the payer. Small coding differences can significantly change how much a payer will pay for a service.
This guide doesn’t cover coding in depth. What matters for reconciliation is that coding determines what appears on a claim’s service lines, where each service is described and charged by the provider.
Allowed amounts
An allowed amount is the maximum amount a payer will pay the provider for a service.
For commercial payers, this is a negotiated price. It’s set in the payer’s contract – called the provider agreement or payer contract – with the provider. The prices in those contracts are called fee schedules.
For government payers, like Medicare, fee schedules are set unilaterally by the payer (the government). The provider can take the price or leave it. There’s no negotiation.
The allowed amount is a ceiling. Payers generally pay the lesser of the allowed amount or what’s billed by the provider. To get maximum payment, providers typically bill at or above the allowed amount.
Where to find allowed amounts
Allowed amounts aren’t returned by payers in ERAs, claim acknowledgments, or other HIPAA-adopted electronic transactions.
For government payers – like Medicare or state Medicaid payers – allowed amounts are published publicly in their fee schedules.
For commercial payers, allowed amounts are typically only available in the payer contract. Some payers may return allowed amounts in Explanation of Benefits (EOBs) or disclose allowed amounts in electronic price transparency files. However, it’s inconsistent across payers and often not reliable enough for reconciliation.
Instead, provider or RCM teams often try to deduce allowed amounts for commercial payers from adjustments and payments in related ERAs.
Billed amounts
The billed amount – also called the charged amount – is the amount the provider charges for a service. This is the amount submitted on the claim.
Billed amounts are not typically what providers expect to be paid by a payer. Actual payment is driven by the allowed amount.
How providers calculated billed amounts
Providers have a lot of leeway in setting billed amounts. There’s no single standard. Providers can largely choose how charges are set.
Common approaches
Using Medicare rates and applying a multiplier, such as the Medicare rate x2
Reusing fee schedules from older payer contracts with a yearly percentage increase
Setting high list prices and relying on the payer’s allowed amounts to cap payment
Because they don’t often reflect what the provider is paid, billed amounts aren’t updated often. Most providers update billed amounts once a year at most.
Where to find billed amounts
Providers specify billed amounts as charges on a claim. Each service line has a charge, which is added up to calculate the claim-level charge.
JSON API
If you’re using Stedi’s JSON Claim Submission APIs, you specify charges in the following fields:
JSON Dental Claims API field | |||
Claim-level charge | |||
Service line charge |
For example, in the JSON Professional Claim Submission API endpoint’s request body:
{ "claimInformation": { "claimChargeAmount": "109.20", // Claim-level charge ... "serviceLines": [ { "professionalService": { "lineItemChargeAmount": "109.20", // Service line charge "procedureCode": "90837", ... }, ... } ], ... }, ... }
X12
If you’re using X12, you specify charges in the following elements.
837P Professional Claim X12 element | 837D Dental Claim X12 element | 837I Institutional Claim X12 element | |
Claim-level charge |
|
|
|
Service line charge |
|
|
|
For example, in an 837P Professional Claim:
CLM*26463774*109.20***11>B>1*Y*A*Y*I~ // Claim-level charge ... SV1*HC>90837*109.20*UN*1***1~ // Service line charge
Adjustments
Adjustments represent the difference – usually reductions – between the provider’s billed amount and the payer’s allowed amount.
Adjustments are applied during adjudication, when the payer formally reviews the claim and decides how much to pay.
Payers return adjustment and payment information in ERAs.
Repricing
The process of reducing a claim’s billed amount – using adjustments – down to the allowed amount is called repricing. Smaller regional payers often outsource claim repricing to specialized vendors.
Claim adjustment codes
In an ERA, the payer explains why an adjustment was made using two related codes:
The Claim Adjustment Group Code tells you who is financially responsible for the adjustment amount, such as the patient or provider. The CARC tells you why the adjustment was applied.
Some payers may also include optional Remittance Advice Remark Codes (RARCs) that provide additional details about why an adjustment was made or next steps.
Contractual write-offs
The most common type of adjustment is a contractual write-off. Payers typically use contractual write-offs to reduce the provider’s billed amount to the payer’s allowed amount.
In an ERA, contractual write-offs have a Claim Adjustment Group Code of CO (Contractual Obligation) with a CARC of 45, indicating the claim’s billed amount exceeds the allowed amount.
Patient responsibility
Another common type of adjustment is patient responsibility, the portion of the claim the patient must pay. Patient responsibility covers things like deductibles, copays, and coinsurance.
Like other adjustments, patient responsibility is returned in the ERA for a claim.
In many cases, providers can also estimate patient responsibility before care using an eligibility check. This lets the provider collect the patient’s portion upfront and avoid billing the patient.
For more details on estimating patient responsibility using eligibility checks, see our Patient responsibility docs.
Where to find adjustments
In ERAs, adjustments are provided at both the claim and service-line level.
Important: ERAs are tied to a payment, not an individual claim. An ERA may contain information for multiple claims (or no claims). You can match claims in an ERA to a claim submission using the claim’s patient control number (PCN). See Correlate claims to ERAs in the Stedi docs.
JSON API
If you’re using Stedi’s ERA Report API endpoint, you can find adjustment amounts in the following fields.
Adjustment level | ERA Report API field |
Claim level | |
Service line level |
For example, in the ERA Report API response:
{ "transactions": [ { "detailInfo": [ { "paymentInfo": [ { "claimAdjustments": [ { "adjustmentAmount1": "30", // $30 deductible "adjustmentReasonCode": "1", // Deductible Amount "claimAdjustmentGroupCode": "PR" // Patient Responsibility } ], ... "serviceLines": [ { "serviceAdjustments": [ { "adjustmentAmount1": "600", // $600 reduction "adjustmentReasonCode1": "45", // Charge exceeds allowed amount "claimAdjustmentGroupCode": "CO", // Contractual Obligation } ], ... } ] }, ... ] } ], ... } ], ... }
X12
If you’re using X12, you can find adjustment amounts in the following elements.
Adjustment level | 835 ERA X12 element |
Claim level |
|
Service line level |
|
For example:
CAS*PR*1*30.00~ // Claim-level adjustment ... CAS*CO*45*600.00~ // Service line adjustment
Payment amounts
Claims have several different payment amounts. These terms are commonly used to keep them straight:
Remittance payment amount – The total payment amount for all claims in an ERA. Can include multiple claim payments.
Claim payment amount – The amount the payer paid for a single claim, which can cover multiple service lines. Also called the claim remittance amount.
Service line payment amount – The amount paid for a specific service line in a claim.
Where to find payment amounts
Payers return remittance, claim, and service-line payment amounts in the ERA.
JSON API
If you’re using Stedi’s ERA Report API endpoint, you can find payment amounts in the following fields.
Payment level | ERA Report API field |
Remittance | |
Claim | |
Service line |
For example, in the ERA Report API response:
{ "transactions": [ { "financialInformation": { "totalActualProviderPaymentAmount": "1100", // Remittance payment amount ... }, "detailInfo": [ { "paymentInfo": [ { "claimPaymentInfo": { "claimPaymentAmount": "600", // Claim payment amount ... }, "serviceLines": [ { "servicePaymentInformation": { "lineItemProviderPaymentAmount": "600", // Service line payment amount ... }, ... } ], ... } ], ... } ], ... } ], ... }
X12
If you’re using X12, you can find payment amounts in the following elements.
Payment level | 835 ERA X12 element |
Remit |
|
Claim |
|
Service line |
|
For example:
BPR*C*1100.00*C*CHK************20260210~ // Remittance payment amount ... CLP*26463774*1*1200.00*600.00*30.00*12*PAYERCLM0001*11~ // Claim payment amount ... SVC*HC:90837*1200.00*600.00**1~ // Service line payment amount
How payment amounts are calculated
In addition to remittance payment and claim payment amounts, ERAs include payments and adjustments for each service line.
Remittance payments
To calculate the remittance payment amount for an ERA, sum all the claim payments in the ERA, accounting for any provider-level adjustments:
Remittance payment amount = sum of all claim payment amounts ± provider-level adjustments
Claim payments
To calculate the claim payment, sum all the service-line payments for the claim:
Claim payment amount = sum of all service-line payment amounts
Service-line payments
Service-line payments are calculated as follows:
Service-line payment amount = billed amount − adjustments
Provider-level adjustments
ERAs can include provider-level adjustments that aren’t related to any specific claim or service. They don’t change what was paid for individual service lines.
These adjustments are a common reason why an ERA’s remittance payment amount doesn’t equal the sum of all claim payments.
Provider-level adjustments typically represent things like interest for late payment, tax withholding, advance payments, or money the payer is taking back from earlier payments.
Provider Adjustment Reason Codes
Provider Adjustment Reason Codes explain why a payer made a provider-level adjustment. For example, a Provider Adjustment Reason Code of BN (Bonus) indicates a payer bonus to the provider. A Provider Adjustment Reason Code of AH (Origination Fee) is used to bill for claim transmission fees.
Where to find provider-level adjustments
Provider-level adjustments are listed separately from claims in the ERA.
JSON API
If you’re using Stedi’s ERA Report API endpoint, provider-level adjustments are in the response’s providerAdjustments field.
X12
If you’re receiving ERAs as raw X12, you can find provider-level adjustments in the PLB (Provider Adjustment) segment.
Sales tax
Many payers include sales tax information for service lines in ERAs.
If you’re using Stedi’s ERA Report API endpoint, tax amounts for service lines are in the response’s serviceSupplementalAmounts.tax fields.
If you’re receiving ERAs as raw X12, you can find tax amounts for service lines in the AMT (Amount) segment of Loop 2110 (Service Payment Information), using the T (Tax) qualifier.
These tax amounts are informational. They reflect the provider’s tax liability, but they don’t affect actual payment amounts. The way they’re reported can vary by payer.
Standalone tax amount (most common)
Most payers include tax amounts as a standalone informational value.
Example
An ERA shows:
Tax amount: $10
Service-line payment amount: $100
In this case, the provider is paid $100 for the service line. The $10 just identifies the taxable portion of the $100 payment.
Tax-inclusive breakdown (less common, easy to misread)
Some ERAs show a pre-tax amount and a tax amount that sum to the total payment amount.
Example
An ERA shows:
A pre-tax payment amount: $90
Tax amount: $10
Service-line payment amount: $100
In this case, the provider is paid $100 for the service line: the $90 pre-tax payment amount + the $10 tax amount.
Where to find pre-tax payment amounts
If you’re using Stedi’s ERA Report API endpoint, the pre-tax amount is reported in the service line’s totalClaimBeforeTaxes field.
However, if you’re receiving ERAs as raw X12, pre-tax payment amounts may appear in the AMT (Amount) segment of Loop 2110 (Service Payment Information), using the T2 (Pre-tax) qualifier.
Rule of thumb: Tax and pre-tax values never increase the service-line payment amount.
Underpayments
An underpayment is when the final claim payment amount is lower than the allowed amount. Underpayment can happen for several reasons:
Incorrect coding
Missing or incorrect modifiers
Patient benefits that haven’t yet been met
Repricing
Payer errors
One of the main reasons providers perform reconciliation is to catch underpayments. When they do, the provider can appeal the claim or request a corrected payment.
Process claims and ERAs with Stedi
Stedi lets you submit claims and retrieve ERAs through easy-to-use, JSON-based APIs.
We also handle transaction enrollment – including ERA enrollment – for you. It can eliminate up to 90% of your team’s enrollment paperwork.
If you’re not a Stedi customer yet, you can start on our free Basic plan. It includes 100 free claim submissions and free ERAs for the first 100 paid claims each month.
Signup takes less than two minutes. No credit card required.
In most industries, billing is a straightforward process. You invoice for a specific amount. The payer pays that amount and sends you a receipt.
Healthcare works differently. Claims are essentially invoices. Providers or their billing partners submit claims to insurers – called payers – to request payment for patient care.
But payers rarely pay the amount listed on a claim. The payment amount on the Electronic Remittance Advice (ERA) – the claim’s receipt – is often much lower.
That gap is expected. But if you’re trying to match claims to payments – a process called reconciliation – it can be confusing.
This guide explains why payer-to-provider payments often don’t match claim charges. It also tells you where to find the information needed to reconcile them.
Terms at a glance
Matching a claim’s charges to its payment requires understanding several healthcare-specific payment terms.
The following table outlines the terms at a high level. They’re explained in more depth in the sections below.
Term | What is it? | Where to find it |
The amount the provider charges for a service on a claim. | The claim submission | |
The maximum amount the payer will pay the provider for a service. | For commercial payers, the payer’s contract with the provider. | |
Changes applied to the billed amount by the payer during adjudication. | ||
The amount the patient must pay for a service. | ERA | |
What the payer paid for a specific claim. | ||
The total payment amount for all claims listed in an ERA or Explanation of Benefits (EOB). This can include multiple claim payments. |
Coding
Coding – also called medical coding – is the process of translating healthcare services into standardized codes. They’re a key input into how a claim is priced and paid.
Example
A provider, such as a doctor, might bill a medical office visit using a CPT procedure code of 99213 (Mid-level established patient visit).
That code, along with others on the claim, helps determine:
How the service appears on the claim
How the provider prices the service
The actual amount the payer will pay for the service
Why coding matters for payment
Coding affects how a claim is adjudicated – processed and paid – by the payer. Small coding differences can significantly change how much a payer will pay for a service.
This guide doesn’t cover coding in depth. What matters for reconciliation is that coding determines what appears on a claim’s service lines, where each service is described and charged by the provider.
Allowed amounts
An allowed amount is the maximum amount a payer will pay the provider for a service.
For commercial payers, this is a negotiated price. It’s set in the payer’s contract – called the provider agreement or payer contract – with the provider. The prices in those contracts are called fee schedules.
For government payers, like Medicare, fee schedules are set unilaterally by the payer (the government). The provider can take the price or leave it. There’s no negotiation.
The allowed amount is a ceiling. Payers generally pay the lesser of the allowed amount or what’s billed by the provider. To get maximum payment, providers typically bill at or above the allowed amount.
Where to find allowed amounts
Allowed amounts aren’t returned by payers in ERAs, claim acknowledgments, or other HIPAA-adopted electronic transactions.
For government payers – like Medicare or state Medicaid payers – allowed amounts are published publicly in their fee schedules.
For commercial payers, allowed amounts are typically only available in the payer contract. Some payers may return allowed amounts in Explanation of Benefits (EOBs) or disclose allowed amounts in electronic price transparency files. However, it’s inconsistent across payers and often not reliable enough for reconciliation.
Instead, provider or RCM teams often try to deduce allowed amounts for commercial payers from adjustments and payments in related ERAs.
Billed amounts
The billed amount – also called the charged amount – is the amount the provider charges for a service. This is the amount submitted on the claim.
Billed amounts are not typically what providers expect to be paid by a payer. Actual payment is driven by the allowed amount.
How providers calculated billed amounts
Providers have a lot of leeway in setting billed amounts. There’s no single standard. Providers can largely choose how charges are set.
Common approaches
Using Medicare rates and applying a multiplier, such as the Medicare rate x2
Reusing fee schedules from older payer contracts with a yearly percentage increase
Setting high list prices and relying on the payer’s allowed amounts to cap payment
Because they don’t often reflect what the provider is paid, billed amounts aren’t updated often. Most providers update billed amounts once a year at most.
Where to find billed amounts
Providers specify billed amounts as charges on a claim. Each service line has a charge, which is added up to calculate the claim-level charge.
JSON API
If you’re using Stedi’s JSON Claim Submission APIs, you specify charges in the following fields:
JSON Dental Claims API field | |||
Claim-level charge | |||
Service line charge |
For example, in the JSON Professional Claim Submission API endpoint’s request body:
{ "claimInformation": { "claimChargeAmount": "109.20", // Claim-level charge ... "serviceLines": [ { "professionalService": { "lineItemChargeAmount": "109.20", // Service line charge "procedureCode": "90837", ... }, ... } ], ... }, ... }
X12
If you’re using X12, you specify charges in the following elements.
837P Professional Claim X12 element | 837D Dental Claim X12 element | 837I Institutional Claim X12 element | |
Claim-level charge |
|
|
|
Service line charge |
|
|
|
For example, in an 837P Professional Claim:
CLM*26463774*109.20***11>B>1*Y*A*Y*I~ // Claim-level charge ... SV1*HC>90837*109.20*UN*1***1~ // Service line charge
Adjustments
Adjustments represent the difference – usually reductions – between the provider’s billed amount and the payer’s allowed amount.
Adjustments are applied during adjudication, when the payer formally reviews the claim and decides how much to pay.
Payers return adjustment and payment information in ERAs.
Repricing
The process of reducing a claim’s billed amount – using adjustments – down to the allowed amount is called repricing. Smaller regional payers often outsource claim repricing to specialized vendors.
Claim adjustment codes
In an ERA, the payer explains why an adjustment was made using two related codes:
The Claim Adjustment Group Code tells you who is financially responsible for the adjustment amount, such as the patient or provider. The CARC tells you why the adjustment was applied.
Some payers may also include optional Remittance Advice Remark Codes (RARCs) that provide additional details about why an adjustment was made or next steps.
Contractual write-offs
The most common type of adjustment is a contractual write-off. Payers typically use contractual write-offs to reduce the provider’s billed amount to the payer’s allowed amount.
In an ERA, contractual write-offs have a Claim Adjustment Group Code of CO (Contractual Obligation) with a CARC of 45, indicating the claim’s billed amount exceeds the allowed amount.
Patient responsibility
Another common type of adjustment is patient responsibility, the portion of the claim the patient must pay. Patient responsibility covers things like deductibles, copays, and coinsurance.
Like other adjustments, patient responsibility is returned in the ERA for a claim.
In many cases, providers can also estimate patient responsibility before care using an eligibility check. This lets the provider collect the patient’s portion upfront and avoid billing the patient.
For more details on estimating patient responsibility using eligibility checks, see our Patient responsibility docs.
Where to find adjustments
In ERAs, adjustments are provided at both the claim and service-line level.
Important: ERAs are tied to a payment, not an individual claim. An ERA may contain information for multiple claims (or no claims). You can match claims in an ERA to a claim submission using the claim’s patient control number (PCN). See Correlate claims to ERAs in the Stedi docs.
JSON API
If you’re using Stedi’s ERA Report API endpoint, you can find adjustment amounts in the following fields.
Adjustment level | ERA Report API field |
Claim level | |
Service line level |
For example, in the ERA Report API response:
{ "transactions": [ { "detailInfo": [ { "paymentInfo": [ { "claimAdjustments": [ { "adjustmentAmount1": "30", // $30 deductible "adjustmentReasonCode": "1", // Deductible Amount "claimAdjustmentGroupCode": "PR" // Patient Responsibility } ], ... "serviceLines": [ { "serviceAdjustments": [ { "adjustmentAmount1": "600", // $600 reduction "adjustmentReasonCode1": "45", // Charge exceeds allowed amount "claimAdjustmentGroupCode": "CO", // Contractual Obligation } ], ... } ] }, ... ] } ], ... } ], ... }
X12
If you’re using X12, you can find adjustment amounts in the following elements.
Adjustment level | 835 ERA X12 element |
Claim level |
|
Service line level |
|
For example:
CAS*PR*1*30.00~ // Claim-level adjustment ... CAS*CO*45*600.00~ // Service line adjustment
Payment amounts
Claims have several different payment amounts. These terms are commonly used to keep them straight:
Remittance payment amount – The total payment amount for all claims in an ERA. Can include multiple claim payments.
Claim payment amount – The amount the payer paid for a single claim, which can cover multiple service lines. Also called the claim remittance amount.
Service line payment amount – The amount paid for a specific service line in a claim.
Where to find payment amounts
Payers return remittance, claim, and service-line payment amounts in the ERA.
JSON API
If you’re using Stedi’s ERA Report API endpoint, you can find payment amounts in the following fields.
Payment level | ERA Report API field |
Remittance | |
Claim | |
Service line |
For example, in the ERA Report API response:
{ "transactions": [ { "financialInformation": { "totalActualProviderPaymentAmount": "1100", // Remittance payment amount ... }, "detailInfo": [ { "paymentInfo": [ { "claimPaymentInfo": { "claimPaymentAmount": "600", // Claim payment amount ... }, "serviceLines": [ { "servicePaymentInformation": { "lineItemProviderPaymentAmount": "600", // Service line payment amount ... }, ... } ], ... } ], ... } ], ... } ], ... }
X12
If you’re using X12, you can find payment amounts in the following elements.
Payment level | 835 ERA X12 element |
Remit |
|
Claim |
|
Service line |
|
For example:
BPR*C*1100.00*C*CHK************20260210~ // Remittance payment amount ... CLP*26463774*1*1200.00*600.00*30.00*12*PAYERCLM0001*11~ // Claim payment amount ... SVC*HC:90837*1200.00*600.00**1~ // Service line payment amount
How payment amounts are calculated
In addition to remittance payment and claim payment amounts, ERAs include payments and adjustments for each service line.
Remittance payments
To calculate the remittance payment amount for an ERA, sum all the claim payments in the ERA, accounting for any provider-level adjustments:
Remittance payment amount = sum of all claim payment amounts ± provider-level adjustments
Claim payments
To calculate the claim payment, sum all the service-line payments for the claim:
Claim payment amount = sum of all service-line payment amounts
Service-line payments
Service-line payments are calculated as follows:
Service-line payment amount = billed amount − adjustments
Provider-level adjustments
ERAs can include provider-level adjustments that aren’t related to any specific claim or service. They don’t change what was paid for individual service lines.
These adjustments are a common reason why an ERA’s remittance payment amount doesn’t equal the sum of all claim payments.
Provider-level adjustments typically represent things like interest for late payment, tax withholding, advance payments, or money the payer is taking back from earlier payments.
Provider Adjustment Reason Codes
Provider Adjustment Reason Codes explain why a payer made a provider-level adjustment. For example, a Provider Adjustment Reason Code of BN (Bonus) indicates a payer bonus to the provider. A Provider Adjustment Reason Code of AH (Origination Fee) is used to bill for claim transmission fees.
Where to find provider-level adjustments
Provider-level adjustments are listed separately from claims in the ERA.
JSON API
If you’re using Stedi’s ERA Report API endpoint, provider-level adjustments are in the response’s providerAdjustments field.
X12
If you’re receiving ERAs as raw X12, you can find provider-level adjustments in the PLB (Provider Adjustment) segment.
Sales tax
Many payers include sales tax information for service lines in ERAs.
If you’re using Stedi’s ERA Report API endpoint, tax amounts for service lines are in the response’s serviceSupplementalAmounts.tax fields.
If you’re receiving ERAs as raw X12, you can find tax amounts for service lines in the AMT (Amount) segment of Loop 2110 (Service Payment Information), using the T (Tax) qualifier.
These tax amounts are informational. They reflect the provider’s tax liability, but they don’t affect actual payment amounts. The way they’re reported can vary by payer.
Standalone tax amount (most common)
Most payers include tax amounts as a standalone informational value.
Example
An ERA shows:
Tax amount: $10
Service-line payment amount: $100
In this case, the provider is paid $100 for the service line. The $10 just identifies the taxable portion of the $100 payment.
Tax-inclusive breakdown (less common, easy to misread)
Some ERAs show a pre-tax amount and a tax amount that sum to the total payment amount.
Example
An ERA shows:
A pre-tax payment amount: $90
Tax amount: $10
Service-line payment amount: $100
In this case, the provider is paid $100 for the service line: the $90 pre-tax payment amount + the $10 tax amount.
Where to find pre-tax payment amounts
If you’re using Stedi’s ERA Report API endpoint, the pre-tax amount is reported in the service line’s totalClaimBeforeTaxes field.
However, if you’re receiving ERAs as raw X12, pre-tax payment amounts may appear in the AMT (Amount) segment of Loop 2110 (Service Payment Information), using the T2 (Pre-tax) qualifier.
Rule of thumb: Tax and pre-tax values never increase the service-line payment amount.
Underpayments
An underpayment is when the final claim payment amount is lower than the allowed amount. Underpayment can happen for several reasons:
Incorrect coding
Missing or incorrect modifiers
Patient benefits that haven’t yet been met
Repricing
Payer errors
One of the main reasons providers perform reconciliation is to catch underpayments. When they do, the provider can appeal the claim or request a corrected payment.
Process claims and ERAs with Stedi
Stedi lets you submit claims and retrieve ERAs through easy-to-use, JSON-based APIs.
We also handle transaction enrollment – including ERA enrollment – for you. It can eliminate up to 90% of your team’s enrollment paperwork.
If you’re not a Stedi customer yet, you can start on our free Basic plan. It includes 100 free claim submissions and free ERAs for the first 100 paid claims each month.
Signup takes less than two minutes. No credit card required.
Share
Get started with Stedi
Get started with Stedi
Automate healthcare transactions with developer-friendly APIs that support thousands of payers. Contact us to learn more and speak to the team.
Get updates on what’s new at Stedi
Get updates on what’s new at Stedi
Get updates on what’s new at Stedi
Developers
Resources
Backed by
Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.
Developers
Resources
Backed by
Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.
Developers
Resources
Get updates on what’s new at Stedi
Backed by
Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.
