timesheet

Construction budget template: tracking committed cost against the plan

September 30, 2026 ・ Pinateca Editorial

Most searches for a construction budget template end the same way. A spreadsheet gets downloaded, the estimate gets pasted into it, and four weeks later nobody opens it because the numbers in it stopped matching the job. The template was not the problem. What the template was asked to do was the problem: it held the plan, and the plan is the one number on a construction job that never changes.

A budget file is useful when it answers one question on any given Tuesday: given everything already signed, ordered and worked, is this job still going to land where it was priced? That question needs more than a list of line items with dollar figures. It needs committed cost, and almost no free template has a column for it.

A budget is not an estimate, and not a bid

Three documents get confused because they share most of the same numbers.

The estimate is the internal calculation of what the work should cost. It is built from takeoff quantities, crew production rates, supplier quotes and equipment rates. It is a prediction, and it is granular, often hundreds of lines.

The bid is what the client sees. It is the estimate plus overhead and profit, usually reorganised and compressed so that a client reads a page instead of a hundred rows. Bid line items are a sales structure, not a cost structure.

The budget is the estimate converted into buckets that can be reported against during construction. This conversion is the step that gets skipped. An estimate line that reads "2,400 sf of 5/8 drywall, taped level 4" is useless once the job starts, because the invoice that arrives will be one subcontract for interior finishes and will not break out by square foot. The budget needs a bucket that the incoming paperwork can actually land in.

The practical consequence: the number of budget lines should be closer to twenty or thirty than to three hundred. Every line has to have an owner, a cost code, and a source of truth for actual cost. A line nobody can report against becomes a line nobody updates, and one stale line is enough to make people distrust the whole file.

If the template being downloaded has one row per estimate item, expect to spend the first hour collapsing rows rather than filling them in.

The columns that make the file worth opening

A budget template that tracks a live job needs seven columns per line. Fewer than seven, and it can only tell what was planned and what has already been paid, which is the least useful pair of numbers on a construction project.

Column What goes in it Where it comes from
Original budget The converted estimate, frozen Estimate at contract signing
Approved changes Signed change orders only Executed change order log
Revised budget Original plus approved changes Calculated
Committed Subcontracts and purchase orders signed Contract and PO log
Actual to date Invoices received and payroll posted Accounting or timesheets
Cost to complete What is still needed to finish the line Field judgement
Forecast final Actual to date plus cost to complete Calculated

The last column is the only one anybody should be looking at in a meeting. Forecast final against revised budget is the variance that matters. Actual against budget tells nothing early in a job, because on day thirty almost every line is under budget for the simple reason that the work has not happened yet.

Two of these columns are worth being strict about. Approved changes takes signed change orders and nothing else. Verbal approvals, emails that say to go ahead and paper it later, and change orders sitting in review all belong in a separate pending column, visible but not added in. A revised budget inflated by unsigned changes is the most common way a job looks healthy right up to the final invoice.

Cost to complete is field judgement, not arithmetic. A formula that computes it from percent complete will report that a line is fine while the superintendent knows it is not. The column exists precisely so that the person who can see the work can overrule the formula.

Cost codes are the part that gets skipped

A budget line without a code cannot be reconciled with anything. When the supplier invoice arrives, somebody has to decide which line it belongs to, and if that decision is made from memory the same material will land in two different lines across two months.

A workable code structure has two parts. The first is the division or phase: sitework, concrete, framing, roofing, mechanical, electrical, interior finishes, general conditions. The second is the cost type: labor, material, equipment, subcontract, other. Framing labor and framing material are separate lines because they behave differently. Material overruns are quantity or price problems that show up at ordering. Labor overruns are production rate problems that show up in weekly hours, several weeks earlier.

Keeping labor separate is what makes a budget usable as an early warning system. If framing labor is at 70 percent of budget with 40 percent of the framing installed, that is knowable in week three. The same information is invisible in a template that has one combined framing line.

This is also where the hours have to come from somewhere reliable. Labor cost to date is crew hours multiplied by a rate, and crew hours are only trustworthy if they are recorded within a few days of the work. Hours reconstructed at month end from memory will flatter every line. A simple weekly entry per person per cost code, submitted and approved, is enough, and it is the one input a budget file cannot fake.

Contingency and allowances behave differently

Both sit in the budget as money not yet assigned to specific work, and they are not interchangeable.

Contingency is internal. It covers what was not foreseen: rework, a condition discovered in the wall, a weather week that puts a crew on standby. It belongs to the contractor, it is not disclosed line by line to the client, and the decision about how much to hold is a company policy, not a number to copy from a template. A reasonable rule is that contingency is drawn down by a formal transfer into the line that consumed it, so that the budget file always shows how much protection is left. A contingency figure that never moves all job is a sign it is not being used as a control at all.

