This is the taxonomy the engine works from. None of it requires bad faith — a system migration, a mid-year rate change, a rule loaded wrong. The money is real either way.
Every figure below is a worked example, not a customer. The severity mark says whether a finding of that kind can be claimed, reported, or is in your favour.
TIER_ERROR
Tier error
Claimable
A rate that changes past a threshold is billed at one flat rate for the whole quantity, so the cheaper bracket never applies.
Why it happens A tier is two rules in one line. When a billing system stores a single rate per charge code — most do — the second bracket has nowhere to live and quietly stops existing.
On the invoice The line item looks ordinary. Nothing on the invoice says a tier was meant to apply; the arithmetic is only wrong if you rebuild it.
The unit is right and the quantity is right. The number per unit is not the number the contract states.
Why it happens A mid-year rate change applied to the wrong effective date, or a renewal loaded into the billing system before the amendment that superseded it.
On the invoice Indistinguishable from a correct line without the rate card open beside it. This is the failure that makes monthly checking impractical by hand.
4,200 units at $0.55 · the contract says $0.50
4,200 × $0.55 = $2,310.00
4,200 × $0.50 = $2,100.00
---------
Overbilled $210.00
Five cents. One month.
UNIT_MISMATCH
Unit mismatch
Claimable
Billed in a unit the contract does not meter that work in. The rate may be perfectly correct for the unit used — the error is the unit itself, and it multiplies.
Why it happens A pre-packed carton arrives and the system has no carton-level charge code, so it decomposes into individual picks. Every pick is priced correctly.
On the invoice A quantity far larger than the month's activity, at a rate that checks out. The rate audit passes; the unit audit is the one that catches it.
40 pre-packed cartons of 36 units
Billed as individual picks
1,440 × $0.50 = $720.00
As the contract meters it
40 × $2.25 = $90.00
--------
Overbilled $630.00
Right rate. Thirty-five charges too many, forty times over.
CHANNEL_MISRATE
Channel misrate
Claimable
Billed at a rate contracted for a different sales channel. B2B and DTC work is priced differently in most contracts.
Why it happens Wholesale orders enter through the same pipeline as consumer orders and inherit the default rate card. Nothing flags them as different.
On the invoice The total is plausible and the volumes are right. Only the mix is wrong, and the invoice does not show the mix.
180 wholesale orders billed at DTC rates
180 × $2.25 = $405.00
180 × $1.10 (B2B) = $198.00
--------
Overbilled $207.00
Among the costliest errors auditors report, because it compounds
every month until someone looks at the mix.
MINIMUM_MISAPPLIED
Minimum misapplied
Claimable
A monthly minimum charged in a month whose activity already cleared it, so you pay the floor and the activity both.
Why it happens The minimum is a separate charge code on a schedule. In a busy month nobody suppresses it, because suppressing it is a manual step.
On the invoice One extra line on an invoice that already has six. It is the smallest line and the easiest to skim past.
Contract · $1,000.00 monthly minimum, as a floor
Activity, priced $3,796.35
Minimum $1,000.00
The floor is already cleared. No minimum line is due.
Overbilled $1,000.00
QUANTITY_MISMATCH
Quantity mismatch
Claimable
Billed for activity that did not happen, or more of it than happened.
Why it happens A batch reprocessed after a failed run, or a count taken before returns were netted off. The billing system reports what it was told.
On the invoice The rate is right, the unit is right, the number is larger than your own records. This is the type that needs your activity data to catch.
Invoice says 3,410 units picked · your records say 3,200
210 × $0.50 = $105.00
Overbilled $105.00
Only findable if the month's activity was recorded.
DUPLICATE
Duplicate
Claimable
The same charge appearing twice, in the same invoice or across two.
Why it happens An invoice reissued after a correction, with the original never voided. Or one charge split across two codes that both bill in full.
On the invoice Two lines with similar descriptions and identical amounts, often not adjacent. Easy to see when you look for it, easy to miss when reading down.
Storage fees $765.00
Storage — Jan $765.00
---------
Overbilled $765.00
UNCONTRACTED_CHARGE
Uncontracted charge
Reported, not claimed
A charge with no basis anywhere in the rate card.
Why it happens Value-added services quoted by email and never folded into the contract. Not bad faith — a quote that was agreed verbally and billed literally.
On the invoice A line whose description does not correspond to anything in the agreement. Often the largest single unexplained amount.
Value-added services $315.00
Authorising clause none found
--------
Verified $0.00
Unverified $315.00
Reported as uncovered, not claimed. A charge that cannot be
matched to a clause is not thereby wrong — it is unverifiable,
and those are different.
UNBILLED_CHARGE
Unbilled charge
In your favour
The contract prices this work and the invoice never charged for it. The provider undercharged.
Why it happens An incomplete invoice transcript more often than provider generosity — which is why it is worth knowing about.
On the invoice An absence, which is the hardest thing to notice on a document. Only a priced-out month reveals it.
Return processing, contract $116.35
Return processing, invoiced $0.00
--------
Undercharged $116.35
Shown, never claimed. Asking would be asking to be invoiced.
It still matters for accruals.
UNEXPLAINED_VARIANCE
Unexplained variance
Reported, not claimed
The amount differs from what the contract and the activity imply, and no rule above accounts for the difference.
Why it happens Anything. That is the point — the cause is not known.
On the invoice A gap the engine can measure and cannot name.
Invoiced $1,375.00
Contract and activity imply $1,342.00
---------
Variance $33.00
Kept as its own finding rather than filed under Wrong rate.
Asserting the rate is wrong when the cause is unknown is exactly
the kind of confident guess this engine exists to avoid.