What is a schedule of values?
A schedule of values (SOV) divides the total contract sum into line items — usually by CSI division or work phase — with a dollar value assigned to each, summing exactly to the contract amount. Approved at project start, it becomes the basis for progress billing: each month the contractor bills a percentage of each line, and those lines flow directly onto the G703-style continuation sheet of the pay application.
What goes in one
A light-commercial SOV typically runs 10–40 lines: general conditions and mobilization, then the work itself broken down by division — concrete, masonry, metals, carpentry, thermal and moisture protection, openings, finishes, MEP trades, sitework. Three structural choices matter: give allowances their own lines, split labor from major material where your contract holds different retainage on stored materials, and add each approved change order as a new line rather than inflating an old one.
The one unbreakable rule
The SOV must sum exactly to the contract sum — not approximately, exactly. The schedule is the agreed map of where every contract dollar lives; if lines total more or less, percent-complete math breaks and the reviewer rejects it. The rule holds every month afterward too: when a change order raises the contract sum, the SOV grows by exactly that amount.
Granularity: observable but billable
Too coarse (“Interior finishes — $400,000”) and the architect can’t verify percent complete, so they discount your numbers. Too fine (every door hardware set its own line) and month-end takes a day. The test: could a reviewer walking the site plausibly agree each line is as complete as you claim? If yes, it’s observable; if it also takes under an hour to update, it’s billable.
Build one in minutes
The free schedule of values builder loads CSI division presets, validates the total against your contract value to the cent, exports to Excel, and hands off directly into the pay application generator. In BuiltSum, you skip even that step — the estimate you won the job with becomes the SOV automatically.