{
  "schema": "blackcreek-project",
  "version": 1,
  "savedAt": "2026-11-06T09:00:00.000Z",
  "project": {
    "name": "12 Example Street townhouses (made-up sample)",
    "contractRef": "HC-2026-014",
    "payee": "Sample Builders",
    "payer": "Sample Developments",
    "region": "wellington",
    "scheduleDays": null,
    "paymentDays": null,
    "retention": {
      "bands": [
        {
          "pct": 5
        }
      ],
      "cap": 20000
    },
    "tools": []
  },
  "items": [
    {
      "id": "IT-001",
      "description": "Foundations and slab",
      "unit": "m²",
      "qty": 420,
      "rate": 185,
      "plannedStart": "2026-09-01",
      "plannedFinish": "2026-09-30"
    },
    {
      "id": "IT-002",
      "description": "Wall and roof framing",
      "unit": "m²",
      "qty": 860,
      "rate": 95,
      "plannedStart": "2026-10-01",
      "plannedFinish": "2026-11-20"
    },
    {
      "id": "IT-003",
      "description": "Roofing",
      "unit": "m²",
      "qty": 380,
      "rate": 120,
      "plannedStart": "2026-11-02",
      "plannedFinish": "2026-11-27"
    },
    {
      "id": "IT-004",
      "description": "Electrical rough-in",
      "unit": "each",
      "qty": 6,
      "rate": 9500,
      "plannedStart": "2026-10-19",
      "plannedFinish": "2026-12-04"
    },
    {
      "id": "IT-005",
      "description": "Cladding",
      "unit": "m²",
      "qty": 640,
      "rate": 140,
      "plannedStart": "2026-11-16",
      "plannedFinish": "2026-12-18"
    }
  ],
  "measurements": [
    {
      "id": "M-001",
      "date": "2026-09-25",
      "itemId": "IT-001",
      "qty": 420,
      "location": "Blocks A and B",
      "diaryId": "D-001",
      "photos": [
        "P-0101"
      ],
      "by": "Sample site engineer",
      "notes": ""
    },
    {
      "id": "M-002",
      "date": "2026-10-16",
      "itemId": "IT-002",
      "qty": 300,
      "location": "Level 1, blocks A and B",
      "diaryId": "D-004",
      "photos": [
        "P-0144"
      ],
      "by": "Sample site engineer",
      "notes": ""
    },
    {
      "id": "M-003",
      "date": "2026-10-30",
      "itemId": "IT-002",
      "qty": 216,
      "location": "Roof, block A",
      "diaryId": "D-006",
      "photos": [
        "P-0160"
      ],
      "by": "Sample site engineer",
      "notes": ""
    },
    {
      "id": "M-004",
      "date": "2026-10-30",
      "itemId": "IT-004",
      "qty": 2,
      "location": "Units 1 and 2",
      "diaryId": "D-006",
      "photos": [
        "P-0161"
      ],
      "by": "Sample site engineer",
      "notes": ""
    },
    {
      "id": "M-005",
      "date": "2026-11-04",
      "itemId": "IT-002",
      "qty": 120,
      "location": "Block B",
      "diaryId": "D-008",
      "photos": [
        "P-0175"
      ],
      "by": "Sample site engineer",
      "notes": ""
    },
    {
      "id": "M-006",
      "date": "2026-11-05",
      "itemId": "IT-003",
      "qty": 95,
      "location": "Roof, block A",
      "diaryId": "",
      "photos": [],
      "by": "Sample site engineer",
      "notes": ""
    }
  ],
  "diary": [
    {
      "id": "D-001",
      "date": "2026-09-25",
      "weather": "Fine",
      "labour": "Concrete crew 6, labourers 2",
      "labourCount": 8,
      "plant": "Concrete pump, 5 t digger",
      "itemIds": [
        "IT-001"
      ],
      "workDone": "Slab poured, blocks A and B.",
      "delays": "",
      "delayCause": "",
      "instructions": "",
      "visitors": "Engineer's slab inspection (Sample Design)",
      "photos": [
        "P-0101",
        "P-0102"
      ],
      "by": "Sample site manager"
    },
    {
      "id": "D-004",
      "date": "2026-10-16",
      "weather": "Showers",
      "labour": "Carpenters 5, labourers 1",
      "labourCount": 6,
      "plant": "Telehandler",
      "itemIds": [
        "IT-002"
      ],
      "workDone": "Level 1 walls framed, blocks A and B.",
      "delays": "1 hour lost to rain",
      "delayCause": "Weather",
      "instructions": "SI-004: extra blocking to kitchen walls",
      "visitors": "",
      "photos": [
        "P-0144"
      ],
      "by": "Sample site manager"
    },
    {
      "id": "D-006",
      "date": "2026-10-30",
      "weather": "Fine",
      "labour": "Carpenters 5, electricians 2",
      "labourCount": 7,
      "plant": "Telehandler, scissor lift",
      "itemIds": [
        "IT-002",
        "IT-004"
      ],
      "workDone": "Roof trusses up, block A. Electrical rough-in, units 1 and 2.",
      "delays": "",
      "delayCause": "",
      "instructions": "",
      "visitors": "Client's representative site walk",
      "photos": [
        "P-0160",
        "P-0161"
      ],
      "by": "Sample site manager"
    },
    {
      "id": "D-007",
      "date": "2026-11-02",
      "weather": "Wind",
      "labour": "Carpenters 4, roofers 3",
      "labourCount": 7,
      "plant": "Telehandler",
      "itemIds": [
        "IT-002",
        "IT-003"
      ],
      "workDone": "Framing, block B. Roofing started, block A.",
      "delays": "Roofing stopped from 2 pm: wind over 50 km/h",
      "delayCause": "Weather",
      "instructions": "",
      "visitors": "",
      "photos": [
        "P-0170"
      ],
      "by": "Sample site manager"
    },
    {
      "id": "D-008",
      "date": "2026-11-04",
      "weather": "Fine",
      "labour": "Carpenters 4, roofers 3",
      "labourCount": 7,
      "plant": "Telehandler",
      "itemIds": [
        "IT-002",
        "IT-003"
      ],
      "workDone": "Framing, block B. Roofing, block A.",
      "delays": "",
      "delayCause": "",
      "instructions": "RFI-003 raised: cladding cavity battens",
      "visitors": "",
      "photos": [
        "P-0175"
      ],
      "by": "Sample site manager"
    }
  ],
  "claims": [
    {
      "id": "PC-01",
      "direction": "Sent",
      "orderId": "",
      "claimant": "Sample Builders",
      "payer": "Sample Developments",
      "claimDate": "2026-09-30",
      "periodStart": "2026-09-01",
      "periodEnd": "2026-09-30",
      "served": "2026-10-01",
      "scheduleDue": "2026-10-30",
      "paymentDue": "2026-10-30",
      "claimed": 77700,
      "calculation": "IT-001 Foundations and slab: 100% complete, $77,700.00 to date, less $0.00 claimed before = $77,700.00 (measurements M-001).\nTotal this claim: $77,700.00 excluding GST, from the progress measurement sheet.",
      "lines": [
        {
          "itemId": "IT-001",
          "description": "Foundations and slab",
          "pct": 1,
          "valueToDate": 77700,
          "previous": 0,
          "thisClaim": 77700,
          "measurementIds": [
            "M-001"
          ]
        }
      ]
    },
    {
      "id": "PC-02",
      "direction": "Sent",
      "orderId": "",
      "claimant": "Sample Builders",
      "payer": "Sample Developments",
      "claimDate": "2026-10-31",
      "periodStart": "2026-10-01",
      "periodEnd": "2026-10-31",
      "served": "2026-11-02",
      "scheduleDue": "2026-11-30",
      "paymentDue": "2026-11-30",
      "claimed": 68020,
      "calculation": "IT-001 Foundations and slab: 100% complete, $77,700.00 to date, less $77,700.00 claimed before = $0.00 (measurements M-001).\nIT-002 Wall and roof framing: 60% complete, $49,020.00 to date, less $0.00 claimed before = $49,020.00 (measurements M-002, M-003).\nIT-004 Electrical rough-in: 33.33% complete, $19,000.00 to date, less $0.00 claimed before = $19,000.00 (measurements M-004).\nTotal this claim: $68,020.00 excluding GST, from the progress measurement sheet.",
      "lines": [
        {
          "itemId": "IT-001",
          "description": "Foundations and slab",
          "pct": 1,
          "valueToDate": 77700,
          "previous": 77700,
          "thisClaim": 0,
          "measurementIds": [
            "M-001"
          ]
        },
        {
          "itemId": "IT-002",
          "description": "Wall and roof framing",
          "pct": 0.6,
          "valueToDate": 49020,
          "previous": 0,
          "thisClaim": 49020,
          "measurementIds": [
            "M-002",
            "M-003"
          ]
        },
        {
          "itemId": "IT-004",
          "description": "Electrical rough-in",
          "pct": 0.3333,
          "valueToDate": 19000,
          "previous": 0,
          "thisClaim": 19000,
          "measurementIds": [
            "M-004"
          ]
        }
      ]
    },
    {
      "id": "SC-05",
      "direction": "Received",
      "orderId": "PO-001",
      "claimant": "Sample Sparks",
      "payer": "Sample Builders",
      "claimDate": "2026-08-31",
      "periodStart": "2026-08-01",
      "periodEnd": "2026-08-31",
      "served": "2026-09-01",
      "scheduleDue": "2026-09-29",
      "paymentDue": "2026-09-29",
      "claimed": 6000,
      "calculation": "Electrical: site set-up and first fix, 10% of $48,000 subcontract = $4,800, plus $1,200 temporary power",
      "lines": []
    },
    {
      "id": "SF-03",
      "direction": "Received",
      "orderId": "PO-002",
      "claimant": "Sample Framing Co",
      "payer": "Sample Builders",
      "claimDate": "2026-09-30",
      "periodStart": "2026-09-01",
      "periodEnd": "2026-09-30",
      "served": "2026-10-01",
      "scheduleDue": "2026-10-30",
      "paymentDue": "2026-10-30",
      "claimed": 24000,
      "calculation": "Framing labour: 38.7% of $62,000 = $24,000",
      "lines": []
    },
    {
      "id": "SC-07",
      "direction": "Received",
      "orderId": "PO-001",
      "claimant": "Sample Sparks",
      "payer": "Sample Builders",
      "claimDate": "2026-10-31",
      "periodStart": "2026-10-01",
      "periodEnd": "2026-10-31",
      "served": "2026-11-02",
      "scheduleDue": "2026-11-30",
      "paymentDue": "2026-11-30",
      "claimed": 9500,
      "calculation": "Electrical rough-in, units 1 and 2: 2 of 6 units at $4,750",
      "lines": []
    }
  ],
  "schedules": [
    {
      "id": "PS-001",
      "claimId": "PC-01",
      "date": "2026-10-20",
      "served": "2026-10-20",
      "claimed": 77700,
      "scheduled": 77700,
      "calculation": "",
      "reasons": "",
      "approvedBy": "Sample contract administrator",
      "approvedOn": "2026-10-20"
    },
    {
      "id": "PS-002",
      "claimId": "SF-03",
      "date": "2026-10-20",
      "served": "2026-10-20",
      "claimed": 24000,
      "scheduled": 22500,
      "calculation": "",
      "reasons": "$1,500 of day works not agreed: variation V02 still pending.",
      "approvedBy": "Sample Builders",
      "approvedOn": "2026-10-20"
    }
  ],
  "payments": [
    {
      "id": "PAY-001",
      "claimId": "PC-01",
      "date": "2026-10-29",
      "amount": 73815,
      "ref": "Sample Developments remittance 5531 (after 5% retention)",
      "invoiceId": "INV-001",
      "received": 84887.25,
      "recordedBy": ""
    },
    {
      "id": "PAY-002",
      "claimId": "SF-03",
      "date": "2026-10-29",
      "amount": 21375,
      "ref": "Payment run 29 Oct (after 5% retention)",
      "invoiceId": "",
      "received": null,
      "recordedBy": ""
    }
  ],
  "invoices": [
    {
      "id": "INV-001",
      "claimId": "PC-01",
      "scheduleId": "PS-001",
      "basis": "Scheduled amount",
      "date": "2026-10-21",
      "dueDate": "2026-10-30",
      "issuer": "Sample Builders",
      "issuerAddress": "",
      "gstRegistered": "Yes",
      "gstNumber": "00-000-000 (made up)",
      "buyer": "Sample Developments",
      "buyerGstRegistered": "Yes",
      "buyerIdentifier": "accounts@example.com (made up)",
      "description": "Payment claim PC-01, work from 2026-09-01 to 2026-09-30, 12 Example Street townhouses (made-up sample) (HC-2026-014). Scheduled amount from payment schedule PS-001.",
      "gross": 77700,
      "retention": 3885,
      "exGst": 73815,
      "gst": 11072.25,
      "total": 84887.25,
      "createdBy": "Sample accounts"
    }
  ],
  "retention": [
    {
      "id": "R-001",
      "claimId": "PC-01",
      "orderId": "",
      "party": "Sample Builders",
      "date": "2026-10-29",
      "held": 3885,
      "released": 0,
      "reportGiven": "2026-10-29",
      "releaseDue": ""
    },
    {
      "id": "R-002",
      "claimId": "SF-03",
      "orderId": "PO-002",
      "party": "Sample Framing Co",
      "date": "2026-10-29",
      "held": 1125,
      "released": 0,
      "reportGiven": "2026-07-15",
      "releaseDue": "2027-06-30"
    },
    {
      "id": "R-003",
      "claimId": "",
      "orderId": "PO-001",
      "party": "Sample Sparks",
      "date": "2026-08-29",
      "held": 300,
      "released": 0,
      "reportGiven": "",
      "releaseDue": ""
    }
  ],
  "variations": [
    {
      "id": "V01",
      "rev": "A",
      "description": "Extra blocking to kitchen walls",
      "instruction": "SI-004",
      "noticeDate": "2026-10-02",
      "submitted": "2026-10-02",
      "approved": "2026-10-09",
      "status": "Approved",
      "quoted": 1850,
      "approvedValue": 1850,
      "claimedToDate": null,
      "claimId": "",
      "rfiId": "RFI-001",
      "itemId": "IT-002",
      "diaryId": "D-004"
    },
    {
      "id": "V02",
      "rev": "A",
      "description": "Relocate power points, units 3 to 6",
      "instruction": "Email 12 Oct",
      "noticeDate": "",
      "submitted": "2026-10-13",
      "approved": "",
      "status": "Pending",
      "quoted": 640,
      "approvedValue": null,
      "claimedToDate": null,
      "claimId": "",
      "rfiId": "RFI-002",
      "itemId": "IT-004",
      "diaryId": ""
    }
  ],
  "rfis": [
    {
      "id": "RFI-001",
      "raised": "2026-09-28",
      "raisedBy": "Sample site engineer",
      "to": "Sample Design (engineer)",
      "subject": "Kitchen wall cabinets: what blocking is needed?",
      "itemId": "IT-002",
      "responseDue": "2026-10-02",
      "answered": "2026-10-01",
      "response": "Two rows of 90 x 45 blocking, see SI-004.",
      "variationId": "V01"
    },
    {
      "id": "RFI-002",
      "raised": "2026-10-12",
      "raisedBy": "Sample Sparks",
      "to": "Sample Design (engineer)",
      "subject": "Units 3 to 6: confirm the new power point positions.",
      "itemId": "IT-004",
      "responseDue": "2026-10-19",
      "answered": "",
      "response": "",
      "variationId": "V02"
    },
    {
      "id": "RFI-003",
      "raised": "2026-11-04",
      "raisedBy": "Sample site manager",
      "to": "Sample Design (engineer)",
      "subject": "Cladding: cavity batten spacing at the corners.",
      "itemId": "IT-005",
      "responseDue": "2026-11-13",
      "answered": "",
      "response": "",
      "variationId": ""
    }
  ],
  "orders": [
    {
      "id": "PO-001",
      "type": "Subcontract",
      "party": "Sample Sparks",
      "description": "Electrical rough-in and fit-off",
      "placed": "2026-08-20",
      "committed": 48000,
      "retentionPct": 5,
      "forecastFinal": 49500
    },
    {
      "id": "PO-002",
      "type": "Subcontract",
      "party": "Sample Framing Co",
      "description": "Framing labour",
      "placed": "2026-08-25",
      "committed": 62000,
      "retentionPct": 5,
      "forecastFinal": null
    },
    {
      "id": "PO-003",
      "type": "Order",
      "party": "Sample Timber Supplies",
      "description": "Framing timber",
      "placed": "2026-09-10",
      "committed": 28400,
      "retentionPct": null,
      "forecastFinal": 28400
    }
  ],
  "transmittals": [
    {
      "id": "TR-001",
      "date": "2026-10-01",
      "document": "Payment claim PC-01 with Form 1",
      "docRef": "PC-01 rev 0",
      "to": "Sample Developments",
      "method": "Email",
      "purpose": "Payment claim",
      "relatedId": "PC-01",
      "acknowledged": "2026-10-01"
    },
    {
      "id": "TR-002",
      "date": "2026-10-20",
      "document": "Payment schedule PS-002",
      "docRef": "PS-002 rev 0",
      "to": "Sample Framing Co",
      "method": "Delivered to the person",
      "purpose": "Payment schedule",
      "relatedId": "PS-002",
      "acknowledged": "2026-10-20"
    },
    {
      "id": "TR-003",
      "date": "2026-11-02",
      "document": "Payment claim PC-02 with Form 1",
      "docRef": "PC-02 rev 0",
      "to": "Sample Developments",
      "method": "Delivered to the person",
      "purpose": "Payment claim",
      "relatedId": "PC-02",
      "acknowledged": ""
    }
  ],
  "budget": [
    {
      "id": "B-001",
      "costCode": "01-100",
      "description": "Preliminaries and site set-up",
      "category": "Preliminaries",
      "original": 38000,
      "orderIds": [],
      "forecast": 39500,
      "manager": "Sample project manager",
      "notes": "Scaffold hire runs a month longer"
    },
    {
      "id": "B-002",
      "costCode": "04-100",
      "description": "Framing labour",
      "category": "Subcontract",
      "original": 60000,
      "orderIds": [
        "PO-002"
      ],
      "forecast": null,
      "manager": "Sample QS",
      "notes": ""
    },
    {
      "id": "B-003",
      "costCode": "04-200",
      "description": "Framing timber",
      "category": "Materials",
      "original": 30000,
      "orderIds": [
        "PO-003"
      ],
      "forecast": null,
      "manager": "Sample QS",
      "notes": ""
    },
    {
      "id": "B-004",
      "costCode": "05-200",
      "description": "Electrical",
      "category": "Subcontract",
      "original": 50000,
      "orderIds": [
        "PO-001"
      ],
      "forecast": null,
      "manager": "Sample QS",
      "notes": ""
    },
    {
      "id": "B-005",
      "costCode": "99-000",
      "description": "Contingency",
      "category": "Contingency",
      "original": 15000,
      "orderIds": [],
      "forecast": null,
      "manager": "Sample cost controller",
      "notes": ""
    }
  ],
  "budgetChanges": [
    {
      "id": "BCH-001",
      "date": "2026-08-26",
      "budgetId": "B-002",
      "amount": 2000,
      "fromBudgetId": "B-005",
      "reason": "Framing subcontract let above budget",
      "variationId": "",
      "status": "Approved",
      "approvedBy": "Sample cost controller",
      "approvedOn": "2026-08-26"
    },
    {
      "id": "BCH-002",
      "date": "2026-10-20",
      "budgetId": "B-004",
      "amount": 1500,
      "fromBudgetId": "B-005",
      "reason": "Extra switchboard capacity",
      "variationId": "V02",
      "status": "Proposed",
      "approvedBy": "",
      "approvedOn": ""
    }
  ],
  "cashflow": [
    {
      "id": "CF-001",
      "month": "2026-10",
      "direction": "In (income)",
      "amount": 84000,
      "budgetId": "",
      "orderId": "",
      "basis": "PC-01 less retention"
    },
    {
      "id": "CF-002",
      "month": "2026-10",
      "direction": "Out (costs)",
      "amount": 22000,
      "budgetId": "B-002",
      "orderId": "PO-002",
      "basis": "SF-03 less retention"
    },
    {
      "id": "CF-003",
      "month": "2026-11",
      "direction": "In (income)",
      "amount": 95000,
      "budgetId": "",
      "orderId": "",
      "basis": "PC-02 as claimed, less retention"
    },
    {
      "id": "CF-004",
      "month": "2026-11",
      "direction": "Out (costs)",
      "amount": 41000,
      "budgetId": "B-004",
      "orderId": "PO-001",
      "basis": "SC-07 and timber"
    },
    {
      "id": "CF-005",
      "month": "2026-12",
      "direction": "In (income)",
      "amount": 90000,
      "budgetId": "",
      "orderId": "",
      "basis": "Roofing and cladding progress"
    },
    {
      "id": "CF-006",
      "month": "2026-12",
      "direction": "Out (costs)",
      "amount": 64000,
      "budgetId": "B-002",
      "orderId": "PO-002",
      "basis": "Framing complete, roofing materials"
    }
  ],
  "risks": [
    {
      "id": "RK-001",
      "title": "Roofing iron delivery slips past the programme",
      "category": "Supply chain",
      "cause": "Long lead time on the colour chosen",
      "effect": "Roofing starts late and the building isn't closed in",
      "likelihood": "3 Possible",
      "consequence": "4 Major",
      "treatment": "Order confirmed with two suppliers; delivery checked weekly",
      "owner": "Sample project manager",
      "residualLikelihood": "2 Unlikely",
      "residualConsequence": "3 Moderate",
      "costExposure": 8000,
      "daysExposure": 10,
      "raised": "2026-09-15",
      "reviewDate": "2026-11-10",
      "status": "Open",
      "itemId": "IT-003"
    },
    {
      "id": "RK-002",
      "title": "Wet weather during the slab pours",
      "category": "Site and ground",
      "cause": "Spring rain",
      "effect": "Pours rescheduled, trades stood down",
      "likelihood": "4 Likely",
      "consequence": "2 Minor",
      "treatment": "Pour dates held loosely; covers on site",
      "owner": "Sample site manager",
      "residualLikelihood": "3 Possible",
      "residualConsequence": "2 Minor",
      "costExposure": 2500,
      "daysExposure": 4,
      "raised": "2026-08-20",
      "reviewDate": "2026-10-20",
      "status": "Being treated",
      "itemId": "IT-001"
    },
    {
      "id": "RK-003",
      "title": "Framing subcontractor short of labour",
      "category": "Programme",
      "cause": "Other jobs in the area",
      "effect": "Framing runs past 20 November",
      "likelihood": "2 Unlikely",
      "consequence": "4 Major",
      "treatment": "",
      "owner": "",
      "residualLikelihood": "",
      "residualConsequence": "",
      "costExposure": 12000,
      "daysExposure": 15,
      "raised": "2026-10-05",
      "reviewDate": "2026-11-30",
      "status": "Open",
      "itemId": "IT-002"
    },
    {
      "id": "RK-004",
      "title": "Fall from height at the roof stage",
      "category": "Health and safety",
      "cause": "Work at the roof edge",
      "effect": "Serious harm to a worker",
      "likelihood": "2 Unlikely",
      "consequence": "5 Severe",
      "treatment": "Scaffold with edge protection before roofing starts; daily checks",
      "owner": "Sample site manager",
      "residualLikelihood": "1 Rare",
      "residualConsequence": "5 Severe",
      "costExposure": null,
      "daysExposure": null,
      "raised": "2026-10-01",
      "reviewDate": "2026-11-25",
      "status": "Open",
      "itemId": "IT-003"
    }
  ],
  "bills": [
    {
      "id": "BILL-001",
      "orderId": "PO-002",
      "supplier": "Sample Framing Co",
      "number": "SF-INV-031",
      "date": "2026-10-21",
      "dueDate": "2026-10-29",
      "gstNumber": "00-000-111 (made up)",
      "exGst": 21375,
      "gst": 3206.25,
      "total": 24581.25,
      "claimId": "SF-03",
      "description": "Framing labour, September",
      "status": "Paid",
      "notes": ""
    },
    {
      "id": "BILL-002",
      "orderId": "PO-003",
      "supplier": "Sample Timber Supplies",
      "number": "8812",
      "date": "2026-10-25",
      "dueDate": "2026-11-20",
      "gstNumber": "",
      "exGst": 14200,
      "gst": 2130,
      "total": 16330,
      "claimId": "",
      "description": "Framing timber, second delivery",
      "status": "To check",
      "notes": ""
    }
  ],
  "plant": [
    {
      "id": "PL-001",
      "fleetNo": "EX-07",
      "rego": "",
      "description": "20 t excavator",
      "ownership": "Own fleet",
      "supplier": "",
      "orderId": "",
      "rate": 145,
      "rateUnit": "per hour",
      "minHours": null,
      "onSite": "2026-09-01",
      "offSite": "",
      "notes": ""
    },
    {
      "id": "PL-002",
      "fleetNo": "RL-12",
      "rego": "KXR442",
      "description": "9 t smooth drum roller",
      "ownership": "Hired",
      "supplier": "Sample Plant Hire",
      "orderId": "",
      "rate": 95,
      "rateUnit": "per hour",
      "minHours": 4,
      "onSite": "2026-09-08",
      "offSite": "2026-09-30",
      "notes": ""
    }
  ],
  "plantHours": [
    {
      "id": "PH-001",
      "date": "2026-09-08",
      "plantId": "PL-001",
      "meterStart": 4210,
      "meterEnd": 4217.5,
      "hours": null,
      "idleHours": 0.5,
      "operator": "Sample operator A",
      "itemId": "IT-001",
      "diaryId": "",
      "docketRef": "",
      "notes": ""
    },
    {
      "id": "PH-002",
      "date": "2026-09-08",
      "plantId": "PL-002",
      "meterStart": 880,
      "meterEnd": 883,
      "hours": null,
      "idleHours": 1,
      "operator": "Sample operator B",
      "itemId": "IT-001",
      "diaryId": "",
      "docketRef": "",
      "notes": ""
    },
    {
      "id": "PH-003",
      "date": "2026-09-09",
      "plantId": "PL-001",
      "meterStart": 4217.5,
      "meterEnd": 4225,
      "hours": null,
      "idleHours": 0,
      "operator": "Sample operator A",
      "itemId": "IT-001",
      "diaryId": "",
      "docketRef": "",
      "notes": ""
    },
    {
      "id": "PH-004",
      "date": "2026-09-09",
      "plantId": "PL-002",
      "meterStart": 883,
      "meterEnd": 888.5,
      "hours": null,
      "idleHours": 0,
      "operator": "Sample operator B",
      "itemId": "IT-001",
      "diaryId": "",
      "docketRef": "",
      "notes": ""
    },
    {
      "id": "PH-005",
      "date": "2026-09-10",
      "plantId": "PL-001",
      "meterStart": 4225,
      "meterEnd": 4231,
      "hours": null,
      "idleHours": 1,
      "operator": "Sample operator A",
      "itemId": "IT-001",
      "diaryId": "",
      "docketRef": "",
      "notes": ""
    }
  ],
  "activities": [
    {
      "id": "ACT-0001",
      "code": "A1000",
      "name": "Site establishment",
      "wbs": "Substructure",
      "start": "2026-08-24",
      "finish": "2026-08-28",
      "baselineFinish": "",
      "actualStart": "2026-08-24",
      "actualFinish": "2026-08-28",
      "pct": 100,
      "milestone": "No",
      "critical": "No",
      "itemIds": []
    },
    {
      "id": "ACT-0002",
      "code": "A1010",
      "name": "Foundations and slab",
      "wbs": "Substructure",
      "start": "2026-09-01",
      "finish": "2026-10-02",
      "baselineFinish": "",
      "actualStart": "2026-09-01",
      "actualFinish": "2026-10-02",
      "pct": 100,
      "milestone": "No",
      "critical": "Yes",
      "itemIds": [
        "IT-001"
      ]
    },
    {
      "id": "ACT-0003",
      "code": "A1020",
      "name": "Wall and roof framing",
      "wbs": "Superstructure and envelope",
      "start": "2026-10-05",
      "finish": "2026-11-20",
      "baselineFinish": "",
      "actualStart": "2026-10-05",
      "actualFinish": "",
      "pct": 62,
      "milestone": "No",
      "critical": "Yes",
      "itemIds": [
        "IT-002"
      ]
    },
    {
      "id": "ACT-0004",
      "code": "A1030",
      "name": "Roofing",
      "wbs": "Superstructure and envelope",
      "start": "2026-11-02",
      "finish": "2026-11-27",
      "baselineFinish": "",
      "actualStart": "",
      "actualFinish": "",
      "pct": 0,
      "milestone": "No",
      "critical": "Yes",
      "itemIds": [
        "IT-003"
      ]
    },
    {
      "id": "ACT-0005",
      "code": "A1040",
      "name": "Building closed in",
      "wbs": "Superstructure and envelope",
      "start": "2026-11-27",
      "finish": "2026-11-27",
      "baselineFinish": "",
      "actualStart": "",
      "actualFinish": "",
      "pct": 0,
      "milestone": "Yes",
      "critical": "Yes",
      "itemIds": []
    }
  ],
  "tenders": [
    {
      "id": "T-001",
      "source": "Client or invitation",
      "sourceRef": "Sample Developments RFT 14",
      "client": "Sample Developments",
      "scope": "12 Example Street townhouses, main contract",
      "value": 351600,
      "questionsClose": "2026-07-10",
      "tenderClose": "2026-07-24",
      "siteVisit": "2026-07-08",
      "decision": "Bid",
      "decisionReason": "Repeat client, local, right size",
      "status": "Won",
      "submitted": "2026-07-24",
      "result": "Awarded 14 August",
      "winnerPrice": 351600,
      "lessons": "Early site visit paid off: the access plan won it.",
      "items": [
        {
          "description": "Foundations and slab",
          "unit": "m²",
          "qty": 420,
          "rate": 185
        },
        {
          "description": "Wall and roof framing",
          "unit": "m²",
          "qty": 860,
          "rate": 95
        },
        {
          "description": "Roofing",
          "unit": "m²",
          "qty": 380,
          "rate": 120
        },
        {
          "description": "Electrical rough-in",
          "unit": "each",
          "qty": 6,
          "rate": 9500
        },
        {
          "description": "Cladding",
          "unit": "m²",
          "qty": 640,
          "rate": 140
        }
      ]
    },
    {
      "id": "T-002",
      "source": "GETS",
      "sourceRef": "SAMPLE-REF-0002 (made up)",
      "client": "Sample District Council",
      "scope": "Community hall re-roof and cladding",
      "value": 186000,
      "questionsClose": "2026-11-09",
      "tenderClose": "2026-11-19",
      "siteVisit": "2026-11-05",
      "decision": "Bid",
      "decisionReason": "Fits our roofing crew in December",
      "status": "Preparing",
      "submitted": "",
      "result": "",
      "winnerPrice": null,
      "lessons": "",
      "items": []
    },
    {
      "id": "T-003",
      "source": "Client or invitation",
      "sourceRef": "Email 28 Oct",
      "client": "Sample Schools Trust",
      "scope": "Classroom block fit-out",
      "value": 94000,
      "questionsClose": "",
      "tenderClose": "2026-11-27",
      "siteVisit": "2026-11-12",
      "decision": "Undecided",
      "decisionReason": "",
      "status": "Watching",
      "submitted": "",
      "result": "",
      "winnerPrice": null,
      "lessons": "",
      "items": []
    },
    {
      "id": "T-004",
      "source": "GETS",
      "sourceRef": "SAMPLE-REF-0004 (made up)",
      "client": "Sample Water Services",
      "scope": "Pump station building",
      "value": 420000,
      "questionsClose": "2026-08-14",
      "tenderClose": "2026-08-28",
      "siteVisit": "",
      "decision": "Bid",
      "decisionReason": "New client",
      "status": "Lost",
      "submitted": "2026-08-28",
      "result": "Not awarded to us, notified 30 September",
      "winnerPrice": 398500,
      "lessons": "5% high on the structure: check the steel rates before the next one.",
      "items": []
    },
    {
      "id": "T-005",
      "source": "Other tender site",
      "sourceRef": "SAMPLE-REF-0005 (made up)",
      "client": "Sample Port Company",
      "scope": "Wharf shed extension",
      "value": 1250000,
      "questionsClose": "",
      "tenderClose": "2026-12-04",
      "siteVisit": "",
      "decision": "No bid",
      "decisionReason": "Too big for us this year",
      "status": "Watching",
      "submitted": "",
      "result": "",
      "winnerPrice": null,
      "lessons": "",
      "items": []
    }
  ]
}
