{
  "version": "1.0.0",
  "verified": "2026-10-14",
  "status": "Mathematical implementation/scenario review only; no trade reviewer or regional rate sources",
  "scenarios": [
    {
      "id": "gutter-40m",
      "tool": "gutter",
      "inputs": {
        "length": 40,
        "rate": 3,
        "height": 25,
        "debris": 10,
        "access": 0,
        "downspouts": 2,
        "downRate": 5,
        "travelCharge": 15,
        "minimum": 100,
        "hours": 2.5,
        "crew": 1,
        "wage": 25,
        "otherCosts": 57
      },
      "expectedTotal": 190,
      "expectedCosts": 119.5,
      "expectedProfit": 70.5,
      "expectedMargin": 37.11,
      "scope": "Recorded prototype case from 2026-10-13; illustrative rates, no market or real-job evidence."
    },
    {
      "id": "pressure-patio",
      "tool": "pressure",
      "inputs": {
        "length": 10,
        "width": 6,
        "rate": 4,
        "travelCharge": 15,
        "minimum": 100,
        "hours": 2.5,
        "travelHours": 1,
        "setupHours": 0.5,
        "crew": 1,
        "wage": 25,
        "otherCosts": 40
      },
      "expectedTotal": 255,
      "expectedCosts": 140,
      "expectedProfit": 115,
      "expectedMargin": 45.1,
      "scope": "New hypothetical patio case; duration is an entered assumption, not a productivity benchmark."
    },
    {
      "id": "driveway-sections",
      "tool": "driveway",
      "inputs": {
        "length": 12,
        "widthStart": 3,
        "widthEnd": 5,
        "apronLength": 3,
        "apronWidth": 4,
        "rate": 4,
        "extras": 20,
        "hours": 3,
        "edgeHours": 0.5,
        "setupHours": 0.5,
        "travelHours": 1,
        "crew": 1,
        "wage": 25,
        "otherCosts": 40
      },
      "expectedTotal": 260,
      "expectedCosts": 165,
      "expectedProfit": 95,
      "expectedMargin": 36.54,
      "scope": "New hypothetical trapezoid48m² plus non-overlapping apron12m². Edge time and separate scope charge are user assumptions."
    },
    {
      "id": "minimum-short-job",
      "tool": "minimum",
      "inputs": {
        "hours": 0.5,
        "travelHours": 1,
        "setupHours": 0.5,
        "crew": 1,
        "wage": 25,
        "otherCosts": 30,
        "fixedFee": 1,
        "fee": 2,
        "target": 20
      },
      "expectedTotal": 103.85,
      "scope": "New hypothetical fee-aware cost floor; break-even82.66, target103.85 rounded upward to cents."
    },
    {
      "id": "profit-100-80",
      "tool": "profit",
      "inputs": {
        "quote": 100,
        "hours": 2,
        "crew": 1,
        "wage": 25,
        "otherCosts": 30
      },
      "expectedTotal": 20,
      "expectedMargin": 20,
      "scope": "Declared illustrative revenue 100/cost 80: profit 20, margin 20%, markup 25%; no tax/earnings claim."
    }
  ],
  "formulas": {
    "gutter": "length*rate; rounded height then debris then access adjustments; add guard work/downspouts/travel/extras; max(subtotal,minimum)",
    "pressure": "rectangular area*rate plus condition adjustment and extras, then minimum",
    "driveway": "length*(parallel end widths sum)/2 + non-overlapping rectangular apron; price area, separate edge time in labour",
    "minimum": "(operating costs+fixed fee)/(1-fee%-target margin%); break-even has zero target; round upward to cents",
    "profit": "discounted revenue minus operating costs and fees; margin uses revenue, markup uses total costs including fees"
  },
  "limits": [
    "No market presets",
    "No field testing or trade certification",
    "No tax/safety/product advice",
    "Zero denominator ratios unavailable",
    "Currency formatting is not FX conversion",
    "Fees plus target margin below100%",
    "Dimension and rate units must match"
  ]
}