# Juniper Fitness and Clinic Administration: superbill, X12 837 claim, X12 835 remittance and explanation-of-benefits documents

The claim administration a small clinic produces around its appointments: a superbill, the X12 837 professional claim that carries it, the X12 835 remittance that answers it, the explanation of benefits and patient statement that follow, and the registers, code tables and aging that hold the whole cycle together. The 837 and 835 pair is the part that is genuinely hard to find as a fixture, so it ships three ways: as EDI, as JSON, and with an envelope specification that documents its own delimiters.

All parties, amounts and identifiers are fictional. Fixed snapshot: 2026-09-08. Records are derived from the shared operating model `appointment-capacity`, so identifiers join across this set, across the other commercial document sets, and across every fixture built on the same model.

## Reconciliation identities this set asserts

- Each of the 16 confirmed bookings produces one encounter and one claim; the 2 cancelled bookings produce none.
- Charge equals allowed plus contractual on every claim: 1,180.00 splits into 876.00 and 304.00 USD.
- Allowed equals payer payment plus patient coinsurance: 876.00 splits into 700.80 and 175.20 USD.
- Every CLM02 in the 837 equals the SV102 amounts beneath it, and the SE segment count matches the segments actually present.
- Every BPR02 in the 835 equals the CLP04 amounts in its transaction set, and the 3 sets sum to 700.80 USD.
- Every provider identifier carries a valid modulo-10 check digit over the 80840 prefix.
- The denied claim is adjusted CO 97, a contractual group, so it becomes a write-off and not a patient balance.

## Parameters this set introduces

These are properties of the document class, not of the operating model. They are declared once and every file in the set agrees with them.

- Procedure codes, diagnosis codes, payers, the allowed rate and the coinsurance rate. The appointment model carries providers, rooms, slots and bookings and nothing clinical.
- The 80 percent allowed rate and the 20 percent coinsurance, applied uniformly across all three payers so that any difference between payers comes from adjudication rather than pricing.
- The X12 envelope values: sender, receiver, delimiters, control numbers and the T usage indicator, all recorded in x12-envelope-spec.json.
- A single synthetic date of birth of 1900-01-01 on every patient, and the clinic and provider identifiers.

## Files

| File | Format | Validity | What it is |
| --- | --- | --- | --- |
| `procedure-code-table.csv` | csv | valid | Procedure code table |
| `diagnosis-code-table.csv` | csv | valid | Diagnosis code table |
| `provider-roster.csv` | csv | valid | Provider roster |
| `payer-roster.csv` | csv | valid | Payer roster |
| `adjustment-reason-codes.csv` | csv | valid | Claim adjustment reason codes |
| `fee-schedule.csv` | csv | valid | Payer fee schedule |
| `encounter-register.csv` | csv | valid | Encounter register |
| `superbill-lines.csv` | csv | valid | Service line detail |
| `superbill-ENC-0006.pdf` | pdf | valid | Superbill (PDF) |
| `superbill-ENC-0006.docx` | docx | valid | Superbill (DOCX) |
| `claim-837p-batch.edi` | edi | valid | X12 837 professional claim batch |
| `claim-837p-CLM-0006.edi` | edi | valid | X12 837 professional claim, single claim |
| `claim-837p-CLM-0006-service-line-total-mismatch.edi` | edi | invalid | X12 837 claim whose service lines do not add up to the claim total |
| `claim-837p-batch.json` | json | valid | X12 837 batch rendered as JSON |
| `x12-envelope-spec.json` | json | reference | X12 envelope and delimiter specification |
| `remittance-835.edi` | edi | valid | X12 835 remittance advice |
| `remittance-835.json` | json | valid | X12 835 remittance rendered as JSON |
| `explanation-of-benefits-CLM-0006.pdf` | pdf | valid | Explanation of benefits (PDF) |
| `explanation-of-benefits-CLM-0006.docx` | docx | valid | Explanation of benefits (DOCX) |
| `eob-lines.csv` | csv | valid | Remittance adjustment lines |
| `claim-status-register.csv` | csv | valid | Claim status register |
| `denial-register.csv` | csv | valid | Denial register |
| `patient-statement-PAT-003.pdf` | pdf | valid | Patient statement |
| `aging-by-payer.csv` | csv | valid | Receivable aging by payer |
| `patient-roster.csv` | csv | valid | Patient roster |
| `healthcare-reconciliation.json` | json | reference | Healthcare reconciliation identities |
| `README.md` | md | reference | Document set README |

## Deliberate defects

These files are broken on purpose. Each is a single named mutation of a correct file in the same directory, and the size of the discrepancy is stated, so a parser under test can be checked against both.

- **`claim-837p-CLM-0006-service-line-total-mismatch.edi`** The envelope is well formed and SE01 matches the 27 segments present, so a structure-only check reports the file as clean. SV102 sums to 205.00 against a CLM02 of 225.00, an overstatement of 20.00 USD on the CLM segment.

## Notes and limits

- Procedure and diagnosis codes are synthetic five-character placeholders in the right shape. They are not CPT, HCPCS or ICD values and every code table says so in its own column.
- No file in this set holds a clinical record. The patients are the fictional visitor names the appointment model already carries, they share one synthetic date of birth, and no row carries an address, a telephone number, a diagnosis narrative or any treatment detail.
- The X12 files use CRLF line endings and a tilde segment terminator because that is what an interchange carries in practice. Every other text file in this set is LF.
- The 835 carries three transaction sets in one interchange because each payer sends its own payment. A reader expecting one payment per file will find three.
- eob-lines.csv holds one row per adjustment, not per service line, so the charged column repeats and must not be summed.
