Loading...
Loading...

ScopeSpec 0.1 — the normative field reference

Status: draft · First published 2026-09-10 · Last updated 2026-09-10 · Editor Ben Davis, ben.davis@bidbro.com · Licensed CC BY 4.0

In short

ScopeSpec is an open, versioned field list for a comparable residential project brief. It defines what a homeowner must state about a job, and what a contractor's quote must return, so that two quotes for the same project can be compared line for line instead of by headline price alone.

This version defines 40 fields across 9 groups, of which 31 are required, plus 15 fields a conforming quote returns, 10 enumerations, 6 trade profiles and 6 conformance rules. Every one of them is rendered below from the same file that generates the JSON Schema, so this page and the schema cannot disagree.

Status meaning. Published for public review and implementation. Field names and enumerations may change in 0.2; every 0.1 URL and artifact stays permanently available.

Conformance rules

#RuleWhy
C1A conforming brief includes every field marked required in the core groups, and every field marked required by its declared trade profile.A brief that omits a required field is not a ScopeSpec brief. It may still be a useful brief — the standard makes no claim about briefs outside it.
C2Every quantity carries a unit and a measurementMethod.A number without a stated unit and without how it was arrived at is the single most common cause of two quotes not being comparable. 'Roughly 1,800 square feet, paced off' and '1,812 square feet, from the plat' are both acceptable; a bare '1800' is not.
C3Anything not stated as included is excluded, and the brief must say so explicitly in scope.exclusions.The default direction matters. A brief silent on debris haul-away is read by one bidder as included and another as extra; the standard forces the question to be answered once, by the person writing the brief.
C4An allowance is a stated budget for an undecided selection, and must carry an amount, a currency and what it covers.An allowance without an amount is not an allowance, it is an unpriced hope. Bidders must be able to add identical allowances to identical base prices.
C5A conforming quote states its priceBasis and repeats the brief's assumptions it accepts, listing separately any it restates.This is what makes comparison possible at all. Two fixed prices against different assumption sets are two different jobs, and the restated assumptions are where that difference becomes visible.
C6A brief carries no street address, no homeowner name, no telephone number and no email address.Location is stated to postal-code granularity. A brief is a document that gets forwarded, so it is defined from the start to be safe to forward. Contact routing belongs to whatever platform carries the brief, not to the brief.

The brief — 9 field groups

specDocument identity

Says which version of the standard a reader is holding, so a brief written today is still interpretable when 0.2 exists.

FieldTypeRequiredDefinition and example
specVersionstringrequiredThe ScopeSpec version this brief conforms to. `0.1` for this version.
Example: 0.1
briefIdstringrequiredAn identifier unique within whoever issued the brief. Opaque; carries no personal information.
Example: bb-2026-000412
createddate (YYYY-MM-DD)requiredISO 8601 date the brief was first issued.
Example: 2026-09-10
revisionintegerrequiredIncrements every time the brief changes after it has been sent to anyone. Bidders quote a revision, not a brief.
Example: 1
localestringoptionalBCP 47 language tag for the prose fields.
Example: en-US

projectThe project

What is being asked for, in the words of the person asking, plus the timing constraints that change a price.

FieldTypeRequiredDefinition and example
tradeProfileone of: roofing-replacement, bathroom-remodel, kitchen-remodel, hvac-replacement, exterior-painting, otherrequiredThe trade profile whose additional required fields apply. `other` is valid and imposes no extra fields.
Example: roofing-replacement
summarystringrequiredOne to three sentences describing the work in plain language. Not a specification — the fields below are the specification.
Example: Replace the asphalt shingle roof on a two-storey house, including new underlayment and all flashing.
motivationstringoptionalWhy the work is being done. Changes what a good contractor proposes: an active leak and a planned sale lead to different recommendations.
Example: Active leak over the back bedroom after the August storm.
desiredStartdate (YYYY-MM-DD)optionalEarliest acceptable start date, if there is one.
Example: 2026-10-01
schedulingFlexibilityone of: urgent, firm-date, flexible, seasonalrequiredHow much the start date can move. A hard deadline is a price input and must not be discovered at contract stage.
Example: flexible
budgetStatedbooleanrequiredWhether the brief states a budget at all. Stating `false` is a legitimate and common answer.
Example: false

propertyThe property

The physical facts that change the work, at a granularity that cannot identify the household.

