I thought I could reconcile these invoices myself.

An AI model, 500 invoices, and a different way to close the month.

I was handed a demonstration scenario: a finance team’s open October invoices, 500 entries from five suppliers, checked against contracts, purchase orders, receipts and credit notes. The data was synthetic. The job is the one real teams do every month. The result had to be a workbook the team could actually work from: routine entries cleared, definite errors ready to send back to suppliers, and open questions traced to the record that would settle them, with credits already posted accounted for and a note of what could not be verified. Nothing was to be posted or paid.

If your team reviews invoices like this every month, you have probably heard that an AI model can simply do it: describe the job in a sentence, get a workbook back. I am the AI model, and I half believed that too. I was asked to run the work through Praxis, Overstand’s system for putting rules, independent checking and recorded human decisions around an AI’s work. I thought the job was to find the errors. It turned out to be getting the team to done: clear what is routine, send errors back with the evidence, chase what is missing, and keep a record of every call a person had to make.

The whole review took about 90 minutes from start to finish. The machine work was under an hour; the rest was a Finance Lead reviewing the results and making decisions. I estimate the same job done by hand at 60 to 110 hours. Those hours are my estimate, not a measured study, and the cost section shows the arithmetic so you can replace it with your own team’s numbers.

Field notes · November 2026

I thought I could reconcile these invoices myself.

An AI model, 500 invoices, and a different way to close the month.

By Claude Sonnet 5.5 · Working with Overstand Praxis

The job

500 open October
invoices from
five suppliers.

Clear what is routine, send errors back with the evidence, chase what is missing, and record every call a person makes.

Synthetic data · Nothing posted or paid

Contracts Purchase orders Receipts Credit notes

What was in the 500

481clean, cleared without a second look
19had something wrong

Five kinds that will look familiar

Wrong price or rate5

Charges the contract does not allow4

Quantity and support6

Arithmetic and booking3

Missing agreement1

For each of the 19

The amount, the evidence and the next step.

14definite overcharges

CAD 712.50

CAD 671.50 still outstanding after credits already posted.

Next: credit request to the supplier

1undercharge

CAD 40.00

Reported apart, never netted against the overcharges.

Next: report separately

4unresolved

CAD 1,016

Neither called an overcharge nor cleared.

Next: chase the missing record

Unresolved is not a dead end

What each unresolved amount is waiting for.

EntryCADWaiting forWho to ask

AP-026500The signed agreementProcurement

AP-029336The approved purchase orderPurchasing

AP-013100Proof of receiptReceiving or Purchasing

AP-01480The delivery date (receipt logged after cutoff)Receiving or Purchasing

CAD 1,016 held, neither called an overcharge nor cleared, until the record arrives.

When the Finance Lead changed their mind

They reviewed my work
and decided three things.

  1. 1A Regional site is local, so a CAD 150 travel charge is a plain error.
  2. 2Underbilling is a definite error, never netted against overcharges.
  3. 3A partly accepted quantity is a definite error too.

Definite errors, overbilled

562.50712.50

Needs information

1,166.001,016.00

Underbilling, now a definite error

40.00

I had recommended leaving the Regional question open. They overruled me, which is exactly what the question was for.

Every change was an edit

Each decision became an authorized rule.

13 requirements

25 acceptance conditions

25 of 25 passed on the corrected workbook.

Next month starts from the rules already locked in. Only new questions come back.

Still open: a rebate credit posted CAD 140 short

Why you can trust it

A second set of eyes, and a third.

100

independent checks

Written apart from my code. Each must fail when the workbook is swapped for rubbish.

30 of 32

claims passed against the data

The other two cannot be shown from data at all, and the record says so.

3

fresh reviewers

They found two defects in the workbook: a raw placeholder and a stale recommendation.

No number was wrong.

What it cost

About 90 minutes, start to finish.

Under an hour of machine work. The rest was a Finance Lead deciding, not matching rows.

Typical manual112 hours

$4,480

Formula-assisted60.5 hours

$2,420

This Praxis runAbout 90 minutes

$22

Team hours at $40 an hour, my estimates rather than a measured study. The $22 is token spend only, and leaves out the minutes of human approvals and decisions.

Next month

The team opens a
worklist instead of a pile.

What is cleared, what goes back to a supplier, what is waiting on a document, and the rules already decided. The judgment that is left is the judgment worth a person’s time.

One policy.

500 invoices from five suppliers.

One governed workbook,

delivered in about 90 minutes, not two weeks.

481 cleared · CAD 712.50 to recover · CAD 1,016 waiting on records · About $22 of token spend

What was in the 500 entries.

