Send the month's tickets and invoices. Get back the close — matched, flagged, and ready to load.
We read every delivery ticket your foreman signed — not just the invoice. Every line matched to its PO and cost code, every quantity or price over tolerance flagged with the evidence behind it — the 18 yards on the ticket against 14 on the PO, the overbill that would've ridden into your WIP. You approve the lines we flag — not every line in the close. Nothing posts to job costing until you do.
- 1Send the pile
- 2We read the tickets
- 3We match to your POs
- 4We flag what's over
- 5You approve the flagged lines
- 6Reconciled workbook
- 7Load and close
It doesn't stay a small error. It rides into the job.
A broken VLOOKUP matched the wrong PO. The overbill rode through three pay runs into committed cost. The job looked fine until the WIP report — and by then it was underwater, in front of the lender, with your name on it.
Every mismatch we flag is a dollar you decide on before it posts — instead of finding it next quarter. The ones that are real overbills, you catch before you pay.
You don't need another login. You don't need to train your team on a portal. You don't need to connect your Procore instance.
Your admin emails the pile the same way she'd hand it to you. We read it, match it, and flag what's over tolerance. You open the flagged lines in your browser, approve or kick back, and load the workbook. That's the entire workflow.
You send the month. We send back the close.
We read the ticket, not just the invoice — and match against YOUR POs and cost codes.
Most matching tools compare the invoice to the PO. We compare the invoice to the PO AND to the delivery ticket your foreman signed. That's how we catch the 8.5 yards on the ticket against 10 on the invoice — an overbill no invoice-only tool would flag. Your purchase orders, your vendor names, your cost-code structure, your tolerances.
Matched, flagged, or open — never auto-posted.
You approve what we flag. We do the rest.
This is the only screen you open. We did the rest.
The lines that match the PO within tolerance are already done. You open the ones we flagged, see the ticket and invoice side by side, and approve or kick back each one. Your name goes on the close.
| # | Description | CC | PO qty | Recv'd | Inv qty | PO $/u | Inv $/u | Var | Status |
|---|---|---|---|---|---|---|---|---|---|
| 57 | #5 rebar, 60 ft | 03-200 | 480 lf | 480 lf | 480 lf | 0.92 | 0.92 | — | ✓ matched |
| 58 | #4 rebar, 40 ft | 03-200 | 320 lf | 320 lf | 360 lf | 0.88 | 0.88 | +40 lf | ⚑ QTY — needs you |
| 59 | 3000 psi 3/4 mix | 03-310 | 14 | 18 | 18 | 142.00 | 151.00 | +4 CY, +$9 | ⚑ QTY+PRICE — needs you |
| 60 | Pump service | 03-310 | — | — | 1 day | — | 450.00 | no PO | ⚑ OPEN — needs you |
| 61 | Tie wire, 16 ga | 03-200 | 12 | 12 | 12 | 18.50 | 18.50 | — | ✓ matched |
| 62 | Chairs, 4 in (1000ct) | 03-200 | 2 | 2 | 2 | 64.00 | 64.00 | — | ✓ matched |
on file
Nothing posts to job costing until you approve it. Every line in your close was either matched to the PO within tolerance, or approved by you.
Your team doesn't change a thing.
You've bought construction software before. Your AP clerk didn't use it. Your foremen didn't upload to it. It sat on the shelf and you went back to the spreadsheet. We know, because that's who we built this for.
You're buying a reconciled close — not a software license your team has to learn.
Every close flags cleaner than the last.
The vendor names, the cost-code routing, the tolerances you approve become the rules we match against next month. So the pile of lines that need your review keeps shrinking, and the matches keep tightening — close after close, your reconciliation gets sharper.
And it stays yours. You keep the workbook every month — the matched ledger, the evidence, the decisions.
Month-to-month, stop after any month, walk out with all of it.
Get on the early-access list.
Leave your email and a couple of details about your close — we'll add you to the list and email you as we open spots. No price until we've scoped your month, no charge to find out. Want to preview how you'll review the flagged lines? See a sample close → — it's live, no waiting.
Common questions.
Our POs are a mess and our cost codes aren't clean. Can you still match?
That's the point — send it the way your team keeps it. We match what reconciles, flag what's over tolerance, and surface what has no PO at all. You never get a false "all good" on a line we couldn't actually match.
Do you connect to my Procore / Sage / Foundation?
We export a job-cost import file formatted to load straight into your system — no re-keying. You load it; we don't touch your GL and nothing posts until you do. It's a clean hand-off, not a live two-way sync.
If I send a sample, what happens to my documents?
We use them only to build your sample reconciliation, and delete them on request. We don't train on your data, and we don't share it. Send only what you're comfortable with — redact whatever you want; a sample is a few documents, not your production month. And you don't have to send anything to get on the list — the email is enough.
Am I locked into a monthly contract?
No. Month-to-month, stop after any close. You keep every reconciled workbook — the matched ledger, the evidence, the decisions — even if you walk away.
Why not just use AP automation software?
AP automation gives you the matching engine — your team uploads the documents, configures the rules, maps the vendors, and operates the software. We do the processing: we read your tickets and invoices, match them to your POs, and prepare the reconciliation with the evidence behind every line. You open the review room, approve the flagged lines, and download the workbook. You don't operate the software — you approve the result.
Is this AI?
We use AI to read the tickets and invoices and propose the matches. But you're buying a reconciliation you approve — not an AI subscription. When a line is over tolerance or has no PO, it flags it for your review. It never auto-posts to your job costing.