FieldTypeRequiredDefinition and example
propertyTypeone of: single-family-detached, townhouse, condominium, duplex, manufactured, otherrequiredThe kind of dwelling.
Example: single-family-detached
postalCodestringrequiredPostal code only. Never a street address — see conformance rule C6.
Example: 23451
localitystringrequiredCity or town name.
Example: Virginia Beach
regionstringrequiredState or province code.
Example: VA
yearBuiltintegeroptionalYear of original construction, if known. Drives code, material and hazard assumptions.
Example: 1972
storiesintegeroptionalNumber of storeys above grade. An access and labour input on every exterior trade.
Example: 2
occupiedDuringWorkbooleanrequiredWhether the household will be living in the property while the work runs. Changes sequencing, dust control and working hours.
Example: true
petsOnSitebooleanoptionalWhether animals will be present. A gate-and-containment question, not a courtesy field.
Example: true

scopeScope — inclusions, exclusions, allowances

The heart of the standard. Comparability fails here more often than anywhere else, and it fails silently.

FieldTypeRequiredDefinition and example
inclusionslist of textrequiredEvery item of work the homeowner intends to be part of the price. One item per entry, written as a deliverable rather than a task.
Example: ["Tear off existing shingles to deck", "Replace all step and valley flashing"]
exclusionslist of textrequiredWork explicitly NOT in the price. Required even when empty, because an empty exclusions list is itself a statement — see conformance rule C3.
Example: ["Gutter replacement", "Interior ceiling repair"]
allowanceslist of allowancerequiredBudgets for selections not yet made. Required even when empty.
Example: [{"item": "Shingle upgrade to architectural", "amount": 1200, "currency": "USD", "covers": "material only"}]
siteConditionslist of textrequiredKnown conditions a bidder would otherwise discover on site: soft decking, prior repairs, drainage, slope, known asbestos or lead, tight side yards.
Example: ["Two areas of soft decking noted over the garage"]
accessConstraintslist of textrequiredAnything limiting how crews, materials or a dumpster reach the work. Required even when empty.
Example: ["No driveway dumpster — HOA prohibits street placement"]
debrisHandlingone of: homeowner, contractor, shared, undecidedrequiredWho removes and disposes of debris. The most commonly assumed-both-ways line item in residential work.
Example: contractor
cleanupStandardone of: broom-clean, vacuumed, as-found, unstatedoptionalThe condition the site is returned in.
Example: broom-clean

measurementsMeasurements

Quantities with units and provenance. A quantity whose origin is unstated cannot be checked, and an unchecked quantity is the usual reason two prices differ by a third.

FieldTypeRequiredDefinition and example
quantitieslist of quantityrequiredEach measurement the trade profile requires, plus any others that matter. Every entry carries name, value, unit, measurementMethod and confidence.
Example: [{"name": "roofArea", "value": 2400, "unit": "sqft", "measurementMethod": "aerial-report", "confidence": "measured"}]
quantitiesVerifiedByone of: homeowner, contractor, shared, undecidedrequiredWho is responsible for confirming the quantities before the price becomes binding.
Example: contractor

materialsMaterials and selections

Whether the selections are made, who buys them, and what remains an allowance.

FieldTypeRequiredDefinition and example
selectionsCompletebooleanrequiredWhether every material selection has been made. `false` is normal and must be paired with allowances.
Example: false
specifiedItemslist of specifiedItemrequiredItems already chosen, named specifically enough to price. Required even when empty.
Example: [{"item": "Shingle", "specification": "CertainTeed Landmark, Weathered Wood", "suppliedBy": "contractor"}]
ownerSuppliedItemslist of textrequiredAnything the homeowner will supply. Required even when empty — an unstated owner-supplied item is a schedule risk nobody priced.
Example: []

permitsPermits and approvals

Permit assumptions stated up front, because a permit assumption discovered late moves both price and schedule.

FieldTypeRequiredDefinition and example
permitAssumedRequiredone of: yes, no, unknownrequiredWhether the brief assumes a permit is required. `unknown` is an honest and common answer, and is treated as a question for the bidder rather than a defect.
Example: yes
permitPulledByone of: homeowner, contractor, shared, undecidedrequiredWho applies for and pays for the permit under this brief's assumptions.
Example: contractor
jurisdictionstringoptionalThe permitting authority, where the homeowner knows it.
Example: City of Virginia Beach Planning Department
hoaApprovalRequiredone of: yes, no, unknownrequiredWhether an HOA or architectural review approval is needed.
Example: no
inspectionsExpectedlist of textoptionalInspections the homeowner expects, where known.
Example: ["Sheathing/nailing inspection", "Final"]