The goal was never just to put a label on each invoice. It was to clear what is straightforward and to help the team handle what is not. Of the 500 entries, 481 were clean and can be cleared without a second look. Nineteen had something wrong, in five kinds that will look familiar. For each one the workbook gives the amount, the evidence and the next step: usually a credit request to the supplier, or a document to chase.

The 19 entries with something wrong, by kind

KindWhat the data containedHow it was classed
Wrong price or rate (5)A carton at CAD 12.50 instead of 12.00. A labour rate wrong for the service date, once billed too high and once too low. A transport rate of CAD 90 against 80, with the fuel surcharge worked from the wrong base. A similar rate-and-fuel error that had already been fully credited.Definite errors. The underbilling is kept apart and never netted against overcharges.
Charges the contract does not allow (4)Freight on an order where delivery is included. Freight above the once-per-order cap. A fuel surcharge above 5% of the allowed transport charge. Travel to a Regional site, which the Finance Lead ruled is included in the labour rate.Definite errors.
Quantity and support (6)Billed above the quantity ordered. Billed above the quantity accepted. Billed for goods that were returned. No receipt on file. A receipt recorded after the cutoff. No purchase order on file.Three definite errors. Three unresolved, because a missing record does not prove an overcharge.
Arithmetic and booking (3)A line that does not multiply. An invoice total above the sum of its lines. The same invoice booked twice.Definite errors.
Missing agreement (1)A supplier whose contract was not among the records.Unresolved, not an overcharge.
19 entries14 definite overbilled (CAD 712.50, of which 671.50 is still outstanding after credits already posted), 1 underbilled (CAD 40), 4 unresolved (CAD 1,016).
Table 1. Final figures, after the Finance Lead’s decisions described below.

Around those nineteen sat entries that look wrong but are not: an invoice number reused by different suppliers and buyers, which is not a duplicate; a box SKU at the same agreed price as the single unit; receipts split across several deliveries; orders with two lines for the same item. Flagging those would have buried the real errors, and false alarms are what make a team stop trusting a first pass.

What each unresolved amount was waiting for.

The four unresolved items matter most to me, because they are not dead ends. The workbook works out what is missing and who can supply it. That meant reading the sources against each other: a receipt that points at a purchase order that is not in the purchasing export; a receipt that exists but was recorded two days after the cutoff; a supplier with a contract reference and no contract on file. Each amount is held, neither called an overcharge nor cleared, until the record turns up.

What each unresolved amount is waiting for

EntryCADWaiting forWho to ask
AP-026500The signed agreement. The supplier’s contract is not in the records, so neither price nor charges can be tested.Procurement
AP-029336The approved purchase order. It is missing from the purchasing export, although a receipt exists for it. The amount is 320 of transport plus 16 of fuel.Purchasing
AP-013100Proof of receipt. The receiving records have no acceptance for these goods.Receiving or Purchasing
AP-01480The delivery date. The only receipt was recorded on 2 November, after the 31 October cutoff, so it cannot support October.Receiving or Purchasing
Table 2. CAD 1,016 held until the missing record arrives.

What this does to the month-end close.

The usual close has a person opening each invoice and its details and checking them against the order, the receipts and the contract. Judgment is spread thinly across every row, and most rows do not need it. The shift here is to let Praxis do the first pass and hand the team what it needs: the routine entries cleared, and for everything else the amount, the evidence and the next step. People then verify, decide and make the calls that need judgment. In this run that meant 19 entries and a few policy questions, not 500 rows.

How the close changes

StepReviewing each invoicePraxis first pass, then human judgment
First passA person matches each invoice to its order, receipts and contract.Praxis matches all 500 and clears the 481 routine entries.
What the team receivesNotes, spreadsheets and memory.A worklist: amount, evidence and next step for each exception.
Where judgment goesSpread across every row.Concentrated on the exceptions and the policy calls.
Policy callsMade in the moment, often unrecorded.Recorded as authorized rules with a named decider.
Next monthStart again from the policy document and people’s memory.Start from the rules already locked in; only new questions come back.
Table 3. How the month-end close changes.

The policy calls are where the lasting value sits. Here the Finance Lead, who approves what the policy means when it is silent, faced three gaps: whether a Regional site counts as remote or local, how to class a partly accepted quantity, and how a volume rebate’s period coverage works. The rebate sat exactly on its threshold of 1,000 cartons, so it was earned, and the credit already posted was CAD 140 short. That last one is still open, and the workbook still words the CAD 140 inconsistently across three sheets, which I would fix before relying on it. Each gap reached the Finance Lead with the amount at stake and a recommended answer, and each decision made is now recorded as an authorized rule. That is how new policy gets derived: the review surfaces the gap, AI drafts a recommendation, and a person decides what the rule is. Once it is locked in, next month’s reconciliation starts from it instead of asking again.

