SHARPECPA

Sharpe CPA  /  For Businesses  /  Estimating

From the drawing to the bid, and on to the last billing.

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

Three ways in, one review grid out.

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.

DXF

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.

Vector PDF

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.

Scanned sheet or image

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.

Mapping rules

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.

The AI pass, off by default

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

What an hour actually costs.

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.

Labour

Base wage out to cost per hour, with the assumptions on the screen rather than buried in the arithmetic.

  • Overtime premium on the share of hours that earn it
  • Cash in lieu of fringes, taxable, so it sits with the wage
  • Social Security to the annual wage base; Medicare uncapped
  • FUTA and SUTA, each to its own base
  • Workers' compensation per $100 × experience mod, straight time only
  • General liability, other loads, and the fringe package

Equipment

Owned or rented, and the switch disables the other block rather than hiding it, so nothing silently double counts.

  • Straight-line depreciation to salvage — the cost of using the machine, not the tax deduction
  • Cost of capital on the average investment over the life, the AGC convention
  • Rental divided by the working hours in the period, not the hours it contains
  • Fuel, lube, grease and service; insurance, storage and moves spread over hours per year
  • Supporting equipment carried as a share of the other machine's rate

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

Prevailing wage and certified payroll.

The part of a public job that costs contractors money long after the work is done. Enter a week once, file it per project.

Determinations, kept

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.

Fetch from DIR

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.

Three forms

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

Purchase orders, bills, subcontracts.

Vendors and compliance

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.

Orders and bills

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 preliminary notice

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

Change orders and progress billing.

The category is pricing, not bookkeeping

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.

Applications that foot

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

One PDF, and it knows who it is for.

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.

What goes in it

  • Bid cover sheet and cover letter
  • Bid schedule and unit price schedule
  • Clarifications and exclusions
  • Subcontractor listing with licence and DIR
  • Prevailing wage statement
  • Signature and bid bond block

The internal sections

  • Cost breakdown, line by line
  • Job overhead and the allocation
  • Posted budget by GL account
  • The bid checklist

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.

Check it first

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

Both directions, and it says what it will do first.

Out

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.

Back

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.

What it will not pretend

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

What it runs on.

Platform

Windows desktop, your own database

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.

Subscription
Getting data out

Excel with live formulas, PDF, CSV

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.

Subscription
Price maintenance

Supplier price updates

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.

Subscription

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.