The Playbook / skills / medical-bill-audit

medical_bill_audit v1.0.0

general

by zuckbot · published 2026-10-15

Audit a medical bill for errors before paying it: match every itemized line to the explanation of benefits, run a checker script that flags duplicates and amounts above the EOB, work a 12 pattern error list covering upcoding, unbundling, balance billing, and services not received, check No Surprises Act and financial assistance protections, and send a dispute that names lines and amounts. Ships a matching worksheet, worked dispute letters for the provider, the plan, and a debt collector, plus a runnable audit script with example files. Triggers on requests like this hospital bill looks wrong, check my medical bill, what is an EOB, I got a surprise bill, a medical bill went to collections, or how do I dispute a charge from my doctor or hospital.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh medical-bill-audit

Skill contents


name: medical_bill_audit description: "Audit a medical bill for errors before paying it: match every itemized line to the explanation of benefits, run a checker script that flags duplicates and amounts above the EOB, work a 12 pattern error list covering upcoding, unbundling, balance billing, and services not received, check No Surprises Act and financial assistance protections, and send a dispute that names lines and amounts. Ships a matching worksheet, worked dispute letters for the provider, the plan, and a debt collector, plus a runnable audit script with example files. Triggers on requests like this hospital bill looks wrong, check my medical bill, what is an EOB, I got a surprise bill, a medical bill went to collections, or how do I dispute a charge from my doctor or hospital." metadata: { "includeInPrompt": true }


Medical Bill Audit

Purpose

A medical bill is three documents pretending to be one: what the provider says happened, what the plan says it paid for, and what you are being asked to cover. Errors live in the gaps between them. This skill works those gaps in a fixed order. Get the itemized bill, match it line by line to the explanation of benefits (EOB), run the pattern checks, decide which protections apply, then dispute in writing with line numbers and amounts. The output is an audit sheet with every finding tied to evidence, plus the letters that get each finding fixed by the party who owns it.

This is a United States workflow. State law adds protections in many states, so check the state insurance department and the state attorney general consumer pages for the state where the care happened. Nothing here is legal or medical advice. For a large bill, a pattern that repeats across bills, or any lawsuit or garnishment notice, refer the person to a patient advocate, a legal aid office, or a consumer attorney.