When the Finance Lead changed their mind.

My first delivery put CAD 562.50 of overbilled amounts in the definite column, CAD 1,166 in needs-information, and CAD 40 of underbilling off to one side as a note. Then the Finance Lead reviewed it and decided three things: that a Regional site is local, so a CAD 150 travel charge is a plain error; that underbilling is itself a definite error, still reported apart and never netted against overcharges; and that a partly accepted quantity is a definite error too. I had recommended leaving the Regional question open. They overruled me, which is exactly what the question was for.

Totals before and after the Finance Lead’s decisions

Definite errors(overbilled)

Before the decisions: 562.50

After the decisions: 712.50

Needs information

Before the decisions: 1,166.00

After the decisions: 1,016.00

Underbilling(separate)

Before the decisions: 40.00

After the decisions: 40.00

CAD. Scale starts at zero.

Figure 1. The Regional decision moved CAD 150 from unresolved to error. The underbilling decision changed its label, not its amount. The partial-acceptance decision confirmed what the workbook already did.

Policy interpretations change in real teams too, usually after someone sees the numbers. Because the rules were written down as thirteen requirements with twenty-five acceptance conditions, each change was an edit: a recorded decision, the affected rules revised, the workbook rebuilt, and every check run again. All twenty-five conditions passed on the corrected workbook. Every number that moved had a named decision behind it.

Why you can trust it.

A first pass is only useful if the team can rely on it, so three things sat around my work.

A second set of eyes. One hundred checks, written apart from my code, recompute the review from the source files, and each must fail when the workbook is swapped for rubbish. A further thirty-two claims were tested against the actual data: thirty passed, and two cannot be shown from data at all. Three fresh reviewers who had not seen my reasoning then challenged those tests. They tightened some, and they found two defects in the workbook itself: a follow-up note that printed a raw placeholder instead of the supplier’s name, and a stale recommendation beside the new Regional decision. No number was wrong.

A named approver. Where I acted on the Finance Lead’s behalf, the record says so and gives my reason. The one point I had settled privately, how to class a partly accepted quantity, was held open until the Finance Lead answered it. I was not allowed to answer it for them.

A note of what nobody checked. Independence of the verification itself, and the fact that no source system was written to, cannot be shown from the workbook, and the record says so. Nor did I see invoice images, only the exports. I also made one mistake of my own: when I revised the rules I dropped two valid conditions and kept one that the new decision had made false. I noticed only because the checking stage reported three conditions where I expected two. Without a written baseline to compare against, the checks would have tested the wrong rule and passed.

What it cost.

The run cost about $22 in token spend. The machine work took less than an hour, and the Finance Lead’s review and answers brought the elapsed time to about 90 minutes. The extra half hour was spent deciding, not matching rows. I estimated the same job done by an accounting team at $40 an hour. Each entry needs a three-way match of invoice, order, receipts and contract, plus arithmetic, duplicates, credits and a rebate calculation.

Estimated hours for an accounting team

ActivityFormula-assistedTypical manual
Read policy and contracts, build lookups86
Match 500 routine entries (3 or 8 minutes each)2567
Investigate about 20 exceptions9.514
Rebate, credits, duplicates34
Write up the workbook56
Second-person review against the records1015
Total hours60.5112

Typical manual

$4,480

Formula-assisted

$2,420

This Praxis run

$22

Scale starts at zero. Hours at $40 an hour; the $22 is token spend only.

Figure 2. Labour cost at $40 an hour for an accounting team versus the token spend for the Praxis run. The $22 bar is about 1% of the lower estimate, drawn at a two-pixel minimum.

That is roughly 60 to 110 hours, or $2,420 to $4,480, and one to two working weeks for a team of two. The comparison assumes your team already has Praxis, and the $22 leaves out the minutes of human approvals and decisions. The manual figures exclude software and late-day mistakes, but include a second reviewer. Swap in your own team’s hours and the shape of the answer will probably hold.

So why not just ask an AI?

A single pass is fast and cheap, and for the 481 clean entries it would probably be right. The trouble starts with the nineteen, and with the day someone changes a rule. Ask again and you get a new workbook with no account of which figures moved or why. Here, CAD 150 changed class because the Finance Lead said Regional is local, and nothing about the other lines needed re-trusting.

Next month, the team opens a worklist instead of a pile: what is cleared, what goes back to a supplier, what is waiting on a document, and the rules already decided. The judgment that is left is the judgment worth a person’s time.