How the AI works
Read, check, estimate, write.
Bills are messy, every provider prints them differently, and the overcharge is usually in a footnote. Reading them well takes modern vision and language models. Here is exactly what runs when you add a bill.
- 01
Read the bill
PDFs: we rebuild the page row by row from the text layer, so a label and its amount stay on one line even when they sit far apart. Long digit runs (account, card, policy numbers) are masked to their last four before any model sees the text.
Photos and scanned PDFs: a vision model reads the image directly, including small print and usage boxes. The account number is masked in its answer before anything is stored or returned.
Output: provider, category, billing period, total, and every charge as a line item.
- 02
Check each line
Each charge is judged against the plan and usage printed on the same bill: OK, Check, or Overcharge, with a one-sentence reason.
Typical finds: a promo end notice with the price now higher, the same fee twice in one period, rented equipment, an add-on with zero usage printed, a rate plan the bill itself prices lower, an insurance premium that jumped at renewal.
- 03
Estimate fair price and savings
Savings come from the bill's own numbers. Monthly charges are annualized times 12 unless the bill shows seasonality or a term, in which case the reasoning says so.
Findings are never double counted: if two findings touch the same charge, the second is counted only on top of the first.
Alternatives are cited only when printed on the bill or pasted by you. Otherwise the finding is phrased as a question to ask your provider, with no number attached.
Each finding carries a confidence level: high only when the bill itself proves it.
- 04
Write the script
Findings become a call script in first person, warm and firm, that names your account by its last four digits, walks through each ask, requests retention if needed, and asks for confirmation in writing.
Home and Household also get an email draft and a short question list.
Model-agnostic
No single model is a single point of failure.
Every audit goes through one thin routing layer. Providers are tried in a configured order; the first valid answer wins. Today that includes vision and language models from more than one provider, and adding or swapping a model is a configuration change, not a rewrite.
Every answer is validated against a strict schema before anyone sees it. If it fails, the model gets one chance to correct it, then the next provider is tried. A final pass masks any long number, removes promise language, and caps estimates at a sane ceiling.
When no model is available, PDF bills still get an audit from the Billdial rules engine, which applies the same checks to the extracted rows and says so on the result. Photos need a vision model and say so plainly instead of guessing.
Household audits run on our strongest configured models first.
Never trained on your bills
We call providers with storage for training turned off and do not train our own models on customer bills.
Masked before the model
On PDFs, account numbers are masked before text leaves our servers. On photos, the model's answer is masked before it is stored.
Evaluated on real bills
We test every model change on an evaluation set of real, consented bills with known overcharges before it ships.