Allowances are contractual. They are amounts written into the contract for scope the client has not yet selected: the tile, the appliance package, the light fixtures. Allowances get reconciled against actual selections, and the difference goes back to the client as a credit or a change order. They must never be netted against contingency. A job that quietly covers an allowance overrun out of contingency has given away margin and lost the paperwork trail that would have justified billing for it.

One more distinction worth keeping in the file: general conditions is neither of these. Supervision, temporary facilities, dumpsters, site power and cleanup are real, predictable costs that run on a duration, not a quantity. They are the line most sensitive to schedule slip, because two extra weeks of site time costs two extra weeks of general conditions regardless of how much work happened.

The weekly review is the whole system

A budget template is a habit with a file attached. The habit is short and it happens on the same day every week.

The sequence that works takes about thirty minutes. Post the week's labor hours by cost code. Enter any new subcontracts and purchase orders into the committed column, dated the day they were signed rather than the day the first invoice arrives. Walk the lines where committed already exceeds revised budget and decide what to do about each one. Update cost to complete on any line where the field has new information. Then look at forecast final for the job as a whole.

Two triggers are worth writing down in advance, because in the moment there is always a reason to wait. The first: any single line where forecast final exceeds revised budget by more than a threshold the company sets gets escalated the same week, not at month end. The second: any change in scope gets a pending change order opened before the work starts, even if the paperwork is not ready. The pending log is what makes it possible to bill for work later.

The reason this fails in practice is rarely discipline. It is that the hours live in one place, the commitments in another, and the schedule in a third, so the review needs three files opened and cross-checked. When the schedule, the task assignments and the recorded hours sit on the same set of cards, the review stops being an assembly job. A tool where a Gantt board, a calendar and per-person hour entry all read from the same cards removes most of the reconciliation, and the board types that cover this are worth checking before committing to a spreadsheet workflow.

Where the budget should live

The honest answer depends on the size of the operation, and spreadsheets are not the wrong answer for everyone.

Approach Works when Breaks when
Excel or Google Sheets template One or two jobs at a time, one person maintains the file Two people edit at once, or committed cost has to be reconciled with signed subcontracts
Project management tool with time entry A small team needs schedule, tasks and hours in one place Full job costing has to feed payroll and tax filing
Construction accounting software Job costing, payroll and AP must be one system The team is small and the setup cost outweighs the benefit

The failure mode of the spreadsheet is not the math. It is version drift. Once the file is emailed, there are two budgets, and the one the office is reading is not the one the field is reading. Shared cloud sheets fix the versions and not the structure, because a sheet has no concept of a signed commitment or an approved change.

The failure mode of dedicated construction accounting is setup weight. Cost codes have to be configured, vendors imported, and someone has to own the system, which is a real cost on a team of five. Pricing in this category is generally quoted per company rather than published as a flat figure, so it is worth getting a written quote before assuming it is out of reach.

For a small team, the middle option usually loses on job costing and wins on adoption, which matters more than it sounds. A budget file that gets updated weekly by an imperfect method beats a perfect system that nobody logs into. Hour entry in half hour increments per person per project, submitted weekly and approved, is enough to produce labor actuals that a budget can use, and what the plans actually cover is a short read before deciding.

What to change first

Add a committed column to the budget file being used right now, and backfill it from the signed subcontracts and purchase orders already in the drawer. That one column turns a record of the past into a warning about the future. Then pick a weekday for the thirty minute review and treat it as fixed, because a template updated on a schedule is worth more than a better template updated occasionally. If the hours behind the labor lines are the weak link, Pinateca can hold the schedule, the tasks and the weekly hour entry on the same cards.

Q1. What is the difference between a construction budget and a construction estimate?

The estimate is the detailed calculation of what the work should cost, built from quantities and production rates before the job is won. The budget is that estimate reorganised into buckets that incoming invoices and timesheets can actually be posted against during construction. An estimate might have three hundred lines, while a working budget usually has twenty to forty.

Q2. How much contingency should be in a construction budget?

There is no correct figure to copy, because it depends on the type of work, how complete the drawings are and how much of the scope is self-performed. What matters more than the percentage is that the contingency is held as its own line, drawn down by an explicit transfer into whichever line consumed it, and visible in every weekly review so the remaining protection is always known.

Q3. Why track committed cost instead of just actual cost paid?

Actual cost paid always lags the job. Early on, almost every line looks under budget simply because the work has not happened and the invoices have not arrived. Committed cost records the money already locked in by signed subcontracts and purchase orders, which means an overrun shows up on the day the contract is signed rather than two months later when the final invoice lands.

Q4. Can a free Excel or Google Sheets template handle a live job?

For one or two jobs maintained by one person, yes, provided a committed column and a cost to complete column get added. The limits show up with multiple editors and multiple jobs, where the same file ends up existing in several versions and no one is certain which one the field is reading. At that point the structure, not the spreadsheet, is what needs to change.

Back to the blog