Receipts in the truck. Hours on a notepad. The bid buried in an email somewhere. Send me the pile, however rough it is — you don’t sort it, you don’t format it, and you don’t type anything in. That’s the part I take.
However it sits. The estimate, the supply-house invoices or statements, the sub invoices, the time cards or payroll, the card statement. A QuickBooks export, the PDFs out of your email, or photos of paper. No format, no login, nothing to fill in.
Every line comes back entered and coded, in a spreadsheet that’s yours to keep. You don’t type anything in, and if a number looks wrong you tell me and I fix it.
One page per job, estimated against actual, by cost code. I tell you the day it’s coming back, and both come back that day.
Most jobs have a line like this one. Not finding it is what costs you — because if nobody adds it up after the job closes, the same line goes into the next bid.
| Code | Cost code | Budget | Spent | Open POs | Projected | Variance | % of budget |
|---|---|---|---|---|---|---|---|
| 01-100 | General Conditions | $10,500.00 | $12,500.00 | $0.00 | $12,500.00 | −$2,000.00 | 119% |
| 02-400 | Site Cleanup and Disposal | $11,567.23 | $11,567.23 | $0.00 | $11,567.23 | $0.00 | 100% |
| 03-300 | Cast-In-Place Concrete | $43,302.20 | $56,224.20 | $0.00 | $56,224.20 | −$12,922.00 | 130% |
| 31-200 | Earthwork | $13,172.20 | $15,112.88 | $0.00 | $15,112.88 | −$1,940.68 | 115% |
| 32-100 | Site Paving | $19,795.34 | $22,595.34 | $0.00 | $22,595.34 | −$2,800.00 | 114% |
| 32-300 | Fencing | $8,736.00 | $16,016.00 | $0.00 | $16,016.00 | −$7,280.00 | 183% |
| 32-900 | Landscaping | $5,043.00 | $5,043.00 | $0.00 | $5,043.00 | $0.00 | 100% |
| Total | $112,115.97 | $139,058.65 | $0.00 | $139,058.65 | −$26,942.68 | 124% |
This is a real job. A city’s 2024 sport-court and sidewalk replacement, taken from the public record: the bid on each line against what it finished at, including a $2,000 penalty for finishing four days late. The city, the contractor and the project number are removed. The numbers are not changed. Download the page (PDF) — it is the same file that comes back to you.
One closed job, done properly. Your numbers typed up clean, plus the job page. If it isn’t useful you say so and that’s the end of it.
Eight closed jobs or more. A page each, plus the one thing you get wrong every time. If I can’t show you a cost code you’re missing on every job, you don’t pay for it.
Every job as it closes goes into your Bid Punch List, so the pattern stays current and you can see whether last month’s flags actually moved. Billed by invoice, not a subscription.
Paid work is a Stripe invoice — bank transfer or card. Nothing is stored, nothing recurs, and there’s nothing to cancel. You pay after the work is in your hands.
These are real jobs, and the paperwork is public — anyone can pull it. Nobody hired us. Nobody asked us to do this. We have never met these people. We took their paper as it sat and ran it the same way we would run yours. The contractor names are off. The numbers are untouched.
| Code | Cost code | Approved | Paperwork |
|---|---|---|---|
| 01-100 | General Conditions | $3,600.00 | — |
| 06-100 | Rough Carpentry | — | $343.03 |
| 22-100 | Plumbing | $4,029.99 | $10,967.56 |
| 23-100 | HVAC | $2,933.70 | — |
| 31-200 | Earthwork | $13,950.00 | $21,603.49 |
| — | Total | $24,513.69 | $32,914.08 |
A closed job is easy to be right about. So here is a job that is still being built, and our call on it in writing, before anybody knows the answer.
| Approved | What it was | Amount |
|---|---|---|
| 7 July 2026 | Pay application 1 | $186,197.15 |
| 4 August 2026 | Pay application 2 | $37,140.63 |
| 1 September 2026 | Pay application 3 | $136,677.30 |
| — | Paid so far — 39.6% of the contract | $360,015.08 |
Every number on this page came off public documents. Nothing here is made up, and nothing here is a customer of ours. We are not saying anybody did anything wrong — we are showing you what the paper says when somebody types it up. Send one closed job and we will do the same with yours. The first one is free.
Call, or write and tell me roughly what you’ve got. If I don’t pick up, leave your name and what it’s about so I know who I’m calling back — and I will.