Cost database

A price library with a version history

Rates change. Bills do not — not once they are issued, and not when someone reopens them in eighteen months to settle a final account. Quantifiable keeps a maintained library underneath your firm's own rates, and pins every project to the release it was priced on.

The problem

A rate without a date is not evidence

A spreadsheet of rates tells you what something costs. It does not tell you when that was true, who changed it, or what the number was before. When a final account turns on a rate applied nineteen months ago, that difference stops being academic.

  • Rates get overwritten

    Someone updates a material rate in March. Every estimate that referenced it now reprices to the new figure, including the one issued in February that a client is holding you to.

  • Overrides lose their baseline

    A firm adjusts a rate to reflect its own buying. Six months later nobody can say what the original was, or whether the adjustment still makes sense.

  • Build-ups go stale silently

    A gang rate is typed as a single figure. The bricklayer's rate rises; the gang rate does not, because nothing connects them.

  • Nothing survives an audit

    Asked to justify a rate, the honest answer is that it came from a spreadsheet that has since been edited, by someone who has since left.

Versioning

Every project is pinned to a release

The maintained library is published as dated releases. A project pins the release it was priced against at the moment it first prices anything, and holds it. Reopen that project in two years and the rates resolve exactly as they did on the day — not as they are today.

  • Releases, not edits

    Changing a rate does not overwrite the old one. It closes the previous row's version window and opens a successor in a new release. Both remain readable forever.

  • Stable identity across releases

    Every entry keeps one logical identity as its rate moves through releases, so an estimate line still resolves after four rounds of updates.

  • Time travel is the default

    Rate resolution filters to the release the project pinned. Getting yesterday's number is the normal path, not a recovery procedure.

  • Issued work is snapshotted

    Issuing a bill records the rates as they stood. Reports read the snapshot, so an issued document cannot silently change underneath a client.

Inheritance

Four levels, resolved in order

Your firm does not have to accept a maintained rate, and does not have to abandon the library to reject one. Every rate resolves down a chain, and the most specific level that has an answer wins.

The line
An estimator overrides a single rate on a single bill line, without touching anything else.
The project
A rate is set for one job — a negotiated supply, a difficult access, a client's nominated subcontractor — and applies across that project only.
Your firm
Your own rate replaces the maintained one everywhere. The maintained figure stays visible alongside it, so you can always see what you moved away from and by how much.
The maintained library
The published baseline, underneath everything, at the release the project pinned.

Live build-ups

Rates that recalculate, not rates that are typed

A price book stores a number. This stores the reasoning that produces the number, which means changing one input moves everything downstream of it.

  • Gangs price from their members

    A gang is a composition, not a figure. Its rate is derived from the trades in it whenever it is read, so raising a groundworker's rate reprices every gang containing one — including the gangs your firm has overridden.

  • Labour carries output

    Trades hold productivity norms as hours per unit, so labour cost follows from the quantity and the output rather than from an estimator's memory of the last job.

  • Regional factors apply on read

    Location adjustment is a multiplier resolved at the moment of pricing, not baked into a stored rate. It applies to the unit rate only — never to a delivery or collection charge, which does not vary by region.

  • Materials carry their specification

    Entries hold purchase units and specification facts, so a measurement in square metres can resolve against a material sold by the sheet.

Maintenance

Updates arrive as reviewable releases

When the maintained library is refreshed from a connected supplier feed, the change is not applied quietly. It is published as a release, recorded against each affected entry, and can be rolled back.

  • Every change is attributable

    Each entry records where its rate came from and which release introduced it. An automated update is distinguishable from a curated one at a glance.

  • Automation cannot invent entries

    A supplier feed may only update rates on entries that already exist. Anything it cannot match goes to a review queue instead of creating something nobody specified.

  • Rollback is a first-class operation

    An automated release can be reversed, restoring the previous rates and leaving both the change and the reversal on the record.

  • Your overrides are untouched

    A library release moves the baseline underneath your firm's rates. Anything you have overridden stays exactly as you set it.

Your library

You are never locked to the baseline

The maintained library is a starting point and a fallback, not a constraint. Firms with their own buying power usually end up overriding a great deal of it, and the system is built expecting that.

  • Bring your own rates

    Import your existing library from a spreadsheet, or build it up as you price. Your entries sit alongside the maintained ones and take precedence over them.

  • Hide what does not apply

    Work sections your firm never touches can be hidden from the library view without deleting anything or affecting other users.

  • Annotate privately

    Attach your own notes to a maintained entry — a preferred supplier, a caveat, a reason the rate is optimistic — visible to your firm and nobody else.

  • Bookmark a set

    Freeze a combination of your rates as a named version and price a project against it, so a tender and its subsequent variations share one basis.

Arithmetic

Decimal all the way down

Every rate, quantity and total is stored and calculated as a decimal, never as a floating-point number. Rates hold four decimal places and quantities six. Nothing in the pricing path can introduce the rounding drift that makes a bill fail to reconcile by a few pence and costs an afternoon to find.

Price on rates you can stand behind

Start with the maintained library, override what your buying beats, and keep the version history for the day someone asks where a number came from.