documentsPhotos and documents

What evidence accompanies the brief. A brief with no photographs is quoted more cautiously, and the caution is priced.

FieldTypeRequiredDefinition and example
photoslist of documentRefrequiredPhotographs supplied. Each entry states what the photo shows; a URL is optional and may be omitted for a brief that travels outside the issuing platform.
Example: [{"documentType": "photo", "describes": "Rear elevation, full roof plane"}]
drawingslist of documentRefrequiredPlans, sketches or measured drawings. Required even when empty.
Example: []
reportslist of documentRefrequiredInspection reports, engineer's letters, prior estimates being replaced. Required even when empty.
Example: [{"documentType": "report", "describes": "2026 home inspection, roof section"}]

assumptionsStated assumptions

The list every bidder must accept or restate. This is the mechanism that converts a difference in reading into a visible difference on the page.

FieldTypeRequiredDefinition and example
assumptionslist of textrequiredOne assumption per entry, written so it can be accepted or contradicted without ambiguity.
Example: ["Existing decking is sound except where noted in siteConditions", "Work proceeds in a single mobilisation"]

The quote — what a conforming answer returns

The response half of the standard. A brief that does not say what a comparable answer looks like has only solved half the problem.

FieldTypeRequiredDefinition and example
priceBasisone of: fixed-price, cost-plus, time-and-materials, not-to-exceed, allowance-basedrequiredHow the price is constructed. Two prices on different bases are not comparable and must not be presented as if they were.
Example: fixed-price
priceTotalnumberrequiredThe total for the scope as quoted, in the stated currency, exclusive of allowances listed separately.
Example: 18400
currencystringrequiredISO 4217 currency code.
Example: USD
allowancesCarriedlist of allowancerequiredThe brief's allowances as carried in this quote, so identical allowances sit on identical base prices.
Example: [{"item": "Shingle upgrade to architectural", "amount": 1200, "currency": "USD", "covers": "material only"}]
assumptionsAcceptedlist of textrequiredThe brief's assumptions this quote accepts, verbatim.
Example: ["Work proceeds in a single mobilisation"]
assumptionsRestatedlist of textrequiredAssumptions the bidder replaced, with the replacement text. Required even when empty — this is where two apparently identical prices stop being identical.
Example: ["Decking replacement priced at $4.50/sqft beyond the two noted areas"]
exclusionsAddedlist of textrequiredAnything the bidder excludes beyond the brief's own exclusions. Required even when empty.
Example: []
validUntildate (YYYY-MM-DD)requiredThe date the price expires. A quote without an expiry cannot be compared against one with a short expiry on equal terms.
Example: 2026-10-10
startWindowstringrequiredWhen work could begin, as a stated window rather than a promise of a date.
Example: Between 2026-10-06 and 2026-10-20
durationEstimatestringrequiredExpected working duration, with the unit stated.
Example: 3 working days, weather permitting
paymentSchedulelist of textrequiredEach payment as a stated trigger and amount or percentage.
Example: ["25% at contract", "Balance on completion and final inspection"]
warrantystringrequiredWorkmanship warranty in plain words, stated separately from any manufacturer warranty.
Example: 5 years on workmanship; manufacturer covers material separately.
changeOrderPolicystringrequiredHow a change is priced and authorised. Unstated at quote stage, it is negotiated at the worst possible moment.
Example: Written change order priced before work proceeds; no verbal changes.
licenseNumberstringoptionalThe contractor's licence number as issued by the relevant authority. Optional in the standard because licensing regimes differ; verification is the reader's responsibility, not the standard's.
Example: 2705-XXXXXX
insuranceOnFilebooleanoptionalWhether the bidder asserts current liability and workers' compensation cover. An assertion, not a verification — the standard never implies BidBro or anyone else has checked it.
Example: true

Trade profiles

A trade profile adds required measurements and a photo minimum to the core fields, and names the exclusions and allowances that go unstated most often in that trade. The lists of typical exclusions and allowances are guidance, not requirements — they exist because an omitted exclusion is the usual reason two prices are not comparable.

roofing-replacementRoofing replacement

