Instant Roofer MCP
Reading a measurement
Only the fields below are returned in measurements; anything else the pipeline computes stays server-side.
| Field | Meaning |
|---|---|
measurements.sqft.aerial | Building footprint in square feet, before pitch is applied. |
measurements.sqft.measured | Footprint after applying the facet pitch mix: the whole roof, every pitch (Total Roof Area). |
measurements.sqft.shingle | The part of sqft.measured at 2/12 pitch or steeper, where asphalt shingles can go. 0 when the whole roof is low slope. Absent on records measured before 2026-10 (then equal to sqft.measured). |
measurements.sqft.flat | The report's Total Flat Roof Area: the part of sqft.measured at 1/12 pitch or flatter, the complement of sqft.shingle. Not added to sqft.suggested / squares because asphalt shingles should not go on it. Absent when the roof has no pitch information and on records measured before 2026-10. |
measurements.sqft.suggested | Recommended material square footage: sqft.shingle (or sqft.measured when shingle is 0 or absent) plus the recommended waste. Order against this. |
measurements.squares | sqft.suggested in roofing squares (100 sq ft), quantized to the nearest third of a square (one bundle). |
measurements.pitch | Predominant pitch as rise/12, e.g. 6/12. |
measurements.complexity | 0 Low, 1 Moderate, 2 High, 3 Extreme. Mostly driven by hips and expected waste. |
measurements.wastePercent | Recommended waste factor in percent, already applied to sqft.suggested on top of the waste base (sqft.shingle, else sqft.measured). Absent on records measured before 2026-09-14. |
measurements.perimeter | Footprint perimeter in feet. |
measurements.facets | Number of roof facets detected. |
measurements.stories | Estimated story count (beta). |
measurements.storiesConfidence | 0–100 confidence in the story count; absent when it came from a heuristic. |
measurements.storiesSource | How the story count was produced (model, heuristic, ...). |
measurements.averageRoofHeight | Average roof height in feet above ground. |
measurements.lowestAverageRoofHeight | Average eave-level height in feet above ground. |
measurements.highestAverageRoofHeight | Average ridge-level height in feet above ground. |
measurements.roofHeightConfidence | 0–100 confidence in the roof heights. |
measurements.roofHeightSource | lidar, google_solar, or google_dsm. |
measurements.eaveLengthFt | Total eave length in feet (beta, LiDAR only). |
measurements.eaveLengthBand | high, medium, or low agreement across the edge models. |
measurements.ridgeLengthFt | Total ridge length in feet (beta). |
measurements.ridgeLengthBand | Agreement band for the ridge length. |
measurements.valleyLengthFt | Total valley length in feet (beta). |
measurements.valleyLengthBand | Agreement band for the valley length. |
measurements.rakeLengthFt | Total rake length in feet (beta). |
measurements.rakeLengthBand | Agreement band for the rake length. |
measurements.hipLengthFt | Total hip length in feet (beta). |
measurements.hipLengthBand | Agreement band for the hip length. |
measurements.headwallLengthFt | Total headwall flashing length in feet (beta). |
measurements.headwallLengthBand | Agreement band for the headwall length. |
measurements.sidewallLengthFt | Total sidewall flashing length in feet (beta). |
measurements.sidewallLengthBand | Agreement band for the sidewall length. |
confidence.display | AI Measurement Confidence, the band the report shows: High when the area model expects to miss the building footprint by 6% or less, Medium up to 8.7%, Low above that. Review Low results carefully before bidding. |
attachedUnits | Present for townhomes. measurements are for the single attached unit at the pin (pinUnitLabel), one of unitCount units; structureFootprintSqft is the whole structure's footprint. Say so when quoting — the numbers are not the whole building's. |
entitlement | full or freemium. Freemium accounts receive only the teaser fields; lockedMeasurementFields lists what was withheld and upgradeUrl is where AI Tools is activated. |
The outline image confirms which building was measured. It is not an indicator of measurement accuracy; use confidence.display for that.
A fresh measure_roof result may carry warnings: the measured footprint (sqft.aerial) disagreeing by more than 15% with the building footprint detected when the location was confirmed (part of the roof may have been missed, or a neighbour included - check the outline image and re-measure from confirm_building_location if so), or the address resolving to a US look-alike of a place abroad. Relay them before quoting the numbers.
Location verification
Results that depend on a property location carry locationVerification:
| Value | Meaning |
|---|---|
map_confirmed | A person confirmed (or moved) the pin on the satellite map for this request. |
previously_confirmed | The pin came from a building someone already confirmed: a customer job or lead's confirmed building, or a recent successful measurement. |
unverified_accepted | The geocoded pin was used as previewed after the user saw the geocoding warning. |
confirm_building_location and the first order_human_certified_report call return a locationToken, a confirmUrl, footprintDistanceFeet (pin to the nearest detected building), and lowConfidence with confidenceReasons when the geocode looks doubtful.
Human-Certified Measure Reports return measurements with squares, roofAreaSqft, flatRoofAreaSqft (the report's Total Flat Roof Area: facets at 1/12 pitch or flatter, left out of the squares; absent on reports delivered before October 2026), totalAreaWithWasteSqft, predominantPitch, edge lengths in feet (ridgesLengthFt, hipsLengthFt, valleysLengthFt, rakesLengthFt, eavesLengthFt, sidewallsLengthFt, headwallsLengthFt, and dripEdgeLengthFt = eaves + rakes) plus a per-facet breakdown (label, areaSqft, pitch, slopeDirection). A length of 0 means the report measured none of that edge type. squares follows the report's Recommended Squares: only facets at the asphalt pitch threshold or steeper count (2/12; reports delivered before October 2026 used 3/12), plus the recommended waste, rounded up to the next bundle, so on roofs with flat sections it is well below roofAreaSqft / 100. measurementsNote on the tool result spells this out for the assistant.