Construction
Build an estimating database from completed jobs
A finished job's final cost is the most accurate price a contractor has for the next similar job. At many firms, those final costs sit in closed project files that estimators rarely open at bid time.

On this page
- Where is the last job's final cost recorded?
- Cost codes change from one job to the next
- The estimator cannot find the last similar job's cost at bid time
- The firm loses cost history when an estimator leaves
- What a usable construction estimating database holds
- How to price a bid from the estimating database
- What changes when bids are priced from completed job costs
- Questions contractors ask
- Sources
An estimator has a mid-size bid due Friday and one line still blank: what concrete actually costs on a job like this one. The firm's finished jobs already contain the final costs a construction estimating database would use to answer that question. No one has collected those final costs in one place the estimator can search. The estimator opens a template, pulls a number from memory, or copies a line from a published cost guide that contains no data on this firm's subcontractors or sites.
A firm's own completed job costs price its next bid more accurately than a published cost guide. Today those final costs sit in the project management system, in accounting, and in one estimator's memory. Each job's final costs are filed under whatever cost codes were set up for that job. The firm loses the part in memory when that estimator leaves. This post follows the concrete cost through five stages of the workflow and names the stage where the estimator cannot find it. For general contractors, one connected record across project, accounting, and payroll keeps that cost history in one place the next estimator can search at bid time.
Where is the last job's final cost recorded?
Stage one is closeout, when a finished job's final cost is split across three places. None of the three was built to be an estimating database.
The project management system, Procore (Autodesk Build or other equivalent), holds one piece of it. Procore's own guide says the Commitments tool shows the status and current value of all contracts and purchase orders, and every change order that follows modifies one of those commitments. Accounting holds a second piece: the actual dollars paid against those commitments, plus everything payroll adds on top. The third piece is the job's end-to-end cost, which someone knows only at closeout, once retention releases and the last backcharges settle. CFMA's own course on construction accounting describes the path a job takes from award to closeout. After closeout, the final cost is filed as a project record and is rarely used to price the next bid. Sorted by subcontractor, the same commitments and change orders show what each subcontractor charged on past jobs. A separate post covers bid leveling based on your subcontractors' past performance, which compares new subcontractor bids with that record.
Cost codes change from one job to the next
Stage two is filing, where each job's final cost goes under the cost codes that job used. The three pieces from closeout do not match each other cleanly. A cost code for concrete on one job and a cost code for concrete on the next job rarely cover the exact same scope. Cost codes change from job to job, depending on who set them up and when. The same code changes delay the weekly job cost report by a day, as explained in Why the job cost report runs days late. Two finished jobs of the same type may not be comparable line for line.
The estimator cannot find the last similar job's cost at bid time
Stage three is the lookup, when the estimator sits down to price the new job and looks for the final cost of the last similar job. With no usable estimating database, the estimator prices the line from memory, a template, or a published cost guide.
Search engine suggestions show what people want when they look for cost data. Type "construction cost database" into a search bar and the autocomplete suggestions that come back include "free" and "excel." Search "estimating database software" and the same "free" shows up again. Both searches show someone looking for a free spreadsheet or a product to buy. No suggestion in either search mentions organizing a firm's own completed jobs.
Electrical contractors on a trade forum describe pricing work without a record of their own past jobs. On Mike Holt's forum, one contractor describes the method available to a firm with no cost records. "The only realistic way to do it is to look over past similar work, and divide the price by the area." Another says a firm has to track its own costs: "keep track of materials and time then you can build a historical data base."
Job postings for the estimator role, found while researching this post, ask a single hire to build the firm's cost history by hand. The duties listed in those postings include maintaining historical cost data, updating the estimating database, and evaluating past projects to create a cost record. Each posting gives that task to one person, on top of pricing current bids.
Across the industry, most firms do not use project data in every decision, as Autodesk and FMI found: only 12% of respondents said they always incorporate project data into decision-making. When one person has to build the estimating database by hand in spare time, the database usually does not get built.
The lookup at stage three is where the workflow fails. Through stages one and two, the final cost still exists, split across three places. At stage three the estimator needs it before Friday and has no way to find it in time. Stages four and five use memory, a template, or a published guide in place of the final cost.
The construction white paper
A field report for the presidents, owners, and COOs running general contracting and building firms. It draws on forty cited sources, including industry surveys, federal data, and published case studies of contractors already using AI.