Required quantities
roofArea pitch layersExisting
Also required
property.stories
Minimum photographs
4
Photo guidance
One photograph of each elevation from ground level, plus a close view of any known problem area. Photograph flashing, valleys and penetrations where they can be reached safely — never climb to take a brief photograph.
Commonly excluded
Gutter replacement; Interior repair of water damage; Decking replacement beyond a stated quantity; Skylight replacement
Commonly an allowance
Decking replacement per sheet or per square foot; Shingle upgrade; Ventilation upgrade

bathroom-remodelBathroom remodel

Required quantities
floorArea fixtureCount
Also required
property.yearBuilt materials.specifiedItems
Minimum photographs
4
Photo guidance
Each wall from the doorway, the floor, and the inside of the vanity cabinet showing the supply and waste connections. Photograph the ceiling if there is any staining.
Commonly excluded
Moving load-bearing walls; Window replacement; Repairs to concealed damage discovered on demolition
Commonly an allowance
Tile; Vanity and top; Fixtures and trim; Lighting

kitchen-remodelKitchen remodel

Required quantities
floorArea linearFeetCabinetry
Also required
property.yearBuilt materials.specifiedItems materials.ownerSuppliedItems
Minimum photographs
5
Photo guidance
Each wall, the floor, the ceiling, and the panel or breaker serving the kitchen. Include a photograph taken from the adjoining room through the doorway — access for cabinetry is a real constraint.
Commonly excluded
Appliance supply; Structural alterations; Asbestos or lead abatement; Flooring beyond the kitchen footprint
Commonly an allowance
Countertop; Cabinetry; Appliances; Backsplash tile; Plumbing fixtures

hvac-replacementHVAC replacement

Required quantities
conditionedArea existingSystemAge
Also required
property.yearBuilt property.stories
Minimum photographs
3
Photo guidance
The outdoor unit including its data plate, the indoor air handler or furnace including its data plate, and the thermostat. A legible data plate answers more questions than any description.
Commonly excluded
Duct replacement or resizing; Electrical service upgrade; Drywall repair after equipment access; Permit fees where stated as homeowner-pulled
Commonly an allowance
Duct modification; Line-set replacement; Condensate pump or drain rework

exterior-paintingExterior painting

Required quantities
paintableArea stories
Also required
property.yearBuilt scope.siteConditions
Minimum photographs
4
Photo guidance
Each elevation, plus close views of any peeling, rot or previous repair. A pre-1978 property should include a photograph of a representative painted surface, because lead-safe practices are a price input.
Commonly excluded
Carpentry repair beyond a stated quantity; Window glazing; Roof or gutter painting; Pressure washing of hard surfaces
Commonly an allowance
Carpentry repair per linear or square foot; Additional coat; Trim colour change

otherOther work

Required quantities
None beyond the core fields.
Also required
Nothing beyond the core required fields.
Minimum photographs
2
Photo guidance
At minimum, a wide view establishing where the work is and a close view of the specific condition being addressed.
Commonly excluded
Commonly an allowance

Enumerations

IdentifierNameValues
tradeProfileTrade profileroofing-replacement bathroom-remodel kitchen-remodel hvac-replacement exterior-painting other
propertyTypeProperty typesingle-family-detached townhouse condominium duplex manufactured other
schedulingFlexibilityScheduling flexibilityurgent firm-date flexible seasonal
responsibilityResponsibilityhomeowner contractor shared undecided
priceBasisPrice basisfixed-price cost-plus time-and-materials not-to-exceed allowance-based
measurementMethodMeasurement methodtape-measured laser-measured aerial-report from-drawings estimated unknown
confidenceQuantity confidencemeasured approximate rough
cleanupStandardCleanup standardbroom-clean vacuumed as-found unstated
tristateYes / no / unknownyes no unknown
documentTypeDocument typephoto drawing report prior-estimate other

Machine-readable artifacts

The schema is JSON Schema draft-07, chosen because it is what a validator in this repository can actually run — a schema nobody can execute is a decorative schema. The citation file follows Citation File Format 1.2.0.

Limitations — what this standard does not do

How to cite this version

BidBro, Inc. (2026). ScopeSpec 0.1: a comparable residential project brief. https://www.bidbro.com/scopespec/v0-1 (CC BY 4.0)

ScopeSpec is published under CC BY 4.0: implement it, extend it, or fork it, with credit in plain text. A link back is welcome and is never required.

Version history

Corrections

If a field definition here is wrong, ambiguous, or disagrees with the published schema, email ben.davis@bidbro.com. Corrections are dated in the version history above rather than made silently.

Elsewhere on BidBro