Sharpe CPA / For Businesses / Estimating
Heavy civil estimating written by an accountant. It measures the drawing, works out what an hour of labour and an hour of iron actually cost, keeps you straight on public works, and carries the same job through change orders, progress billing and QuickBooks without anyone re-keying it.
Drawing takeoff
Nothing reaches a project until you press commit — and the measurements are kept as a takeoff session, so months later you can still see which drawing a quantity came from.
Reads the geometry itself: line work totalled per layer, closed shapes given areas, block inserts counted. Exact, because it is measuring the real coordinates rather than reading a label.
Pulls the text layer, groups it into visual lines, and scans schedules and legends for number-and-unit pairs. As good as the schedule — so it tells you to check it.
Renders the sheet so you calibrate the scale off a known dimension, then digitise by hand. Length, area and count, reporting in feet, square feet and each.
A saved table of layer or block pattern to assembly and crew, with wildcards
— so one rule catches C-CONC-SLAB and A-SLAB-4IN
alike. Each rule carries the unit, a conversion factor, crew hours per unit
and a markup, and is applied as rows arrive.
Optionally sends a picture of the sheet to a vision model and asks what it can see. Suggestions land unticked and tagged with the model's own note about where it got each one. A vision model reading a construction sheet will miss things and occasionally invent them, so nothing it returns can reach a project without you ticking it.
Rate build-ups
Not what you pay someone, and not what the machine cost. What an hour of each is worth once everything that rides along with it has been counted.
Base wage out to cost per hour, with the assumptions on the screen rather than buried in the arithmetic.
Owned or rented, and the switch disables the other block rather than hiding it, so nothing silently double counts.
The supporting-equipment share is checked across the whole fleet. Two jack hammers each set to “shared by 1” quietly bill the same compressor twice; the screen adds up every claim on that unit and says by how much it is over — or how much of it nobody is recovering.
Public works
The part of a public job that costs contractors money long after the work is done. Enter a week once, file it per project.
By authority, area, county, issue number and effective date, including the double-asterisk flag that means a predetermined increase is already published. Old determinations are never discarded — a job priced under February’s determination is reported under February’s determination, whatever has been issued since.
Reads the determination straight off dir.ca.gov. Columns are found by their heading rather than their position, and footnote columns are discarded first — otherwise the rate gets read out of the footnote. DIR’s own straight-time total is used as a checksum, and any row that does not add up to it is flagged.
Federal WH-347, California A-1-131 at 29 columns on legal landscape, and the Caltrans CEM-2501 fringe benefit statement. The eight California deductions are entered once and fold back into WH-347’s single “other” column, so net pay matches whichever form prints.
The scale check separates the two shortfalls that get treated as one: a cash wage below the basic hourly rate is flagged apart from a fringe shortfall, because only the fringe part can be made good in cash. The exposure is totalled per line, per job and per week, and the export asks before printing a payroll somebody would have to sign.
Money going out
Licence and expiry, DIR registration, workers’ compensation and auto policies, certificate of insurance, bond and penal sum. Only subcontractors are held to it — a supplier selling you pipe does not need a licence on file — and a sub who is not clear to work cannot be ordered against.
An order tracks committed against invoiced, so a vendor billing past it shows up before the check is written rather than after. Retainage is held rather than owed: out of the open balance and out of the aging until it is released. Balances are computed on load, never stored, so a payment cannot drift out of agreement with the bills it settled.
The twenty-day clock is worked out loud: serve by, and what the notice covers from. Serving late does not void it, it shortens its reach — so the page prints the arithmetic rather than asserting a date, and an overdue notice leads with OVERDUE before it lists what is still missing.
Money coming in
Thirteen categories, each deciding three things the money depends on: whether the owner pays at all, what markup the contract allows, and whether a time extension is reasonable. Rework carries no markup and is not billable; acceleration is billable but buys time rather than adding it. The check flags money on a category that cannot carry it, markup above the category rate, and value engineering that somehow adds money.
Caltrans force account prices under Standard Specifications 9-1.04 instead: the labour surcharge goes on the wage first and the markup is earned on both. Adding the two percentages together and applying them once comes out short on every hour of every force account on the job. The rental rate book is loaded by edition and earlier editions are kept, because the work is priced under the book in force the day it was done.
The first application builds its schedule of values from the estimate; every one after carries the last forward. Bill a percentage of the whole job, the ticked lines or the rows you picked — or type an amount and spread it across what is left on each line, never dragging a finished line backwards. Stored material is billed at its own figure, and retainage is held per line so the continuation sheet foots to the summary above it.
Previously billed is never stored; it is added up from the earlier applications every time one is loaded. Storing it would mean correcting application 3 leaves application 4 stating a certified figure that no longer exists — every number looking right while the form itself is wrong.
The bid package
The owner copy carries selling prices only — cost, markup and margin appear nowhere in it. The internal copy carries everything, watermarked INTERNAL — NOT FOR ISSUE on every page.
Switching to an owner copy unticks them and says how many it turned off — then drops them again at print time, so a stale tick cannot put your margin in front of a customer.
A job with no lines or no price, an unpriced line, nobody to address it to, a bid date already passed, a subcontractor with no licence on file, a prevailing wage statement on a job not flagged as public work. It blocks only where the package would be empty or the number nonsense.
QuickBooks Online
Jobs, estimates, vendors, purchase orders, bills, bill payments and progress invoices. Every push walks a plan in dependency order, so nothing is posted before the thing it points at exists, and every push is recorded — a second send updates rather than duplicates.
Read an estimate out of QuickBooks as a new job or onto one you already have, read actual cost back against the budget, and move the chart of accounts in either direction on the four digit account number.
Paychecks, gross, taxes and deductions belong to Intuit’s own payroll product and the accounting API does not expose them to third-party applications. So that tab stays hand entered, and the program says so rather than half-filling it.
Practicalities
C# and WPF on .NET 8, against MariaDB. The schema checks and builds itself when you sign in — it creates missing tables, adds missing columns, and prints exactly what it found against what it built.
Workbook exports carry real Excel formulas rather than baked numbers, so whoever receives one can trace a total back to the quantity that drove it and change a rate to test it.
Reads an update from a spreadsheet, CSV, text, PDF or Word file, matches it to your materials, and warns when a price moves by half or more — usually a units mismatch rather than a real move. Estimates re-price themselves; a posted budget is a snapshot and is re-posted only for the jobs you tick.
Want to see it on your own drawings and your own rates? Call the office on (530) 592-5046 and we will put a job through it together.