The firm loses cost history when an estimator leaves
Stage four is the substitute, which is usually the estimator's own memory. That memory is lost when the estimator leaves the firm. The US Bureau of Labor Statistics puts median employee tenure in construction at 3.9 years, against 4.1 across all industries. The figure covers every construction occupation, so it is only a rough guide for estimators. When an estimator leaves at that median, the firm loses about four years of cost knowledge that is not in the firm's records. The next estimator cannot use that knowledge, because it was never written into the firm's records.
The next hire starts from the template, because the firm has no sorted record of past job costs to price from. No source measures how long a new estimator takes to build up a private memory of past costs. The firm prices bids without the lost knowledge until the new estimator has built that memory. The new memory is also missing from the firm's records, so the firm loses it again at the next departure.
Stage five is the bid itself, priced against a template, a memory, or a published cost guide's average. Bids priced this way can land far from what the job finally costs. KPMG's 2015 Global Construction Survey found that only 31% of all respondents' projects came within 10% of their budgets. To price closer to final cost, a firm has to change what the estimator compares the new bid against. Today, the estimator compares the new bid against a template, a memory, or a published guide.
What a usable construction estimating database holds
Repairing the workflow starts at stage three, the lookup. A usable estimating database holds the final cost of every completed job, sorted three ways at once: by project type, by size, and by cost code.
Sources that discuss historical cost data treat it as a single unsorted collection of past numbers that an estimator can search if there is time. None of them describes how to sort that data so it is usable at bid time. A concrete number from a warehouse job is not a fair comparison for a concrete number from a hospital job, even at the same size. A concrete number from a 200,000-square-foot job is not a fair comparison for one from a 20,000-square-foot job, even on the same project type. An estimator can only tell which comparison is fair when the past jobs match the new one on project type, size, and cost code.
Cost codes have to be normalized across jobs too. A line under concrete must cover the same scope on every job, whatever a project manager called it on a given job. Each entry needs its date and a note on the subcontractor market that job was bid into. The estimator uses that date and note to judge how far to trust a comparison, without applying a percentage adjustment. The set also has to be updated at every closeout, so it includes the newest jobs.
Once a few jobs of a type have closed, a firm's own history prices its bids for that type more accurately than a published cost guide. For a job type the firm has never built, the published guide is the starting range, and the firm's own record replaces it as jobs of that type close. A published guide contains no data on this firm's subcontractors, crews, or sites.
How to price a bid from the estimating database
Once the database exists, pricing a bid from a firm's own job history takes six steps.
- Pull every completed job of the same type and a similar size (set the size band up front, by square footage or contract value).
- Convert final costs to unit rates by cost code (per square foot, per cubic yard, per linear foot) so a smaller job and a larger one compare fairly. Keep self-performed cost separate from subcontract pricing, because self-performed cost depends on the firm's own crews and burden rate, and subcontract pricing depends on the subcontractor market. The self-performed labor cost includes whatever burden rate was applied at the time. The post One labor burden rate gets every job's labor cost wrong explains why that rate is often a guess.
- Compare those unit rates with the new bid's lines, code by code.
- Take the range, high to low, and look at why the high and low jobs differed: site, subcontractor, crew, season.
- Mark every line where the new job differs from the past jobs in site, subcontractor, crew, or season. Price each difference as a separate adjustment.
- Write down each adjustment and its reason, so the next estimator can see why that line differs from the past jobs.
At Cadre AI, we do the pulling and the sorting. Final costs for every completed job come from the project management system and accounting. We map each job's cost codes to one shared list, so a line covers the same scope on every job. The set is sorted by type, size, and cost code, and refreshed at every closeout. The judgment in steps 2 to 6 of the method stays with the estimator, who starts each bid from the firm's own final costs.
What changes when bids are priced from completed job costs
A bid on a familiar job type is priced from every past job of that type the firm has finished. Each closeout adds one more finished job to the set, so bids on that type become more accurate over time.
A new estimator can use the firm's cost history from the first day on the job.
Most contractors do not use AI in estimating. AGC's 2026 outlook reports that 23% of contractors use AI in estimating and 20% in design or preconstruction.
The database also depends on the project management system and accounting agreeing at closeout. What a Procore accounting integration does not check covers why that agreement has to be checked daily.
Questions contractors ask
What is historical cost data in construction estimating?
Historical cost data is the record of actual costs from completed construction projects, covering unit prices, system costs, and total project costs, as one industry glossary defines it. For an estimator, that means what concrete, electrical, or general conditions cost on past jobs, broken out by project type, size, and cost code. Each line can be compared with the same line on another job. It differs from a published unit price because it reflects the actual subcontractors, crews, and site conditions a specific firm has already worked with.
Should a contractor use a published cost database or its own job history?
A firm's own job history should carry more weight, because it reflects that firm's actual subcontractor market, crews, and sites, and a published database contains no data on any of them. A published cost database is useful early, as a starting range for a job type a firm has never closed. Once a few jobs of that type close, the firm should price that job type from its own record.
How many completed jobs does an estimating database need?
A few closed jobs of the same project type are enough to start comparing against. The range from those first jobs will be wide. The set becomes more reliable with each closeout. No source gives a specific number.
How does a new estimator use the firm's cost history?
On their first day on the job, a new estimator opens the record and starts pricing from the firm's own final costs. They pull the completed jobs closest in type and size to the one they are bidding, compare final costs by cost code, and price each difference as a separate adjustment, with the reasoning written down. Over time they add their own closed jobs to the same record, so the next estimator starts with more completed jobs to compare against.
Sources
- Commitments, user guide, Procore
- Basics of Construction Accounting, course description, CFMA
- Global Construction Survey, KPMG, 2015
- Rules of thumb for construction cost per square foot, Mike Holt's Forum
- Harnessing the Data Advantage in Construction, Autodesk and FMI, 2021
- Employee Tenure news release, US Bureau of Labor Statistics, 2026
- 2026 Construction Hiring and Business Outlook Report, AGC of America, 2026
- Historical cost data, glossary entry, ediphi




