Cost vs estimate, by category
Actual cost against the budget it was sold on, split into labour, material, subcontract, equipment and overhead — so the variance has a cause, not just a number.
Twelve views across one intelligence layer, grouped the way a contractor asks the question — is this job going wrong, what is it doing to my cash, and can I trust the numbers. Every document matched to the ledger, and every table out to Excel or Power BI.
The four views that tell you a job is going wrong while there is still time to do something about it.
Actual cost against the budget it was sold on, split into labour, material, subcontract, equipment and overhead — so the variance has a cause, not just a number.
EAC, variance at completion and months-to-budget-exhaustion from each job's own burn rate, refreshed as transactions post rather than at month-end — sharpened by frontier models trained on proprietary data.
Jobs ranked by exposure and by how far cost is ahead of schedule, with the driver named — the five you would ring this week, not the fifty in the ledger.
Subcontracts awarded but not yet costed, and change-order work performed without an approval — the two ways a job's cost is worse than its ledger says.
What is owed, what is unbilled, and what the hours are really costing — the four views a controller opens every morning.
Projected overruns, work done but not billed, receivables past 60 days and the overtime premium — summed, broken down, and never guessed at when a table is missing.
Over- and under-billing per job, retention held, and how much of the portfolio you are financing rather than the owner.
Aged receivables and payables by customer, vendor and job, with collection risk and the invoices most likely to pass 90 days.
Hours and loaded cost by job, month, employee and pay type — because on most jobs the overrun starts as hours, not as invoices.
The views that keep the other nine honest: what is misfiled, what is missing, and how to get it out.
Duplicate invoice numbers, unnumbered bills, round-number bunching, cost on closed jobs, unallocated cost and pay-rate outliers — each with the money it implicates and the rows to check.
Unallocated cost, closed-job postings and missing fields in the source data — found before they distort every number above.
Headcount and hours per job against the plan, with non-productive time and double-time hotspots surfaced before they are another month of payroll.
Any table as CSV or Excel across every company at once, and every module as a JSON endpoint — so Power BI, Excel or a script reads the same numbers the dashboard does.
Agents
Pay apps, RFIs, contract replies and cost-to-complete updates — built from your own ledger, documents and schedule, then held as a draft until someone on your team approves it.
Send the owner Pay App 7 with all the backup, and chase the CO-12 signature while you’re at it.
Working · reading the ledger, documents and schedule
Hi Dana,
Attached is Pay Application No. 7 for Riverside Apartments for the period ending September 30. The G702/G703, the updated change-order log and conditional lien waivers from the six subs billing this period are all in the package.
| Work completed this period | $412,860.00 |
| Less retainage (10%) | ($41,286.00) |
| Current payment due | $371,574.00 |
| Billed to date / contract sum | $1,307,500 / $4,000,000 |
One open item: CO-12 ($38,400 – level 2 corridor framing per ASI-009) was agreed on site on 9/12 and the work is in place, but we don’t have a signed copy yet. If you can sign and return it by Friday 10/9 we’ll carry it on Pay App 8; otherwise it rolls to November.
Alex is on site Thursday if the lender’s inspector wants to walk the corridor work before you approve.
Thanks,
Jamie Rivera
Project Accountant | Sample Contracting Co.
o (555) 014-2286 · jrivera@samplecontracting.com
From: Dana Whitfield <dwhitfield@riversidehp.com>
Sent: Thursday, September 3, 2026 4:18 PM
Subject: RE: Riverside Apartments (J-1104) – Pay Application No. 6
Thanks Jamie – Pay App 6 is approved and going to the lender this week. Please keep sending the waivers with each application.
Saved to your Outlook Drafts by the agent · reply on Dana’s thread, tone matched · nothing sends until you press Send
Checks before handing over4 of 4 passed
READSage 300 CREPay App 7 and job cost, J-1104 · read-onlyREADSharePoint/Riverside/Billing · 6 waiver PDFsREADOutlookthread “Pay Application No. 6”WROTEOutlook Drafts1 reply · 4 attachmentsSENT—nothing · waiting for youBergqvist says the curtain-wall anchors don’t match the drawings. Get an RFI to the architect today.
Working · reading the ledger, documents and schedule
Question. ASI-014 revises the level 2–3 curtain-wall anchors; sheet A-102 rev C still shows the original detail. Please confirm which detail governs, and whether the embed plate in the curtain-wall scope changes.
Impact. Fabrication is on hold pending your answer: 9 days of schedule exposure on the critical path. A response by 10/15 holds the release date.
3 attachments · pulled and built by the agent
Checks before handing over4 of 4 passed
READOutlookBergqvist Facades email and markupREADProcoreA-102 rev C, ASI-014, RFI log · read-onlyREADPrimavera P6curtain-wall fabrication and install activitiesWROTEOutlook Draftscover email with RFI 43 attachedSENT—nothing · RFI log updated only when you approveThe owner sent a backcharge notice for the late level 1 slab. Draft our reply under the contract.
Working · reading the ledger, documents and schedule
Dana,
We acknowledge your notice of 9/29 and dispute the $27,500 backcharge. The six-day delay to the level 1 slab is excusable under §8.3.1: six rain days between 18 and 29 August exceeded the five-year average for the month §15.1.6.2, and the slab-edge embeds could not be placed until RFI 31 was answered, 11 days after the requested date.
This letter is our notice of claim for a six-day extension under §15.1.3. We reserve all rights under the contract. The delay timeline, weather record and RFI history are attached.
4 attachments · pulled and built by the agent
Checks before handing over3 of 4 passed · 1 for review
READOutlookowner’s backcharge notice of 9/29READSharePointprime contract, §8 and §15 · read-onlyREADProcoredaily logs 18–29 Aug, RFI 31 historyWROTEOutlook Draftsreply letter · 4 attachmentsSENT—nothing · waiting for youPull this week’s costs into our cost-to-complete sheet for Riverside, add the open commitments, and flag anything going over.
Working · reading the ledger, documents and schedule
SourceClick any cell to see where its number came from
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 2 | Code | Description | Budget | Cost to date | Committed | To complete | Forecast | Variance |
| 3 | 01-310 | General conditions | 386,000 | 198,200 | 188,400 | 386,000 | 0 | |
| 4 | 03-300 | Concrete | 412,000 | 391,000 | 0 | 412,000 | 0 | |
| 5 | 05-120 | Structural steel | 298,000 | 226,500 | 0 | 298,000 | 0 | |
| 6 | 06-100 | Rough carpentry | 344,000 | 131,800 | 74,600 | 344,000 | 0 | |
| 7 | 07-500 | Roofing | 126,000 | 6,000 | 126,000 | 0 | ||
| 8 | 08-500 | Windows | 188,000 | 0 | 188,000 | 0 | ||
| 9 | 09-250 | Drywall | 352,000 | 12,400 | 71,500 | 352,000 | 0 | |
| 10 | 26-000 | Electrical | 418,000 | 71,900 | 0 | 418,000 | 0 | |
| 11 | Total | 2,524,000 | 1,031,800 | 340,500 | 2,524,000 | 0 |
Checks before handing over4 of 4 passed
READSage 300 CREjob cost through 10/9 · read-onlyREADSharePointCTC_J-1104_Riverside.xlsx v14READSage 300 CRE14 subcontracts and POs · read-onlyWROTESharePointCTC_J-1104_Riverside.xlsx as v15 · new versionCHANGED—nothing in Sage, Procore or payrollSample job with demo data. Approving here sends nothing.
The rules every job above follows.
Read-only logins, SELECT-only queries. It cannot post, pay or approve.
Emails land in Drafts, files as a new version beside the old one.
Totals re-foot and tie to the ledger. A failed check is shown, never hidden.
Every system read and draft written is listed with the job.
Your region in writing, or self-hosted. Never trains another customer’s model.
A red-team set of T-SQL write and escape attempts — stacked statements, comment and string tricks, backups, waits, impersonation, linked servers — against the check every query passes. 19 real report queries still run.
A read-only database login, and a SELECT-only check on every query: reports, the API, the demo and the agents’ own data tool.
Tested through every path: a draft never sends on its own, a PM’s key can draft but not send, and every amount in an email must be one the answer showed.
Tested, not promised: these run in CI on every build. Our first red-team run found gaps — one comment trick hid a DELETE — so we rebuilt the check before publishing the number.
SOC 2 in progressPer-customer data separationNo third-party trackers on these pagesHow security works →
To the owner, a sub or the PM — figures and attachments already in it.
One numbered question, the drawings attached, due date set from the schedule.
A new WIP schedule, or your team’s own sheet updated in place as a new version.
G702, G703, change-order log and lien waivers, every figure tied to the ledger.
“Every Monday at 7, send me what moved” — tested on this week’s data first.
Hold a payment billing ahead of progress — with the reason and the figure.
Point it at your SharePoint and Dropbox job folders. Every estimate, change order, pay application and invoice is found, read, filed to the right job — and each figure on it is checked against the ledger, so a variance surfaces the day the document lands.
Illustrative example with sample figures. In a deployment the folders are yours and the right-hand column is your ERP, read-only.
Every table behind these views is a JSON endpoint, and any table can be exported as CSV or Excel — filtered, or in full across every company at once. Power BI, Excel and your own scripts read the same numbers the dashboard does, which is also how an accountant checks them.
Ask it the way you would ask your controller. Each of these is a live view in the dashboard rather than a report someone assembles — and each names the module it lives in, so you can check the claim against the product.
You ask“Which jobs are over budget, and on what?”
Three jobs are forecast over budget. The worst is J-1104 Riverside: labor is +$212K (14%) against estimate, and the finishes crew is most of it.
Ask nextWhy is Riverside labor over?
The gap between what a job was estimated to cost and what it has cost so far, split by cost category.
CostOpens Costs & estimates
You ask“Are we over-billed anywhere this month?”
Three jobs are billed ahead of cost, $418K in total. Most of it is one job billed to a schedule of values that is running ahead of the work.
Ask nextWhich jobs are under-billed?
How much you have billed against how much cost you have put in place, job by job — the number that decides whether revenue this month is real.
CashOpens Predictions → WIP aging
You ask“Where does this job finish if nothing changes?”
At the current rate it finishes at $4.19M against a $3.52M budget. CPI is 0.84, so it is paying $1.19 for every $1.00 of work earned.
Ask nextWhat if labor improves 10%?
Earned-value cost and schedule performance, plus EAC, VAC and TCPI per job, with burn-rate projections for months-to-budget-exhaustion.
CostOpens Predictions → EVM
You ask“What does a foreman actually cost us an hour?”
$48.20 of pay is $71.90 once it is loaded — 49% on top. That is the rate your estimates should be carrying, not the pay rate.
Ask nextWhich crews run the hottest rate?
The difference between a worker's pay rate and what they actually cost the company, including fringe and burden, by job and by employee.
LaborOpens Labor & payroll
You ask“Who is burning overtime, and on which job?”
Crew 4 on J-1112 is at 31% overtime and $38K of premium this month. No other crew on any job is above 12%.
Ask nextWhat does that do to the loaded rate?
Which jobs are running on overtime, where double-time hotspots are forming, and what that is doing to the loaded rate.
LaborOpens Manpower
You ask“Who owes us money past 60 days?”
$2.26M is past 60 days across 9 customers. The largest single balance is one GC at $610K, all of it on one job.
Ask nextWhich invoices go past 90 next?
Open receivables by bucket, by customer and by job, with the retention you are owed and the invoices most likely to go past 90 days.
CashOpens AR / AP
You ask“Did we pay any invoice twice?”
Two payments look like duplicates, $14,860 together: same vendor, same amount, and invoice numbers one character apart.
Ask nextAny other payments worth checking?
What you owe, how old it is, and which vendor payments look unusual — duplicate invoice numbers, round-number clustering and Benford's Law deviation.
ControlsOpens Financial audit
You ask“What have we committed that has not hit cost yet?”
$1.3M is awarded but not yet costed, across 9 subcontracts. It is real exposure that will not appear in job cost until the first invoice.
Ask nextWho is billing ahead of progress?
Subcontracts awarded but not yet costed, so the commitment is visible before it lands in job cost.
CostOpens Costs & estimates → Subcontracts
You ask“What work is going in without a signed change order?”
Six change orders are pending, and $287K of that work is already in place — the cost is in the job while the revenue is not.
Ask nextWhich one has waited longest?
Change orders with work performed but no approval, and the cost already sitting in the job.
CostOpens Executive → Change orders
You ask“What did our companies bill each other this quarter?”
$942K of intercompany billing this quarter, with 2 mismatches where one company posted and the other has not.
Ask nextShow the unmatched entries
When one of your companies bills another, and how that looks across every company database on the server — with your own vendor record kept out of vendor rankings.
CashOpens Multi-company
You ask“How much signed work is still ahead of us?”
$31.4M of contracted work is still to perform — about 14 months at the rate you are currently burning it.
Ask nextHow much of it is at risk?
Contracted work not yet performed, and where this period's revenue is coming from.
CashOpens Executive → Backlog
You ask“Is anything posted to closed or unallocated jobs?”
37 cost lines worth $52K are sitting on 3 closed jobs, and they are quietly distorting every margin above them.
Ask nextWho posted them?
Unallocated cost, costs on closed jobs, and missing fields in the source data — found before they distort every other view.
ControlsOpens Data health auditor
Example answers use illustrative figures. In the dashboard every one is read live from your own databases, with the rows behind it one click away.
The forecast on one sample job: the cost as it posts, and the week the overrun is called.
How the forecast works IntegrationsERP, project management, scheduling, payroll and field — with every connector's status published.
See the integrations PricingAnnual, never per seat. Work out what chasing the numbers costs you now.
Pricing & payback RoadmapThe next six modules, sequenced by what founding customers asked for.
See the roadmap SecurityWhere your data lives, what we test, and how to get the report or the DPA.
Security & trust Open sourceReference data, prompts, agent skills, MCP servers and five lite models — free to use.
See what is open Benchmark48 task families across 14 domains, graded field by field. Results coming soon.
See the benchmark AboutWho we are, what we are building, and how we work: read-only, arithmetic shown, open where it helps.
About usHosted for you or self-hosted, read-only, every user included. Connected and reconciled against your own reports in a single 90-minute session.