Methodology

How Donnie prices, and how accurate it is

What goes into every estimate, which price edition is live right now, and where accuracy validation stands. We only publish an error rate once it has been measured against real bids; the live status is below.

1 · Catalog pricing

The AI reads the job. The math prices it.

Donnie’s AI turns your description, plan, or photos into scope: quantities and line items. The dollar figures come from a separate pricing step: quantity × unit cost from a dated price catalog, adjusted for regional labor and your markup. On an estimate, the language model never sets a price.

The same inputs always produce the same estimate. Each estimate carries a fingerprint and the formula version that produced it, so a number can be re-derived later. When the formula changes, the version changes with it.

2 · Labeled, dated prices

Every line says where its price came from

The default catalog is a national-average seed: material, labor and equipment components with a source label and a vintage month on every row. Trade labor uses BLS wage data, adjusted by metro. A supplier price (a retail scrape, or your own account sheet) overrides the seed line by line, and items with no unit takeoff are carried as clearly labeled ROM allowances. Every estimate itemizes the source of each line.

Prices can be escalated with the BLS Producer Price Index. Each row escalates from its own vintage month, never below its dated price, and the factor is capped so a short-term spike can’t run away into a bid. The card below shows whether escalation is actually running in this deployment right now.

Live pricing edition

Loading the live edition…

3 · Classes, not false precision

A range sized to what we actually know

An estimate built from a few sentences isn’t as certain as one built from a measured takeoff, so Donnie doesn’t pretend it is. Each estimate gets a class and a low/high range based on how itemized it is, whether it has a project location, how much of its cost comes from real pricing, and how the quantities were established. The tightest class requires a measured or user-verified takeoff. The class table above is generated by the same code that classifies every estimate.

4 · What we’ll publish once validated

A reproducible accuracy report, not a testimonial

Validation means pricing real, awarded jobs through the same engine and comparing the result to what the work actually bid or cost. Once real reference bids are loaded, this page will show:

  • how many real jobs were scored;
  • the mean absolute percentage error (MAPE) across them, along with the full error distribution;
  • error by CSI division, so a weak trade can’t hide behind a good average;
  • how often the real number landed inside the stated class range.

Until then, the status above reads “not yet validated.” A continuous-integration gate already waits for real bids: once they’re loaded, a build whose error drifts past the target fails. You can score Donnie against your own past jobs today with the accuracy scorecard in the app (it only uses your upload). See plans.