{
  "schemaVersion": 1,
  "id": "sample",
  "reportNumber": "ZR-SAMPLE-0001",
  "createdAt": "2026-11-12T15:00:00.000Z",
  "isSample": true,
  "property": {
    "address": "100 Sample Street, Anytown, OH 00000",
    "line1": "100 Sample Street",
    "city": "Anytown",
    "region": "OH",
    "postalCode": "00000",
    "country": "US",
    "lat": 40,
    "lng": -83
  },
  "preparedFor": {
    "company": "Sample Roofing Co."
  },
  "origin": {
    "lat": 40,
    "lng": -83
  },
  "outline": [
    [
      -7.5,
      -4.5
    ],
    [
      -4,
      -4.5
    ],
    [
      -4,
      -8.5
    ],
    [
      2,
      -8.5
    ],
    [
      2,
      -4.5
    ],
    [
      7.5,
      -4.5
    ],
    [
      7.5,
      4.5
    ],
    [
      -7.5,
      4.5
    ]
  ],
  "totals": {
    "areaSqFt": 1914,
    "areaSqM": 177.8,
    "squares": 19.14,
    "planAreaSqFt": 1711,
    "facetCount": 5,
    "predominantPitch": "6/12",
    "predominantPitchPercent": 100,
    "complexity": "moderate",
    "summary": "A hip-and-gable roof with 5 facets, all at 6/12, with 2 valleys."
  },
  "lines": {
    "ridgeFt": 57.4,
    "hipFt": 44.2,
    "valleyFt": 29.6,
    "eaveFt": 134.4,
    "rakeFt": 55,
    "stepFlashingFt": 0,
    "headwallFt": 0,
    "dripEdgeFt": 189.4,
    "starterFt": 189.4,
    "ridgeHipCapFt": 101.6
  },
  "facets": [
    {
      "id": "A",
      "polygon": [
        [
          -7.5,
          0
        ],
        [
          3,
          0
        ],
        [
          7.5,
          4.5
        ],
        [
          -7.5,
          4.5
        ]
      ],
      "areaSqFt": 690,
      "squares": 6.9,
      "pitch": "6/12",
      "pitchDegrees": 26.6,
      "facing": "North",
      "azimuthDegrees": 0,
      "heightAboveGroundM": 4.06
    },
    {
      "id": "B",
      "polygon": [
        [
          -7.5,
          -4.5
        ],
        [
          -4,
          -4.5
        ],
        [
          -1,
          -1.5
        ],
        [
          2,
          -4.5
        ],
        [
          7.5,
          -4.5
        ],
        [
          3,
          0
        ],
        [
          -7.5,
          0
        ]
      ],
      "areaSqFt": 582,
      "squares": 5.82,
      "pitch": "6/12",
      "pitchDegrees": 26.6,
      "facing": "South",
      "azimuthDegrees": 180,
      "heightAboveGroundM": 4.16
    },
    {
      "id": "C",
      "polygon": [
        [
          7.5,
          -4.5
        ],
        [
          7.5,
          4.5
        ],
        [
          3,
          0
        ]
      ],
      "areaSqFt": 244,
      "squares": 2.44,
      "pitch": "6/12",
      "pitchDegrees": 26.6,
      "facing": "East",
      "azimuthDegrees": 90,
      "heightAboveGroundM": 3.75
    },
    {
      "id": "D",
      "polygon": [
        [
          -4,
          -8.5
        ],
        [
          -1,
          -8.5
        ],
        [
          -1,
          -1.5
        ],
        [
          -4,
          -4.5
        ]
      ],
      "areaSqFt": 199,
      "squares": 1.99,
      "pitch": "6/12",
      "pitchDegrees": 26.6,
      "facing": "West",
      "azimuthDegrees": 270,
      "heightAboveGroundM": 3.82
    },
    {
      "id": "E",
      "polygon": [
        [
          -1,
          -8.5
        ],
        [
          2,
          -8.5
        ],
        [
          2,
          -4.5
        ],
        [
          -1,
          -1.5
        ]
      ],
      "areaSqFt": 199,
      "squares": 1.99,
      "pitch": "6/12",
      "pitchDegrees": 26.6,
      "facing": "East",
      "azimuthDegrees": 90,
      "heightAboveGroundM": 3.82
    }
  ],
  "edges": [
    {
      "id": "e1",
      "type": "ridge",
      "a": [
        -7.5,
        0
      ],
      "b": [
        3,
        0
      ],
      "lengthFt": 34.4
    },
    {
      "id": "e2",
      "type": "ridge",
      "a": [
        -1,
        -8.5
      ],
      "b": [
        -1,
        -1.5
      ],
      "lengthFt": 23
    },
    {
      "id": "e3",
      "type": "hip",
      "a": [
        3,
        0
      ],
      "b": [
        7.5,
        4.5
      ],
      "lengthFt": 22.1
    },
    {
      "id": "e4",
      "type": "hip",
      "a": [
        3,
        0
      ],
      "b": [
        7.5,
        -4.5
      ],
      "lengthFt": 22.1
    },
    {
      "id": "e5",
      "type": "valley",
      "a": [
        -1,
        -1.5
      ],
      "b": [
        -4,
        -4.5
      ],
      "lengthFt": 14.8
    },
    {
      "id": "e6",
      "type": "valley",
      "a": [
        -1,
        -1.5
      ],
      "b": [
        2,
        -4.5
      ],
      "lengthFt": 14.8
    },
    {
      "id": "e7",
      "type": "eave",
      "a": [
        -7.5,
        4.5
      ],
      "b": [
        7.5,
        4.5
      ],
      "lengthFt": 49.2
    },
    {
      "id": "e8",
      "type": "eave",
      "a": [
        7.5,
        -4.5
      ],
      "b": [
        7.5,
        4.5
      ],
      "lengthFt": 29.5
    },
    {
      "id": "e9",
      "type": "eave",
      "a": [
        -7.5,
        -4.5
      ],
      "b": [
        -4,
        -4.5
      ],
      "lengthFt": 11.5
    },
    {
      "id": "e10",
      "type": "eave",
      "a": [
        2,
        -4.5
      ],
      "b": [
        7.5,
        -4.5
      ],
      "lengthFt": 18
    },
    {
      "id": "e11",
      "type": "eave",
      "a": [
        -4,
        -8.5
      ],
      "b": [
        -4,
        -4.5
      ],
      "lengthFt": 13.1
    },
    {
      "id": "e12",
      "type": "eave",
      "a": [
        2,
        -8.5
      ],
      "b": [
        2,
        -4.5
      ],
      "lengthFt": 13.1
    },
    {
      "id": "e13",
      "type": "rake",
      "a": [
        -7.5,
        -4.5
      ],
      "b": [
        -7.5,
        0
      ],
      "lengthFt": 16.5
    },
    {
      "id": "e14",
      "type": "rake",
      "a": [
        -7.5,
        0
      ],
      "b": [
        -7.5,
        4.5
      ],
      "lengthFt": 16.5
    },
    {
      "id": "e15",
      "type": "rake",
      "a": [
        -4,
        -8.5
      ],
      "b": [
        -1,
        -8.5
      ],
      "lengthFt": 11
    },
    {
      "id": "e16",
      "type": "rake",
      "a": [
        -1,
        -8.5
      ],
      "b": [
        2,
        -8.5
      ],
      "lengthFt": 11
    }
  ],
  "pitchBreakdown": [
    {
      "pitch": "6/12",
      "areaSqFt": 1914,
      "percent": 100
    }
  ],
  "waste": {
    "recommendedPercent": 15,
    "reason": "Valleys: allow 15%.",
    "table": [
      {
        "percent": 0,
        "areaSqFt": 1914,
        "squares": 19.14,
        "bundles": 58
      },
      {
        "percent": 5,
        "areaSqFt": 2010,
        "squares": 20.1,
        "bundles": 61
      },
      {
        "percent": 10,
        "areaSqFt": 2105,
        "squares": 21.05,
        "bundles": 64
      },
      {
        "percent": 12,
        "areaSqFt": 2144,
        "squares": 21.44,
        "bundles": 65
      },
      {
        "percent": 15,
        "areaSqFt": 2201,
        "squares": 22.01,
        "bundles": 67
      },
      {
        "percent": 18,
        "areaSqFt": 2259,
        "squares": 22.59,
        "bundles": 68
      },
      {
        "percent": 20,
        "areaSqFt": 2297,
        "squares": 22.97,
        "bundles": 69
      }
    ]
  },
  "materials": [
    {
      "item": "Shingles",
      "basis": "22.0 sq with 15% waste · 3 bundles per sq",
      "quantity": 67,
      "unit": "bundles"
    },
    {
      "item": "Underlayment",
      "basis": "22.0 sq with 15% waste · 10 sq rolls",
      "quantity": 3,
      "unit": "rolls"
    },
    {
      "item": "Ice and water shield",
      "basis": "164.0 ft eaves + valleys · 66 ft rolls",
      "quantity": 3,
      "unit": "rolls"
    },
    {
      "item": "Starter strip",
      "basis": "189.4 ft eaves + rakes · 100 ft per bundle",
      "quantity": 2,
      "unit": "bundles"
    },
    {
      "item": "Hip and ridge cap",
      "basis": "101.6 ft ridges + hips · 25 ft per bundle",
      "quantity": 5,
      "unit": "bundles"
    },
    {
      "item": "Drip edge",
      "basis": "189.4 ft eaves + rakes · 10 ft pieces",
      "quantity": 19,
      "unit": "pieces"
    },
    {
      "item": "Valley metal",
      "basis": "29.6 ft valleys · 10 ft pieces",
      "quantity": 3,
      "unit": "pieces"
    }
  ],
  "gutters": {
    "totalLengthFt": 134.4,
    "runs": [
      {
        "id": "G1",
        "a": [
          -7.5,
          4.5
        ],
        "b": [
          7.5,
          4.5
        ],
        "side": "North",
        "lengthFt": 49.2,
        "facetIds": [
          "A"
        ],
        "drainPlanAreaSqFt": 618,
        "eaveHeightFt": 10,
        "storeys": 1,
        "downspouts": 1,
        "drainsThroughRunId": null
      },
      {
        "id": "G2",
        "a": [
          7.5,
          -4.5
        ],
        "b": [
          7.5,
          4.5
        ],
        "side": "East",
        "lengthFt": 29.5,
        "facetIds": [
          "C"
        ],
        "drainPlanAreaSqFt": 218,
        "eaveHeightFt": 10,
        "storeys": 1,
        "downspouts": 1,
        "drainsThroughRunId": null
      },
      {
        "id": "G3",
        "a": [
          2,
          -4.5
        ],
        "b": [
          7.5,
          -4.5
        ],
        "side": "South",
        "lengthFt": 18,
        "facetIds": [
          "B"
        ],
        "drainPlanAreaSqFt": 318,
        "eaveHeightFt": 10,
        "storeys": 1,
        "downspouts": 1,
        "drainsThroughRunId": null
      },
      {
        "id": "G4",
        "a": [
          -4,
          -8.5
        ],
        "b": [
          -4,
          -4.5
        ],
        "side": "West",
        "lengthFt": 13.1,
        "facetIds": [
          "D"
        ],
        "drainPlanAreaSqFt": 178,
        "eaveHeightFt": 10,
        "storeys": 1,
        "downspouts": 1,
        "drainsThroughRunId": null
      },
      {
        "id": "G5",
        "a": [
          2,
          -8.5
        ],
        "b": [
          2,
          -4.5
        ],
        "side": "East",
        "lengthFt": 13.1,
        "facetIds": [
          "E"
        ],
        "drainPlanAreaSqFt": 178,
        "eaveHeightFt": 10,
        "storeys": 1,
        "downspouts": 0,
        "drainsThroughRunId": "G3"
      },
      {
        "id": "G6",
        "a": [
          -7.5,
          -4.5
        ],
        "b": [
          -4,
          -4.5
        ],
        "side": "South",
        "lengthFt": 11.5,
        "facetIds": [
          "B"
        ],
        "drainPlanAreaSqFt": 203,
        "eaveHeightFt": 10,
        "storeys": 1,
        "downspouts": 0,
        "drainsThroughRunId": "G4"
      }
    ],
    "outsideCorners": 2,
    "insideCorners": 2,
    "endCaps": 4,
    "downspouts": 4,
    "downspoutTotalFt": 40,
    "materials": [
      {
        "item": "Gutter",
        "basis": "134.4 ft + 10% · 10 ft pieces",
        "quantity": 15,
        "unit": "pieces"
      },
      {
        "item": "Downspout",
        "basis": "4 downspouts · about 40 ft in all (estimate) · 10 ft pieces",
        "quantity": 4,
        "unit": "pieces"
      },
      {
        "item": "Elbows",
        "basis": "4 downspouts · 3 each",
        "quantity": 12,
        "unit": "elbows"
      },
      {
        "item": "Downspout bands",
        "basis": "4 pieces of downspout · 2 each",
        "quantity": 8,
        "unit": "bands"
      },
      {
        "item": "Outlets",
        "basis": "One per downspout",
        "quantity": 4,
        "unit": "outlets"
      },
      {
        "item": "End caps",
        "basis": "Run ends that do not turn a corner",
        "quantity": 4,
        "unit": "caps"
      },
      {
        "item": "Outside mitres",
        "basis": "Outside corners between runs",
        "quantity": 2,
        "unit": "mitres"
      },
      {
        "item": "Inside mitres",
        "basis": "Inside corners between runs",
        "quantity": 2,
        "unit": "mitres"
      },
      {
        "item": "Hangers",
        "basis": "134.4 ft · one every 24 in, plus one per run",
        "quantity": 75,
        "unit": "hangers"
      }
    ],
    "notes": [
      "Facet B drains to more than one run. The plan area is shared between the runs by run length.",
      "Gutter carries on round corners, so downspouts are counted for each connected length, not for each run. G5 and G6 have no downspout of their own and drain through the run shown.",
      "Valleys bring concentrated water to 2 points on the gutter (G4/G6, G3/G5). Put a downspout close to each, or fit a splash guard."
    ]
  },
  "quality": {
    "confidence": 0.93,
    "grade": "high",
    "flags": []
  },
  "source": {
    "elevation": {
      "provider": "sample",
      "dataset": "Sample data, not a real survey",
      "captured": "2025-06",
      "resolution": "lidar point cloud, 4.1 pts/m²"
    },
    "footprintProvider": "Sample building outline",
    "attribution": [
      "Sample data. Real reports credit USGS 3DEP or Natural Resources Canada and the building outline source."
    ]
  },
  "disclaimers": [
    "Measured from aerial lidar elevation data, not a site visit. Verify measurements on site before ordering. Material quantities use the rates shown and are rounded up; adjust them to your products and local code."
  ]
}