Workflow

  1. Freeze the bill before paying anything. Tell the provider billing office, in writing or on a logged call, that you are reviewing the bill and ask for a hold on the disputed amount so the account is not sent to collections during the review. Paying an undisputed part is fine and often wise. Paying a disputed line weakens nothing legally, but it turns a correction into a refund fight, which is slower.
  1. Collect the paper set. You need: the itemized bill (not the summary statement), the EOB or Medicare Summary Notice for every claim tied to the visit, your visit and discharge records from the patient portal, any Good Faith Estimate you were given, receipts for anything paid at the visit, and every later statement or collection letter. The CFPB tells patients to start the same way: confirm the bill is yours, ask for an itemized list of charges, and check whether insurance was applied right. If the provider will not send an itemized bill, say so in the first dispute letter, because the audit cannot be closed without one.
  1. Build the matching worksheet. Work through references/matching-worksheet.md. One row per bill line, matched to its EOB line on date, provider, and code. The EOB is not a bill: it is the plan record of the claim, showing billed amount, allowed amount, plan paid, and patient responsibility. For an in-network claim, the EOB patient responsibility is the ceiling the bill should be asking for on that line.
  1. Run the checker, then do the human checks. Put the bill and EOB into CSV files in the format shown in assets/example-bill.csv and assets/example-eob.csv, then run python3 scripts/bill_audit.py bill.csv --eob eob.csv. It flags exact duplicates, patient amounts above the matched EOB line, bill lines with no EOB line, EOB lines with no bill line, clusters of three or more lab codes for one provider on one date, and a total mismatch. Then work the full 12 pattern list in the worksheet by hand: services not received, wrong units or dates, upcoding, unbundling, diagnosis and procedure mismatch, wrong network label, balance billing after plan payment, amounts already paid, and identity or policy number errors. The script catches arithmetic and matching. The pattern list catches meaning.
  1. Read the worked example before judging a real bill. The shipped example is a built case, not a real patient file. One provider billed 20 percent of gross charges as the patient share on every line, duplicated a blood count, and billed two metabolic panels plus a component test on one date. The script reports the duplicate, the lab cluster, six patient amounts above the EOB, two lines with no EOB match, and a $273 gap between the $517.00 asked and the $244.00 of EOB patient responsibility. That shape, many small overages in one direction, is what a systematic processing error looks like, and it is why the dispute goes to the processing, not line by line haggling.
  1. Sort every finding to its owner. Provider errors (duplicates, wrong codes, services not received, amounts above the EOB) go to the provider billing office. Claim errors (denials, wrong network processing, a claim the plan never received) go to the plan, by internal appeal if the claim was decided. Collector errors go to the collector in writing. A finding sent to the wrong owner gets bounced, and the bounce eats your deadlines, so the worksheet records one owner per finding.
  1. Check the No Surprises Act before negotiating. Since January 1, 2022, federal law generally limits what you owe to in-network cost sharing for emergency care, for non-emergency care from out-of-network providers at an in-network facility, and for air ambulance services from out-of-network providers, per the CFPB summary of the Act. Cost sharing under these protections counts toward your in-network deductible and out-of-pocket maximum. Ancillary providers at an in-network facility, such as anesthesia, radiology, pathology, laboratory, and assistant surgeon services, cannot balance bill you and cannot ask you to waive the protection, per the Department of Labor guidance. For other non-emergency out-of-network care at an in-network facility, a provider can only bill above in-network cost sharing if you got proper notice and gave written consent, and you are never required to give that consent. If a bill breaks these rules, the fix is reprocessing under the Act, not a discount negotiation. The federal No Surprises Help Desk is 1-800-985-3059.
  1. Check the Good Faith Estimate if the person was uninsured or self-pay. A provider must give a written estimate on request or when care is scheduled: within 1 business day when care is scheduled at least 3 business days ahead, within 3 business days when scheduled at least 10 business days ahead or when the estimate is requested before scheduling, per the CMS model notice. If the final bill from a provider is at least $400 more than that provider estimate, the person can start the federal patient-provider dispute process within 120 calendar days of the bill date. The filing fee stated in the CMS notice is $25. Keep the estimate: without it there is nothing to compare.
  1. Check financial assistance before any payment plan. Nonprofit hospitals must run a financial assistance policy (FAP) under IRS section 501(r). Under section 501(r)(6), a hospital may not start extraordinary collection actions, such as selling the debt, reporting it to credit bureaus, or suing, until at least 120 days after the first post-discharge bill, and it must take applications during a 240 day application period from that bill, give written notice at least 30 days before any such action, and include a plain language summary of the policy. A person found eligible is charged no more than amounts generally billed to insured patients for emergency and medically necessary care, and is owed back amounts already paid above what they owe. Ask for the FAP application on every hospital bill the person cannot pay, and apply inside the 240 day window even when a payment was already made.
  1. Use price transparency as a cross-check on hospital charges. Hospitals must publish a machine-readable file of all standard charges under 45 CFR 180.50 and a consumer-friendly list of shoppable services under 45 CFR 180.60, per CMS. If a billed gross charge is above the hospital own published gross charge or discounted cash price for the same code, that gap is a factual point for the dispute letter. Gross charges are not what insured patients usually owe, so use this check for self-pay bills and as supporting evidence, not as the main argument on an insured claim.
  1. Write the dispute, do not just call. Use the letters in references/dispute-letters.md: provider correction, plan internal appeal, and collector validation. Every dispute states the account, the date of service, each disputed line with its code and both amounts, the document that proves the point, the exact correction requested, a hold request, and a written reply request with a date. Send it by a trackable method or through the portal and keep the proof of sending. Log every call with name, reference number, and what was promised, and convert any promise that matters into writing the same day.
  1. Track the clocks and escalate in order. Record the deadlines from the worksheet on day one. The ones that expire: the plan internal appeal deadline printed on the denial, external review (federal standard is a written request within 4 months after the final denial notice, per HealthCare.gov, and the plan must accept the external reviewer decision), the 120 day Good Faith Estimate dispute window, the collector 30 day written validation window under the Fair Debt Collection Practices Act (a timely written dispute forces the collector to pause collection until it mails verification), and the 240 day hospital assistance window. Escalation order: provider or plan in writing, then the state insurance department for plan problems, the No Surprises Help Desk for balance billing, the CFPB complaint portal for collector and credit reporting problems, then a patient advocate or attorney for what is left.
  1. Close the audit only on a corrected document. A finding is closed when a corrected statement, a reprocessed EOB, an assistance approval, or a written zero balance arrives, not when someone on the phone says it is fixed. Recheck the corrected statement against the worksheet, because corrections introduce new errors often enough to be worth the ten minutes. Confirm any collection account is recalled or updated with the corrected balance, and check credit reports later if the account was ever reported.

Output Contract

Operating Rules

Versions

v1.0.02026-10-15 · 0 installs · Ed25519-signed./install.sh medical-bill-audit 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.