{
 "exported": "2026-11-02T14:22:19.607Z",
 "company": "Hydra Power Solutions",
 "tables": {
  "customers": [
   {
    "id": 1,
    "code": "C-1001",
    "name": "Wollombi Coal Operations Pty Ltd",
    "industry": "Coal mining",
    "abn": "23 145 882 610",
    "terms": "30 days EOM",
    "phone": "02 6574 2200",
    "email": "accounts.payable@wollombicoal.com.au",
    "address": "1240 Wollombi Road",
    "suburb": "Broke",
    "state": "NSW",
    "postcode": "2330",
    "notes": "Pit dewatering and process water. All site work needs a Wollombi induction and a permit to work.",
    "xero_id": "x-cus-wol",
    "created": "2025-01-10"
   },
   {
    "id": 2,
    "code": "C-1002",
    "name": "Lower Hunter Water Services Pty Ltd",
    "industry": "Water infrastructure",
    "abn": "51 602 118 774",
    "terms": "30 days",
    "phone": "02 4932 5100",
    "email": "projects@lhws.com.au",
    "address": "18 Industrial Drive",
    "suburb": "Mayfield",
    "state": "NSW",
    "postcode": "2304",
    "notes": "Contract operator for raw-water and recycled-water assets across the Lower Hunter.",
    "xero_id": "x-cus-lhw",
    "created": "2025-02-11"
   },
   {
    "id": 3,
    "code": "C-1003",
    "name": "Muswellbrook Quarry Products",
    "industry": "Quarrying",
    "abn": "88 004 776 215",
    "terms": "30 days EOM",
    "phone": "02 6543 1880",
    "email": "accounts@mqp.com.au",
    "address": "455 Denman Road",
    "suburb": "Muswellbrook",
    "state": "NSW",
    "postcode": "2333",
    "notes": null,
    "xero_id": "x-cus-mqp",
    "created": "2025-03-12"
   },
   {
    "id": 4,
    "code": "C-1004",
    "name": "Ravensworth Ridge Mining Pty Ltd",
    "industry": "Coal mining",
    "abn": "61 155 330 902",
    "terms": "30 days EOM",
    "phone": "02 6570 9000",
    "email": "ap@ravensworthridge.com.au",
    "address": "Lemington Road",
    "suburb": "Ravensworth",
    "state": "NSW",
    "postcode": "2330",
    "notes": "Prefers progress claims on the 25th. Retention 5% held until practical completion.",
    "xero_id": "x-cus-rrm",
    "created": "2025-04-13"
   },
   {
    "id": 5,
    "code": "C-1005",
    "name": "Kooragang Bulk Handling Pty Ltd",
    "industry": "Port & bulk handling",
    "abn": "47 096 551 820",
    "terms": "30 days EOM",
    "phone": "02 4907 3300",
    "email": "accounts@kbh.com.au",
    "address": "Cormorant Road",
    "suburb": "Kooragang",
    "state": "NSW",
    "postcode": "2304",
    "notes": null,
    "xero_id": "x-cus-kbh",
    "created": "2025-05-14"
   },
   {
    "id": 6,
    "code": "C-1006",
    "name": "Myall Coast Regional Council",
    "industry": "Local government",
    "abn": "73 482 115 090",
    "terms": "30 days",
    "phone": "02 4980 0255",
    "email": "accounts@myallcoast.nsw.gov.au",
    "address": "116 Adelaide Street",
    "suburb": "Raymond Terrace",
    "state": "NSW",
    "postcode": "2324",
    "notes": "Council PO number must be on every invoice.",
    "xero_id": "x-cus-mcc",
    "created": "2025-06-15"
   },
   {
    "id": 7,
    "code": "C-1007",
    "name": "Bowen Basin Dewatering Pty Ltd",
    "industry": "Mining contractor",
    "abn": "29 618 774 330",
    "terms": "30 days EOM",
    "phone": "07 4941 6600",
    "email": "admin@bbdewatering.com.au",
    "address": "8 Mill Street",
    "suburb": "Moranbah",
    "state": "QLD",
    "postcode": "4744",
    "notes": "Panels freighted to Moranbah — allow 4 days by road.",
    "xero_id": "x-cus-bbd",
    "created": "2025-07-16"
   },
   {
    "id": 8,
    "code": "C-1008",
    "name": "Hexham Industrial Maintenance",
    "industry": "Industrial services",
    "abn": "35 141 207 669",
    "terms": "14 days",
    "phone": "02 4964 2210",
    "email": "accounts@hexhamindustrial.com.au",
    "address": "22 Old Maitland Road",
    "suburb": "Hexham",
    "state": "NSW",
    "postcode": "2322",
    "notes": null,
    "xero_id": "x-cus-him",
    "created": "2025-08-17"
   },
   {
    "id": 9,
    "code": "C-1009",
    "name": "Barrington Gold Pty Ltd",
    "industry": "Gold mining",
    "abn": "14 603 228 517",
    "terms": "30 days EOM",
    "phone": "02 6558 4400",
    "email": "ap@barringtongold.com.au",
    "address": "Bowman River Road",
    "suburb": "Gloucester",
    "state": "NSW",
    "postcode": "2422",
    "notes": null,
    "xero_id": "x-cus-bgd",
    "created": "2025-09-18"
   },
   {
    "id": 10,
    "code": "C-1010",
    "name": "Cessnock Civil Contractors",
    "industry": "Civil construction",
    "abn": "92 151 660 418",
    "terms": "30 days",
    "phone": "02 4990 7711",
    "email": "office@cessnockcivil.com.au",
    "address": "14 Maitland Road",
    "suburb": "Cessnock",
    "state": "NSW",
    "postcode": "2325",
    "notes": null,
    "xero_id": "x-cus-ccc",
    "created": "2025-01-10"
   },
   {
    "id": 11,
    "code": "C-1011",
    "name": "Pacific Hydro Tunnelling Pty Ltd",
    "industry": "Tunnelling",
    "abn": "40 637 902 155",
    "terms": "30 days EOM",
    "phone": "02 9002 4100",
    "email": "accounts@pacifichydrotunnelling.com.au",
    "address": "Level 3, 66 Hunter Street",
    "suburb": "Newcastle",
    "state": "NSW",
    "postcode": "2300",
    "notes": "New customer — credit application received 28 Oct.",
    "xero_id": null,
    "created": "2025-02-11"
   },
   {
    "id": 12,
    "code": "C-1012",
    "name": "Singleton Agricultural Water Co-op",
    "industry": "Irrigation",
    "abn": "57 110 482 336",
    "terms": "30 days",
    "phone": "02 6572 8840",
    "email": "office@singletonagwater.com.au",
    "address": "3 Bridgman Road",
    "suburb": "Singleton",
    "state": "NSW",
    "postcode": "2330",
    "notes": null,
    "xero_id": "x-cus-saw",
    "created": "2025-03-12"
   },
   {
    "id": 13,
    "code": "C-1013",
    "name": "Newcastle Waste & Recycling Pty Ltd",
    "industry": "Waste management",
    "abn": "21 604 335 779",
    "terms": "30 days EOM",
    "phone": "02 4908 6200",
    "email": "ap@nwr.com.au",
    "address": "Summerhill Road",
    "suburb": "Wallsend",
    "state": "NSW",
    "postcode": "2287",
    "notes": null,
    "xero_id": "x-cus-nwr",
    "created": "2025-04-13"
   },
   {
    "id": 14,
    "code": "C-1014",
    "name": "Pokolbin Estates Irrigation",
    "industry": "Viticulture",
    "abn": "66 128 403 951",
    "terms": "14 days",
    "phone": "02 4998 7120",
    "email": "accounts@pokolbinestates.com.au",
    "address": "Broke Road",
    "suburb": "Pokolbin",
    "state": "NSW",
    "postcode": "2320",
    "notes": null,
    "xero_id": "x-cus-pei",
    "created": "2025-05-14"
   }
  ],
  "contacts": [
   {
    "id": 1,
    "customer_id": 1,
    "name": "Brett Kingsley",
    "title": "Maintenance Superintendent",
    "email": "brett.kingsley@wollombicoal.com.au",
    "phone": "0428 774 105",
    "is_primary": 1
   },
   {
    "id": 2,
    "customer_id": 1,
    "name": "Leanne Fogarty",
    "title": "Procurement Officer",
    "email": "leanne.fogarty@wollombicoal.com.au",
    "phone": "02 6574 2231",
    "is_primary": 0
   },
   {
    "id": 3,
    "customer_id": 2,
    "name": "Nadia Petrovic",
    "title": "Project Engineer",
    "email": "nadia.petrovic@lhws.com.au",
    "phone": "0433 281 960",
    "is_primary": 1
   },
   {
    "id": 4,
    "customer_id": 2,
    "name": "Graham Ellis",
    "title": "Asset Manager",
    "email": "graham.ellis@lhws.com.au",
    "phone": "02 4932 5114",
    "is_primary": 0
   },
   {
    "id": 5,
    "customer_id": 3,
    "name": "Craig Duffy",
    "title": "Quarry Manager",
    "email": "craig.duffy@mqp.com.au",
    "phone": "0417 663 920",
    "is_primary": 1
   },
   {
    "id": 6,
    "customer_id": 4,
    "name": "Hamish Doyle",
    "title": "Electrical Engineer",
    "email": "hamish.doyle@ravensworthridge.com.au",
    "phone": "0402 991 337",
    "is_primary": 1
   },
   {
    "id": 7,
    "customer_id": 4,
    "name": "Sue-Ellen Marsh",
    "title": "Contracts Administrator",
    "email": "contracts@ravensworthridge.com.au",
    "phone": "02 6570 9012",
    "is_primary": 0
   },
   {
    "id": 8,
    "customer_id": 5,
    "name": "Peter Lam",
    "title": "Electrical Supervisor",
    "email": "peter.lam@kbh.com.au",
    "phone": "0414 220 581",
    "is_primary": 1
   },
   {
    "id": 9,
    "customer_id": 6,
    "name": "Tim Hargreaves",
    "title": "Water & Sewer Engineer",
    "email": "tim.hargreaves@myallcoast.nsw.gov.au",
    "phone": "02 4980 0311",
    "is_primary": 1
   },
   {
    "id": 10,
    "customer_id": 6,
    "name": "Rachel Ng",
    "title": "Procurement",
    "email": "procurement@myallcoast.nsw.gov.au",
    "phone": "02 4980 0200",
    "is_primary": 0
   },
   {
    "id": 11,
    "customer_id": 7,
    "name": "Shane Keogh",
    "title": "Operations Manager",
    "email": "shane@bbdewatering.com.au",
    "phone": "0437 118 042",
    "is_primary": 1
   },
   {
    "id": 12,
    "customer_id": 8,
    "name": "Dean Wallace",
    "title": "Contracts Manager",
    "email": "dean@hexhamindustrial.com.au",
    "phone": "0412 905 776",
    "is_primary": 1
   },
   {
    "id": 13,
    "customer_id": 9,
    "name": "Mark Ferris",
    "title": "Processing Manager",
    "email": "mark.ferris@barringtongold.com.au",
    "phone": "0428 330 184",
    "is_primary": 1
   },
   {
    "id": 14,
    "customer_id": 10,
    "name": "Rob Mancini",
    "title": "Project Manager",
    "email": "rob@cessnockcivil.com.au",
    "phone": "0419 220 377",
    "is_primary": 1
   },
   {
    "id": 15,
    "customer_id": 11,
    "name": "Olivia Carter",
    "title": "Site Engineer",
    "email": "o.carter@pacifichydrotunnelling.com.au",
    "phone": "0450 117 286",
    "is_primary": 1
   },
   {
    "id": 16,
    "customer_id": 12,
    "name": "Geoff Bateman",
    "title": "Scheme Manager",
    "email": "geoff@singletonagwater.com.au",
    "phone": "0427 556 910",
    "is_primary": 1
   },
   {
    "id": 17,
    "customer_id": 13,
    "name": "Priya Desai",
    "title": "Environment Manager",
    "email": "priya.desai@nwr.com.au",
    "phone": "0431 880 214",
    "is_primary": 1
   },
   {
    "id": 18,
    "customer_id": 14,
    "name": "Tom Harrow",
    "title": "Vineyard Manager",
    "email": "tom@pokolbinestates.com.au",
    "phone": "0418 440 663",
    "is_primary": 1
   }
  ],
  "sites": [
   {
    "id": 1,
    "customer_id": 1,
    "name": "Pit 3 dewatering pump station",
    "address": "Broke NSW",
    "access_notes": "Access via Gate 2, Wollombi Rd — escort required"
   },
   {
    "id": 2,
    "customer_id": 1,
    "name": "CHPP process water dam",
    "address": "Broke NSW",
    "access_notes": "Light vehicle only, beacon + whip"
   },
   {
    "id": 3,
    "customer_id": 2,
    "name": "Seaham raw-water booster station",
    "address": "Mayfield NSW",
    "access_notes": "Lot 7 Torrence Rd, Seaham — key from LHWS depot"
   },
   {
    "id": 4,
    "customer_id": 3,
    "name": "Denman Rd quarry — substation 2",
    "address": "Muswellbrook NSW",
    "access_notes": "Sign in at weighbridge"
   },
   {
    "id": 5,
    "customer_id": 4,
    "name": "Pit 4 dewatering",
    "address": "Ravensworth NSW",
    "access_notes": "Mine site — induction + escort"
   },
   {
    "id": 6,
    "customer_id": 5,
    "name": "Berth K4 conveyor substation",
    "address": "Kooragang NSW",
    "access_notes": "Port security pass required"
   },
   {
    "id": 7,
    "customer_id": 6,
    "name": "SPS-14 Medowie Road",
    "address": "Raymond Terrace NSW",
    "access_notes": "Council key K14"
   },
   {
    "id": 8,
    "customer_id": 6,
    "name": "SPS-22 Lemon Tree Passage",
    "address": "Raymond Terrace NSW",
    "access_notes": "Council key K22"
   },
   {
    "id": 9,
    "customer_id": 7,
    "name": "Moranbah yard",
    "address": "Moranbah QLD",
    "access_notes": "Deliver 7am–3pm weekdays"
   },
   {
    "id": 10,
    "customer_id": 8,
    "name": "Hexham wash plant",
    "address": "Hexham NSW",
    "access_notes": "PPE: hi-vis, steel caps, glasses"
   },
   {
    "id": 11,
    "customer_id": 9,
    "name": "Process water plant",
    "address": "Gloucester NSW",
    "access_notes": "Induction 2 hrs — book 48 hrs ahead"
   },
   {
    "id": 12,
    "customer_id": 10,
    "name": "Kurri Kurri sediment dam",
    "address": "Cessnock NSW",
    "access_notes": "Hart Rd entrance — call Rob on arrival"
   },
   {
    "id": 13,
    "customer_id": 11,
    "name": "Northern tunnel portal",
    "address": "Newcastle NSW",
    "access_notes": "TBA"
   },
   {
    "id": 14,
    "customer_id": 12,
    "name": "Hunter River offtake pump station",
    "address": "Singleton NSW",
    "access_notes": "Gate code 4410"
   },
   {
    "id": 15,
    "customer_id": 13,
    "name": "Leachate pond 2",
    "address": "Wallsend NSW",
    "access_notes": "Sign in at gatehouse"
   },
   {
    "id": 16,
    "customer_id": 14,
    "name": "Block 6 irrigation pump shed",
    "address": "Pokolbin NSW",
    "access_notes": "—"
   }
  ],
  "suppliers": [
   {
    "id": 1,
    "code": "S-101",
    "name": "NHP Electrical Engineering Products",
    "category": "Switchgear & motor control",
    "contact": "Newcastle branch — Glenn Hart",
    "email": "newcastle@nhp.com.au",
    "phone": "02 4967 2600",
    "terms": "30 days EOM",
    "lead_days": 3,
    "account_no": "HYD-2201",
    "abn": "84 004 304 812",
    "xero_id": "x-sup-nhp"
   },
   {
    "id": 2,
    "code": "S-102",
    "name": "ABB Australia — Drives",
    "category": "VSDs & soft starters",
    "contact": "Rebecca Lim",
    "email": "drives.orders@au.abb.com",
    "phone": "1800 222 435",
    "terms": "30 days EOM",
    "lead_days": 14,
    "account_no": "AU-77310",
    "abn": "27 000 412 287",
    "xero_id": "x-sup-abb"
   },
   {
    "id": 3,
    "code": "S-103",
    "name": "Grundfos Pumps",
    "category": "Pumps",
    "contact": "Hunter rep — Paul Mercer",
    "email": "orders-au@grundfos.com",
    "phone": "1300 478 637",
    "terms": "30 days EOM",
    "lead_days": 21,
    "account_no": "GF-559012",
    "abn": "67 003 865 340",
    "xero_id": "x-sup-gf"
   },
   {
    "id": 4,
    "code": "S-104",
    "name": "Xylem Water Solutions (Flygt)",
    "category": "Dewatering pumps",
    "contact": "Mining desk — Aaron Kiel",
    "email": "mining.au@xylem.com",
    "phone": "02 4974 1200",
    "terms": "30 days EOM",
    "lead_days": 28,
    "account_no": "XY-30441",
    "abn": "36 004 457 113",
    "xero_id": "x-sup-xy"
   },
   {
    "id": 5,
    "code": "S-105",
    "name": "WEG Australia",
    "category": "Motors",
    "contact": "Internal sales",
    "email": "sales-au@weg.net",
    "phone": "03 9765 4600",
    "terms": "30 days EOM",
    "lead_days": 10,
    "account_no": "WEG-11870",
    "abn": "13 108 920 437",
    "xero_id": "x-sup-weg"
   },
   {
    "id": 6,
    "code": "S-106",
    "name": "Rexel Newcastle",
    "category": "Electrical wholesale & cable",
    "contact": "Trade counter — Mel",
    "email": "newcastle@rexel.com.au",
    "phone": "02 4954 2233",
    "terms": "30 days EOM",
    "lead_days": 2,
    "account_no": "TOM0412",
    "abn": "50 005 108 245",
    "xero_id": "x-sup-rex"
   },
   {
    "id": 7,
    "code": "S-107",
    "name": "Schneider Electric",
    "category": "PLCs, HMIs & automation",
    "contact": "Industry desk",
    "email": "au.orders@se.com",
    "phone": "1300 369 233",
    "terms": "30 days EOM",
    "lead_days": 7,
    "account_no": "SE-882104",
    "abn": "42 004 969 304",
    "xero_id": "x-sup-se"
   },
   {
    "id": 8,
    "code": "S-108",
    "name": "Endress+Hauser Australia",
    "category": "Instrumentation",
    "contact": "Tanya Hollis",
    "email": "info.au@endress.com",
    "phone": "02 8877 6000",
    "terms": "30 days EOM",
    "lead_days": 12,
    "account_no": "EH-220913",
    "abn": "41 001 207 541",
    "xero_id": "x-sup-eh"
   },
   {
    "id": 9,
    "code": "S-109",
    "name": "Hunter Pipe & Valve Supplies",
    "category": "Valves, couplings & gauges",
    "contact": "Darren Pyke",
    "email": "sales@hunterpipevalve.com.au",
    "phone": "02 4964 8810",
    "terms": "30 days",
    "lead_days": 5,
    "account_no": "HPS-118",
    "abn": "72 612 330 904",
    "xero_id": "x-sup-hpv"
   },
   {
    "id": 10,
    "code": "S-110",
    "name": "Rittal Australia",
    "category": "Enclosures",
    "contact": "Customer service",
    "email": "sales@rittal.com.au",
    "phone": "1300 748 825",
    "terms": "30 days EOM",
    "lead_days": 8,
    "account_no": "RIT-40921",
    "abn": "15 004 331 820",
    "xero_id": "x-sup-rit"
   },
   {
    "id": 11,
    "code": "S-111",
    "name": "Iplex Pipelines",
    "category": "PE pipe & fittings",
    "contact": "Beresfield depot",
    "email": "beresfield@iplex.com.au",
    "phone": "02 4964 3100",
    "terms": "30 days EOM",
    "lead_days": 4,
    "account_no": "IPX-77012",
    "abn": "56 079 625 033",
    "xero_id": null
   }
  ],
  "parts": [
   {
    "id": 1,
    "pn": "GF-CR45-3-22",
    "description": "Grundfos CR 45-3 vertical multistage pump c/w 22 kW IE3 motor",
    "category": "Pumps",
    "brand": "Grundfos",
    "supplier_id": 3,
    "supplier_pn": "96123459",
    "cost_cents": 1485000,
    "sell_cents": 1811700,
    "uom": "ea",
    "lead_days": 21,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 2,
    "pn": "GF-CR32-4-15",
    "description": "Grundfos CR 32-4 vertical multistage pump c/w 15 kW IE3 motor",
    "category": "Pumps",
    "brand": "Grundfos",
    "supplier_id": 3,
    "supplier_pn": "96122431",
    "cost_cents": 1120000,
    "sell_cents": 1366400,
    "uom": "ea",
    "lead_days": 21,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 3,
    "pn": "GF-CR20-6-75",
    "description": "Grundfos CR 20-6 vertical multistage pump c/w 7.5 kW motor",
    "category": "Pumps",
    "brand": "Grundfos",
    "supplier_id": 3,
    "supplier_pn": "96500536",
    "cost_cents": 648000,
    "sell_cents": 790560,
    "uom": "ea",
    "lead_days": 21,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 4,
    "pn": "GF-NBG100-200",
    "description": "Grundfos NBG 100-80-200 end-suction pump c/w 37 kW motor",
    "category": "Pumps",
    "brand": "Grundfos",
    "supplier_id": 3,
    "supplier_pn": "98831245",
    "cost_cents": 1690000,
    "sell_cents": 2061800,
    "uom": "ea",
    "lead_days": 21,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 5,
    "pn": "GF-SEG40-15",
    "description": "Grundfos SEG 40.15 grinder pump 1.5 kW",
    "category": "Pumps",
    "brand": "Grundfos",
    "supplier_id": 3,
    "supplier_pn": "96075889",
    "cost_cents": 395000,
    "sell_cents": 481900,
    "uom": "ea",
    "lead_days": 21,
    "on_hand": 2,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 6,
    "pn": "FL-2640-HT",
    "description": "Flygt 2640.180 HT dewatering pump 7.4 kW",
    "category": "Pumps",
    "brand": "Flygt",
    "supplier_id": 4,
    "supplier_pn": "2640.180-HT",
    "cost_cents": 985000,
    "sell_cents": 1201700,
    "uom": "ea",
    "lead_days": 28,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 7,
    "pn": "FL-2670-HT",
    "description": "Flygt 2670.180 HT dewatering pump 22 kW",
    "category": "Pumps",
    "brand": "Flygt",
    "supplier_id": 4,
    "supplier_pn": "2670.180-HT",
    "cost_cents": 2140000,
    "sell_cents": 2610800,
    "uom": "ea",
    "lead_days": 28,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 8,
    "pn": "FL-2201-SH",
    "description": "Flygt 2201.011 SH submersible slurry pump 15 kW",
    "category": "Pumps",
    "brand": "Flygt",
    "supplier_id": 4,
    "supplier_pn": "2201.011-SH",
    "cost_cents": 1860000,
    "sell_cents": 2269200,
    "uom": "ea",
    "lead_days": 28,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 9,
    "pn": "WEG-W22-75",
    "description": "WEG W22 75 kW 4-pole IE3 TEFC motor, 280S/M frame",
    "category": "Motors",
    "brand": "WEG",
    "supplier_id": 5,
    "supplier_pn": "W22-280SM-75",
    "cost_cents": 986000,
    "sell_cents": 1202920,
    "uom": "ea",
    "lead_days": 10,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 10,
    "pn": "WEG-W22-55",
    "description": "WEG W22 55 kW 4-pole IE3 TEFC motor, 250M frame",
    "category": "Motors",
    "brand": "WEG",
    "supplier_id": 5,
    "supplier_pn": "W22-250M-55",
    "cost_cents": 742000,
    "sell_cents": 905240,
    "uom": "ea",
    "lead_days": 10,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 11,
    "pn": "WEG-W22-37",
    "description": "WEG W22 37 kW 4-pole IE3 TEFC motor, 225S/M frame",
    "category": "Motors",
    "brand": "WEG",
    "supplier_id": 5,
    "supplier_pn": "W22-225SM-37",
    "cost_cents": 498000,
    "sell_cents": 607560,
    "uom": "ea",
    "lead_days": 10,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 12,
    "pn": "WEG-W22-22",
    "description": "WEG W22 22 kW 4-pole IE3 TEFC motor, 180L frame",
    "category": "Motors",
    "brand": "WEG",
    "supplier_id": 5,
    "supplier_pn": "W22-180L-22",
    "cost_cents": 296000,
    "sell_cents": 361120,
    "uom": "ea",
    "lead_days": 10,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 13,
    "pn": "WEG-W22-15",
    "description": "WEG W22 15 kW 4-pole IE3 TEFC motor, 160L frame",
    "category": "Motors",
    "brand": "WEG",
    "supplier_id": 5,
    "supplier_pn": "W22-160L-15",
    "cost_cents": 214000,
    "sell_cents": 261080,
    "uom": "ea",
    "lead_days": 10,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 14,
    "pn": "WEG-W22-7.5",
    "description": "WEG W22 7.5 kW 4-pole IE3 TEFC motor, 132M frame",
    "category": "Motors",
    "brand": "WEG",
    "supplier_id": 5,
    "supplier_pn": "W22-132M-7.5",
    "cost_cents": 118000,
    "sell_cents": 143960,
    "uom": "ea",
    "lead_days": 10,
    "on_hand": 2,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 15,
    "pn": "ABB-ACS580-75",
    "description": "ABB ACS580-01-145A-4 VSD 75 kW IP21",
    "category": "VSDs & soft starters",
    "brand": "ABB",
    "supplier_id": 2,
    "supplier_pn": "ACS580-01-145A-4",
    "cost_cents": 942000,
    "sell_cents": 1149240,
    "uom": "ea",
    "lead_days": 14,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 16,
    "pn": "ABB-ACS580-55",
    "description": "ABB ACS580-01-106A-4 VSD 55 kW IP21",
    "category": "VSDs & soft starters",
    "brand": "ABB",
    "supplier_id": 2,
    "supplier_pn": "ACS580-01-106A-4",
    "cost_cents": 735000,
    "sell_cents": 896700,
    "uom": "ea",
    "lead_days": 14,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 17,
    "pn": "ABB-ACS580-37",
    "description": "ABB ACS580-01-073A-4 VSD 37 kW IP21",
    "category": "VSDs & soft starters",
    "brand": "ABB",
    "supplier_id": 2,
    "supplier_pn": "ACS580-01-073A-4",
    "cost_cents": 512000,
    "sell_cents": 624640,
    "uom": "ea",
    "lead_days": 14,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 18,
    "pn": "ABB-ACS580-22",
    "description": "ABB ACS580-01-046A-4 VSD 22 kW IP21",
    "category": "VSDs & soft starters",
    "brand": "ABB",
    "supplier_id": 2,
    "supplier_pn": "ACS580-01-046A-4",
    "cost_cents": 328000,
    "sell_cents": 400160,
    "uom": "ea",
    "lead_days": 14,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 19,
    "pn": "ABB-ACS580-11",
    "description": "ABB ACS580-01-026A-4 VSD 11 kW IP21",
    "category": "VSDs & soft starters",
    "brand": "ABB",
    "supplier_id": 2,
    "supplier_pn": "ACS580-01-026A-4",
    "cost_cents": 196000,
    "sell_cents": 239120,
    "uom": "ea",
    "lead_days": 14,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 20,
    "pn": "ABB-PSTX105",
    "description": "ABB PSTX105-600-70 soft starter 55 kW",
    "category": "VSDs & soft starters",
    "brand": "ABB",
    "supplier_id": 2,
    "supplier_pn": "1SFA898106R7000",
    "cost_cents": 274000,
    "sell_cents": 334280,
    "uom": "ea",
    "lead_days": 14,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 21,
    "pn": "ABB-LR-145",
    "description": "Line reactor 145 A, 3-phase",
    "category": "VSDs & soft starters",
    "brand": "ABB",
    "supplier_id": 2,
    "supplier_pn": "CHK-145",
    "cost_cents": 112000,
    "sell_cents": 136640,
    "uom": "ea",
    "lead_days": 14,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 22,
    "pn": "ABB-LR-073",
    "description": "Line reactor 73 A, 3-phase",
    "category": "VSDs & soft starters",
    "brand": "ABB",
    "supplier_id": 2,
    "supplier_pn": "CHK-073",
    "cost_cents": 69000,
    "sell_cents": 84180,
    "uom": "ea",
    "lead_days": 14,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 23,
    "pn": "ABB-EMC-145",
    "description": "EMC/RFI filter 145 A",
    "category": "VSDs & soft starters",
    "brand": "ABB",
    "supplier_id": 2,
    "supplier_pn": "RFI-145",
    "cost_cents": 88000,
    "sell_cents": 107360,
    "uom": "ea",
    "lead_days": 14,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 24,
    "pn": "ABB-DUDT-46",
    "description": "dU/dt output filter 46 A",
    "category": "VSDs & soft starters",
    "brand": "ABB",
    "supplier_id": 2,
    "supplier_pn": "NOCH0070",
    "cost_cents": 76000,
    "sell_cents": 92720,
    "uom": "ea",
    "lead_days": 14,
    "on_hand": 2,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 25,
    "pn": "SE-TM241",
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "category": "PLCs & controllers",
    "brand": "Schneider",
    "supplier_id": 7,
    "supplier_pn": "TM241CEC24T",
    "cost_cents": 124000,
    "sell_cents": 161200,
    "uom": "ea",
    "lead_days": 7,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 26,
    "pn": "SE-TM3DI16",
    "description": "Modicon TM3 16-channel digital input module",
    "category": "PLCs & controllers",
    "brand": "Schneider",
    "supplier_id": 7,
    "supplier_pn": "TM3DI16",
    "cost_cents": 26800,
    "sell_cents": 34840,
    "uom": "ea",
    "lead_days": 7,
    "on_hand": 3,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 27,
    "pn": "SE-TM3DQ16R",
    "description": "Modicon TM3 16-channel relay output module",
    "category": "PLCs & controllers",
    "brand": "Schneider",
    "supplier_id": 7,
    "supplier_pn": "TM3DQ16R",
    "cost_cents": 31200,
    "sell_cents": 40560,
    "uom": "ea",
    "lead_days": 7,
    "on_hand": 2,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 28,
    "pn": "SE-TM3AI4",
    "description": "Modicon TM3 4-channel analogue input module",
    "category": "PLCs & controllers",
    "brand": "Schneider",
    "supplier_id": 7,
    "supplier_pn": "TM3AI4",
    "cost_cents": 48600,
    "sell_cents": 63180,
    "uom": "ea",
    "lead_days": 7,
    "on_hand": 2,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 29,
    "pn": "SE-TM3AQ2",
    "description": "Modicon TM3 2-channel analogue output module",
    "category": "PLCs & controllers",
    "brand": "Schneider",
    "supplier_id": 7,
    "supplier_pn": "TM3AQ2",
    "cost_cents": 39800,
    "sell_cents": 51740,
    "uom": "ea",
    "lead_days": 7,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 30,
    "pn": "SE-HMIST6-7",
    "description": "Harmony ST6 7\" touch HMI, Ethernet",
    "category": "PLCs & controllers",
    "brand": "Schneider",
    "supplier_id": 7,
    "supplier_pn": "HMIST6500",
    "cost_cents": 158000,
    "sell_cents": 205400,
    "uom": "ea",
    "lead_days": 7,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 31,
    "pn": "SE-PSU-24-10",
    "description": "24 VDC 10 A switch-mode power supply",
    "category": "PLCs & controllers",
    "brand": "Schneider",
    "supplier_id": 7,
    "supplier_pn": "ABL8RPS24100",
    "cost_cents": 24500,
    "sell_cents": 31850,
    "uom": "ea",
    "lead_days": 7,
    "on_hand": 4,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 32,
    "pn": "SE-UPS-24",
    "description": "24 VDC DC-UPS module c/w 7 Ah battery",
    "category": "PLCs & controllers",
    "brand": "Schneider",
    "supplier_id": 7,
    "supplier_pn": "ABL8BBU24200",
    "cost_cents": 64000,
    "sell_cents": 83200,
    "uom": "ea",
    "lead_days": 7,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 33,
    "pn": "SE-ESW-8",
    "description": "Unmanaged industrial Ethernet switch, 8-port",
    "category": "PLCs & controllers",
    "brand": "Schneider",
    "supplier_id": 7,
    "supplier_pn": "TCSESU083FN0",
    "cost_cents": 33000,
    "sell_cents": 42900,
    "uom": "ea",
    "lead_days": 7,
    "on_hand": 2,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 34,
    "pn": "SE-RM17-PF",
    "description": "Phase failure / sequence relay",
    "category": "PLCs & controllers",
    "brand": "Schneider",
    "supplier_id": 7,
    "supplier_pn": "RM17TG20",
    "cost_cents": 16500,
    "sell_cents": 21450,
    "uom": "ea",
    "lead_days": 7,
    "on_hand": 3,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 35,
    "pn": "TEL-RTU-4G",
    "description": "4G telemetry RTU c/w antenna & SIM tray",
    "category": "PLCs & controllers",
    "brand": "Ovarro",
    "supplier_id": 6,
    "supplier_pn": "TBOX-LT2-4G",
    "cost_cents": 285000,
    "sell_cents": 370500,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 36,
    "pn": "EH-PMC21",
    "description": "E+H Cerabar PMC21 pressure transmitter 0–16 bar, 4–20 mA",
    "category": "Instrumentation",
    "brand": "Endress+Hauser",
    "supplier_id": 8,
    "supplier_pn": "PMC21-AA1U2HBWJJA",
    "cost_cents": 68500,
    "sell_cents": 87680,
    "uom": "ea",
    "lead_days": 12,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 37,
    "pn": "EH-FMX21",
    "description": "E+H Waterpilot FMX21 hydrostatic level 0–10 m, 20 m cable",
    "category": "Instrumentation",
    "brand": "Endress+Hauser",
    "supplier_id": 8,
    "supplier_pn": "FMX21-AA121BGB21",
    "cost_cents": 129000,
    "sell_cents": 165120,
    "uom": "ea",
    "lead_days": 12,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 38,
    "pn": "EH-PROMAG-150",
    "description": "E+H Promag W 400 electromagnetic flowmeter DN150",
    "category": "Instrumentation",
    "brand": "Endress+Hauser",
    "supplier_id": 8,
    "supplier_pn": "5W4C1H-AABAZZ",
    "cost_cents": 678000,
    "sell_cents": 867840,
    "uom": "ea",
    "lead_days": 12,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 39,
    "pn": "EH-PROMAG-100",
    "description": "E+H Promag W 400 electromagnetic flowmeter DN100",
    "category": "Instrumentation",
    "brand": "Endress+Hauser",
    "supplier_id": 8,
    "supplier_pn": "5W4C1F-AABAZZ",
    "cost_cents": 542000,
    "sell_cents": 693760,
    "uom": "ea",
    "lead_days": 12,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 40,
    "pn": "EH-FTL-FLOAT",
    "description": "Level float switch, PP, 10 m cable",
    "category": "Instrumentation",
    "brand": "Endress+Hauser",
    "supplier_id": 8,
    "supplier_pn": "FTL31-FLOAT",
    "cost_cents": 24500,
    "sell_cents": 31360,
    "uom": "ea",
    "lead_days": 12,
    "on_hand": 6,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 41,
    "pn": "HPV-PG-100",
    "description": "Pressure gauge 100 mm 0–16 bar glycerine filled",
    "category": "Instrumentation",
    "brand": "WIKA",
    "supplier_id": 9,
    "supplier_pn": "232.50.100",
    "cost_cents": 6800,
    "sell_cents": 8705,
    "uom": "ea",
    "lead_days": 5,
    "on_hand": 8,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 42,
    "pn": "HPV-BFV150-ACT",
    "description": "DN150 lugged butterfly valve c/w electric actuator 240 V",
    "category": "Valves",
    "brand": "Keystone",
    "supplier_id": 9,
    "supplier_pn": "K990-150-EA",
    "cost_cents": 296000,
    "sell_cents": 384800,
    "uom": "ea",
    "lead_days": 5,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 43,
    "pn": "HPV-BFV150",
    "description": "DN150 lugged butterfly valve, gear operated",
    "category": "Valves",
    "brand": "Keystone",
    "supplier_id": 9,
    "supplier_pn": "K990-150-G",
    "cost_cents": 64000,
    "sell_cents": 83200,
    "uom": "ea",
    "lead_days": 5,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 44,
    "pn": "HPV-BFV100",
    "description": "DN100 lugged butterfly valve, gear operated",
    "category": "Valves",
    "brand": "Keystone",
    "supplier_id": 9,
    "supplier_pn": "K990-100-G",
    "cost_cents": 45500,
    "sell_cents": 59150,
    "uom": "ea",
    "lead_days": 5,
    "on_hand": 2,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 45,
    "pn": "HPV-CHK150",
    "description": "DN150 swing check valve, ductile iron",
    "category": "Valves",
    "brand": "AVK",
    "supplier_id": 9,
    "supplier_pn": "641-150",
    "cost_cents": 112000,
    "sell_cents": 145600,
    "uom": "ea",
    "lead_days": 5,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 46,
    "pn": "HPV-CHK100",
    "description": "DN100 swing check valve, ductile iron",
    "category": "Valves",
    "brand": "AVK",
    "supplier_id": 9,
    "supplier_pn": "641-100",
    "cost_cents": 69000,
    "sell_cents": 89700,
    "uom": "ea",
    "lead_days": 5,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 47,
    "pn": "HPV-GATE150",
    "description": "DN150 resilient seat gate valve",
    "category": "Valves",
    "brand": "AVK",
    "supplier_id": 9,
    "supplier_pn": "55-150",
    "cost_cents": 138000,
    "sell_cents": 179400,
    "uom": "ea",
    "lead_days": 5,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 48,
    "pn": "HPV-ARV50",
    "description": "DN50 combination air release valve",
    "category": "Valves",
    "brand": "Vent-O-Mat",
    "supplier_id": 9,
    "supplier_pn": "RBX-50",
    "cost_cents": 52000,
    "sell_cents": 67600,
    "uom": "ea",
    "lead_days": 5,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 49,
    "pn": "HPV-VIC77-150",
    "description": "Victaulic Style 77 flexible coupling DN150",
    "category": "Valves",
    "brand": "Victaulic",
    "supplier_id": 9,
    "supplier_pn": "77-150",
    "cost_cents": 11800,
    "sell_cents": 15340,
    "uom": "ea",
    "lead_days": 5,
    "on_hand": 10,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 50,
    "pn": "HPV-VIC77-100",
    "description": "Victaulic Style 77 flexible coupling DN100",
    "category": "Valves",
    "brand": "Victaulic",
    "supplier_id": 9,
    "supplier_pn": "77-100",
    "cost_cents": 7600,
    "sell_cents": 9880,
    "uom": "ea",
    "lead_days": 5,
    "on_hand": 12,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 51,
    "pn": "NHP-MCCB-400",
    "description": "NHP 400 A 3P main switch-disconnector, 50 kA",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "DPX3-400-SW",
    "cost_cents": 184000,
    "sell_cents": 248400,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 52,
    "pn": "NHP-MCCB-250",
    "description": "NHP 250 A 3P MCCB, 36 kA, electronic trip",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "DPX3-250-36",
    "cost_cents": 98000,
    "sell_cents": 132300,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 53,
    "pn": "NHP-MCCB-160",
    "description": "NHP 160 A 3P MCCB, 36 kA",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "DPX3-160-36",
    "cost_cents": 64000,
    "sell_cents": 86400,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 54,
    "pn": "NHP-MCCB-100",
    "description": "NHP 100 A 3P MCCB, 25 kA",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "DPX3-100-25",
    "cost_cents": 42000,
    "sell_cents": 56700,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 2,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 55,
    "pn": "NHP-MPCB-32",
    "description": "Motor protection circuit breaker 25–32 A",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "MS132-32",
    "cost_cents": 19600,
    "sell_cents": 26460,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 4,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 56,
    "pn": "NHP-CTR-115",
    "description": "AC3 115 A contactor, 240 VAC coil",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "CA7-115",
    "cost_cents": 61000,
    "sell_cents": 82350,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 57,
    "pn": "NHP-CTR-40",
    "description": "AC3 40 A contactor, 24 VDC coil",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "CA7-40",
    "cost_cents": 16800,
    "sell_cents": 22680,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 5,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 58,
    "pn": "NHP-SPD-3P",
    "description": "Surge protection device 3P+N, 40 kA",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "SPD-T2-40",
    "cost_cents": 52000,
    "sell_cents": 70200,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 59,
    "pn": "NHP-MCB-6",
    "description": "MCB 1P 6 A C-curve, 6 kA",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "DTCB6106C",
    "cost_cents": 1800,
    "sell_cents": 2430,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 60,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 60,
    "pn": "NHP-MCB3P-32",
    "description": "MCB 3P 32 A C-curve, 10 kA",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "DTCB10332C",
    "cost_cents": 7400,
    "sell_cents": 9990,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 8,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 61,
    "pn": "NHP-ESTOP",
    "description": "E-stop 40 mm mushroom, twist release, c/w NC block",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "XB5AS8445",
    "cost_cents": 6400,
    "sell_cents": 8640,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 10,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 62,
    "pn": "NHP-SEL-HOA",
    "description": "Hand-Off-Auto 3-position selector switch",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "XB5AD33",
    "cost_cents": 5200,
    "sell_cents": 7020,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 14,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 63,
    "pn": "NHP-PL-LED",
    "description": "LED pilot light 24 V (red / green / amber)",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "XB5AVB",
    "cost_cents": 2600,
    "sell_cents": 3510,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 40,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 64,
    "pn": "NHP-AMM-96",
    "description": "Analogue ammeter 96 mm c/w CT",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "AM96-CT",
    "cost_cents": 11800,
    "sell_cents": 15930,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 6,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 65,
    "pn": "NHP-RLY-24",
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "category": "Switchgear & protection",
    "brand": "NHP",
    "supplier_id": 1,
    "supplier_pn": "RXM4AB2BD",
    "cost_cents": 3400,
    "sell_cents": 4590,
    "uom": "ea",
    "lead_days": 3,
    "on_hand": 48,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 66,
    "pn": "RX-DIN-35",
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "category": "Electrical components",
    "brand": "Phoenix",
    "supplier_id": 6,
    "supplier_pn": "NS35/7.5",
    "cost_cents": 950,
    "sell_cents": 1378,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 30,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 67,
    "pn": "RX-TB-4",
    "description": "Terminal block 4 mm², box of 50",
    "category": "Electrical components",
    "brand": "Phoenix",
    "supplier_id": 6,
    "supplier_pn": "UT4-50",
    "cost_cents": 6200,
    "sell_cents": 8990,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 12,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 68,
    "pn": "RX-DUCT-60",
    "description": "Slotted cable duct 60 × 60, 2 m",
    "category": "Electrical components",
    "brand": "Clipsal",
    "supplier_id": 6,
    "supplier_pn": "D6060",
    "cost_cents": 1400,
    "sell_cents": 2030,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 40,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 69,
    "pn": "RX-FERR",
    "description": "Bootlace ferrule kit, assorted",
    "category": "Electrical components",
    "brand": "Phoenix",
    "supplier_id": 6,
    "supplier_pn": "AI-KIT",
    "cost_cents": 4800,
    "sell_cents": 6960,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 6,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 70,
    "pn": "RX-LIGHT",
    "description": "Panel LED light c/w door switch",
    "category": "Electrical components",
    "brand": "Rittal",
    "supplier_id": 6,
    "supplier_pn": "SZ2500",
    "cost_cents": 8600,
    "sell_cents": 12470,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 4,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 71,
    "pn": "RX-FAN-150",
    "description": "Filter fan 230 V 150 m³/h c/w exhaust filter",
    "category": "Electrical components",
    "brand": "Rittal",
    "supplier_id": 6,
    "supplier_pn": "SK3243",
    "cost_cents": 24500,
    "sell_cents": 35525,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 3,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 72,
    "pn": "RX-THERMO",
    "description": "Enclosure thermostat / hygrostat",
    "category": "Electrical components",
    "brand": "Rittal",
    "supplier_id": 6,
    "supplier_pn": "SK3118",
    "cost_cents": 7200,
    "sell_cents": 10440,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 4,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 73,
    "pn": "RX-HEATER",
    "description": "Anti-condensation heater 100 W",
    "category": "Electrical components",
    "brand": "Rittal",
    "supplier_id": 6,
    "supplier_pn": "SK3105",
    "cost_cents": 9800,
    "sell_cents": 14210,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 3,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 74,
    "pn": "RX-EARTH12",
    "description": "Copper earth bar, 12-way",
    "category": "Electrical components",
    "brand": "Clipsal",
    "supplier_id": 6,
    "supplier_pn": "EB12",
    "cost_cents": 4400,
    "sell_cents": 6380,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 8,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 75,
    "pn": "RX-LUG-95",
    "description": "Compression lug 95 mm², pack of 10",
    "category": "Electrical components",
    "brand": "Burndy",
    "supplier_id": 6,
    "supplier_pn": "YA28-L10",
    "cost_cents": 5800,
    "sell_cents": 8410,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 5,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 76,
    "pn": "RIT-VX-1812",
    "description": "Rittal VX25 freestanding 1800H × 1200W × 500D, 2-door",
    "category": "Enclosures",
    "brand": "Rittal",
    "supplier_id": 10,
    "supplier_pn": "8125.000",
    "cost_cents": 398000,
    "sell_cents": 517400,
    "uom": "ea",
    "lead_days": 8,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 77,
    "pn": "RIT-VX-2008",
    "description": "Rittal VX25 freestanding 2000H × 800W × 600D",
    "category": "Enclosures",
    "brand": "Rittal",
    "supplier_id": 10,
    "supplier_pn": "8806.000",
    "cost_cents": 264000,
    "sell_cents": 343200,
    "uom": "ea",
    "lead_days": 8,
    "on_hand": 1,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 78,
    "pn": "RIT-PLINTH-1200",
    "description": "VX25 plinth 100 mm, 1200 W",
    "category": "Enclosures",
    "brand": "Rittal",
    "supplier_id": 10,
    "supplier_pn": "8602.120",
    "cost_cents": 42000,
    "sell_cents": 54600,
    "uom": "ea",
    "lead_days": 8,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 79,
    "pn": "RIT-AX-760",
    "description": "Rittal AX wall-mount enclosure 760 × 760 × 300",
    "category": "Enclosures",
    "brand": "Rittal",
    "supplier_id": 10,
    "supplier_pn": "1280.500",
    "cost_cents": 69000,
    "sell_cents": 89700,
    "uom": "ea",
    "lead_days": 8,
    "on_hand": 2,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 80,
    "pn": "RIT-SS316-1210",
    "description": "316 stainless enclosure 1200 × 1000 × 400, IP66",
    "category": "Enclosures",
    "brand": "Rittal",
    "supplier_id": 10,
    "supplier_pn": "1009.600-316",
    "cost_cents": 325000,
    "sell_cents": 422500,
    "uom": "ea",
    "lead_days": 8,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 81,
    "pn": "RIT-CANOPY",
    "description": "Outdoor sun canopy, 316 stainless",
    "category": "Enclosures",
    "brand": "Rittal",
    "supplier_id": 10,
    "supplier_pn": "2500.316",
    "cost_cents": 185000,
    "sell_cents": 240500,
    "uom": "ea",
    "lead_days": 8,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 82,
    "pn": "CBL-95-4C",
    "description": "Cable 95 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "category": "Cable & glands",
    "brand": "Prysmian",
    "supplier_id": 6,
    "supplier_pn": "95-4CE-X90",
    "cost_cents": 7800,
    "sell_cents": 10530,
    "uom": "m",
    "lead_days": 2,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 83,
    "pn": "CBL-35-4C",
    "description": "Cable 35 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "category": "Cable & glands",
    "brand": "Prysmian",
    "supplier_id": 6,
    "supplier_pn": "35-4CE-X90",
    "cost_cents": 3400,
    "sell_cents": 4590,
    "uom": "m",
    "lead_days": 2,
    "on_hand": 25,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 84,
    "pn": "CBL-16-4C",
    "description": "Cable 16 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "category": "Cable & glands",
    "brand": "Prysmian",
    "supplier_id": 6,
    "supplier_pn": "16-4CE-X90",
    "cost_cents": 1800,
    "sell_cents": 2430,
    "uom": "m",
    "lead_days": 2,
    "on_hand": 40,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 85,
    "pn": "CBL-CTRL-12C",
    "description": "Control cable 12C 1.5 mm² screened",
    "category": "Cable & glands",
    "brand": "Prysmian",
    "supplier_id": 6,
    "supplier_pn": "12C15-SCR",
    "cost_cents": 780,
    "sell_cents": 1053,
    "uom": "m",
    "lead_days": 2,
    "on_hand": 120,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 86,
    "pn": "CBL-INST-1PR",
    "description": "Instrument cable 1-pair 0.75 mm² screened",
    "category": "Cable & glands",
    "brand": "Prysmian",
    "supplier_id": 6,
    "supplier_pn": "1PR075-OS",
    "cost_cents": 290,
    "sell_cents": 392,
    "uom": "m",
    "lead_days": 2,
    "on_hand": 300,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 87,
    "pn": "CBL-GLAND-M63",
    "description": "Cable gland kit M63, brass, c/w locknut",
    "category": "Cable & glands",
    "brand": "CMP",
    "supplier_id": 6,
    "supplier_pn": "A2F-63",
    "cost_cents": 3800,
    "sell_cents": 5130,
    "uom": "ea",
    "lead_days": 2,
    "on_hand": 18,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 88,
    "pn": "PE-160-PN16",
    "description": "PE100 pipe DN160 PN16 SDR11",
    "category": "Pipe & fittings",
    "brand": "Iplex",
    "supplier_id": 11,
    "supplier_pn": "PE160-11",
    "cost_cents": 4600,
    "sell_cents": 5980,
    "uom": "m",
    "lead_days": 4,
    "on_hand": 0,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 89,
    "pn": "PE-110-PN16",
    "description": "PE100 pipe DN110 PN16 SDR11",
    "category": "Pipe & fittings",
    "brand": "Iplex",
    "supplier_id": 11,
    "supplier_pn": "PE110-11",
    "cost_cents": 2400,
    "sell_cents": 3120,
    "uom": "m",
    "lead_days": 4,
    "on_hand": 36,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 90,
    "pn": "PE-EF-160",
    "description": "Electrofusion coupler DN160",
    "category": "Pipe & fittings",
    "brand": "Iplex",
    "supplier_id": 11,
    "supplier_pn": "EFC160",
    "cost_cents": 9600,
    "sell_cents": 12480,
    "uom": "ea",
    "lead_days": 4,
    "on_hand": 4,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 91,
    "pn": "PE-STUB-160",
    "description": "Stub flange & backing ring DN160",
    "category": "Pipe & fittings",
    "brand": "Iplex",
    "supplier_id": 11,
    "supplier_pn": "SFB160",
    "cost_cents": 14800,
    "sell_cents": 19240,
    "uom": "ea",
    "lead_days": 4,
    "on_hand": 2,
    "active": 1,
    "updated": "2026-10-01"
   },
   {
    "id": 92,
    "pn": "PE-STUB-110",
    "description": "Stub flange & backing ring DN110",
    "category": "Pipe & fittings",
    "brand": "Iplex",
    "supplier_id": 11,
    "supplier_pn": "SFB110",
    "cost_cents": 9200,
    "sell_cents": 11960,
    "uom": "ea",
    "lead_days": 4,
    "on_hand": 6,
    "active": 1,
    "updated": "2026-10-01"
   }
  ],
  "assemblies": [
   {
    "id": 1,
    "code": "ASM-VSD75",
    "name": "VSD pump starter — 75 kW",
    "description": "ACS580 75 kW drive with line reactor, EMC filter, MCCB, metering and HOA control",
    "labour_hours": 14,
    "labour_kind": "Workshop labour"
   },
   {
    "id": 2,
    "code": "ASM-VSD37",
    "name": "VSD pump starter — 37 kW",
    "description": "ACS580 37 kW drive with line reactor, MCCB, metering and HOA control",
    "labour_hours": 11,
    "labour_kind": "Workshop labour"
   },
   {
    "id": 3,
    "code": "ASM-VSD22",
    "name": "VSD pump starter — 22 kW",
    "description": "ACS580 22 kW drive with MCCB, metering and HOA control",
    "labour_hours": 9,
    "labour_kind": "Workshop labour"
   },
   {
    "id": 4,
    "code": "ASM-DOL",
    "name": "DOL pump starter — up to 15 kW",
    "description": "MPCB + contactor direct-on-line starter with HOA and indication",
    "labour_hours": 5,
    "labour_kind": "Workshop labour"
   },
   {
    "id": 5,
    "code": "ASM-PLC",
    "name": "PLC & HMI control section",
    "description": "M241 PLC with DI/DO/AI/AO, 7\" HMI, 24 V supply with DC-UPS and Ethernet switch",
    "labour_hours": 18,
    "labour_kind": "Workshop labour"
   },
   {
    "id": 6,
    "code": "ASM-ENC2",
    "name": "Enclosure kit — 2-bay freestanding",
    "description": "VX25 1800 × 1200 on plinth, filter fans, light, thermostat, heater, earth bar and glands",
    "labour_hours": 6,
    "labour_kind": "Workshop labour"
   },
   {
    "id": 7,
    "code": "ASM-INST",
    "name": "Pump station instrumentation kit",
    "description": "Discharge pressure ×2, wet-well level, DN150 magflow, high/low floats and gauges",
    "labour_hours": 4,
    "labour_kind": "Workshop labour"
   },
   {
    "id": 8,
    "code": "ASM-VALVE150",
    "name": "DN150 discharge valve set",
    "description": "Isolation butterfly, swing check, gate valve, couplings and gauge for one pump",
    "labour_hours": 6,
    "labour_kind": "Site labour"
   }
  ],
  "assembly_lines": [
   {
    "id": 1,
    "assembly_id": 1,
    "part_id": 15,
    "qty": 1
   },
   {
    "id": 2,
    "assembly_id": 1,
    "part_id": 21,
    "qty": 1
   },
   {
    "id": 3,
    "assembly_id": 1,
    "part_id": 23,
    "qty": 1
   },
   {
    "id": 4,
    "assembly_id": 1,
    "part_id": 52,
    "qty": 1
   },
   {
    "id": 5,
    "assembly_id": 1,
    "part_id": 64,
    "qty": 1
   },
   {
    "id": 6,
    "assembly_id": 1,
    "part_id": 62,
    "qty": 1
   },
   {
    "id": 7,
    "assembly_id": 1,
    "part_id": 63,
    "qty": 3
   },
   {
    "id": 8,
    "assembly_id": 1,
    "part_id": 65,
    "qty": 4
   },
   {
    "id": 9,
    "assembly_id": 1,
    "part_id": 67,
    "qty": 1
   },
   {
    "id": 10,
    "assembly_id": 1,
    "part_id": 68,
    "qty": 4
   },
   {
    "id": 11,
    "assembly_id": 1,
    "part_id": 66,
    "qty": 2
   },
   {
    "id": 12,
    "assembly_id": 1,
    "part_id": 75,
    "qty": 1
   },
   {
    "id": 13,
    "assembly_id": 2,
    "part_id": 17,
    "qty": 1
   },
   {
    "id": 14,
    "assembly_id": 2,
    "part_id": 22,
    "qty": 1
   },
   {
    "id": 15,
    "assembly_id": 2,
    "part_id": 53,
    "qty": 1
   },
   {
    "id": 16,
    "assembly_id": 2,
    "part_id": 64,
    "qty": 1
   },
   {
    "id": 17,
    "assembly_id": 2,
    "part_id": 62,
    "qty": 1
   },
   {
    "id": 18,
    "assembly_id": 2,
    "part_id": 63,
    "qty": 3
   },
   {
    "id": 19,
    "assembly_id": 2,
    "part_id": 65,
    "qty": 4
   },
   {
    "id": 20,
    "assembly_id": 2,
    "part_id": 67,
    "qty": 1
   },
   {
    "id": 21,
    "assembly_id": 2,
    "part_id": 68,
    "qty": 3
   },
   {
    "id": 22,
    "assembly_id": 2,
    "part_id": 66,
    "qty": 2
   },
   {
    "id": 23,
    "assembly_id": 3,
    "part_id": 18,
    "qty": 1
   },
   {
    "id": 24,
    "assembly_id": 3,
    "part_id": 54,
    "qty": 1
   },
   {
    "id": 25,
    "assembly_id": 3,
    "part_id": 64,
    "qty": 1
   },
   {
    "id": 26,
    "assembly_id": 3,
    "part_id": 62,
    "qty": 1
   },
   {
    "id": 27,
    "assembly_id": 3,
    "part_id": 63,
    "qty": 3
   },
   {
    "id": 28,
    "assembly_id": 3,
    "part_id": 65,
    "qty": 3
   },
   {
    "id": 29,
    "assembly_id": 3,
    "part_id": 67,
    "qty": 1
   },
   {
    "id": 30,
    "assembly_id": 3,
    "part_id": 68,
    "qty": 2
   },
   {
    "id": 31,
    "assembly_id": 3,
    "part_id": 66,
    "qty": 1
   },
   {
    "id": 32,
    "assembly_id": 4,
    "part_id": 55,
    "qty": 1
   },
   {
    "id": 33,
    "assembly_id": 4,
    "part_id": 57,
    "qty": 1
   },
   {
    "id": 34,
    "assembly_id": 4,
    "part_id": 62,
    "qty": 1
   },
   {
    "id": 35,
    "assembly_id": 4,
    "part_id": 63,
    "qty": 3
   },
   {
    "id": 36,
    "assembly_id": 4,
    "part_id": 65,
    "qty": 2
   },
   {
    "id": 37,
    "assembly_id": 4,
    "part_id": 67,
    "qty": 1
   },
   {
    "id": 38,
    "assembly_id": 4,
    "part_id": 66,
    "qty": 1
   },
   {
    "id": 39,
    "assembly_id": 5,
    "part_id": 25,
    "qty": 1
   },
   {
    "id": 40,
    "assembly_id": 5,
    "part_id": 26,
    "qty": 2
   },
   {
    "id": 41,
    "assembly_id": 5,
    "part_id": 27,
    "qty": 1
   },
   {
    "id": 42,
    "assembly_id": 5,
    "part_id": 28,
    "qty": 1
   },
   {
    "id": 43,
    "assembly_id": 5,
    "part_id": 29,
    "qty": 1
   },
   {
    "id": 44,
    "assembly_id": 5,
    "part_id": 30,
    "qty": 1
   },
   {
    "id": 45,
    "assembly_id": 5,
    "part_id": 31,
    "qty": 1
   },
   {
    "id": 46,
    "assembly_id": 5,
    "part_id": 32,
    "qty": 1
   },
   {
    "id": 47,
    "assembly_id": 5,
    "part_id": 33,
    "qty": 1
   },
   {
    "id": 48,
    "assembly_id": 5,
    "part_id": 69,
    "qty": 1
   },
   {
    "id": 49,
    "assembly_id": 5,
    "part_id": 59,
    "qty": 6
   },
   {
    "id": 50,
    "assembly_id": 5,
    "part_id": 65,
    "qty": 6
   },
   {
    "id": 51,
    "assembly_id": 6,
    "part_id": 76,
    "qty": 1
   },
   {
    "id": 52,
    "assembly_id": 6,
    "part_id": 78,
    "qty": 1
   },
   {
    "id": 53,
    "assembly_id": 6,
    "part_id": 71,
    "qty": 2
   },
   {
    "id": 54,
    "assembly_id": 6,
    "part_id": 70,
    "qty": 1
   },
   {
    "id": 55,
    "assembly_id": 6,
    "part_id": 72,
    "qty": 1
   },
   {
    "id": 56,
    "assembly_id": 6,
    "part_id": 73,
    "qty": 1
   },
   {
    "id": 57,
    "assembly_id": 6,
    "part_id": 74,
    "qty": 1
   },
   {
    "id": 58,
    "assembly_id": 6,
    "part_id": 87,
    "qty": 6
   },
   {
    "id": 59,
    "assembly_id": 7,
    "part_id": 36,
    "qty": 2
   },
   {
    "id": 60,
    "assembly_id": 7,
    "part_id": 37,
    "qty": 1
   },
   {
    "id": 61,
    "assembly_id": 7,
    "part_id": 38,
    "qty": 1
   },
   {
    "id": 62,
    "assembly_id": 7,
    "part_id": 40,
    "qty": 2
   },
   {
    "id": 63,
    "assembly_id": 7,
    "part_id": 41,
    "qty": 3
   },
   {
    "id": 64,
    "assembly_id": 8,
    "part_id": 43,
    "qty": 1
   },
   {
    "id": 65,
    "assembly_id": 8,
    "part_id": 45,
    "qty": 1
   },
   {
    "id": 66,
    "assembly_id": 8,
    "part_id": 47,
    "qty": 1
   },
   {
    "id": 67,
    "assembly_id": 8,
    "part_id": 49,
    "qty": 4
   },
   {
    "id": 68,
    "assembly_id": 8,
    "part_id": 41,
    "qty": 1
   }
  ],
  "enquiries": [
   {
    "id": 1,
    "ref": "ENQ-1401",
    "customer_id": 1,
    "company": "Wollombi Coal Operations Pty Ltd",
    "contact": "Brett Kingsley",
    "email": "brett.kingsley@wollombicoal.com.au",
    "phone": "0428 774 105",
    "source": "Repeat customer",
    "stage": "Won",
    "interest": "Dual 75 kW VSD pump-control panel — Pit 3 dewatering",
    "site": "Pit 3 dewatering pump station",
    "value_cents": 8062422,
    "owner": "Daniel Reeves",
    "received": "2026-08-27",
    "follow_up": null,
    "notes": null,
    "quote_id": 1,
    "lost_reason": null
   },
   {
    "id": 2,
    "ref": "ENQ-1402",
    "customer_id": 2,
    "company": "Lower Hunter Water Services Pty Ltd",
    "contact": "Nadia Petrovic",
    "email": "nadia.petrovic@lhws.com.au",
    "phone": "0433 281 960",
    "source": "Tender portal",
    "stage": "Won",
    "interest": "Raw-water booster pumping system — supply & install",
    "site": "Seaham raw-water booster station",
    "value_cents": 21684594,
    "owner": "Daniel Reeves",
    "received": "2026-09-24",
    "follow_up": null,
    "notes": null,
    "quote_id": 2,
    "lost_reason": null
   },
   {
    "id": 3,
    "ref": "ENQ-1403",
    "customer_id": 9,
    "company": "Barrington Gold Pty Ltd",
    "contact": "Mark Ferris",
    "email": "mark.ferris@barringtongold.com.au",
    "phone": "0428 330 184",
    "source": "Referral",
    "stage": "Won",
    "interest": "Process-water pressure boosting station",
    "site": "Process water plant",
    "value_cents": 8632886,
    "owner": "Daniel Reeves",
    "received": "2026-05-16",
    "follow_up": null,
    "notes": null,
    "quote_id": 3,
    "lost_reason": null
   },
   {
    "id": 4,
    "ref": "ENQ-1404",
    "customer_id": 4,
    "company": "Ravensworth Ridge Mining Pty Ltd",
    "contact": "Hamish Doyle",
    "email": "hamish.doyle@ravensworthridge.com.au",
    "phone": "0402 991 337",
    "source": "Repeat customer",
    "stage": "Won",
    "interest": "Portable switchroom — Pit 4 dewatering",
    "site": "Pit 4 dewatering",
    "value_cents": 20378354,
    "owner": "Daniel Reeves",
    "received": "2026-06-18",
    "follow_up": null,
    "notes": null,
    "quote_id": 4,
    "lost_reason": null
   },
   {
    "id": 5,
    "ref": "ENQ-1405",
    "customer_id": 7,
    "company": "Bowen Basin Dewatering Pty Ltd",
    "contact": "Shane Keogh",
    "email": "shane@bbdewatering.com.au",
    "phone": "0437 118 042",
    "source": "Phone",
    "stage": "Won",
    "interest": "4 × dewatering pumpset control panels (Flygt 2670)",
    "site": "Moranbah yard",
    "value_cents": 4480632,
    "owner": "Sam Whitaker",
    "received": "2026-08-12",
    "follow_up": null,
    "notes": null,
    "quote_id": 5,
    "lost_reason": null
   },
   {
    "id": 6,
    "ref": "ENQ-1406",
    "customer_id": 5,
    "company": "Kooragang Bulk Handling Pty Ltd",
    "contact": "Peter Lam",
    "email": "peter.lam@kbh.com.au",
    "phone": "0414 220 581",
    "source": "Email",
    "stage": "Won",
    "interest": "Conveyor starter upgrade — CV-12 / CV-14",
    "site": "Berth K4 conveyor substation",
    "value_cents": 6239060,
    "owner": "Daniel Reeves",
    "received": "2026-08-19",
    "follow_up": null,
    "notes": null,
    "quote_id": 6,
    "lost_reason": null
   },
   {
    "id": 7,
    "ref": "ENQ-1407",
    "customer_id": 6,
    "company": "Myall Coast Regional Council",
    "contact": "Tim Hargreaves",
    "email": "tim.hargreaves@myallcoast.nsw.gov.au",
    "phone": "02 4980 0311",
    "source": "Tender portal",
    "stage": "Won",
    "interest": "SPS-14 sewage pump station control upgrade",
    "site": "SPS-14 Medowie Road",
    "value_cents": 3433050,
    "owner": "Sam Whitaker",
    "received": "2026-08-20",
    "follow_up": null,
    "notes": null,
    "quote_id": 7,
    "lost_reason": null
   },
   {
    "id": 8,
    "ref": "ENQ-1408",
    "customer_id": 3,
    "company": "Muswellbrook Quarry Products",
    "contact": "Craig Duffy",
    "email": "craig.duffy@mqp.com.au",
    "phone": "0417 663 920",
    "source": "Phone",
    "stage": "Won",
    "interest": "1.5 MVA transformer overhaul & oil sampling — Sub 2",
    "site": "Denman Rd quarry — substation 2",
    "value_cents": 3275000,
    "owner": "Daniel Reeves",
    "received": "2026-08-29",
    "follow_up": null,
    "notes": null,
    "quote_id": 8,
    "lost_reason": null
   },
   {
    "id": 9,
    "ref": "ENQ-1409",
    "customer_id": 8,
    "company": "Hexham Industrial Maintenance",
    "contact": "Dean Wallace",
    "email": "dean@hexhamindustrial.com.au",
    "phone": "0412 905 776",
    "source": "Site visit",
    "stage": "Won",
    "interest": "Wash plant fibre optic backbone & PLC network",
    "site": "Hexham wash plant",
    "value_cents": 3169400,
    "owner": "Sam Whitaker",
    "received": "2026-09-23",
    "follow_up": null,
    "notes": null,
    "quote_id": 9,
    "lost_reason": null
   },
   {
    "id": 10,
    "ref": "ENQ-1410",
    "customer_id": 4,
    "company": "Ravensworth Ridge Mining Pty Ltd",
    "contact": "Hamish Doyle",
    "email": "hamish.doyle@ravensworthridge.com.au",
    "phone": "0402 991 337",
    "source": "Repeat customer",
    "stage": "Won",
    "interest": "Transformer maintenance & oil sampling round — Pit 4 & CHPP",
    "site": "Pit 4 dewatering",
    "value_cents": 3914000,
    "owner": "Daniel Reeves",
    "received": "2026-07-02",
    "follow_up": null,
    "notes": null,
    "quote_id": 10,
    "lost_reason": null
   },
   {
    "id": 11,
    "ref": "ENQ-1411",
    "customer_id": 7,
    "company": "Bowen Basin Dewatering Pty Ltd",
    "contact": "Shane Keogh",
    "email": "shane@bbdewatering.com.au",
    "phone": "0437 118 042",
    "source": "Phone",
    "stage": "Won",
    "interest": "Dewatering pumpset overhauls — 6 × Flygt 2640",
    "site": "Moranbah yard",
    "value_cents": 6594160,
    "owner": "Sam Whitaker",
    "received": "2026-07-08",
    "follow_up": null,
    "notes": null,
    "quote_id": 11,
    "lost_reason": null
   },
   {
    "id": 12,
    "ref": "ENQ-1412",
    "customer_id": 1,
    "company": "Wollombi Coal Operations Pty Ltd",
    "contact": "Brett Kingsley",
    "email": "brett.kingsley@wollombicoal.com.au",
    "phone": "0428 774 105",
    "source": "Repeat customer",
    "stage": "Won",
    "interest": "Pit 3 dewatering pumps — overhaul 4 × Flygt 2670",
    "site": "Pit 3 dewatering pump station",
    "value_cents": 5580000,
    "owner": "Daniel Reeves",
    "received": "2026-06-24",
    "follow_up": null,
    "notes": null,
    "quote_id": 12,
    "lost_reason": null
   },
   {
    "id": 13,
    "ref": "ENQ-1413",
    "customer_id": 5,
    "company": "Kooragang Bulk Handling Pty Ltd",
    "contact": "Peter Lam",
    "email": "peter.lam@kbh.com.au",
    "phone": "0414 220 581",
    "source": "Email",
    "stage": "Won",
    "interest": "Conveyor drive servicing & thermography — Q3/Q4",
    "site": "Berth K4 conveyor substation",
    "value_cents": 3412000,
    "owner": "Daniel Reeves",
    "received": "2026-07-29",
    "follow_up": null,
    "notes": null,
    "quote_id": 13,
    "lost_reason": null
   },
   {
    "id": 14,
    "ref": "ENQ-1414",
    "customer_id": 10,
    "company": "Cessnock Civil Contractors",
    "contact": "Rob Mancini",
    "email": "rob@cessnockcivil.com.au",
    "phone": "0419 220 377",
    "source": "Phone",
    "stage": "Quote sent",
    "interest": "37 kW VSD pump starter panel — sediment dam transfer pump",
    "site": "Kurri Kurri sediment dam",
    "value_cents": 2969509,
    "owner": "Daniel Reeves",
    "received": "2026-10-21",
    "follow_up": "2026-11-05",
    "notes": "Rob needs the panel on site before the wet season — wants delivery by mid-December.",
    "quote_id": 14,
    "lost_reason": null
   },
   {
    "id": 15,
    "ref": "ENQ-1415",
    "customer_id": 5,
    "company": "Kooragang Bulk Handling Pty Ltd",
    "contact": "Peter Lam",
    "email": "peter.lam@kbh.com.au",
    "phone": "0414 220 581",
    "source": "Repeat customer",
    "stage": "Quote sent",
    "interest": "CV-9 soft starter replacement",
    "site": "Berth K4 conveyor substation",
    "value_cents": 2233580,
    "owner": "Daniel Reeves",
    "received": "2026-10-08",
    "follow_up": "2026-10-28",
    "notes": "Peter waiting on budget approval for FY27 capex. Follow up — overdue.",
    "quote_id": 15,
    "lost_reason": null
   },
   {
    "id": 16,
    "ref": "ENQ-1416",
    "customer_id": 6,
    "company": "Myall Coast Regional Council",
    "contact": "Tim Hargreaves",
    "email": "tim.hargreaves@myallcoast.nsw.gov.au",
    "phone": "02 4980 0311",
    "source": "Tender portal",
    "stage": "Quote sent",
    "interest": "SPS-22 pump station switchboard replacement",
    "site": "SPS-14 Medowie Road",
    "value_cents": 2297796,
    "owner": "Sam Whitaker",
    "received": "2026-10-12",
    "follow_up": "2026-11-12",
    "notes": "VendorPanel RFQ 2026-114. Closes 12 Nov.",
    "quote_id": 18,
    "lost_reason": null
   },
   {
    "id": 17,
    "ref": "ENQ-1417",
    "customer_id": 11,
    "company": "Pacific Hydro Tunnelling Pty Ltd",
    "contact": "Olivia Carter",
    "email": "o.carter@pacifichydrotunnelling.com.au",
    "phone": "0450 117 286",
    "source": "Referral",
    "stage": "Quoting",
    "interest": "4 × portable dewatering pumpsets (Flygt 2670) with VSD starters",
    "site": "Northern tunnel portal",
    "value_cents": 15963032,
    "owner": "Sam Whitaker",
    "received": "2026-10-27",
    "follow_up": "2026-11-06",
    "notes": "Referred by Shane at Bowen Basin. Needs pricing for the board meeting on the 10th.",
    "quote_id": 16,
    "lost_reason": null
   },
   {
    "id": 18,
    "ref": "ENQ-1418",
    "customer_id": 12,
    "company": "Singleton Agricultural Water Co-op",
    "contact": "Geoff Bateman",
    "email": "geoff@singletonagwater.com.au",
    "phone": "0427 556 910",
    "source": "Email",
    "stage": "Quote sent",
    "interest": "Offtake pump 55 kW VSD retrofit",
    "site": "Hunter River offtake pump station",
    "value_cents": 1897020,
    "owner": "Daniel Reeves",
    "received": "2026-10-30",
    "follow_up": "2026-11-07",
    "notes": null,
    "quote_id": 17,
    "lost_reason": null
   },
   {
    "id": 19,
    "ref": "ENQ-1419",
    "customer_id": 13,
    "company": "Newcastle Waste & Recycling Pty Ltd",
    "contact": "Priya Desai",
    "email": "priya.desai@nwr.com.au",
    "phone": "0431 880 214",
    "source": "Website",
    "stage": "Lost",
    "interest": "Leachate pump station control panel",
    "site": "Leachate pond 2",
    "value_cents": 1320176,
    "owner": "Daniel Reeves",
    "received": "2026-09-12",
    "follow_up": null,
    "notes": null,
    "quote_id": 19,
    "lost_reason": "Price — went with an existing panel builder"
   },
   {
    "id": 20,
    "ref": "ENQ-1420",
    "customer_id": 14,
    "company": "Pokolbin Estates Irrigation",
    "contact": "Tom Harrow",
    "email": "tom@pokolbinestates.com.au",
    "phone": "0418 440 663",
    "source": "Phone",
    "stage": "Lost",
    "interest": "Block 6 irrigation pump shed upgrade",
    "site": "Block 6 irrigation pump shed",
    "value_cents": 1166498,
    "owner": "Sam Whitaker",
    "received": "2026-08-25",
    "follow_up": null,
    "notes": null,
    "quote_id": 20,
    "lost_reason": "Project deferred to next season"
   },
   {
    "id": 21,
    "ref": "ENQ-1421",
    "customer_id": 1,
    "company": "Wollombi Coal Operations Pty Ltd",
    "contact": "Brett Kingsley",
    "email": "brett.kingsley@wollombicoal.com.au",
    "phone": "0428 774 105",
    "source": "Email",
    "stage": "Enquiry",
    "interest": "Periodic transformer oil sampling — 6 site transformers",
    "site": "Pit 3 dewatering pump station",
    "value_cents": 780000,
    "owner": "Daniel Reeves",
    "received": "2026-11-03",
    "follow_up": "2026-11-06",
    "notes": "Brett wants it done before the Christmas shutdown.",
    "quote_id": null,
    "lost_reason": null
   },
   {
    "id": 22,
    "ref": "ENQ-1422",
    "customer_id": null,
    "company": "Hunter Valley Turf Supplies",
    "contact": "Kylie Brennan",
    "email": "kylie@hvturf.com.au",
    "phone": "0422 618 350",
    "source": "Website",
    "stage": "Enquiry",
    "interest": "Overhaul 2 × Flygt 2640 pumps and replace float switches",
    "site": "Bolwarra Heights",
    "value_cents": 950000,
    "owner": "Daniel Reeves",
    "received": "2026-11-02",
    "follow_up": "2026-11-05",
    "notes": null,
    "quote_id": null,
    "lost_reason": null
   },
   {
    "id": 23,
    "ref": "ENQ-1423",
    "customer_id": 9,
    "company": "Barrington Gold Pty Ltd",
    "contact": "Mark Ferris",
    "email": "mark.ferris@barringtongold.com.au",
    "phone": "0428 330 184",
    "source": "Phone",
    "stage": "Enquiry",
    "interest": "Fibre optic link between process plant and tailings pump station (1.4 km)",
    "site": "Process water plant",
    "value_cents": 3800000,
    "owner": "Daniel Reeves",
    "received": "2026-10-30",
    "follow_up": "2026-11-04",
    "notes": "Mark happy with the boosting station — wants a budget price.",
    "quote_id": null,
    "lost_reason": null
   },
   {
    "id": 24,
    "ref": "ENQ-1424",
    "customer_id": 4,
    "company": "Ravensworth Ridge Mining Pty Ltd",
    "contact": "Hamish Doyle",
    "email": "hamish.doyle@ravensworthridge.com.au",
    "phone": "0402 991 337",
    "source": "Repeat customer",
    "stage": "Quote sent",
    "interest": "Second portable switchroom for Pit 5 — same design as J-26-033",
    "site": "Pit 4 dewatering",
    "value_cents": 41000000,
    "owner": "John Lenoard",
    "received": "2026-10-28",
    "follow_up": "2026-11-09",
    "notes": "Hamish confirmed same spec plus 2 extra 37 kW starters.",
    "quote_id": null,
    "lost_reason": null
   }
  ],
  "quotes": [
   {
    "id": 1,
    "ref": "Q-26-0172",
    "enquiry_id": 1,
    "customer_id": 1,
    "contact": "Brett Kingsley",
    "site": "Pit 3 dewatering pump station",
    "title": "Dual 75 kW VSD pump-control panel — Pit 3 dewatering",
    "job_type": "Panel build",
    "status": "Accepted",
    "issued": "2026-09-08",
    "valid_until": "2026-10-08",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": "Design, build and factory test one 2-bay freestanding pump-control panel for two 75 kW dewatering pumps: 400 A incomer with surge protection, two ACS580 VSD starters with line reactors and EMC filters, M241 PLC with 7\" HMI, duty/standby and level control. Delivery to Pit 3 and site commissioning.",
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 11,
    "subtotal_cents": 8062422,
    "cost_cents": 5994400,
    "token": "bgxbqkzarda8me8ruvnc",
    "job_id": 1,
    "accepted_on": "2026-09-18",
    "customer_po": "WCO-4500118822",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 2,
    "ref": "Q-26-0180",
    "enquiry_id": 2,
    "customer_id": 2,
    "contact": "Nadia Petrovic",
    "site": "Seaham raw-water booster station",
    "title": "Raw-water booster pumping system — supply & install",
    "job_type": "Installation",
    "status": "Accepted",
    "issued": "2026-10-06",
    "valid_until": "2026-11-05",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": "Supply and install a three-pump raw-water booster station (2 duty / 1 standby) at Seaham: CR 45-3 pumps on VSDs, DN150 manifold with isolation and check valves, PE100 suction and discharge pipework, 316 stainless outdoor control panel with telemetry, instrumentation, cabling, commissioning and handover.",
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 14,
    "subtotal_cents": 21684594,
    "cost_cents": 16381750,
    "token": "3kbgzs49fq5ftc7cgcg9",
    "job_id": 2,
    "accepted_on": "2026-10-20",
    "customer_po": "LHWS-PO-22817",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 3,
    "ref": "Q-26-0151",
    "enquiry_id": 3,
    "customer_id": 9,
    "contact": "Mark Ferris",
    "site": "Process water plant",
    "title": "Process-water pressure boosting station",
    "job_type": "Panel build",
    "status": "Accepted",
    "issued": "2026-05-28",
    "valid_until": "2026-06-27",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 13,
    "subtotal_cents": 8632886,
    "cost_cents": 6507400,
    "token": "x4k69ezb77zubzap3q4s",
    "job_id": 3,
    "accepted_on": "2026-06-12",
    "customer_po": "BGD-77104",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 4,
    "ref": "Q-26-0158",
    "enquiry_id": 4,
    "customer_id": 4,
    "contact": "Hamish Doyle",
    "site": "Pit 4 dewatering",
    "title": "Portable switchroom — Pit 4 dewatering",
    "job_type": "Panel build",
    "status": "Accepted",
    "issued": "2026-06-30",
    "valid_until": "2026-07-30",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 17,
    "subtotal_cents": 20378354,
    "cost_cents": 15835500,
    "token": "4rhrzr4kzvrk3j6f6vzp",
    "job_id": 4,
    "accepted_on": "2026-07-17",
    "customer_po": "RRM-SC-1931",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 5,
    "ref": "Q-26-0163",
    "enquiry_id": 5,
    "customer_id": 7,
    "contact": "Shane Keogh",
    "site": "Moranbah yard",
    "title": "4 × dewatering pumpset control panels (Flygt 2670)",
    "job_type": "Panel build",
    "status": "Accepted",
    "issued": "2026-08-24",
    "valid_until": "2026-09-23",
    "owner": "Sam Whitaker",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 12,
    "subtotal_cents": 4480632,
    "cost_cents": 3312800,
    "token": "xgv3fyqwfj6such55x53",
    "job_id": 5,
    "accepted_on": "2026-09-07",
    "customer_po": "BBD-0912",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 6,
    "ref": "Q-26-0165",
    "enquiry_id": 6,
    "customer_id": 5,
    "contact": "Peter Lam",
    "site": "Berth K4 conveyor substation",
    "title": "Conveyor starter upgrade — CV-12 / CV-14",
    "job_type": "Installation",
    "status": "Accepted",
    "issued": "2026-08-31",
    "valid_until": "2026-09-30",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 10,
    "subtotal_cents": 6239060,
    "cost_cents": 4461200,
    "token": "w2pe9x4dmb2xx35fefct",
    "job_id": 6,
    "accepted_on": "2026-09-10",
    "customer_po": "KBH-30118",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 7,
    "ref": "Q-26-0168",
    "enquiry_id": 7,
    "customer_id": 6,
    "contact": "Tim Hargreaves",
    "site": "SPS-14 Medowie Road",
    "title": "SPS-14 sewage pump station control upgrade",
    "job_type": "Panel build",
    "status": "Accepted",
    "issued": "2026-09-01",
    "valid_until": "2026-10-01",
    "owner": "Sam Whitaker",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 10,
    "subtotal_cents": 3433050,
    "cost_cents": 2472700,
    "token": "3kce396xhccz9m5nczp8",
    "job_id": 7,
    "accepted_on": "2026-09-29",
    "customer_po": "MCRC-PO-9114",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 8,
    "ref": "Q-26-0170",
    "enquiry_id": 8,
    "customer_id": 3,
    "contact": "Craig Duffy",
    "site": "Denman Rd quarry — substation 2",
    "title": "1.5 MVA transformer overhaul & oil sampling — Sub 2",
    "job_type": "Overhaul",
    "status": "Accepted",
    "issued": "2026-09-10",
    "valid_until": "2026-10-10",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 9,
    "subtotal_cents": 3275000,
    "cost_cents": 2309800,
    "token": "jufga2vt4g2hzqnd36np",
    "job_id": 8,
    "accepted_on": "2026-09-24",
    "customer_po": "MQP-3301",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 9,
    "ref": "Q-26-0176",
    "enquiry_id": 9,
    "customer_id": 8,
    "contact": "Dean Wallace",
    "site": "Hexham wash plant",
    "title": "Wash plant fibre optic backbone & PLC network",
    "job_type": "Installation",
    "status": "Accepted",
    "issued": "2026-10-05",
    "valid_until": "2026-11-04",
    "owner": "Sam Whitaker",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 7,
    "subtotal_cents": 3169400,
    "cost_cents": 2282400,
    "token": "9gu5atet77bwstzyq8wm",
    "job_id": 9,
    "accepted_on": "2026-10-28",
    "customer_po": "HIM-7710",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 10,
    "ref": "Q-26-0154",
    "enquiry_id": 10,
    "customer_id": 4,
    "contact": "Hamish Doyle",
    "site": "Pit 4 dewatering",
    "title": "Transformer maintenance & oil sampling round — Pit 4 & CHPP",
    "job_type": "Service",
    "status": "Accepted",
    "issued": "2026-07-14",
    "valid_until": "2026-08-13",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 17,
    "subtotal_cents": 3914000,
    "cost_cents": 2623600,
    "token": "sx9jufvthbckkaxuhwwh",
    "job_id": 10,
    "accepted_on": "2026-07-28",
    "customer_po": "RRM-SC-1902",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 11,
    "ref": "Q-26-0156",
    "enquiry_id": 11,
    "customer_id": 7,
    "contact": "Shane Keogh",
    "site": "Moranbah yard",
    "title": "Dewatering pumpset overhauls — 6 × Flygt 2640",
    "job_type": "Overhaul",
    "status": "Accepted",
    "issued": "2026-07-20",
    "valid_until": "2026-08-19",
    "owner": "Sam Whitaker",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 15,
    "subtotal_cents": 6594160,
    "cost_cents": 4582600,
    "token": "qef5cnd8jdqqd6nw6tmf",
    "job_id": 11,
    "accepted_on": "2026-08-07",
    "customer_po": "BBD-0807",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 12,
    "ref": "Q-26-0160",
    "enquiry_id": 12,
    "customer_id": 1,
    "contact": "Brett Kingsley",
    "site": "Pit 3 dewatering pump station",
    "title": "Pit 3 dewatering pumps — overhaul 4 × Flygt 2670",
    "job_type": "Overhaul",
    "status": "Accepted",
    "issued": "2026-07-06",
    "valid_until": "2026-08-05",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 12,
    "subtotal_cents": 5580000,
    "cost_cents": 3926000,
    "token": "a342qg628myy79r8nady",
    "job_id": 12,
    "accepted_on": "2026-07-21",
    "customer_po": "WCO-4500117390",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 13,
    "ref": "Q-26-0162",
    "enquiry_id": 13,
    "customer_id": 5,
    "contact": "Peter Lam",
    "site": "Berth K4 conveyor substation",
    "title": "Conveyor drive servicing & thermography — Q3/Q4",
    "job_type": "Service",
    "status": "Accepted",
    "issued": "2026-08-10",
    "valid_until": "2026-09-09",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 17,
    "subtotal_cents": 3412000,
    "cost_cents": 2180800,
    "token": "b2gt3gz37apv2zpfrq2p",
    "job_id": 13,
    "accepted_on": "2026-08-24",
    "customer_po": "KBH-29870",
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 14,
    "ref": "Q-26-0187",
    "enquiry_id": 14,
    "customer_id": 10,
    "contact": "Rob Mancini",
    "site": "Kurri Kurri sediment dam",
    "title": "37 kW VSD pump starter panel — sediment dam transfer pump",
    "job_type": "Panel build",
    "status": "Sent",
    "issued": "2026-10-29",
    "valid_until": "2026-11-28",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": "Build and test one freestanding pump starter panel: 37 kW ACS580 VSD starter for the transfer pump, DOL starter for the sump pump, M241 PLC with level control from a hydrostatic transmitter, delivered to the Kurri Kurri sediment dam and commissioned.",
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 7,
    "subtotal_cents": 2969509,
    "cost_cents": 2192650,
    "token": "utc6ytjhqm2st43atmss",
    "job_id": null,
    "accepted_on": null,
    "customer_po": null,
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 15,
    "ref": "Q-26-0181",
    "enquiry_id": 15,
    "customer_id": 5,
    "contact": "Peter Lam",
    "site": "Berth K4 conveyor substation",
    "title": "CV-9 soft starter replacement",
    "job_type": "Installation",
    "status": "Sent",
    "issued": "2026-10-14",
    "valid_until": "2026-11-13",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 8,
    "subtotal_cents": 2233580,
    "cost_cents": 1606000,
    "token": "2f2fnr7kdnr93dvnnf4k",
    "job_id": null,
    "accepted_on": null,
    "customer_po": null,
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 16,
    "ref": "Q-26-0183",
    "enquiry_id": 17,
    "customer_id": 11,
    "contact": "Olivia Carter",
    "site": "Northern tunnel portal",
    "title": "4 × portable dewatering pumpsets (Flygt 2670) with VSD starters",
    "job_type": "Panel build",
    "status": "Awaiting approval",
    "issued": "2026-11-02",
    "valid_until": "2026-12-02",
    "owner": "Sam Whitaker",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 8,
    "subtotal_cents": 15963032,
    "cost_cents": 12723800,
    "token": "evqpr7rpnjcjnqu55pez",
    "job_id": null,
    "accepted_on": null,
    "customer_po": null,
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 17,
    "ref": "Q-26-0184",
    "enquiry_id": 18,
    "customer_id": 12,
    "contact": "Geoff Bateman",
    "site": "Hunter River offtake pump station",
    "title": "Offtake pump 55 kW VSD retrofit",
    "job_type": "Installation",
    "status": "Draft",
    "issued": "2026-11-03",
    "valid_until": "2026-12-03",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 8,
    "subtotal_cents": 1897020,
    "cost_cents": 1441400,
    "token": "ah4qxhnr356qd62vhtmw",
    "job_id": null,
    "accepted_on": null,
    "customer_po": null,
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 18,
    "ref": "Q-26-0186",
    "enquiry_id": 16,
    "customer_id": 6,
    "contact": "Tim Hargreaves",
    "site": "SPS-22 Lemon Tree Passage",
    "title": "SPS-22 pump station switchboard replacement",
    "job_type": "Panel build",
    "status": "Sent",
    "issued": "2026-10-22",
    "valid_until": "2026-11-21",
    "owner": "Sam Whitaker",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 8,
    "subtotal_cents": 2297796,
    "cost_cents": 1619700,
    "token": "9tm4uyrx2e8b759zmnen",
    "job_id": null,
    "accepted_on": null,
    "customer_po": null,
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 19,
    "ref": "Q-26-0178",
    "enquiry_id": 19,
    "customer_id": 13,
    "contact": "Priya Desai",
    "site": "Leachate pond 2",
    "title": "Leachate pump station control panel",
    "job_type": "Panel build",
    "status": "Declined",
    "issued": "2026-09-21",
    "valid_until": "2026-10-21",
    "owner": "Daniel Reeves",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 8,
    "subtotal_cents": 1320176,
    "cost_cents": 930900,
    "token": "kw63pttm9bw8usa9s9qv",
    "job_id": null,
    "accepted_on": null,
    "customer_po": null,
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 20,
    "ref": "Q-26-0175",
    "enquiry_id": 20,
    "customer_id": 14,
    "contact": "Tom Harrow",
    "site": "Block 6 irrigation pump shed",
    "title": "Block 6 irrigation pump shed upgrade",
    "job_type": "Installation",
    "status": "Expired",
    "issued": "2026-09-02",
    "valid_until": "2026-10-02",
    "owner": "Sam Whitaker",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 8,
    "subtotal_cents": 1166498,
    "cost_cents": 908350,
    "token": "gz9rs42r3q2bsyf66c9a",
    "job_id": null,
    "accepted_on": null,
    "customer_po": null,
    "approved_by": null,
    "approved_on": null,
    "is_template": 0,
    "template_name": null,
    "copied_from": null
   },
   {
    "id": 21,
    "ref": "TPL-001",
    "enquiry_id": null,
    "customer_id": null,
    "contact": null,
    "site": null,
    "title": "Standard DOL pump starter panel",
    "job_type": "Panel build",
    "status": "Template",
    "issued": "2026-05-01",
    "valid_until": "2026-05-31",
    "owner": "John Lenoard",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 8,
    "subtotal_cents": 473638,
    "cost_cents": 330950,
    "token": "m825uqaxnapj6drftssk",
    "job_id": null,
    "accepted_on": null,
    "customer_po": null,
    "approved_by": null,
    "approved_on": null,
    "is_template": 1,
    "template_name": "DOL pump starter panel — standard",
    "copied_from": null
   },
   {
    "id": 22,
    "ref": "TPL-002",
    "enquiry_id": null,
    "customer_id": null,
    "contact": null,
    "site": null,
    "title": "Dewatering pumpset control panel — VSD",
    "job_type": "Panel build",
    "status": "Template",
    "issued": "2026-05-01",
    "valid_until": "2026-05-31",
    "owner": "John Lenoard",
    "notes": null,
    "scope": null,
    "exclusions": "Civil works, concrete plinths and trenching unless listed. Supply authority fees. Works outside normal hours unless agreed.",
    "lead_weeks": 8,
    "subtotal_cents": 1697266,
    "cost_cents": 1286400,
    "token": "vyyv4u4v48xxcaj76u6n",
    "job_id": null,
    "accepted_on": null,
    "customer_po": null,
    "approved_by": null,
    "approved_on": null,
    "is_template": 1,
    "template_name": "Dewatering pumpset VSD panel — standard",
    "copied_from": null
   }
  ],
  "quote_lines": [
   {
    "id": 1,
    "quote_id": 1,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 15,
    "assembly_id": 1,
    "description": "ABB ACS580-01-145A-4 VSD 75 kW IP21",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 942000,
    "markup": 0.22,
    "unit_cents": 1149240
   },
   {
    "id": 2,
    "quote_id": 1,
    "sort": 20,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 21,
    "assembly_id": 1,
    "description": "Line reactor 145 A, 3-phase",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 112000,
    "markup": 0.22,
    "unit_cents": 136640
   },
   {
    "id": 3,
    "quote_id": 1,
    "sort": 30,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 23,
    "assembly_id": 1,
    "description": "EMC/RFI filter 145 A",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 88000,
    "markup": 0.22,
    "unit_cents": 107360
   },
   {
    "id": 4,
    "quote_id": 1,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 52,
    "assembly_id": 1,
    "description": "NHP 250 A 3P MCCB, 36 kA, electronic trip",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 98000,
    "markup": 0.35,
    "unit_cents": 132300
   },
   {
    "id": 5,
    "quote_id": 1,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 64,
    "assembly_id": 1,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.35,
    "unit_cents": 15930
   },
   {
    "id": 6,
    "quote_id": 1,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 62,
    "assembly_id": 1,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 7,
    "quote_id": 1,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 63,
    "assembly_id": 1,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 8,
    "quote_id": 1,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 65,
    "assembly_id": 1,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 8,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 9,
    "quote_id": 1,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 67,
    "assembly_id": 1,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 10,
    "quote_id": 1,
    "sort": 100,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 68,
    "assembly_id": 1,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 8,
    "uom": "ea",
    "cost_cents": 1400,
    "markup": 0.45,
    "unit_cents": 2030
   },
   {
    "id": 11,
    "quote_id": 1,
    "sort": 110,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 66,
    "assembly_id": 1,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 12,
    "quote_id": 1,
    "sort": 120,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 75,
    "assembly_id": 1,
    "description": "Compression lug 95 mm², pack of 10",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 5800,
    "markup": 0.45,
    "unit_cents": 8410
   },
   {
    "id": 13,
    "quote_id": 1,
    "sort": 130,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 25,
    "assembly_id": 5,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 124000,
    "markup": 0.3,
    "unit_cents": 161200
   },
   {
    "id": 14,
    "quote_id": 1,
    "sort": 140,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 26,
    "assembly_id": 5,
    "description": "Modicon TM3 16-channel digital input module",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 26800,
    "markup": 0.3,
    "unit_cents": 34840
   },
   {
    "id": 15,
    "quote_id": 1,
    "sort": 150,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 27,
    "assembly_id": 5,
    "description": "Modicon TM3 16-channel relay output module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 31200,
    "markup": 0.3,
    "unit_cents": 40560
   },
   {
    "id": 16,
    "quote_id": 1,
    "sort": 160,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 28,
    "assembly_id": 5,
    "description": "Modicon TM3 4-channel analogue input module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 48600,
    "markup": 0.3,
    "unit_cents": 63180
   },
   {
    "id": 17,
    "quote_id": 1,
    "sort": 170,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 29,
    "assembly_id": 5,
    "description": "Modicon TM3 2-channel analogue output module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 39800,
    "markup": 0.3,
    "unit_cents": 51740
   },
   {
    "id": 18,
    "quote_id": 1,
    "sort": 180,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 30,
    "assembly_id": 5,
    "description": "Harmony ST6 7\" touch HMI, Ethernet",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 158000,
    "markup": 0.3,
    "unit_cents": 205400
   },
   {
    "id": 19,
    "quote_id": 1,
    "sort": 190,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 31,
    "assembly_id": 5,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.3,
    "unit_cents": 31850
   },
   {
    "id": 20,
    "quote_id": 1,
    "sort": 200,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 32,
    "assembly_id": 5,
    "description": "24 VDC DC-UPS module c/w 7 Ah battery",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.3,
    "unit_cents": 83200
   },
   {
    "id": 21,
    "quote_id": 1,
    "sort": 210,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 33,
    "assembly_id": 5,
    "description": "Unmanaged industrial Ethernet switch, 8-port",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 33000,
    "markup": 0.3,
    "unit_cents": 42900
   },
   {
    "id": 22,
    "quote_id": 1,
    "sort": 220,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 69,
    "assembly_id": 5,
    "description": "Bootlace ferrule kit, assorted",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 4800,
    "markup": 0.45,
    "unit_cents": 6960
   },
   {
    "id": 23,
    "quote_id": 1,
    "sort": 230,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 59,
    "assembly_id": 5,
    "description": "MCB 1P 6 A C-curve, 6 kA",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 1800,
    "markup": 0.35,
    "unit_cents": 2430
   },
   {
    "id": 24,
    "quote_id": 1,
    "sort": 240,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 65,
    "assembly_id": 5,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 25,
    "quote_id": 1,
    "sort": 250,
    "kind": "Equipment",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 76,
    "assembly_id": 6,
    "description": "Rittal VX25 freestanding 1800H × 1200W × 500D, 2-door",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 398000,
    "markup": 0.3,
    "unit_cents": 517400
   },
   {
    "id": 26,
    "quote_id": 1,
    "sort": 260,
    "kind": "Equipment",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 78,
    "assembly_id": 6,
    "description": "VX25 plinth 100 mm, 1200 W",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 42000,
    "markup": 0.3,
    "unit_cents": 54600
   },
   {
    "id": 27,
    "quote_id": 1,
    "sort": 270,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 71,
    "assembly_id": 6,
    "description": "Filter fan 230 V 150 m³/h c/w exhaust filter",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.45,
    "unit_cents": 35525
   },
   {
    "id": 28,
    "quote_id": 1,
    "sort": 280,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 70,
    "assembly_id": 6,
    "description": "Panel LED light c/w door switch",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 8600,
    "markup": 0.45,
    "unit_cents": 12470
   },
   {
    "id": 29,
    "quote_id": 1,
    "sort": 290,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 72,
    "assembly_id": 6,
    "description": "Enclosure thermostat / hygrostat",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 7200,
    "markup": 0.45,
    "unit_cents": 10440
   },
   {
    "id": 30,
    "quote_id": 1,
    "sort": 300,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 73,
    "assembly_id": 6,
    "description": "Anti-condensation heater 100 W",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 9800,
    "markup": 0.45,
    "unit_cents": 14210
   },
   {
    "id": 31,
    "quote_id": 1,
    "sort": 310,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 74,
    "assembly_id": 6,
    "description": "Copper earth bar, 12-way",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 4400,
    "markup": 0.45,
    "unit_cents": 6380
   },
   {
    "id": 32,
    "quote_id": 1,
    "sort": 320,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 87,
    "assembly_id": 6,
    "description": "Cable gland kit M63, brass, c/w locknut",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 3800,
    "markup": 0.35,
    "unit_cents": 5130
   },
   {
    "id": 33,
    "quote_id": 1,
    "sort": 330,
    "kind": "Components",
    "stage": null,
    "grp": "Incomer & protection",
    "part_id": 51,
    "assembly_id": null,
    "description": "NHP 400 A 3P main switch-disconnector, 50 kA",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 184000,
    "markup": 0.35,
    "unit_cents": 248400
   },
   {
    "id": 34,
    "quote_id": 1,
    "sort": 340,
    "kind": "Components",
    "stage": null,
    "grp": "Incomer & protection",
    "part_id": 58,
    "assembly_id": null,
    "description": "Surge protection device 3P+N, 40 kA",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 52000,
    "markup": 0.35,
    "unit_cents": 70200
   },
   {
    "id": 35,
    "quote_id": 1,
    "sort": 350,
    "kind": "Components",
    "stage": null,
    "grp": "Incomer & protection",
    "part_id": 34,
    "assembly_id": null,
    "description": "Phase failure / sequence relay",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 16500,
    "markup": 0.3,
    "unit_cents": 21450
   },
   {
    "id": 36,
    "quote_id": 1,
    "sort": 360,
    "kind": "Components",
    "stage": null,
    "grp": "Incomer & protection",
    "part_id": 61,
    "assembly_id": null,
    "description": "E-stop 40 mm mushroom, twist release, c/w NC block",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 6400,
    "markup": 0.35,
    "unit_cents": 8640
   },
   {
    "id": 37,
    "quote_id": 1,
    "sort": 370,
    "kind": "Components",
    "stage": null,
    "grp": "Field instruments",
    "part_id": 36,
    "assembly_id": null,
    "description": "E+H Cerabar PMC21 pressure transmitter 0–16 bar, 4–20 mA",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 68500,
    "markup": 0.28,
    "unit_cents": 87680
   },
   {
    "id": 38,
    "quote_id": 1,
    "sort": 380,
    "kind": "Components",
    "stage": null,
    "grp": "Field instruments",
    "part_id": 37,
    "assembly_id": null,
    "description": "E+H Waterpilot FMX21 hydrostatic level 0–10 m, 20 m cable",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 129000,
    "markup": 0.28,
    "unit_cents": 165120
   },
   {
    "id": 39,
    "quote_id": 1,
    "sort": 390,
    "kind": "Components",
    "stage": null,
    "grp": "Field instruments",
    "part_id": 85,
    "assembly_id": null,
    "description": "Control cable 12C 1.5 mm² screened",
    "qty": 60,
    "uom": "m",
    "cost_cents": 780,
    "markup": 0.35,
    "unit_cents": 1053
   },
   {
    "id": 40,
    "quote_id": 1,
    "sort": 400,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Electrical design, schematics & GA drawings",
    "qty": 36,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 41,
    "quote_id": 1,
    "sort": 410,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Panel assembly, power & control wiring",
    "qty": 100,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 42,
    "quote_id": 1,
    "sort": 420,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site installation support & commissioning",
    "qty": 24,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 43,
    "quote_id": 1,
    "sort": 430,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 14,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 44,
    "quote_id": 1,
    "sort": 440,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Factory acceptance test, ITP & manuals",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 180000,
    "markup": 0.33,
    "unit_cents": 240000
   },
   {
    "id": 45,
    "quote_id": 1,
    "sort": 450,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Freight to site — Broke",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 120000,
    "markup": 0.21,
    "unit_cents": 145000
   },
   {
    "id": 46,
    "quote_id": 2,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": "Pumps",
    "part_id": 1,
    "assembly_id": null,
    "description": "Grundfos CR 45-3 vertical multistage pump c/w 22 kW IE3 motor",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 1485000,
    "markup": 0.22,
    "unit_cents": 1811700
   },
   {
    "id": 47,
    "quote_id": 2,
    "sort": 20,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 3",
    "part_id": 18,
    "assembly_id": 3,
    "description": "ABB ACS580-01-046A-4 VSD 22 kW IP21",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 328000,
    "markup": 0.22,
    "unit_cents": 400160
   },
   {
    "id": 48,
    "quote_id": 2,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 3",
    "part_id": 54,
    "assembly_id": 3,
    "description": "NHP 100 A 3P MCCB, 25 kA",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 42000,
    "markup": 0.35,
    "unit_cents": 56700
   },
   {
    "id": 49,
    "quote_id": 2,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 3",
    "part_id": 64,
    "assembly_id": 3,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.35,
    "unit_cents": 15930
   },
   {
    "id": 50,
    "quote_id": 2,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 3",
    "part_id": 62,
    "assembly_id": 3,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 51,
    "quote_id": 2,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 3",
    "part_id": 63,
    "assembly_id": 3,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 9,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 52,
    "quote_id": 2,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 3",
    "part_id": 65,
    "assembly_id": 3,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 9,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 53,
    "quote_id": 2,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 3",
    "part_id": 67,
    "assembly_id": 3,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 54,
    "quote_id": 2,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 3",
    "part_id": 68,
    "assembly_id": 3,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 1400,
    "markup": 0.45,
    "unit_cents": 2030
   },
   {
    "id": 55,
    "quote_id": 2,
    "sort": 100,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 3",
    "part_id": 66,
    "assembly_id": 3,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 56,
    "quote_id": 2,
    "sort": 110,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 25,
    "assembly_id": 5,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 124000,
    "markup": 0.3,
    "unit_cents": 161200
   },
   {
    "id": 57,
    "quote_id": 2,
    "sort": 120,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 26,
    "assembly_id": 5,
    "description": "Modicon TM3 16-channel digital input module",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 26800,
    "markup": 0.3,
    "unit_cents": 34840
   },
   {
    "id": 58,
    "quote_id": 2,
    "sort": 130,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 27,
    "assembly_id": 5,
    "description": "Modicon TM3 16-channel relay output module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 31200,
    "markup": 0.3,
    "unit_cents": 40560
   },
   {
    "id": 59,
    "quote_id": 2,
    "sort": 140,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 28,
    "assembly_id": 5,
    "description": "Modicon TM3 4-channel analogue input module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 48600,
    "markup": 0.3,
    "unit_cents": 63180
   },
   {
    "id": 60,
    "quote_id": 2,
    "sort": 150,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 29,
    "assembly_id": 5,
    "description": "Modicon TM3 2-channel analogue output module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 39800,
    "markup": 0.3,
    "unit_cents": 51740
   },
   {
    "id": 61,
    "quote_id": 2,
    "sort": 160,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 30,
    "assembly_id": 5,
    "description": "Harmony ST6 7\" touch HMI, Ethernet",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 158000,
    "markup": 0.3,
    "unit_cents": 205400
   },
   {
    "id": 62,
    "quote_id": 2,
    "sort": 170,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 31,
    "assembly_id": 5,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.3,
    "unit_cents": 31850
   },
   {
    "id": 63,
    "quote_id": 2,
    "sort": 180,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 32,
    "assembly_id": 5,
    "description": "24 VDC DC-UPS module c/w 7 Ah battery",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.3,
    "unit_cents": 83200
   },
   {
    "id": 64,
    "quote_id": 2,
    "sort": 190,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 33,
    "assembly_id": 5,
    "description": "Unmanaged industrial Ethernet switch, 8-port",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 33000,
    "markup": 0.3,
    "unit_cents": 42900
   },
   {
    "id": 65,
    "quote_id": 2,
    "sort": 200,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 69,
    "assembly_id": 5,
    "description": "Bootlace ferrule kit, assorted",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 4800,
    "markup": 0.45,
    "unit_cents": 6960
   },
   {
    "id": 66,
    "quote_id": 2,
    "sort": 210,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 59,
    "assembly_id": 5,
    "description": "MCB 1P 6 A C-curve, 6 kA",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 1800,
    "markup": 0.35,
    "unit_cents": 2430
   },
   {
    "id": 67,
    "quote_id": 2,
    "sort": 220,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 65,
    "assembly_id": 5,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 68,
    "quote_id": 2,
    "sort": 230,
    "kind": "Equipment",
    "stage": null,
    "grp": "Control panel enclosure",
    "part_id": 80,
    "assembly_id": null,
    "description": "316 stainless enclosure 1200 × 1000 × 400, IP66",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 325000,
    "markup": 0.3,
    "unit_cents": 422500
   },
   {
    "id": 69,
    "quote_id": 2,
    "sort": 240,
    "kind": "Equipment",
    "stage": null,
    "grp": "Control panel enclosure",
    "part_id": 81,
    "assembly_id": null,
    "description": "Outdoor sun canopy, 316 stainless",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 185000,
    "markup": 0.3,
    "unit_cents": 240500
   },
   {
    "id": 70,
    "quote_id": 2,
    "sort": 250,
    "kind": "Components",
    "stage": null,
    "grp": "Control panel enclosure",
    "part_id": 52,
    "assembly_id": null,
    "description": "NHP 250 A 3P MCCB, 36 kA, electronic trip",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 98000,
    "markup": 0.35,
    "unit_cents": 132300
   },
   {
    "id": 71,
    "quote_id": 2,
    "sort": 260,
    "kind": "Components",
    "stage": null,
    "grp": "Control panel enclosure",
    "part_id": 58,
    "assembly_id": null,
    "description": "Surge protection device 3P+N, 40 kA",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 52000,
    "markup": 0.35,
    "unit_cents": 70200
   },
   {
    "id": 72,
    "quote_id": 2,
    "sort": 270,
    "kind": "Components",
    "stage": null,
    "grp": "Control panel enclosure",
    "part_id": 35,
    "assembly_id": null,
    "description": "4G telemetry RTU c/w antenna & SIM tray",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 285000,
    "markup": 0.3,
    "unit_cents": 370500
   },
   {
    "id": 73,
    "quote_id": 2,
    "sort": 280,
    "kind": "Components",
    "stage": null,
    "grp": "Pump station instrumentation kit",
    "part_id": 36,
    "assembly_id": 7,
    "description": "E+H Cerabar PMC21 pressure transmitter 0–16 bar, 4–20 mA",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 68500,
    "markup": 0.28,
    "unit_cents": 87680
   },
   {
    "id": 74,
    "quote_id": 2,
    "sort": 290,
    "kind": "Components",
    "stage": null,
    "grp": "Pump station instrumentation kit",
    "part_id": 37,
    "assembly_id": 7,
    "description": "E+H Waterpilot FMX21 hydrostatic level 0–10 m, 20 m cable",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 129000,
    "markup": 0.28,
    "unit_cents": 165120
   },
   {
    "id": 75,
    "quote_id": 2,
    "sort": 300,
    "kind": "Components",
    "stage": null,
    "grp": "Pump station instrumentation kit",
    "part_id": 38,
    "assembly_id": 7,
    "description": "E+H Promag W 400 electromagnetic flowmeter DN150",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 678000,
    "markup": 0.28,
    "unit_cents": 867840
   },
   {
    "id": 76,
    "quote_id": 2,
    "sort": 310,
    "kind": "Components",
    "stage": null,
    "grp": "Pump station instrumentation kit",
    "part_id": 40,
    "assembly_id": 7,
    "description": "Level float switch, PP, 10 m cable",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.28,
    "unit_cents": 31360
   },
   {
    "id": 77,
    "quote_id": 2,
    "sort": 320,
    "kind": "Components",
    "stage": null,
    "grp": "Pump station instrumentation kit",
    "part_id": 41,
    "assembly_id": 7,
    "description": "Pressure gauge 100 mm 0–16 bar glycerine filled",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 6800,
    "markup": 0.28,
    "unit_cents": 8705
   },
   {
    "id": 78,
    "quote_id": 2,
    "sort": 330,
    "kind": "Components",
    "stage": null,
    "grp": "DN150 discharge valve set × 3",
    "part_id": 43,
    "assembly_id": 8,
    "description": "DN150 lugged butterfly valve, gear operated",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.3,
    "unit_cents": 83200
   },
   {
    "id": 79,
    "quote_id": 2,
    "sort": 340,
    "kind": "Components",
    "stage": null,
    "grp": "DN150 discharge valve set × 3",
    "part_id": 45,
    "assembly_id": 8,
    "description": "DN150 swing check valve, ductile iron",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 112000,
    "markup": 0.3,
    "unit_cents": 145600
   },
   {
    "id": 80,
    "quote_id": 2,
    "sort": 350,
    "kind": "Components",
    "stage": null,
    "grp": "DN150 discharge valve set × 3",
    "part_id": 47,
    "assembly_id": 8,
    "description": "DN150 resilient seat gate valve",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 138000,
    "markup": 0.3,
    "unit_cents": 179400
   },
   {
    "id": 81,
    "quote_id": 2,
    "sort": 360,
    "kind": "Components",
    "stage": null,
    "grp": "DN150 discharge valve set × 3",
    "part_id": 49,
    "assembly_id": 8,
    "description": "Victaulic Style 77 flexible coupling DN150",
    "qty": 12,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.3,
    "unit_cents": 15340
   },
   {
    "id": 82,
    "quote_id": 2,
    "sort": 370,
    "kind": "Components",
    "stage": null,
    "grp": "DN150 discharge valve set × 3",
    "part_id": 41,
    "assembly_id": 8,
    "description": "Pressure gauge 100 mm 0–16 bar glycerine filled",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 6800,
    "markup": 0.28,
    "unit_cents": 8705
   },
   {
    "id": 83,
    "quote_id": 2,
    "sort": 380,
    "kind": "Components",
    "stage": null,
    "grp": "Discharge header",
    "part_id": 42,
    "assembly_id": null,
    "description": "DN150 lugged butterfly valve c/w electric actuator 240 V",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 296000,
    "markup": 0.3,
    "unit_cents": 384800
   },
   {
    "id": 84,
    "quote_id": 2,
    "sort": 390,
    "kind": "Components",
    "stage": null,
    "grp": "Discharge header",
    "part_id": 48,
    "assembly_id": null,
    "description": "DN50 combination air release valve",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 52000,
    "markup": 0.3,
    "unit_cents": 67600
   },
   {
    "id": 85,
    "quote_id": 2,
    "sort": 400,
    "kind": "Components",
    "stage": null,
    "grp": "Pipework",
    "part_id": 88,
    "assembly_id": null,
    "description": "PE100 pipe DN160 PN16 SDR11",
    "qty": 120,
    "uom": "m",
    "cost_cents": 4600,
    "markup": 0.3,
    "unit_cents": 5980
   },
   {
    "id": 86,
    "quote_id": 2,
    "sort": 410,
    "kind": "Components",
    "stage": null,
    "grp": "Pipework",
    "part_id": 90,
    "assembly_id": null,
    "description": "Electrofusion coupler DN160",
    "qty": 16,
    "uom": "ea",
    "cost_cents": 9600,
    "markup": 0.3,
    "unit_cents": 12480
   },
   {
    "id": 87,
    "quote_id": 2,
    "sort": 420,
    "kind": "Components",
    "stage": null,
    "grp": "Pipework",
    "part_id": 91,
    "assembly_id": null,
    "description": "Stub flange & backing ring DN160",
    "qty": 12,
    "uom": "ea",
    "cost_cents": 14800,
    "markup": 0.3,
    "unit_cents": 19240
   },
   {
    "id": 88,
    "quote_id": 2,
    "sort": 430,
    "kind": "Components",
    "stage": null,
    "grp": "Cabling",
    "part_id": 83,
    "assembly_id": null,
    "description": "Cable 35 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "qty": 180,
    "uom": "m",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 89,
    "quote_id": 2,
    "sort": 440,
    "kind": "Components",
    "stage": null,
    "grp": "Cabling",
    "part_id": 84,
    "assembly_id": null,
    "description": "Cable 16 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "qty": 90,
    "uom": "m",
    "cost_cents": 1800,
    "markup": 0.35,
    "unit_cents": 2430
   },
   {
    "id": 90,
    "quote_id": 2,
    "sort": 450,
    "kind": "Components",
    "stage": null,
    "grp": "Cabling",
    "part_id": 86,
    "assembly_id": null,
    "description": "Instrument cable 1-pair 0.75 mm² screened",
    "qty": 240,
    "uom": "m",
    "cost_cents": 290,
    "markup": 0.35,
    "unit_cents": 392
   },
   {
    "id": 91,
    "quote_id": 2,
    "sort": 460,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Design, P&ID, schematics & GA drawings",
    "qty": 40,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 92,
    "quote_id": 2,
    "sort": 470,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Control panel build & pipe spool fabrication",
    "qty": 80,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 93,
    "quote_id": 2,
    "sort": 480,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Mechanical & electrical installation, commissioning",
    "qty": 260,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 94,
    "quote_id": 2,
    "sort": 490,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 40,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 95,
    "quote_id": 2,
    "sort": 500,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Crane hire — 2 days incl. rigging crew",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 400000,
    "markup": 0.2,
    "unit_cents": 480000
   },
   {
    "id": 96,
    "quote_id": 2,
    "sort": 510,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Concrete pump plinths (subcontract)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 820000,
    "markup": 0.16,
    "unit_cents": 950000
   },
   {
    "id": 97,
    "quote_id": 2,
    "sort": 520,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site establishment & traffic management",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 260000,
    "markup": 0.23,
    "unit_cents": 320000
   },
   {
    "id": 98,
    "quote_id": 3,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": "Pumps",
    "part_id": 2,
    "assembly_id": null,
    "description": "Grundfos CR 32-4 vertical multistage pump c/w 15 kW IE3 motor",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 1120000,
    "markup": 0.22,
    "unit_cents": 1366400
   },
   {
    "id": 99,
    "quote_id": 3,
    "sort": 20,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 2",
    "part_id": 18,
    "assembly_id": 3,
    "description": "ABB ACS580-01-046A-4 VSD 22 kW IP21",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 328000,
    "markup": 0.22,
    "unit_cents": 400160
   },
   {
    "id": 100,
    "quote_id": 3,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 2",
    "part_id": 54,
    "assembly_id": 3,
    "description": "NHP 100 A 3P MCCB, 25 kA",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 42000,
    "markup": 0.35,
    "unit_cents": 56700
   },
   {
    "id": 101,
    "quote_id": 3,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 2",
    "part_id": 64,
    "assembly_id": 3,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.35,
    "unit_cents": 15930
   },
   {
    "id": 102,
    "quote_id": 3,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 2",
    "part_id": 62,
    "assembly_id": 3,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 103,
    "quote_id": 3,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 2",
    "part_id": 63,
    "assembly_id": 3,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 104,
    "quote_id": 3,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 2",
    "part_id": 65,
    "assembly_id": 3,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 105,
    "quote_id": 3,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 2",
    "part_id": 67,
    "assembly_id": 3,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 106,
    "quote_id": 3,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 2",
    "part_id": 68,
    "assembly_id": 3,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 1400,
    "markup": 0.45,
    "unit_cents": 2030
   },
   {
    "id": 107,
    "quote_id": 3,
    "sort": 100,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 2",
    "part_id": 66,
    "assembly_id": 3,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 108,
    "quote_id": 3,
    "sort": 110,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 25,
    "assembly_id": 5,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 124000,
    "markup": 0.3,
    "unit_cents": 161200
   },
   {
    "id": 109,
    "quote_id": 3,
    "sort": 120,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 26,
    "assembly_id": 5,
    "description": "Modicon TM3 16-channel digital input module",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 26800,
    "markup": 0.3,
    "unit_cents": 34840
   },
   {
    "id": 110,
    "quote_id": 3,
    "sort": 130,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 27,
    "assembly_id": 5,
    "description": "Modicon TM3 16-channel relay output module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 31200,
    "markup": 0.3,
    "unit_cents": 40560
   },
   {
    "id": 111,
    "quote_id": 3,
    "sort": 140,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 28,
    "assembly_id": 5,
    "description": "Modicon TM3 4-channel analogue input module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 48600,
    "markup": 0.3,
    "unit_cents": 63180
   },
   {
    "id": 112,
    "quote_id": 3,
    "sort": 150,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 29,
    "assembly_id": 5,
    "description": "Modicon TM3 2-channel analogue output module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 39800,
    "markup": 0.3,
    "unit_cents": 51740
   },
   {
    "id": 113,
    "quote_id": 3,
    "sort": 160,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 30,
    "assembly_id": 5,
    "description": "Harmony ST6 7\" touch HMI, Ethernet",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 158000,
    "markup": 0.3,
    "unit_cents": 205400
   },
   {
    "id": 114,
    "quote_id": 3,
    "sort": 170,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 31,
    "assembly_id": 5,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.3,
    "unit_cents": 31850
   },
   {
    "id": 115,
    "quote_id": 3,
    "sort": 180,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 32,
    "assembly_id": 5,
    "description": "24 VDC DC-UPS module c/w 7 Ah battery",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.3,
    "unit_cents": 83200
   },
   {
    "id": 116,
    "quote_id": 3,
    "sort": 190,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 33,
    "assembly_id": 5,
    "description": "Unmanaged industrial Ethernet switch, 8-port",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 33000,
    "markup": 0.3,
    "unit_cents": 42900
   },
   {
    "id": 117,
    "quote_id": 3,
    "sort": 200,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 69,
    "assembly_id": 5,
    "description": "Bootlace ferrule kit, assorted",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 4800,
    "markup": 0.45,
    "unit_cents": 6960
   },
   {
    "id": 118,
    "quote_id": 3,
    "sort": 210,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 59,
    "assembly_id": 5,
    "description": "MCB 1P 6 A C-curve, 6 kA",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 1800,
    "markup": 0.35,
    "unit_cents": 2430
   },
   {
    "id": 119,
    "quote_id": 3,
    "sort": 220,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 65,
    "assembly_id": 5,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 120,
    "quote_id": 3,
    "sort": 230,
    "kind": "Equipment",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 76,
    "assembly_id": 6,
    "description": "Rittal VX25 freestanding 1800H × 1200W × 500D, 2-door",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 398000,
    "markup": 0.3,
    "unit_cents": 517400
   },
   {
    "id": 121,
    "quote_id": 3,
    "sort": 240,
    "kind": "Equipment",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 78,
    "assembly_id": 6,
    "description": "VX25 plinth 100 mm, 1200 W",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 42000,
    "markup": 0.3,
    "unit_cents": 54600
   },
   {
    "id": 122,
    "quote_id": 3,
    "sort": 250,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 71,
    "assembly_id": 6,
    "description": "Filter fan 230 V 150 m³/h c/w exhaust filter",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.45,
    "unit_cents": 35525
   },
   {
    "id": 123,
    "quote_id": 3,
    "sort": 260,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 70,
    "assembly_id": 6,
    "description": "Panel LED light c/w door switch",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 8600,
    "markup": 0.45,
    "unit_cents": 12470
   },
   {
    "id": 124,
    "quote_id": 3,
    "sort": 270,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 72,
    "assembly_id": 6,
    "description": "Enclosure thermostat / hygrostat",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 7200,
    "markup": 0.45,
    "unit_cents": 10440
   },
   {
    "id": 125,
    "quote_id": 3,
    "sort": 280,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 73,
    "assembly_id": 6,
    "description": "Anti-condensation heater 100 W",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 9800,
    "markup": 0.45,
    "unit_cents": 14210
   },
   {
    "id": 126,
    "quote_id": 3,
    "sort": 290,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 74,
    "assembly_id": 6,
    "description": "Copper earth bar, 12-way",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 4400,
    "markup": 0.45,
    "unit_cents": 6380
   },
   {
    "id": 127,
    "quote_id": 3,
    "sort": 300,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding",
    "part_id": 87,
    "assembly_id": 6,
    "description": "Cable gland kit M63, brass, c/w locknut",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 3800,
    "markup": 0.35,
    "unit_cents": 5130
   },
   {
    "id": 128,
    "quote_id": 3,
    "sort": 310,
    "kind": "Components",
    "stage": null,
    "grp": "DN150 discharge valve set × 2",
    "part_id": 43,
    "assembly_id": 8,
    "description": "DN150 lugged butterfly valve, gear operated",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.3,
    "unit_cents": 83200
   },
   {
    "id": 129,
    "quote_id": 3,
    "sort": 320,
    "kind": "Components",
    "stage": null,
    "grp": "DN150 discharge valve set × 2",
    "part_id": 45,
    "assembly_id": 8,
    "description": "DN150 swing check valve, ductile iron",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 112000,
    "markup": 0.3,
    "unit_cents": 145600
   },
   {
    "id": 130,
    "quote_id": 3,
    "sort": 330,
    "kind": "Components",
    "stage": null,
    "grp": "DN150 discharge valve set × 2",
    "part_id": 47,
    "assembly_id": 8,
    "description": "DN150 resilient seat gate valve",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 138000,
    "markup": 0.3,
    "unit_cents": 179400
   },
   {
    "id": 131,
    "quote_id": 3,
    "sort": 340,
    "kind": "Components",
    "stage": null,
    "grp": "DN150 discharge valve set × 2",
    "part_id": 49,
    "assembly_id": 8,
    "description": "Victaulic Style 77 flexible coupling DN150",
    "qty": 8,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.3,
    "unit_cents": 15340
   },
   {
    "id": 132,
    "quote_id": 3,
    "sort": 350,
    "kind": "Components",
    "stage": null,
    "grp": "DN150 discharge valve set × 2",
    "part_id": 41,
    "assembly_id": 8,
    "description": "Pressure gauge 100 mm 0–16 bar glycerine filled",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 6800,
    "markup": 0.28,
    "unit_cents": 8705
   },
   {
    "id": 133,
    "quote_id": 3,
    "sort": 360,
    "kind": "Components",
    "stage": null,
    "grp": "Instruments",
    "part_id": 36,
    "assembly_id": null,
    "description": "E+H Cerabar PMC21 pressure transmitter 0–16 bar, 4–20 mA",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 68500,
    "markup": 0.28,
    "unit_cents": 87680
   },
   {
    "id": 134,
    "quote_id": 3,
    "sort": 370,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 28,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 135,
    "quote_id": 3,
    "sort": 380,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 74,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 136,
    "quote_id": 3,
    "sort": 390,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site labour",
    "qty": 48,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 137,
    "quote_id": 3,
    "sort": 400,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 16,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 138,
    "quote_id": 3,
    "sort": 410,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Freight to Gloucester",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 90000,
    "markup": 0.22,
    "unit_cents": 110000
   },
   {
    "id": 139,
    "quote_id": 4,
    "sort": 10,
    "kind": "Components",
    "stage": null,
    "grp": "Main switchboard",
    "part_id": 51,
    "assembly_id": null,
    "description": "NHP 400 A 3P main switch-disconnector, 50 kA",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 184000,
    "markup": 0.35,
    "unit_cents": 248400
   },
   {
    "id": 140,
    "quote_id": 4,
    "sort": 20,
    "kind": "Components",
    "stage": null,
    "grp": "Main switchboard",
    "part_id": 58,
    "assembly_id": null,
    "description": "Surge protection device 3P+N, 40 kA",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 52000,
    "markup": 0.35,
    "unit_cents": 70200
   },
   {
    "id": 141,
    "quote_id": 4,
    "sort": 30,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 15,
    "assembly_id": 1,
    "description": "ABB ACS580-01-145A-4 VSD 75 kW IP21",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 942000,
    "markup": 0.22,
    "unit_cents": 1149240
   },
   {
    "id": 142,
    "quote_id": 4,
    "sort": 40,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 21,
    "assembly_id": 1,
    "description": "Line reactor 145 A, 3-phase",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 112000,
    "markup": 0.22,
    "unit_cents": 136640
   },
   {
    "id": 143,
    "quote_id": 4,
    "sort": 50,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 23,
    "assembly_id": 1,
    "description": "EMC/RFI filter 145 A",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 88000,
    "markup": 0.22,
    "unit_cents": 107360
   },
   {
    "id": 144,
    "quote_id": 4,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 52,
    "assembly_id": 1,
    "description": "NHP 250 A 3P MCCB, 36 kA, electronic trip",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 98000,
    "markup": 0.35,
    "unit_cents": 132300
   },
   {
    "id": 145,
    "quote_id": 4,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 64,
    "assembly_id": 1,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.35,
    "unit_cents": 15930
   },
   {
    "id": 146,
    "quote_id": 4,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 62,
    "assembly_id": 1,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 147,
    "quote_id": 4,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 63,
    "assembly_id": 1,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 148,
    "quote_id": 4,
    "sort": 100,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 65,
    "assembly_id": 1,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 8,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 149,
    "quote_id": 4,
    "sort": 110,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 67,
    "assembly_id": 1,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 150,
    "quote_id": 4,
    "sort": 120,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 68,
    "assembly_id": 1,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 8,
    "uom": "ea",
    "cost_cents": 1400,
    "markup": 0.45,
    "unit_cents": 2030
   },
   {
    "id": 151,
    "quote_id": 4,
    "sort": 130,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 66,
    "assembly_id": 1,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 152,
    "quote_id": 4,
    "sort": 140,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 75 kW × 2",
    "part_id": 75,
    "assembly_id": 1,
    "description": "Compression lug 95 mm², pack of 10",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 5800,
    "markup": 0.45,
    "unit_cents": 8410
   },
   {
    "id": 153,
    "quote_id": 4,
    "sort": 150,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 37 kW × 2",
    "part_id": 17,
    "assembly_id": 2,
    "description": "ABB ACS580-01-073A-4 VSD 37 kW IP21",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 512000,
    "markup": 0.22,
    "unit_cents": 624640
   },
   {
    "id": 154,
    "quote_id": 4,
    "sort": 160,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 37 kW × 2",
    "part_id": 22,
    "assembly_id": 2,
    "description": "Line reactor 73 A, 3-phase",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 69000,
    "markup": 0.22,
    "unit_cents": 84180
   },
   {
    "id": 155,
    "quote_id": 4,
    "sort": 170,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW × 2",
    "part_id": 53,
    "assembly_id": 2,
    "description": "NHP 160 A 3P MCCB, 36 kA",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.35,
    "unit_cents": 86400
   },
   {
    "id": 156,
    "quote_id": 4,
    "sort": 180,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW × 2",
    "part_id": 64,
    "assembly_id": 2,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.35,
    "unit_cents": 15930
   },
   {
    "id": 157,
    "quote_id": 4,
    "sort": 190,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW × 2",
    "part_id": 62,
    "assembly_id": 2,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 158,
    "quote_id": 4,
    "sort": 200,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW × 2",
    "part_id": 63,
    "assembly_id": 2,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 159,
    "quote_id": 4,
    "sort": 210,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW × 2",
    "part_id": 65,
    "assembly_id": 2,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 8,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 160,
    "quote_id": 4,
    "sort": 220,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW × 2",
    "part_id": 67,
    "assembly_id": 2,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 161,
    "quote_id": 4,
    "sort": 230,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW × 2",
    "part_id": 68,
    "assembly_id": 2,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 1400,
    "markup": 0.45,
    "unit_cents": 2030
   },
   {
    "id": 162,
    "quote_id": 4,
    "sort": 240,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW × 2",
    "part_id": 66,
    "assembly_id": 2,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 163,
    "quote_id": 4,
    "sort": 250,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 25,
    "assembly_id": 5,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 124000,
    "markup": 0.3,
    "unit_cents": 161200
   },
   {
    "id": 164,
    "quote_id": 4,
    "sort": 260,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 26,
    "assembly_id": 5,
    "description": "Modicon TM3 16-channel digital input module",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 26800,
    "markup": 0.3,
    "unit_cents": 34840
   },
   {
    "id": 165,
    "quote_id": 4,
    "sort": 270,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 27,
    "assembly_id": 5,
    "description": "Modicon TM3 16-channel relay output module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 31200,
    "markup": 0.3,
    "unit_cents": 40560
   },
   {
    "id": 166,
    "quote_id": 4,
    "sort": 280,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 28,
    "assembly_id": 5,
    "description": "Modicon TM3 4-channel analogue input module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 48600,
    "markup": 0.3,
    "unit_cents": 63180
   },
   {
    "id": 167,
    "quote_id": 4,
    "sort": 290,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 29,
    "assembly_id": 5,
    "description": "Modicon TM3 2-channel analogue output module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 39800,
    "markup": 0.3,
    "unit_cents": 51740
   },
   {
    "id": 168,
    "quote_id": 4,
    "sort": 300,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 30,
    "assembly_id": 5,
    "description": "Harmony ST6 7\" touch HMI, Ethernet",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 158000,
    "markup": 0.3,
    "unit_cents": 205400
   },
   {
    "id": 169,
    "quote_id": 4,
    "sort": 310,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 31,
    "assembly_id": 5,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.3,
    "unit_cents": 31850
   },
   {
    "id": 170,
    "quote_id": 4,
    "sort": 320,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 32,
    "assembly_id": 5,
    "description": "24 VDC DC-UPS module c/w 7 Ah battery",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.3,
    "unit_cents": 83200
   },
   {
    "id": 171,
    "quote_id": 4,
    "sort": 330,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 33,
    "assembly_id": 5,
    "description": "Unmanaged industrial Ethernet switch, 8-port",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 33000,
    "markup": 0.3,
    "unit_cents": 42900
   },
   {
    "id": 172,
    "quote_id": 4,
    "sort": 340,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 69,
    "assembly_id": 5,
    "description": "Bootlace ferrule kit, assorted",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 4800,
    "markup": 0.45,
    "unit_cents": 6960
   },
   {
    "id": 173,
    "quote_id": 4,
    "sort": 350,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 59,
    "assembly_id": 5,
    "description": "MCB 1P 6 A C-curve, 6 kA",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 1800,
    "markup": 0.35,
    "unit_cents": 2430
   },
   {
    "id": 174,
    "quote_id": 4,
    "sort": 360,
    "kind": "Components",
    "stage": null,
    "grp": "PLC & HMI control section",
    "part_id": 65,
    "assembly_id": 5,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 175,
    "quote_id": 4,
    "sort": 370,
    "kind": "Equipment",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding × 2",
    "part_id": 76,
    "assembly_id": 6,
    "description": "Rittal VX25 freestanding 1800H × 1200W × 500D, 2-door",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 398000,
    "markup": 0.3,
    "unit_cents": 517400
   },
   {
    "id": 176,
    "quote_id": 4,
    "sort": 380,
    "kind": "Equipment",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding × 2",
    "part_id": 78,
    "assembly_id": 6,
    "description": "VX25 plinth 100 mm, 1200 W",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 42000,
    "markup": 0.3,
    "unit_cents": 54600
   },
   {
    "id": 177,
    "quote_id": 4,
    "sort": 390,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding × 2",
    "part_id": 71,
    "assembly_id": 6,
    "description": "Filter fan 230 V 150 m³/h c/w exhaust filter",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.45,
    "unit_cents": 35525
   },
   {
    "id": 178,
    "quote_id": 4,
    "sort": 400,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding × 2",
    "part_id": 70,
    "assembly_id": 6,
    "description": "Panel LED light c/w door switch",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 8600,
    "markup": 0.45,
    "unit_cents": 12470
   },
   {
    "id": 179,
    "quote_id": 4,
    "sort": 410,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding × 2",
    "part_id": 72,
    "assembly_id": 6,
    "description": "Enclosure thermostat / hygrostat",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 7200,
    "markup": 0.45,
    "unit_cents": 10440
   },
   {
    "id": 180,
    "quote_id": 4,
    "sort": 420,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding × 2",
    "part_id": 73,
    "assembly_id": 6,
    "description": "Anti-condensation heater 100 W",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 9800,
    "markup": 0.45,
    "unit_cents": 14210
   },
   {
    "id": 181,
    "quote_id": 4,
    "sort": 430,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding × 2",
    "part_id": 74,
    "assembly_id": 6,
    "description": "Copper earth bar, 12-way",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 4400,
    "markup": 0.45,
    "unit_cents": 6380
   },
   {
    "id": 182,
    "quote_id": 4,
    "sort": 440,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure kit — 2-bay freestanding × 2",
    "part_id": 87,
    "assembly_id": 6,
    "description": "Cable gland kit M63, brass, c/w locknut",
    "qty": 12,
    "uom": "ea",
    "cost_cents": 3800,
    "markup": 0.35,
    "unit_cents": 5130
   },
   {
    "id": 183,
    "quote_id": 4,
    "sort": 450,
    "kind": "Components",
    "stage": null,
    "grp": "Internal cabling",
    "part_id": 82,
    "assembly_id": null,
    "description": "Cable 95 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "qty": 60,
    "uom": "m",
    "cost_cents": 7800,
    "markup": 0.35,
    "unit_cents": 10530
   },
   {
    "id": 184,
    "quote_id": 4,
    "sort": 460,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 60,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 185,
    "quote_id": 4,
    "sort": 470,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 220,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 186,
    "quote_id": 4,
    "sort": 480,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site labour",
    "qty": 56,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 187,
    "quote_id": 4,
    "sort": 490,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 30,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 188,
    "quote_id": 4,
    "sort": 500,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Skid-mounted switchroom building (subcontract fabrication)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 5850000,
    "markup": 0.16,
    "unit_cents": 6800000
   },
   {
    "id": 189,
    "quote_id": 4,
    "sort": 510,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Transport — oversize, with escort",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 560000,
    "markup": 0.14,
    "unit_cents": 640000
   },
   {
    "id": 190,
    "quote_id": 5,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 18,
    "assembly_id": 3,
    "description": "ABB ACS580-01-046A-4 VSD 22 kW IP21",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 328000,
    "markup": 0.22,
    "unit_cents": 400160
   },
   {
    "id": 191,
    "quote_id": 5,
    "sort": 20,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 54,
    "assembly_id": 3,
    "description": "NHP 100 A 3P MCCB, 25 kA",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 42000,
    "markup": 0.35,
    "unit_cents": 56700
   },
   {
    "id": 192,
    "quote_id": 5,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 64,
    "assembly_id": 3,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.35,
    "unit_cents": 15930
   },
   {
    "id": 193,
    "quote_id": 5,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 62,
    "assembly_id": 3,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 194,
    "quote_id": 5,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 63,
    "assembly_id": 3,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 12,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 195,
    "quote_id": 5,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 65,
    "assembly_id": 3,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 12,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 196,
    "quote_id": 5,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 67,
    "assembly_id": 3,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 197,
    "quote_id": 5,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 68,
    "assembly_id": 3,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 8,
    "uom": "ea",
    "cost_cents": 1400,
    "markup": 0.45,
    "unit_cents": 2030
   },
   {
    "id": 198,
    "quote_id": 5,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 66,
    "assembly_id": 3,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 199,
    "quote_id": 5,
    "sort": 100,
    "kind": "Equipment",
    "stage": null,
    "grp": "Enclosures",
    "part_id": 79,
    "assembly_id": null,
    "description": "Rittal AX wall-mount enclosure 760 × 760 × 300",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 69000,
    "markup": 0.3,
    "unit_cents": 89700
   },
   {
    "id": 200,
    "quote_id": 5,
    "sort": 110,
    "kind": "Components",
    "stage": null,
    "grp": "Level control",
    "part_id": 40,
    "assembly_id": null,
    "description": "Level float switch, PP, 10 m cable",
    "qty": 8,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.28,
    "unit_cents": 31360
   },
   {
    "id": 201,
    "quote_id": 5,
    "sort": 120,
    "kind": "Components",
    "stage": null,
    "grp": "Level control",
    "part_id": 34,
    "assembly_id": null,
    "description": "Phase failure / sequence relay",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 16500,
    "markup": 0.3,
    "unit_cents": 21450
   },
   {
    "id": 202,
    "quote_id": 5,
    "sort": 130,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 16,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 203,
    "quote_id": 5,
    "sort": 140,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 96,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 204,
    "quote_id": 5,
    "sort": 150,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 10,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 205,
    "quote_id": 5,
    "sort": 160,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Road freight to Moranbah",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 185000,
    "markup": 0.19,
    "unit_cents": 220000
   },
   {
    "id": 206,
    "quote_id": 6,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": "Soft starters",
    "part_id": 20,
    "assembly_id": null,
    "description": "ABB PSTX105-600-70 soft starter 55 kW",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 274000,
    "markup": 0.22,
    "unit_cents": 334280
   },
   {
    "id": 207,
    "quote_id": 6,
    "sort": 20,
    "kind": "Components",
    "stage": null,
    "grp": "Soft starters",
    "part_id": 52,
    "assembly_id": null,
    "description": "NHP 250 A 3P MCCB, 36 kA, electronic trip",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 98000,
    "markup": 0.35,
    "unit_cents": 132300
   },
   {
    "id": 208,
    "quote_id": 6,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "Soft starters",
    "part_id": 56,
    "assembly_id": null,
    "description": "AC3 115 A contactor, 240 VAC coil",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 61000,
    "markup": 0.35,
    "unit_cents": 82350
   },
   {
    "id": 209,
    "quote_id": 6,
    "sort": 40,
    "kind": "Equipment",
    "stage": null,
    "grp": "Enclosures",
    "part_id": 77,
    "assembly_id": null,
    "description": "Rittal VX25 freestanding 2000H × 800W × 600D",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 264000,
    "markup": 0.3,
    "unit_cents": 343200
   },
   {
    "id": 210,
    "quote_id": 6,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "Cabling",
    "part_id": 82,
    "assembly_id": null,
    "description": "Cable 95 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "qty": 140,
    "uom": "m",
    "cost_cents": 7800,
    "markup": 0.35,
    "unit_cents": 10530
   },
   {
    "id": 211,
    "quote_id": 6,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "Cabling",
    "part_id": 85,
    "assembly_id": null,
    "description": "Control cable 12C 1.5 mm² screened",
    "qty": 200,
    "uom": "m",
    "cost_cents": 780,
    "markup": 0.35,
    "unit_cents": 1053
   },
   {
    "id": 212,
    "quote_id": 6,
    "sort": 70,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 20,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 213,
    "quote_id": 6,
    "sort": 80,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 54,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 214,
    "quote_id": 6,
    "sort": 90,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site labour",
    "qty": 96,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 215,
    "quote_id": 6,
    "sort": 100,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 18,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 216,
    "quote_id": 6,
    "sort": 110,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Shutdown standby crew (weekend)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 310000,
    "markup": 0.23,
    "unit_cents": 380000
   },
   {
    "id": 217,
    "quote_id": 7,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": "Pump starters",
    "part_id": 19,
    "assembly_id": null,
    "description": "ABB ACS580-01-026A-4 VSD 11 kW IP21",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 196000,
    "markup": 0.22,
    "unit_cents": 239120
   },
   {
    "id": 218,
    "quote_id": 7,
    "sort": 20,
    "kind": "Components",
    "stage": null,
    "grp": "Pump starters",
    "part_id": 54,
    "assembly_id": null,
    "description": "NHP 100 A 3P MCCB, 25 kA",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 42000,
    "markup": 0.35,
    "unit_cents": 56700
   },
   {
    "id": 219,
    "quote_id": 7,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "Pump starters",
    "part_id": 62,
    "assembly_id": null,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 220,
    "quote_id": 7,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "Control",
    "part_id": 25,
    "assembly_id": null,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 124000,
    "markup": 0.3,
    "unit_cents": 161200
   },
   {
    "id": 221,
    "quote_id": 7,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "Control",
    "part_id": 28,
    "assembly_id": null,
    "description": "Modicon TM3 4-channel analogue input module",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 48600,
    "markup": 0.3,
    "unit_cents": 63180
   },
   {
    "id": 222,
    "quote_id": 7,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "Control",
    "part_id": 31,
    "assembly_id": null,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.3,
    "unit_cents": 31850
   },
   {
    "id": 223,
    "quote_id": 7,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "Control",
    "part_id": 35,
    "assembly_id": null,
    "description": "4G telemetry RTU c/w antenna & SIM tray",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 285000,
    "markup": 0.3,
    "unit_cents": 370500
   },
   {
    "id": 224,
    "quote_id": 7,
    "sort": 80,
    "kind": "Equipment",
    "stage": null,
    "grp": "Enclosure",
    "part_id": 80,
    "assembly_id": null,
    "description": "316 stainless enclosure 1200 × 1000 × 400, IP66",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 325000,
    "markup": 0.3,
    "unit_cents": 422500
   },
   {
    "id": 225,
    "quote_id": 7,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": "Wet-well level",
    "part_id": 37,
    "assembly_id": null,
    "description": "E+H Waterpilot FMX21 hydrostatic level 0–10 m, 20 m cable",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 129000,
    "markup": 0.28,
    "unit_cents": 165120
   },
   {
    "id": 226,
    "quote_id": 7,
    "sort": 100,
    "kind": "Components",
    "stage": null,
    "grp": "Wet-well level",
    "part_id": 40,
    "assembly_id": null,
    "description": "Level float switch, PP, 10 m cable",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.28,
    "unit_cents": 31360
   },
   {
    "id": 227,
    "quote_id": 7,
    "sort": 110,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 22,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 228,
    "quote_id": 7,
    "sort": 120,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 46,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 229,
    "quote_id": 7,
    "sort": 130,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site labour",
    "qty": 30,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 230,
    "quote_id": 7,
    "sort": 140,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 8,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 231,
    "quote_id": 7,
    "sort": 150,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Council SCADA integration allowance",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 200000,
    "markup": 0.3,
    "unit_cents": 260000
   },
   {
    "id": 232,
    "quote_id": 8,
    "sort": 10,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Strip, inspect, rebuild & reassemble",
    "qty": 110,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 233,
    "quote_id": 8,
    "sort": 20,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Removal, return & reconnection",
    "qty": 24,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 234,
    "quote_id": 8,
    "sort": 30,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Test reports",
    "qty": 8,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 235,
    "quote_id": 8,
    "sort": 40,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 8,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 236,
    "quote_id": 8,
    "sort": 50,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Transformer oil — Nynas Nytro 1,200 L",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 432000,
    "markup": 0.25,
    "unit_cents": 540000
   },
   {
    "id": 237,
    "quote_id": 8,
    "sort": 60,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Gasket set, bushings & breather",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 295000,
    "markup": 0.29,
    "unit_cents": 380000
   },
   {
    "id": 238,
    "quote_id": 8,
    "sort": 70,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Oil analysis — DGA & furans (2 samples)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 150000,
    "markup": 0.27,
    "unit_cents": 190000
   },
   {
    "id": 239,
    "quote_id": 8,
    "sort": 80,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Low-loader transport both ways",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 300000,
    "markup": 0.2,
    "unit_cents": 360000
   },
   {
    "id": 240,
    "quote_id": 9,
    "sort": 10,
    "kind": "Components",
    "stage": null,
    "grp": "Network",
    "part_id": 33,
    "assembly_id": null,
    "description": "Unmanaged industrial Ethernet switch, 8-port",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 33000,
    "markup": 0.3,
    "unit_cents": 42900
   },
   {
    "id": 241,
    "quote_id": 9,
    "sort": 20,
    "kind": "Components",
    "stage": null,
    "grp": "Network",
    "part_id": 31,
    "assembly_id": null,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.3,
    "unit_cents": 31850
   },
   {
    "id": 242,
    "quote_id": 9,
    "sort": 30,
    "kind": "Equipment",
    "stage": null,
    "grp": "Network",
    "part_id": 79,
    "assembly_id": null,
    "description": "Rittal AX wall-mount enclosure 760 × 760 × 300",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 69000,
    "markup": 0.3,
    "unit_cents": 89700
   },
   {
    "id": 243,
    "quote_id": 9,
    "sort": 40,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Network design & drawings",
    "qty": 18,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 244,
    "quote_id": 9,
    "sort": 50,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Fibre installation, splicing & testing",
    "qty": 86,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 245,
    "quote_id": 9,
    "sort": 60,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 10,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 246,
    "quote_id": 9,
    "sort": 70,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Fibre splicing & OTDR test (subcontract)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 390000,
    "markup": 0.18,
    "unit_cents": 460000
   },
   {
    "id": 247,
    "quote_id": 9,
    "sort": 80,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "8-core single-mode armoured fibre, 1.2 km",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 580000,
    "markup": 0.28,
    "unit_cents": 740000
   },
   {
    "id": 248,
    "quote_id": 10,
    "sort": 10,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Transformer inspections, oil sampling & minor maintenance",
    "qty": 190,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 249,
    "quote_id": 10,
    "sort": 20,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Breather & gasket refurbishment",
    "qty": 40,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 250,
    "quote_id": 10,
    "sort": 30,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Condition reports",
    "qty": 12,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 251,
    "quote_id": 10,
    "sort": 40,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Oil analysis — DGA, moisture & furans (14 samples)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 525000,
    "markup": 0.27,
    "unit_cents": 665000
   },
   {
    "id": 252,
    "quote_id": 10,
    "sort": 50,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Consumables — silica gel, gaskets, oil top-up",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 185000,
    "markup": 0.3,
    "unit_cents": 240000
   },
   {
    "id": 253,
    "quote_id": 11,
    "sort": 10,
    "kind": "Components",
    "stage": null,
    "grp": "Level control",
    "part_id": 40,
    "assembly_id": null,
    "description": "Level float switch, PP, 10 m cable",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.28,
    "unit_cents": 31360
   },
   {
    "id": 254,
    "quote_id": 11,
    "sort": 20,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Strip, inspect, rebuild & test 6 pumps",
    "qty": 340,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 255,
    "quote_id": 11,
    "sort": 30,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Collection & return",
    "qty": 20,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 256,
    "quote_id": 11,
    "sort": 40,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 12,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 257,
    "quote_id": 11,
    "sort": 50,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Flygt overhaul kits — seals, bearings, wear rings (6)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 1390000,
    "markup": 0.21,
    "unit_cents": 1680000
   },
   {
    "id": 258,
    "quote_id": 11,
    "sort": 60,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Road freight Moranbah return",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 320000,
    "markup": 0.19,
    "unit_cents": 380000
   },
   {
    "id": 259,
    "quote_id": 12,
    "sort": 10,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 250,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 260,
    "quote_id": 12,
    "sort": 20,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site labour",
    "qty": 36,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 261,
    "quote_id": 12,
    "sort": 30,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 10,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 262,
    "quote_id": 12,
    "sort": 40,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Flygt 2670 overhaul kits (4)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 1180000,
    "markup": 0.2,
    "unit_cents": 1420000
   },
   {
    "id": 263,
    "quote_id": 12,
    "sort": 50,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Motor rewinds — 2 × 22 kW (subcontract)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 560000,
    "markup": 0.21,
    "unit_cents": 680000
   },
   {
    "id": 264,
    "quote_id": 13,
    "sort": 10,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Scheduled drive servicing, thermography & reports",
    "qty": 240,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 265,
    "quote_id": 13,
    "sort": 20,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 16,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 266,
    "quote_id": 13,
    "sort": 30,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Thermal imaging reports (2 rounds)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 120000,
    "markup": 0.5,
    "unit_cents": 180000
   },
   {
    "id": 267,
    "quote_id": 14,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 17,
    "assembly_id": 2,
    "description": "ABB ACS580-01-073A-4 VSD 37 kW IP21",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 512000,
    "markup": 0.22,
    "unit_cents": 624640
   },
   {
    "id": 268,
    "quote_id": 14,
    "sort": 20,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 22,
    "assembly_id": 2,
    "description": "Line reactor 73 A, 3-phase",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 69000,
    "markup": 0.22,
    "unit_cents": 84180
   },
   {
    "id": 269,
    "quote_id": 14,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 53,
    "assembly_id": 2,
    "description": "NHP 160 A 3P MCCB, 36 kA",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.35,
    "unit_cents": 86400
   },
   {
    "id": 270,
    "quote_id": 14,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 64,
    "assembly_id": 2,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.35,
    "unit_cents": 15930
   },
   {
    "id": 271,
    "quote_id": 14,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 62,
    "assembly_id": 2,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 272,
    "quote_id": 14,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 63,
    "assembly_id": 2,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 273,
    "quote_id": 14,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 65,
    "assembly_id": 2,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 274,
    "quote_id": 14,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 67,
    "assembly_id": 2,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 275,
    "quote_id": 14,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 68,
    "assembly_id": 2,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 1400,
    "markup": 0.45,
    "unit_cents": 2030
   },
   {
    "id": 276,
    "quote_id": 14,
    "sort": 100,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 66,
    "assembly_id": 2,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 277,
    "quote_id": 14,
    "sort": 110,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 55,
    "assembly_id": 4,
    "description": "Motor protection circuit breaker 25–32 A",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 19600,
    "markup": 0.35,
    "unit_cents": 26460
   },
   {
    "id": 278,
    "quote_id": 14,
    "sort": 120,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 57,
    "assembly_id": 4,
    "description": "AC3 40 A contactor, 24 VDC coil",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 16800,
    "markup": 0.35,
    "unit_cents": 22680
   },
   {
    "id": 279,
    "quote_id": 14,
    "sort": 130,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 62,
    "assembly_id": 4,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 280,
    "quote_id": 14,
    "sort": 140,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 63,
    "assembly_id": 4,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 281,
    "quote_id": 14,
    "sort": 150,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 65,
    "assembly_id": 4,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 282,
    "quote_id": 14,
    "sort": 160,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 67,
    "assembly_id": 4,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 283,
    "quote_id": 14,
    "sort": 170,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 66,
    "assembly_id": 4,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 284,
    "quote_id": 14,
    "sort": 180,
    "kind": "Equipment",
    "stage": null,
    "grp": "Enclosure",
    "part_id": 77,
    "assembly_id": null,
    "description": "Rittal VX25 freestanding 2000H × 800W × 600D",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 264000,
    "markup": 0.3,
    "unit_cents": 343200
   },
   {
    "id": 285,
    "quote_id": 14,
    "sort": 190,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure",
    "part_id": 71,
    "assembly_id": null,
    "description": "Filter fan 230 V 150 m³/h c/w exhaust filter",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.45,
    "unit_cents": 35525
   },
   {
    "id": 286,
    "quote_id": 14,
    "sort": 200,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure",
    "part_id": 70,
    "assembly_id": null,
    "description": "Panel LED light c/w door switch",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 8600,
    "markup": 0.45,
    "unit_cents": 12470
   },
   {
    "id": 287,
    "quote_id": 14,
    "sort": 210,
    "kind": "Components",
    "stage": null,
    "grp": "Enclosure",
    "part_id": 73,
    "assembly_id": null,
    "description": "Anti-condensation heater 100 W",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 9800,
    "markup": 0.45,
    "unit_cents": 14210
   },
   {
    "id": 288,
    "quote_id": 14,
    "sort": 220,
    "kind": "Components",
    "stage": null,
    "grp": "Control",
    "part_id": 25,
    "assembly_id": null,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 124000,
    "markup": 0.3,
    "unit_cents": 161200
   },
   {
    "id": 289,
    "quote_id": 14,
    "sort": 230,
    "kind": "Components",
    "stage": null,
    "grp": "Control",
    "part_id": 30,
    "assembly_id": null,
    "description": "Harmony ST6 7\" touch HMI, Ethernet",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 158000,
    "markup": 0.3,
    "unit_cents": 205400
   },
   {
    "id": 290,
    "quote_id": 14,
    "sort": 240,
    "kind": "Components",
    "stage": null,
    "grp": "Control",
    "part_id": 31,
    "assembly_id": null,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.3,
    "unit_cents": 31850
   },
   {
    "id": 291,
    "quote_id": 14,
    "sort": 250,
    "kind": "Components",
    "stage": null,
    "grp": "Control",
    "part_id": 37,
    "assembly_id": null,
    "description": "E+H Waterpilot FMX21 hydrostatic level 0–10 m, 20 m cable",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 129000,
    "markup": 0.28,
    "unit_cents": 165120
   },
   {
    "id": 292,
    "quote_id": 14,
    "sort": 260,
    "kind": "Components",
    "stage": null,
    "grp": "Incomer",
    "part_id": 53,
    "assembly_id": null,
    "description": "NHP 160 A 3P MCCB, 36 kA",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.35,
    "unit_cents": 86400
   },
   {
    "id": 293,
    "quote_id": 14,
    "sort": 270,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 12,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 294,
    "quote_id": 14,
    "sort": 280,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 34,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 295,
    "quote_id": 14,
    "sort": 290,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Installation support & commissioning",
    "qty": 12,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 296,
    "quote_id": 14,
    "sort": 300,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 6,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 297,
    "quote_id": 14,
    "sort": 310,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Factory acceptance test & manuals",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 70000,
    "markup": 0.29,
    "unit_cents": 90000
   },
   {
    "id": 298,
    "quote_id": 14,
    "sort": 320,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Freight to Kurri Kurri",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 52000,
    "markup": 0.25,
    "unit_cents": 65000
   },
   {
    "id": 299,
    "quote_id": 15,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 20,
    "assembly_id": null,
    "description": "ABB PSTX105-600-70 soft starter 55 kW",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 274000,
    "markup": 0.22,
    "unit_cents": 334280
   },
   {
    "id": 300,
    "quote_id": 15,
    "sort": 20,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 52,
    "assembly_id": null,
    "description": "NHP 250 A 3P MCCB, 36 kA, electronic trip",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 98000,
    "markup": 0.35,
    "unit_cents": 132300
   },
   {
    "id": 301,
    "quote_id": 15,
    "sort": 30,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 77,
    "assembly_id": null,
    "description": "Rittal VX25 freestanding 2000H × 800W × 600D",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 264000,
    "markup": 0.3,
    "unit_cents": 343200
   },
   {
    "id": 302,
    "quote_id": 15,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 82,
    "assembly_id": null,
    "description": "Cable 95 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "qty": 60,
    "uom": "m",
    "cost_cents": 7800,
    "markup": 0.35,
    "unit_cents": 10530
   },
   {
    "id": 303,
    "quote_id": 15,
    "sort": 50,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 26,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 304,
    "quote_id": 15,
    "sort": 60,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site labour",
    "qty": 32,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 305,
    "quote_id": 15,
    "sort": 70,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 6,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 306,
    "quote_id": 16,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": "Pumps",
    "part_id": 7,
    "assembly_id": null,
    "description": "Flygt 2670.180 HT dewatering pump 22 kW",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 2140000,
    "markup": 0.22,
    "unit_cents": 2610800
   },
   {
    "id": 307,
    "quote_id": 16,
    "sort": 20,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 18,
    "assembly_id": 3,
    "description": "ABB ACS580-01-046A-4 VSD 22 kW IP21",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 328000,
    "markup": 0.22,
    "unit_cents": 400160
   },
   {
    "id": 308,
    "quote_id": 16,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 54,
    "assembly_id": 3,
    "description": "NHP 100 A 3P MCCB, 25 kA",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 42000,
    "markup": 0.35,
    "unit_cents": 56700
   },
   {
    "id": 309,
    "quote_id": 16,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 64,
    "assembly_id": 3,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.35,
    "unit_cents": 15930
   },
   {
    "id": 310,
    "quote_id": 16,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 62,
    "assembly_id": 3,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 311,
    "quote_id": 16,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 63,
    "assembly_id": 3,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 12,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 312,
    "quote_id": 16,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 65,
    "assembly_id": 3,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 12,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 313,
    "quote_id": 16,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 67,
    "assembly_id": 3,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 314,
    "quote_id": 16,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 68,
    "assembly_id": 3,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 8,
    "uom": "ea",
    "cost_cents": 1400,
    "markup": 0.45,
    "unit_cents": 2030
   },
   {
    "id": 315,
    "quote_id": 16,
    "sort": 100,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 22 kW × 4",
    "part_id": 66,
    "assembly_id": 3,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 316,
    "quote_id": 16,
    "sort": 110,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 79,
    "assembly_id": null,
    "description": "Rittal AX wall-mount enclosure 760 × 760 × 300",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 69000,
    "markup": 0.3,
    "unit_cents": 89700
   },
   {
    "id": 317,
    "quote_id": 16,
    "sort": 120,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 40,
    "assembly_id": null,
    "description": "Level float switch, PP, 10 m cable",
    "qty": 8,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.28,
    "unit_cents": 31360
   },
   {
    "id": 318,
    "quote_id": 16,
    "sort": 130,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 84,
    "assembly_id": null,
    "description": "Cable 16 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "qty": 200,
    "uom": "m",
    "cost_cents": 1800,
    "markup": 0.35,
    "unit_cents": 2430
   },
   {
    "id": 319,
    "quote_id": 16,
    "sort": 140,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 16,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 320,
    "quote_id": 16,
    "sort": 150,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 88,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 321,
    "quote_id": 16,
    "sort": 160,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 12,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 322,
    "quote_id": 16,
    "sort": 170,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Skid frames — galvanised (subcontract)",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 780000,
    "markup": 0.18,
    "unit_cents": 920000
   },
   {
    "id": 323,
    "quote_id": 17,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 16,
    "assembly_id": null,
    "description": "ABB ACS580-01-106A-4 VSD 55 kW IP21",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 735000,
    "markup": 0.22,
    "unit_cents": 896700
   },
   {
    "id": 324,
    "quote_id": 17,
    "sort": 20,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 24,
    "assembly_id": null,
    "description": "dU/dt output filter 46 A",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 76000,
    "markup": 0.22,
    "unit_cents": 92720
   },
   {
    "id": 325,
    "quote_id": 17,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 53,
    "assembly_id": null,
    "description": "NHP 160 A 3P MCCB, 36 kA",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.35,
    "unit_cents": 86400
   },
   {
    "id": 326,
    "quote_id": 17,
    "sort": 40,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 77,
    "assembly_id": null,
    "description": "Rittal VX25 freestanding 2000H × 800W × 600D",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 264000,
    "markup": 0.3,
    "unit_cents": 343200
   },
   {
    "id": 327,
    "quote_id": 17,
    "sort": 50,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 22,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 328,
    "quote_id": 17,
    "sort": 60,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site labour",
    "qty": 18,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 329,
    "quote_id": 18,
    "sort": 10,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 55,
    "assembly_id": 4,
    "description": "Motor protection circuit breaker 25–32 A",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 19600,
    "markup": 0.35,
    "unit_cents": 26460
   },
   {
    "id": 330,
    "quote_id": 18,
    "sort": 20,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 57,
    "assembly_id": 4,
    "description": "AC3 40 A contactor, 24 VDC coil",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 16800,
    "markup": 0.35,
    "unit_cents": 22680
   },
   {
    "id": 331,
    "quote_id": 18,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 62,
    "assembly_id": 4,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 332,
    "quote_id": 18,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 63,
    "assembly_id": 4,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 333,
    "quote_id": 18,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 65,
    "assembly_id": 4,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 334,
    "quote_id": 18,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 67,
    "assembly_id": 4,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 335,
    "quote_id": 18,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 66,
    "assembly_id": 4,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 336,
    "quote_id": 18,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 25,
    "assembly_id": null,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 124000,
    "markup": 0.3,
    "unit_cents": 161200
   },
   {
    "id": 337,
    "quote_id": 18,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 35,
    "assembly_id": null,
    "description": "4G telemetry RTU c/w antenna & SIM tray",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 285000,
    "markup": 0.3,
    "unit_cents": 370500
   },
   {
    "id": 338,
    "quote_id": 18,
    "sort": 100,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 80,
    "assembly_id": null,
    "description": "316 stainless enclosure 1200 × 1000 × 400, IP66",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 325000,
    "markup": 0.3,
    "unit_cents": 422500
   },
   {
    "id": 339,
    "quote_id": 18,
    "sort": 110,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 37,
    "assembly_id": null,
    "description": "E+H Waterpilot FMX21 hydrostatic level 0–10 m, 20 m cable",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 129000,
    "markup": 0.28,
    "unit_cents": 165120
   },
   {
    "id": 340,
    "quote_id": 18,
    "sort": 120,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 14,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 341,
    "quote_id": 18,
    "sort": 130,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 40,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 342,
    "quote_id": 18,
    "sort": 140,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site labour",
    "qty": 20,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 343,
    "quote_id": 18,
    "sort": 150,
    "kind": "Labour",
    "stage": "Project management",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Project management",
    "qty": 6,
    "uom": "hr",
    "cost_cents": 9800,
    "markup": 0.58,
    "unit_cents": 15500
   },
   {
    "id": 344,
    "quote_id": 19,
    "sort": 10,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 55,
    "assembly_id": 4,
    "description": "Motor protection circuit breaker 25–32 A",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 19600,
    "markup": 0.35,
    "unit_cents": 26460
   },
   {
    "id": 345,
    "quote_id": 19,
    "sort": 20,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 57,
    "assembly_id": 4,
    "description": "AC3 40 A contactor, 24 VDC coil",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 16800,
    "markup": 0.35,
    "unit_cents": 22680
   },
   {
    "id": 346,
    "quote_id": 19,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 62,
    "assembly_id": 4,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 347,
    "quote_id": 19,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 63,
    "assembly_id": 4,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 6,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 348,
    "quote_id": 19,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 65,
    "assembly_id": 4,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 349,
    "quote_id": 19,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 67,
    "assembly_id": 4,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 350,
    "quote_id": 19,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW × 2",
    "part_id": 66,
    "assembly_id": 4,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 351,
    "quote_id": 19,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 25,
    "assembly_id": null,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 124000,
    "markup": 0.3,
    "unit_cents": 161200
   },
   {
    "id": 352,
    "quote_id": 19,
    "sort": 90,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 80,
    "assembly_id": null,
    "description": "316 stainless enclosure 1200 × 1000 × 400, IP66",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 325000,
    "markup": 0.3,
    "unit_cents": 422500
   },
   {
    "id": 353,
    "quote_id": 19,
    "sort": 100,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 36,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 354,
    "quote_id": 19,
    "sort": 110,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site labour",
    "qty": 12,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 355,
    "quote_id": 20,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 3,
    "assembly_id": null,
    "description": "Grundfos CR 20-6 vertical multistage pump c/w 7.5 kW motor",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 648000,
    "markup": 0.22,
    "unit_cents": 790560
   },
   {
    "id": 356,
    "quote_id": 20,
    "sort": 20,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 55,
    "assembly_id": 4,
    "description": "Motor protection circuit breaker 25–32 A",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 19600,
    "markup": 0.35,
    "unit_cents": 26460
   },
   {
    "id": 357,
    "quote_id": 20,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 57,
    "assembly_id": 4,
    "description": "AC3 40 A contactor, 24 VDC coil",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 16800,
    "markup": 0.35,
    "unit_cents": 22680
   },
   {
    "id": 358,
    "quote_id": 20,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 62,
    "assembly_id": 4,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 359,
    "quote_id": 20,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 63,
    "assembly_id": 4,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 360,
    "quote_id": 20,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 65,
    "assembly_id": 4,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 361,
    "quote_id": 20,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 67,
    "assembly_id": 4,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 362,
    "quote_id": 20,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 66,
    "assembly_id": 4,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 363,
    "quote_id": 20,
    "sort": 90,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 79,
    "assembly_id": null,
    "description": "Rittal AX wall-mount enclosure 760 × 760 × 300",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 69000,
    "markup": 0.3,
    "unit_cents": 89700
   },
   {
    "id": 364,
    "quote_id": 20,
    "sort": 100,
    "kind": "Labour",
    "stage": "Site labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Site labour",
    "qty": 16,
    "uom": "hr",
    "cost_cents": 8000,
    "markup": 0.56,
    "unit_cents": 12500
   },
   {
    "id": 365,
    "quote_id": 21,
    "sort": 10,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 55,
    "assembly_id": 4,
    "description": "Motor protection circuit breaker 25–32 A",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 19600,
    "markup": 0.35,
    "unit_cents": 26460
   },
   {
    "id": 366,
    "quote_id": 21,
    "sort": 20,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 57,
    "assembly_id": 4,
    "description": "AC3 40 A contactor, 24 VDC coil",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 16800,
    "markup": 0.35,
    "unit_cents": 22680
   },
   {
    "id": 367,
    "quote_id": 21,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 62,
    "assembly_id": 4,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 368,
    "quote_id": 21,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 63,
    "assembly_id": 4,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 369,
    "quote_id": 21,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 65,
    "assembly_id": 4,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 370,
    "quote_id": 21,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 67,
    "assembly_id": 4,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 371,
    "quote_id": 21,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "DOL pump starter — up to 15 kW",
    "part_id": 66,
    "assembly_id": 4,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 372,
    "quote_id": 21,
    "sort": 80,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 79,
    "assembly_id": null,
    "description": "Rittal AX wall-mount enclosure 760 × 760 × 300",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 69000,
    "markup": 0.3,
    "unit_cents": 89700
   },
   {
    "id": 373,
    "quote_id": 21,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 54,
    "assembly_id": null,
    "description": "NHP 100 A 3P MCCB, 25 kA",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 42000,
    "markup": 0.35,
    "unit_cents": 56700
   },
   {
    "id": 374,
    "quote_id": 21,
    "sort": 100,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 4,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 375,
    "quote_id": 21,
    "sort": 110,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 12,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 376,
    "quote_id": 21,
    "sort": 120,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Factory acceptance test",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 35000,
    "markup": 0.29,
    "unit_cents": 45000
   },
   {
    "id": 377,
    "quote_id": 22,
    "sort": 10,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 17,
    "assembly_id": 2,
    "description": "ABB ACS580-01-073A-4 VSD 37 kW IP21",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 512000,
    "markup": 0.22,
    "unit_cents": 624640
   },
   {
    "id": 378,
    "quote_id": 22,
    "sort": 20,
    "kind": "Equipment",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 22,
    "assembly_id": 2,
    "description": "Line reactor 73 A, 3-phase",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 69000,
    "markup": 0.22,
    "unit_cents": 84180
   },
   {
    "id": 379,
    "quote_id": 22,
    "sort": 30,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 53,
    "assembly_id": 2,
    "description": "NHP 160 A 3P MCCB, 36 kA",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 64000,
    "markup": 0.35,
    "unit_cents": 86400
   },
   {
    "id": 380,
    "quote_id": 22,
    "sort": 40,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 64,
    "assembly_id": 2,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 11800,
    "markup": 0.35,
    "unit_cents": 15930
   },
   {
    "id": 381,
    "quote_id": 22,
    "sort": 50,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 62,
    "assembly_id": 2,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 5200,
    "markup": 0.35,
    "unit_cents": 7020
   },
   {
    "id": 382,
    "quote_id": 22,
    "sort": 60,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 63,
    "assembly_id": 2,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 2600,
    "markup": 0.35,
    "unit_cents": 3510
   },
   {
    "id": 383,
    "quote_id": 22,
    "sort": 70,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 65,
    "assembly_id": 2,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 4,
    "uom": "ea",
    "cost_cents": 3400,
    "markup": 0.35,
    "unit_cents": 4590
   },
   {
    "id": 384,
    "quote_id": 22,
    "sort": 80,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 67,
    "assembly_id": 2,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 6200,
    "markup": 0.45,
    "unit_cents": 8990
   },
   {
    "id": 385,
    "quote_id": 22,
    "sort": 90,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 68,
    "assembly_id": 2,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 3,
    "uom": "ea",
    "cost_cents": 1400,
    "markup": 0.45,
    "unit_cents": 2030
   },
   {
    "id": 386,
    "quote_id": 22,
    "sort": 100,
    "kind": "Components",
    "stage": null,
    "grp": "VSD pump starter — 37 kW",
    "part_id": 66,
    "assembly_id": 2,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 950,
    "markup": 0.45,
    "unit_cents": 1378
   },
   {
    "id": 387,
    "quote_id": 22,
    "sort": 110,
    "kind": "Equipment",
    "stage": null,
    "grp": null,
    "part_id": 77,
    "assembly_id": null,
    "description": "Rittal VX25 freestanding 2000H × 800W × 600D",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 264000,
    "markup": 0.3,
    "unit_cents": 343200
   },
   {
    "id": 388,
    "quote_id": 22,
    "sort": 120,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 40,
    "assembly_id": null,
    "description": "Level float switch, PP, 10 m cable",
    "qty": 2,
    "uom": "ea",
    "cost_cents": 24500,
    "markup": 0.28,
    "unit_cents": 31360
   },
   {
    "id": 389,
    "quote_id": 22,
    "sort": 130,
    "kind": "Components",
    "stage": null,
    "grp": null,
    "part_id": 34,
    "assembly_id": null,
    "description": "Phase failure / sequence relay",
    "qty": 1,
    "uom": "ea",
    "cost_cents": 16500,
    "markup": 0.3,
    "unit_cents": 21450
   },
   {
    "id": 390,
    "quote_id": 22,
    "sort": 140,
    "kind": "Labour",
    "stage": "Engineering & drafting",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Engineering & drafting",
    "qty": 6,
    "uom": "hr",
    "cost_cents": 8800,
    "markup": 0.65,
    "unit_cents": 14500
   },
   {
    "id": 391,
    "quote_id": 22,
    "sort": 150,
    "kind": "Labour",
    "stage": "Workshop labour",
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Workshop labour",
    "qty": 22,
    "uom": "hr",
    "cost_cents": 7200,
    "markup": 0.6,
    "unit_cents": 11500
   },
   {
    "id": 392,
    "quote_id": 22,
    "sort": 160,
    "kind": "Other",
    "stage": null,
    "grp": null,
    "part_id": null,
    "assembly_id": null,
    "description": "Factory acceptance test",
    "qty": 1,
    "uom": "lot",
    "cost_cents": 50000,
    "markup": 0.3,
    "unit_cents": 65000
   }
  ],
  "jobs": [
   {
    "id": 1,
    "ref": "J-26-041",
    "quote_id": 1,
    "customer_id": 1,
    "contact": "Brett Kingsley",
    "site": "Pit 3 dewatering pump station",
    "title": "Dual 75 kW VSD pump-control panel — Pit 3 dewatering",
    "type": "Panel build",
    "status": "In production",
    "pm": "Daniel Reeves",
    "start": "2026-09-21",
    "due": "2026-12-04",
    "customer_po": "WCO-4500118822",
    "contract_cents": 8062422,
    "budget_labour_cents": 1366000,
    "budget_hours": 174,
    "budget_material_cents": 4328400,
    "budget_other_cents": 300000,
    "retention_pct": 0,
    "notes": null,
    "color": "#1683B5",
    "created": "2026-09-18"
   },
   {
    "id": 2,
    "ref": "J-26-042",
    "quote_id": 2,
    "customer_id": 2,
    "contact": "Nadia Petrovic",
    "site": "Seaham raw-water booster station",
    "title": "Raw-water booster pumping system — supply & install",
    "type": "Installation",
    "status": "Procurement",
    "pm": "Daniel Reeves",
    "start": "2026-10-26",
    "due": "2027-01-29",
    "customer_po": "LHWS-PO-22817",
    "contract_cents": 21684594,
    "budget_labour_cents": 3400000,
    "budget_hours": 420,
    "budget_material_cents": 11501750,
    "budget_other_cents": 1480000,
    "retention_pct": 0,
    "notes": null,
    "color": "#5B4FC4",
    "created": "2026-10-20"
   },
   {
    "id": 3,
    "ref": "J-26-029",
    "quote_id": 3,
    "customer_id": 9,
    "contact": "Mark Ferris",
    "site": "Process water plant",
    "title": "Process-water pressure boosting station",
    "type": "Panel build",
    "status": "Complete",
    "pm": "Daniel Reeves",
    "start": "2026-06-15",
    "due": "2026-09-11",
    "customer_po": "BGD-77104",
    "contract_cents": 8632886,
    "budget_labour_cents": 1320000,
    "budget_hours": 166,
    "budget_material_cents": 5097400,
    "budget_other_cents": 90000,
    "retention_pct": 0,
    "notes": null,
    "color": "#1A9E8F",
    "created": "2026-06-12"
   },
   {
    "id": 4,
    "ref": "J-26-033",
    "quote_id": 4,
    "customer_id": 4,
    "contact": "Hamish Doyle",
    "site": "Pit 4 dewatering",
    "title": "Portable switchroom — Pit 4 dewatering",
    "type": "Panel build",
    "status": "Commissioning",
    "pm": "Daniel Reeves",
    "start": "2026-07-20",
    "due": "2026-11-13",
    "customer_po": "RRM-SC-1931",
    "contract_cents": 20378354,
    "budget_labour_cents": 2854000,
    "budget_hours": 366,
    "budget_material_cents": 6571500,
    "budget_other_cents": 6410000,
    "retention_pct": 5,
    "notes": null,
    "color": "#D9661F",
    "created": "2026-07-17"
   },
   {
    "id": 5,
    "ref": "J-26-036",
    "quote_id": 5,
    "customer_id": 7,
    "contact": "Shane Keogh",
    "site": "Moranbah yard",
    "title": "4 × dewatering pumpset control panels (Flygt 2670)",
    "type": "Panel build",
    "status": "In production",
    "pm": "Sam Whitaker",
    "start": "2026-09-14",
    "due": "2026-11-27",
    "customer_po": "BBD-0912",
    "contract_cents": 4480632,
    "budget_labour_cents": 930000,
    "budget_hours": 122,
    "budget_material_cents": 2197800,
    "budget_other_cents": 185000,
    "retention_pct": 0,
    "notes": null,
    "color": "#2E8B57",
    "created": "2026-09-07"
   },
   {
    "id": 6,
    "ref": "J-26-037",
    "quote_id": 6,
    "customer_id": 5,
    "contact": "Peter Lam",
    "site": "Berth K4 conveyor substation",
    "title": "Conveyor starter upgrade — CV-12 / CV-14",
    "type": "Installation",
    "status": "On site",
    "pm": "Daniel Reeves",
    "start": "2026-09-28",
    "due": "2026-11-20",
    "customer_po": "KBH-30118",
    "contract_cents": 6239060,
    "budget_labour_cents": 1509200,
    "budget_hours": 188,
    "budget_material_cents": 2642000,
    "budget_other_cents": 310000,
    "retention_pct": 0,
    "notes": null,
    "color": "#B8448C",
    "created": "2026-09-10"
   },
   {
    "id": 7,
    "ref": "J-26-038",
    "quote_id": 7,
    "customer_id": 6,
    "contact": "Tim Hargreaves",
    "site": "SPS-14 Medowie Road",
    "title": "SPS-14 sewage pump station control upgrade",
    "type": "Panel build",
    "status": "In production",
    "pm": "Sam Whitaker",
    "start": "2026-10-12",
    "due": "2026-12-11",
    "customer_po": "MCRC-PO-9114",
    "contract_cents": 3433050,
    "budget_labour_cents": 843200,
    "budget_hours": 106,
    "budget_material_cents": 1429500,
    "budget_other_cents": 200000,
    "retention_pct": 0,
    "notes": null,
    "color": "#7A6A1E",
    "created": "2026-09-29"
   },
   {
    "id": 8,
    "ref": "J-26-039",
    "quote_id": 8,
    "customer_id": 3,
    "contact": "Craig Duffy",
    "site": "Denman Rd quarry — substation 2",
    "title": "1.5 MVA transformer overhaul & oil sampling — Sub 2",
    "type": "Overhaul",
    "status": "In production",
    "pm": "Daniel Reeves",
    "start": "2026-10-05",
    "due": "2026-11-25",
    "customer_po": "MQP-3301",
    "contract_cents": 3275000,
    "budget_labour_cents": 1132800,
    "budget_hours": 150,
    "budget_material_cents": 0,
    "budget_other_cents": 1177000,
    "retention_pct": 0,
    "notes": null,
    "color": "#3E7CB1",
    "created": "2026-09-24"
   },
   {
    "id": 9,
    "ref": "J-26-040",
    "quote_id": 9,
    "customer_id": 8,
    "contact": "Dean Wallace",
    "site": "Hexham wash plant",
    "title": "Wash plant fibre optic backbone & PLC network",
    "type": "Installation",
    "status": "Planning",
    "pm": "Sam Whitaker",
    "start": "2026-11-16",
    "due": "2026-12-18",
    "customer_po": "HIM-7710",
    "contract_cents": 3169400,
    "budget_labour_cents": 944400,
    "budget_hours": 114,
    "budget_material_cents": 368000,
    "budget_other_cents": 970000,
    "retention_pct": 0,
    "notes": null,
    "color": "#A3542A",
    "created": "2026-10-28"
   },
   {
    "id": 10,
    "ref": "J-26-031",
    "quote_id": 10,
    "customer_id": 4,
    "contact": "Hamish Doyle",
    "site": "Pit 4 dewatering",
    "title": "Transformer maintenance & oil sampling round — Pit 4 & CHPP",
    "type": "Service",
    "status": "On site",
    "pm": "Daniel Reeves",
    "start": "2026-08-03",
    "due": "2026-11-27",
    "customer_po": "RRM-SC-1902",
    "contract_cents": 3914000,
    "budget_labour_cents": 1913600,
    "budget_hours": 242,
    "budget_material_cents": 0,
    "budget_other_cents": 710000,
    "retention_pct": 0,
    "notes": null,
    "color": "#1683B5",
    "created": "2026-07-28"
   },
   {
    "id": 11,
    "ref": "J-26-032",
    "quote_id": 11,
    "customer_id": 7,
    "contact": "Shane Keogh",
    "site": "Moranbah yard",
    "title": "Dewatering pumpset overhauls — 6 × Flygt 2640",
    "type": "Overhaul",
    "status": "In production",
    "pm": "Sam Whitaker",
    "start": "2026-08-17",
    "due": "2026-11-20",
    "customer_po": "BBD-0807",
    "contract_cents": 6594160,
    "budget_labour_cents": 2725600,
    "budget_hours": 372,
    "budget_material_cents": 147000,
    "budget_other_cents": 1710000,
    "retention_pct": 0,
    "notes": null,
    "color": "#5B4FC4",
    "created": "2026-08-07"
   },
   {
    "id": 12,
    "ref": "J-26-034",
    "quote_id": 12,
    "customer_id": 1,
    "contact": "Brett Kingsley",
    "site": "Pit 3 dewatering pump station",
    "title": "Pit 3 dewatering pumps — overhaul 4 × Flygt 2670",
    "type": "Overhaul",
    "status": "Complete",
    "pm": "Daniel Reeves",
    "start": "2026-07-27",
    "due": "2026-10-16",
    "customer_po": "WCO-4500117390",
    "contract_cents": 5580000,
    "budget_labour_cents": 2186000,
    "budget_hours": 296,
    "budget_material_cents": 0,
    "budget_other_cents": 1740000,
    "retention_pct": 0,
    "notes": null,
    "color": "#1A9E8F",
    "created": "2026-07-21"
   },
   {
    "id": 13,
    "ref": "J-26-035",
    "quote_id": 13,
    "customer_id": 5,
    "contact": "Peter Lam",
    "site": "Berth K4 conveyor substation",
    "title": "Conveyor drive servicing & thermography — Q3/Q4",
    "type": "Service",
    "status": "On site",
    "pm": "Daniel Reeves",
    "start": "2026-09-01",
    "due": "2026-12-18",
    "customer_po": "KBH-29870",
    "contract_cents": 3412000,
    "budget_labour_cents": 2060800,
    "budget_hours": 256,
    "budget_material_cents": 0,
    "budget_other_cents": 120000,
    "retention_pct": 0,
    "notes": null,
    "color": "#D9661F",
    "created": "2026-08-24"
   }
  ],
  "job_stages": [
   {
    "id": 1,
    "job_id": 1,
    "sort": 1,
    "name": "Design & drawings",
    "value_cents": 806242,
    "due": "2026-10-06",
    "status": "In progress",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 2,
    "job_id": 1,
    "sort": 2,
    "name": "Equipment procurement",
    "value_cents": 2821848,
    "due": "2026-10-21",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 3,
    "job_id": 1,
    "sort": 3,
    "name": "Assembly & wiring",
    "value_cents": 2418727,
    "due": "2026-11-04",
    "status": "In progress",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 4,
    "job_id": 1,
    "sort": 4,
    "name": "FAT & testing",
    "value_cents": 1209363,
    "due": "2026-11-19",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 5,
    "job_id": 1,
    "sort": 5,
    "name": "Delivery & commissioning",
    "value_cents": 806242,
    "due": "2026-12-04",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 6,
    "job_id": 2,
    "sort": 1,
    "name": "Site establishment",
    "value_cents": 1734768,
    "due": "2026-11-16",
    "status": "In progress",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 7,
    "job_id": 2,
    "sort": 2,
    "name": "Equipment supply",
    "value_cents": 8673838,
    "due": "2026-12-03",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 8,
    "job_id": 2,
    "sort": 3,
    "name": "Mechanical installation",
    "value_cents": 4770611,
    "due": "2026-12-22",
    "status": "In progress",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 9,
    "job_id": 2,
    "sort": 4,
    "name": "Electrical installation",
    "value_cents": 3903227,
    "due": "2027-01-11",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 10,
    "job_id": 2,
    "sort": 5,
    "name": "Commissioning & handover",
    "value_cents": 2602150,
    "due": "2027-01-29",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 11,
    "job_id": 3,
    "sort": 1,
    "name": "Design & drawings",
    "value_cents": 863289,
    "due": "2026-07-03",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 12,
    "job_id": 3,
    "sort": 2,
    "name": "Equipment procurement",
    "value_cents": 3021510,
    "due": "2026-07-20",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 13,
    "job_id": 3,
    "sort": 3,
    "name": "Assembly & wiring",
    "value_cents": 2589866,
    "due": "2026-08-07",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 14,
    "job_id": 3,
    "sort": 4,
    "name": "FAT & testing",
    "value_cents": 1294933,
    "due": "2026-08-24",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 15,
    "job_id": 3,
    "sort": 5,
    "name": "Delivery & commissioning",
    "value_cents": 863288,
    "due": "2026-09-11",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 16,
    "job_id": 4,
    "sort": 1,
    "name": "Design & drawings",
    "value_cents": 2037835,
    "due": "2026-08-12",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 17,
    "job_id": 4,
    "sort": 2,
    "name": "Equipment procurement",
    "value_cents": 7132424,
    "due": "2026-09-04",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 18,
    "job_id": 4,
    "sort": 3,
    "name": "Assembly & wiring",
    "value_cents": 6113506,
    "due": "2026-09-28",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 19,
    "job_id": 4,
    "sort": 4,
    "name": "FAT & testing",
    "value_cents": 3056753,
    "due": "2026-10-21",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 20,
    "job_id": 4,
    "sort": 5,
    "name": "Delivery & commissioning",
    "value_cents": 2037836,
    "due": "2026-11-13",
    "status": "In progress",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 21,
    "job_id": 5,
    "sort": 1,
    "name": "Design & drawings",
    "value_cents": 448063,
    "due": "2026-09-29",
    "status": "Complete",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 22,
    "job_id": 5,
    "sort": 2,
    "name": "Equipment procurement",
    "value_cents": 1568221,
    "due": "2026-10-14",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 23,
    "job_id": 5,
    "sort": 3,
    "name": "Assembly & wiring",
    "value_cents": 1344190,
    "due": "2026-10-28",
    "status": "In progress",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 24,
    "job_id": 5,
    "sort": 4,
    "name": "FAT & testing",
    "value_cents": 672095,
    "due": "2026-11-12",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 25,
    "job_id": 5,
    "sort": 5,
    "name": "Delivery & commissioning",
    "value_cents": 448063,
    "due": "2026-11-27",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 26,
    "job_id": 6,
    "sort": 1,
    "name": "Site establishment",
    "value_cents": 499125,
    "due": "2026-10-09",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 27,
    "job_id": 6,
    "sort": 2,
    "name": "Equipment supply",
    "value_cents": 2495624,
    "due": "2026-10-19",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 28,
    "job_id": 6,
    "sort": 3,
    "name": "Mechanical installation",
    "value_cents": 1372593,
    "due": "2026-10-30",
    "status": "In progress",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 29,
    "job_id": 6,
    "sort": 4,
    "name": "Electrical installation",
    "value_cents": 1123031,
    "due": "2026-11-09",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 30,
    "job_id": 6,
    "sort": 5,
    "name": "Commissioning & handover",
    "value_cents": 748687,
    "due": "2026-11-20",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 31,
    "job_id": 7,
    "sort": 1,
    "name": "Design & drawings",
    "value_cents": 343305,
    "due": "2026-10-26",
    "status": "Complete",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 32,
    "job_id": 7,
    "sort": 2,
    "name": "Equipment procurement",
    "value_cents": 1201568,
    "due": "2026-11-05",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 33,
    "job_id": 7,
    "sort": 3,
    "name": "Assembly & wiring",
    "value_cents": 1029915,
    "due": "2026-11-17",
    "status": "In progress",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 34,
    "job_id": 7,
    "sort": 4,
    "name": "FAT & testing",
    "value_cents": 514958,
    "due": "2026-11-30",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 35,
    "job_id": 7,
    "sort": 5,
    "name": "Delivery & commissioning",
    "value_cents": 343304,
    "due": "2026-12-11",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 36,
    "job_id": 8,
    "sort": 1,
    "name": "Strip & assess",
    "value_cents": 655000,
    "due": "2026-10-19",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 37,
    "job_id": 8,
    "sort": 2,
    "name": "Parts & materials",
    "value_cents": 982500,
    "due": "2026-11-02",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 38,
    "job_id": 8,
    "sort": 3,
    "name": "Overhaul & rebuild",
    "value_cents": 1146250,
    "due": "2026-11-12",
    "status": "In progress",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 39,
    "job_id": 8,
    "sort": 4,
    "name": "Test & return to site",
    "value_cents": 491250,
    "due": "2026-11-25",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 40,
    "job_id": 9,
    "sort": 1,
    "name": "Design",
    "value_cents": 475410,
    "due": "2026-11-24",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 41,
    "job_id": 9,
    "sort": 2,
    "name": "Materials",
    "value_cents": 950820,
    "due": "2026-12-02",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 42,
    "job_id": 9,
    "sort": 3,
    "name": "Installation",
    "value_cents": 1267760,
    "due": "2026-12-10",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 43,
    "job_id": 9,
    "sort": 4,
    "name": "Testing & handover",
    "value_cents": 475410,
    "due": "2026-12-18",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 44,
    "job_id": 10,
    "sort": 1,
    "name": "Planning & surveys",
    "value_cents": 391400,
    "due": "2026-09-01",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 45,
    "job_id": 10,
    "sort": 2,
    "name": "Materials & preparation",
    "value_cents": 1174200,
    "due": "2026-09-30",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 46,
    "job_id": 10,
    "sort": 3,
    "name": "Site works",
    "value_cents": 1761300,
    "due": "2026-10-29",
    "status": "In progress",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 47,
    "job_id": 10,
    "sort": 4,
    "name": "Reports & handover",
    "value_cents": 587100,
    "due": "2026-11-27",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 48,
    "job_id": 11,
    "sort": 1,
    "name": "Strip & assess",
    "value_cents": 1318832,
    "due": "2026-09-10",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 49,
    "job_id": 11,
    "sort": 2,
    "name": "Parts & materials",
    "value_cents": 1978248,
    "due": "2026-10-05",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 50,
    "job_id": 11,
    "sort": 3,
    "name": "Overhaul & rebuild",
    "value_cents": 2307956,
    "due": "2026-10-27",
    "status": "In progress",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 51,
    "job_id": 11,
    "sort": 4,
    "name": "Test & return to site",
    "value_cents": 989124,
    "due": "2026-11-20",
    "status": "Not started",
    "assigned": "Sam Whitaker"
   },
   {
    "id": 52,
    "job_id": 12,
    "sort": 1,
    "name": "Strip & assess",
    "value_cents": 1116000,
    "due": "2026-08-17",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 53,
    "job_id": 12,
    "sort": 2,
    "name": "Parts & materials",
    "value_cents": 1674000,
    "due": "2026-09-07",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 54,
    "job_id": 12,
    "sort": 3,
    "name": "Overhaul & rebuild",
    "value_cents": 1953000,
    "due": "2026-09-28",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 55,
    "job_id": 12,
    "sort": 4,
    "name": "Test & return to site",
    "value_cents": 837000,
    "due": "2026-10-16",
    "status": "Complete",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 56,
    "job_id": 13,
    "sort": 1,
    "name": "Planning & surveys",
    "value_cents": 341200,
    "due": "2026-09-28",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 57,
    "job_id": 13,
    "sort": 2,
    "name": "Materials & preparation",
    "value_cents": 1023600,
    "due": "2026-10-26",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 58,
    "job_id": 13,
    "sort": 3,
    "name": "Site works",
    "value_cents": 1535400,
    "due": "2026-11-23",
    "status": "In progress",
    "assigned": "Daniel Reeves"
   },
   {
    "id": 59,
    "job_id": 13,
    "sort": 4,
    "name": "Reports & handover",
    "value_cents": 511800,
    "due": "2026-12-18",
    "status": "Not started",
    "assigned": "Daniel Reeves"
   }
  ],
  "variations": [
   {
    "id": 1,
    "job_id": 1,
    "ref": "V-01",
    "title": "Add 4G telemetry RTU and third discharge pressure transmitter",
    "value_cents": 864000,
    "cost_cents": 596000,
    "status": "Approved",
    "raised": "2026-10-09",
    "approved_on": "2026-10-15",
    "approved_by": "Brett Kingsley (Wollombi)",
    "customer_ref": "WCO-VO-031",
    "notes": "Customer request after HAZOP — remote alarms to the control room."
   },
   {
    "id": 2,
    "job_id": 1,
    "ref": "V-02",
    "title": "316 stainless outdoor canopy over panel",
    "value_cents": 620000,
    "cost_cents": 435000,
    "status": "Submitted",
    "raised": "2026-10-28",
    "approved_on": null,
    "approved_by": null,
    "customer_ref": null,
    "notes": "Waiting on Brett — pricing sent 28 Oct."
   },
   {
    "id": 3,
    "job_id": 4,
    "ref": "V-01",
    "title": "Additional MCC tier — 2 × DOL starters for sump pumps",
    "value_cents": 1420000,
    "cost_cents": 990000,
    "status": "Approved",
    "raised": "2026-08-20",
    "approved_on": "2026-08-27",
    "approved_by": "Hamish Doyle (Ravensworth)",
    "customer_ref": "RRM-VAR-07",
    "notes": null
   },
   {
    "id": 4,
    "job_id": 2,
    "ref": "V-01",
    "title": "Relocate pump plinths 2 m north (clash with existing drainage)",
    "value_cents": 285000,
    "cost_cents": 210000,
    "status": "Draft",
    "raised": "2026-11-02",
    "approved_on": null,
    "approved_by": null,
    "customer_ref": null,
    "notes": "Found on site survey 28 Oct."
   }
  ],
  "requirements": [
   {
    "id": 1,
    "job_id": 1,
    "part_id": 15,
    "qty": 2,
    "task_id": 3,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 2,
    "job_id": 1,
    "part_id": 21,
    "qty": 2,
    "task_id": 3,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 3,
    "job_id": 1,
    "part_id": 23,
    "qty": 2,
    "task_id": 3,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 4,
    "job_id": 1,
    "part_id": 25,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 5,
    "job_id": 1,
    "part_id": 26,
    "qty": 2,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 6,
    "job_id": 1,
    "part_id": 27,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 7,
    "job_id": 1,
    "part_id": 28,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 8,
    "job_id": 1,
    "part_id": 29,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 9,
    "job_id": 1,
    "part_id": 30,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 10,
    "job_id": 1,
    "part_id": 31,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 11,
    "job_id": 1,
    "part_id": 32,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 12,
    "job_id": 1,
    "part_id": 33,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 13,
    "job_id": 1,
    "part_id": 34,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 14,
    "job_id": 1,
    "part_id": 36,
    "qty": 2,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 15,
    "job_id": 1,
    "part_id": 37,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 16,
    "job_id": 1,
    "part_id": 51,
    "qty": 1,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 17,
    "job_id": 1,
    "part_id": 52,
    "qty": 2,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 18,
    "job_id": 1,
    "part_id": 58,
    "qty": 1,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 19,
    "job_id": 1,
    "part_id": 59,
    "qty": 6,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 20,
    "job_id": 1,
    "part_id": 61,
    "qty": 2,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 21,
    "job_id": 1,
    "part_id": 62,
    "qty": 2,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 22,
    "job_id": 1,
    "part_id": 63,
    "qty": 6,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 23,
    "job_id": 1,
    "part_id": 64,
    "qty": 2,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 24,
    "job_id": 1,
    "part_id": 65,
    "qty": 14,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 25,
    "job_id": 1,
    "part_id": 66,
    "qty": 4,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 26,
    "job_id": 1,
    "part_id": 67,
    "qty": 2,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 27,
    "job_id": 1,
    "part_id": 68,
    "qty": 8,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 28,
    "job_id": 1,
    "part_id": 69,
    "qty": 1,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 29,
    "job_id": 1,
    "part_id": 70,
    "qty": 1,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 30,
    "job_id": 1,
    "part_id": 71,
    "qty": 2,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 31,
    "job_id": 1,
    "part_id": 72,
    "qty": 1,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 32,
    "job_id": 1,
    "part_id": 73,
    "qty": 1,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 33,
    "job_id": 1,
    "part_id": 74,
    "qty": 1,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 34,
    "job_id": 1,
    "part_id": 75,
    "qty": 2,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 35,
    "job_id": 1,
    "part_id": 76,
    "qty": 1,
    "task_id": 2,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 36,
    "job_id": 1,
    "part_id": 78,
    "qty": 1,
    "task_id": 2,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 37,
    "job_id": 1,
    "part_id": 85,
    "qty": 60,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 38,
    "job_id": 1,
    "part_id": 87,
    "qty": 6,
    "task_id": 4,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 39,
    "job_id": 2,
    "part_id": 1,
    "qty": 3,
    "task_id": 13,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 40,
    "job_id": 2,
    "part_id": 18,
    "qty": 3,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 41,
    "job_id": 2,
    "part_id": 25,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 42,
    "job_id": 2,
    "part_id": 26,
    "qty": 2,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 43,
    "job_id": 2,
    "part_id": 27,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 44,
    "job_id": 2,
    "part_id": 28,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 45,
    "job_id": 2,
    "part_id": 29,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 46,
    "job_id": 2,
    "part_id": 30,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 47,
    "job_id": 2,
    "part_id": 31,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 48,
    "job_id": 2,
    "part_id": 32,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 49,
    "job_id": 2,
    "part_id": 33,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 50,
    "job_id": 2,
    "part_id": 35,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 51,
    "job_id": 2,
    "part_id": 36,
    "qty": 2,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 52,
    "job_id": 2,
    "part_id": 37,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 53,
    "job_id": 2,
    "part_id": 38,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 54,
    "job_id": 2,
    "part_id": 40,
    "qty": 2,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 55,
    "job_id": 2,
    "part_id": 41,
    "qty": 6,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 56,
    "job_id": 2,
    "part_id": 42,
    "qty": 1,
    "task_id": 11,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 57,
    "job_id": 2,
    "part_id": 43,
    "qty": 3,
    "task_id": 11,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 58,
    "job_id": 2,
    "part_id": 45,
    "qty": 3,
    "task_id": 11,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 59,
    "job_id": 2,
    "part_id": 47,
    "qty": 3,
    "task_id": 11,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 60,
    "job_id": 2,
    "part_id": 48,
    "qty": 2,
    "task_id": 11,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 61,
    "job_id": 2,
    "part_id": 49,
    "qty": 12,
    "task_id": 11,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 62,
    "job_id": 2,
    "part_id": 52,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 63,
    "job_id": 2,
    "part_id": 54,
    "qty": 3,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 64,
    "job_id": 2,
    "part_id": 58,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 65,
    "job_id": 2,
    "part_id": 59,
    "qty": 6,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 66,
    "job_id": 2,
    "part_id": 62,
    "qty": 3,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 67,
    "job_id": 2,
    "part_id": 63,
    "qty": 9,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 68,
    "job_id": 2,
    "part_id": 64,
    "qty": 3,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 69,
    "job_id": 2,
    "part_id": 65,
    "qty": 15,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 70,
    "job_id": 2,
    "part_id": 66,
    "qty": 3,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 71,
    "job_id": 2,
    "part_id": 67,
    "qty": 3,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 72,
    "job_id": 2,
    "part_id": 68,
    "qty": 6,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 73,
    "job_id": 2,
    "part_id": 69,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 74,
    "job_id": 2,
    "part_id": 80,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 75,
    "job_id": 2,
    "part_id": 81,
    "qty": 1,
    "task_id": 12,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 76,
    "job_id": 2,
    "part_id": 83,
    "qty": 180,
    "task_id": 14,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 77,
    "job_id": 2,
    "part_id": 84,
    "qty": 90,
    "task_id": 14,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 78,
    "job_id": 2,
    "part_id": 86,
    "qty": 240,
    "task_id": 14,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 79,
    "job_id": 2,
    "part_id": 88,
    "qty": 120,
    "task_id": 11,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 80,
    "job_id": 2,
    "part_id": 90,
    "qty": 16,
    "task_id": 11,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 81,
    "job_id": 2,
    "part_id": 91,
    "qty": 12,
    "task_id": 11,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 82,
    "job_id": 3,
    "part_id": 2,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 83,
    "job_id": 3,
    "part_id": 18,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 84,
    "job_id": 3,
    "part_id": 25,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 85,
    "job_id": 3,
    "part_id": 26,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 86,
    "job_id": 3,
    "part_id": 27,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 87,
    "job_id": 3,
    "part_id": 28,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 88,
    "job_id": 3,
    "part_id": 29,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 89,
    "job_id": 3,
    "part_id": 30,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 90,
    "job_id": 3,
    "part_id": 31,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 91,
    "job_id": 3,
    "part_id": 32,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 92,
    "job_id": 3,
    "part_id": 33,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 93,
    "job_id": 3,
    "part_id": 36,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 94,
    "job_id": 3,
    "part_id": 41,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 95,
    "job_id": 3,
    "part_id": 43,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 96,
    "job_id": 3,
    "part_id": 45,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 97,
    "job_id": 3,
    "part_id": 47,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 98,
    "job_id": 3,
    "part_id": 49,
    "qty": 8,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 99,
    "job_id": 3,
    "part_id": 54,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 100,
    "job_id": 3,
    "part_id": 59,
    "qty": 6,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 101,
    "job_id": 3,
    "part_id": 62,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 102,
    "job_id": 3,
    "part_id": 63,
    "qty": 6,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 103,
    "job_id": 3,
    "part_id": 64,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 104,
    "job_id": 3,
    "part_id": 65,
    "qty": 12,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 105,
    "job_id": 3,
    "part_id": 66,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 106,
    "job_id": 3,
    "part_id": 67,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 107,
    "job_id": 3,
    "part_id": 68,
    "qty": 4,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 108,
    "job_id": 3,
    "part_id": 69,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 109,
    "job_id": 3,
    "part_id": 70,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 110,
    "job_id": 3,
    "part_id": 71,
    "qty": 2,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 111,
    "job_id": 3,
    "part_id": 72,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 112,
    "job_id": 3,
    "part_id": 73,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 113,
    "job_id": 3,
    "part_id": 74,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 114,
    "job_id": 3,
    "part_id": 76,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 115,
    "job_id": 3,
    "part_id": 78,
    "qty": 1,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 116,
    "job_id": 3,
    "part_id": 87,
    "qty": 6,
    "task_id": 17,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 117,
    "job_id": 4,
    "part_id": 15,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 118,
    "job_id": 4,
    "part_id": 17,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 119,
    "job_id": 4,
    "part_id": 21,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 120,
    "job_id": 4,
    "part_id": 22,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 121,
    "job_id": 4,
    "part_id": 23,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 122,
    "job_id": 4,
    "part_id": 25,
    "qty": 1,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 123,
    "job_id": 4,
    "part_id": 26,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 124,
    "job_id": 4,
    "part_id": 27,
    "qty": 1,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 125,
    "job_id": 4,
    "part_id": 28,
    "qty": 1,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 126,
    "job_id": 4,
    "part_id": 29,
    "qty": 1,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 127,
    "job_id": 4,
    "part_id": 30,
    "qty": 1,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 128,
    "job_id": 4,
    "part_id": 31,
    "qty": 1,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 129,
    "job_id": 4,
    "part_id": 32,
    "qty": 1,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 130,
    "job_id": 4,
    "part_id": 33,
    "qty": 1,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 131,
    "job_id": 4,
    "part_id": 51,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 132,
    "job_id": 4,
    "part_id": 52,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 133,
    "job_id": 4,
    "part_id": 53,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 134,
    "job_id": 4,
    "part_id": 58,
    "qty": 1,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 135,
    "job_id": 4,
    "part_id": 59,
    "qty": 6,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 136,
    "job_id": 4,
    "part_id": 62,
    "qty": 4,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 137,
    "job_id": 4,
    "part_id": 63,
    "qty": 12,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 138,
    "job_id": 4,
    "part_id": 64,
    "qty": 4,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 139,
    "job_id": 4,
    "part_id": 65,
    "qty": 22,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 140,
    "job_id": 4,
    "part_id": 66,
    "qty": 8,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 141,
    "job_id": 4,
    "part_id": 67,
    "qty": 4,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 142,
    "job_id": 4,
    "part_id": 68,
    "qty": 14,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 143,
    "job_id": 4,
    "part_id": 69,
    "qty": 1,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 144,
    "job_id": 4,
    "part_id": 70,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 145,
    "job_id": 4,
    "part_id": 71,
    "qty": 4,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 146,
    "job_id": 4,
    "part_id": 72,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 147,
    "job_id": 4,
    "part_id": 73,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 148,
    "job_id": 4,
    "part_id": 74,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 149,
    "job_id": 4,
    "part_id": 75,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 150,
    "job_id": 4,
    "part_id": 76,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 151,
    "job_id": 4,
    "part_id": 78,
    "qty": 2,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 152,
    "job_id": 4,
    "part_id": 82,
    "qty": 60,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 153,
    "job_id": 4,
    "part_id": 87,
    "qty": 12,
    "task_id": 23,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 154,
    "job_id": 5,
    "part_id": 18,
    "qty": 4,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 155,
    "job_id": 5,
    "part_id": 34,
    "qty": 4,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 156,
    "job_id": 5,
    "part_id": 40,
    "qty": 8,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 157,
    "job_id": 5,
    "part_id": 54,
    "qty": 4,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 158,
    "job_id": 5,
    "part_id": 62,
    "qty": 4,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 159,
    "job_id": 5,
    "part_id": 63,
    "qty": 12,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 160,
    "job_id": 5,
    "part_id": 64,
    "qty": 4,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 161,
    "job_id": 5,
    "part_id": 65,
    "qty": 12,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 162,
    "job_id": 5,
    "part_id": 66,
    "qty": 4,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 163,
    "job_id": 5,
    "part_id": 67,
    "qty": 4,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 164,
    "job_id": 5,
    "part_id": 68,
    "qty": 8,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 165,
    "job_id": 5,
    "part_id": 79,
    "qty": 4,
    "task_id": 29,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 166,
    "job_id": 6,
    "part_id": 20,
    "qty": 2,
    "task_id": 36,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 167,
    "job_id": 6,
    "part_id": 52,
    "qty": 2,
    "task_id": 36,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 168,
    "job_id": 6,
    "part_id": 56,
    "qty": 2,
    "task_id": 36,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 169,
    "job_id": 6,
    "part_id": 77,
    "qty": 2,
    "task_id": 36,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 170,
    "job_id": 6,
    "part_id": 82,
    "qty": 140,
    "task_id": 36,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 171,
    "job_id": 6,
    "part_id": 85,
    "qty": 200,
    "task_id": 36,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 172,
    "job_id": 7,
    "part_id": 19,
    "qty": 2,
    "task_id": 40,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 173,
    "job_id": 7,
    "part_id": 25,
    "qty": 1,
    "task_id": 40,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 174,
    "job_id": 7,
    "part_id": 28,
    "qty": 1,
    "task_id": 40,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 175,
    "job_id": 7,
    "part_id": 31,
    "qty": 1,
    "task_id": 40,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 176,
    "job_id": 7,
    "part_id": 35,
    "qty": 1,
    "task_id": 40,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 177,
    "job_id": 7,
    "part_id": 37,
    "qty": 1,
    "task_id": 40,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 178,
    "job_id": 7,
    "part_id": 40,
    "qty": 2,
    "task_id": 40,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 179,
    "job_id": 7,
    "part_id": 54,
    "qty": 1,
    "task_id": 40,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 180,
    "job_id": 7,
    "part_id": 62,
    "qty": 2,
    "task_id": 40,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 181,
    "job_id": 7,
    "part_id": 80,
    "qty": 1,
    "task_id": 40,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 182,
    "job_id": 9,
    "part_id": 31,
    "qty": 4,
    "task_id": 52,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 183,
    "job_id": 9,
    "part_id": 33,
    "qty": 4,
    "task_id": 52,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 184,
    "job_id": 9,
    "part_id": 79,
    "qty": 2,
    "task_id": 52,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 185,
    "job_id": 11,
    "part_id": 40,
    "qty": 6,
    "task_id": 60,
    "from_stock": 0,
    "notes": null
   },
   {
    "id": 186,
    "job_id": 1,
    "part_id": 35,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": "V-01"
   },
   {
    "id": 187,
    "job_id": 1,
    "part_id": 36,
    "qty": 1,
    "task_id": 5,
    "from_stock": 0,
    "notes": "V-01"
   }
  ],
  "purchase_orders": [
   {
    "id": 1,
    "ref": "PO-26-0323",
    "supplier_id": 2,
    "status": "Received",
    "ordered": "2026-09-22",
    "eta": "2026-10-16",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": "Combined order — J-26-041 and J-26-036 drives.",
    "total_cents": 3596000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 2,
    "ref": "PO-26-0325",
    "supplier_id": 10,
    "status": "Received",
    "ordered": "2026-09-23",
    "eta": "2026-10-07",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 716000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 3,
    "ref": "PO-26-0328",
    "supplier_id": 1,
    "status": "Received",
    "ordered": "2026-09-24",
    "eta": "2026-09-29",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 860800,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 4,
    "ref": "PO-26-0330",
    "supplier_id": 7,
    "status": "Part received",
    "ordered": "2026-09-25",
    "eta": "2026-10-09",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": "HMI on back order — Schneider ETA 12 Nov.",
    "total_cents": 659200,
    "approved_by": null,
    "approved_on": null,
    "delay_note": "HMI on back order — Schneider confirmed ETA 12 Nov.",
    "created_by": "Jordan Price"
   },
   {
    "id": 5,
    "ref": "PO-26-0333",
    "supplier_id": 6,
    "status": "Received",
    "ordered": "2026-09-25",
    "eta": "2026-09-29",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 232200,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 6,
    "ref": "PO-26-0335",
    "supplier_id": 8,
    "status": "Received",
    "ordered": "2026-09-29",
    "eta": "2026-10-15",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 462000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 7,
    "ref": "PO-26-0356",
    "supplier_id": 3,
    "status": "Sent",
    "ordered": "2026-10-23",
    "eta": "2026-11-27",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": "3 × CR 45-3 for Seaham booster station.",
    "total_cents": 4455000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": "Grundfos advised 30 Oct: factory allocation delay — ETA moved from 13 Nov to 27 Nov.",
    "created_by": "Jordan Price"
   },
   {
    "id": 8,
    "ref": "PO-26-0358",
    "supplier_id": 2,
    "status": "Sent",
    "ordered": "2026-10-27",
    "eta": "2026-11-11",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": "Combined — J-26-042 and J-26-038 drives.",
    "total_cents": 1376000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 9,
    "ref": "PO-26-0361",
    "supplier_id": 11,
    "status": "Received",
    "ordered": "2026-10-27",
    "eta": "2026-11-02",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 883200,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 10,
    "ref": "PO-26-0363",
    "supplier_id": 9,
    "status": "Part received",
    "ordered": "2026-10-28",
    "eta": "2026-11-09",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 1524400,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 11,
    "ref": "PO-26-0343",
    "supplier_id": 7,
    "status": "Received",
    "ordered": "2026-10-14",
    "eta": "2026-10-23",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 197100,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 12,
    "ref": "PO-26-0345",
    "supplier_id": 10,
    "status": "Sent",
    "ordered": "2026-10-14",
    "eta": "2026-11-06",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 325000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 13,
    "ref": "PO-26-0348",
    "supplier_id": 8,
    "status": "Received",
    "ordered": "2026-10-14",
    "eta": "2026-10-30",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 178000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 14,
    "ref": "PO-26-0350",
    "supplier_id": 1,
    "status": "Received",
    "ordered": "2026-10-15",
    "eta": "2026-10-20",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 370400,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 15,
    "ref": "PO-26-0353",
    "supplier_id": 6,
    "status": "Received",
    "ordered": "2026-10-15",
    "eta": "2026-10-16",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 1533000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 16,
    "ref": "PO-26-0337",
    "supplier_id": 2,
    "status": "Received",
    "ordered": "2026-09-29",
    "eta": "2026-10-13",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 548000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 17,
    "ref": "PO-26-0340",
    "supplier_id": 10,
    "status": "Received",
    "ordered": "2026-09-29",
    "eta": "2026-10-09",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 528000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 18,
    "ref": "PO-26-0293",
    "supplier_id": 3,
    "status": "Received",
    "ordered": "2026-06-18",
    "eta": "2026-07-09",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 2240000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 19,
    "ref": "PO-26-0291",
    "supplier_id": 2,
    "status": "Received",
    "ordered": "2026-06-17",
    "eta": "2026-07-01",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 656000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 20,
    "ref": "PO-26-0295",
    "supplier_id": 7,
    "status": "Received",
    "ordered": "2026-06-19",
    "eta": "2026-06-26",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 576700,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 21,
    "ref": "PO-26-0300",
    "supplier_id": 10,
    "status": "Received",
    "ordered": "2026-06-20",
    "eta": "2026-06-29",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 440000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 22,
    "ref": "PO-26-0302",
    "supplier_id": 1,
    "status": "Received",
    "ordered": "2026-06-20",
    "eta": "2026-06-23",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 185200,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 23,
    "ref": "PO-26-0305",
    "supplier_id": 6,
    "status": "Received",
    "ordered": "2026-06-20",
    "eta": "2026-06-23",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 126500,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 24,
    "ref": "PO-26-0297",
    "supplier_id": 8,
    "status": "Received",
    "ordered": "2026-06-19",
    "eta": "2026-07-02",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 137000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 25,
    "ref": "PO-26-0308",
    "supplier_id": 9,
    "status": "Received",
    "ordered": "2026-06-20",
    "eta": "2026-06-25",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 736000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 26,
    "ref": "PO-26-0320",
    "supplier_id": 1,
    "status": "Received",
    "ordered": "2026-07-27",
    "eta": "2026-07-29",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 928800,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 27,
    "ref": "PO-26-0311",
    "supplier_id": 2,
    "status": "Received",
    "ordered": "2026-07-23",
    "eta": "2026-08-06",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 3446000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 28,
    "ref": "PO-26-0315",
    "supplier_id": 7,
    "status": "Received",
    "ordered": "2026-07-25",
    "eta": "2026-07-31",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 576700,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 29,
    "ref": "PO-26-0318",
    "supplier_id": 10,
    "status": "Received",
    "ordered": "2026-07-26",
    "eta": "2026-08-03",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 880000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 30,
    "ref": "PO-26-0313",
    "supplier_id": 6,
    "status": "Received",
    "ordered": "2026-07-24",
    "eta": "2026-07-28",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": null,
    "total_cents": 740000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 31,
    "ref": "PO-26-0368",
    "supplier_id": 4,
    "status": "Awaiting approval",
    "ordered": "2026-11-03",
    "eta": "2026-12-01",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": "Hire-fleet spares — 2 × 2640 and a 2201 for the Bowen Basin changeout program.",
    "total_cents": 3830000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   },
   {
    "id": 32,
    "ref": "PO-26-0365",
    "supplier_id": 1,
    "status": "Sent",
    "ordered": "2026-11-02",
    "eta": "2026-11-05",
    "deliver_to": "Workshop — 5 Campbell St, Tomago",
    "notes": "Workshop stock top-up.",
    "total_cents": 278000,
    "approved_by": null,
    "approved_on": null,
    "delay_note": null,
    "created_by": "Jordan Price"
   }
  ],
  "po_lines": [
   {
    "id": 1,
    "po_id": 1,
    "part_id": 15,
    "description": "ABB ACS580-01-145A-4 VSD 75 kW IP21",
    "qty": 2,
    "unit_cents": 942000,
    "received": 2,
    "eta": null
   },
   {
    "id": 2,
    "po_id": 1,
    "part_id": 18,
    "description": "ABB ACS580-01-046A-4 VSD 22 kW IP21",
    "qty": 4,
    "unit_cents": 328000,
    "received": 4,
    "eta": null
   },
   {
    "id": 3,
    "po_id": 1,
    "part_id": 21,
    "description": "Line reactor 145 A, 3-phase",
    "qty": 2,
    "unit_cents": 112000,
    "received": 2,
    "eta": null
   },
   {
    "id": 4,
    "po_id": 1,
    "part_id": 23,
    "description": "EMC/RFI filter 145 A",
    "qty": 2,
    "unit_cents": 88000,
    "received": 2,
    "eta": null
   },
   {
    "id": 5,
    "po_id": 2,
    "part_id": 76,
    "description": "Rittal VX25 freestanding 1800H × 1200W × 500D, 2-door",
    "qty": 1,
    "unit_cents": 398000,
    "received": 1,
    "eta": null
   },
   {
    "id": 6,
    "po_id": 2,
    "part_id": 78,
    "description": "VX25 plinth 100 mm, 1200 W",
    "qty": 1,
    "unit_cents": 42000,
    "received": 1,
    "eta": null
   },
   {
    "id": 7,
    "po_id": 2,
    "part_id": 79,
    "description": "Rittal AX wall-mount enclosure 760 × 760 × 300",
    "qty": 4,
    "unit_cents": 69000,
    "received": 4,
    "eta": null
   },
   {
    "id": 8,
    "po_id": 3,
    "part_id": 51,
    "description": "NHP 400 A 3P main switch-disconnector, 50 kA",
    "qty": 1,
    "unit_cents": 184000,
    "received": 1,
    "eta": null
   },
   {
    "id": 9,
    "po_id": 3,
    "part_id": 52,
    "description": "NHP 250 A 3P MCCB, 36 kA, electronic trip",
    "qty": 2,
    "unit_cents": 98000,
    "received": 2,
    "eta": null
   },
   {
    "id": 10,
    "po_id": 3,
    "part_id": 54,
    "description": "NHP 100 A 3P MCCB, 25 kA",
    "qty": 4,
    "unit_cents": 42000,
    "received": 4,
    "eta": null
   },
   {
    "id": 11,
    "po_id": 3,
    "part_id": 58,
    "description": "Surge protection device 3P+N, 40 kA",
    "qty": 1,
    "unit_cents": 52000,
    "received": 1,
    "eta": null
   },
   {
    "id": 12,
    "po_id": 3,
    "part_id": 59,
    "description": "MCB 1P 6 A C-curve, 6 kA",
    "qty": 6,
    "unit_cents": 1800,
    "received": 6,
    "eta": null
   },
   {
    "id": 13,
    "po_id": 3,
    "part_id": 61,
    "description": "E-stop 40 mm mushroom, twist release, c/w NC block",
    "qty": 2,
    "unit_cents": 6400,
    "received": 2,
    "eta": null
   },
   {
    "id": 14,
    "po_id": 3,
    "part_id": 62,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 6,
    "unit_cents": 5200,
    "received": 6,
    "eta": null
   },
   {
    "id": 15,
    "po_id": 3,
    "part_id": 63,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 18,
    "unit_cents": 2600,
    "received": 18,
    "eta": null
   },
   {
    "id": 16,
    "po_id": 3,
    "part_id": 64,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 6,
    "unit_cents": 11800,
    "received": 6,
    "eta": null
   },
   {
    "id": 17,
    "po_id": 3,
    "part_id": 65,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 26,
    "unit_cents": 3400,
    "received": 26,
    "eta": null
   },
   {
    "id": 18,
    "po_id": 4,
    "part_id": 25,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "unit_cents": 124000,
    "received": 1,
    "eta": null
   },
   {
    "id": 19,
    "po_id": 4,
    "part_id": 26,
    "description": "Modicon TM3 16-channel digital input module",
    "qty": 2,
    "unit_cents": 26800,
    "received": 2,
    "eta": null
   },
   {
    "id": 20,
    "po_id": 4,
    "part_id": 27,
    "description": "Modicon TM3 16-channel relay output module",
    "qty": 1,
    "unit_cents": 31200,
    "received": 1,
    "eta": null
   },
   {
    "id": 21,
    "po_id": 4,
    "part_id": 28,
    "description": "Modicon TM3 4-channel analogue input module",
    "qty": 1,
    "unit_cents": 48600,
    "received": 1,
    "eta": null
   },
   {
    "id": 22,
    "po_id": 4,
    "part_id": 29,
    "description": "Modicon TM3 2-channel analogue output module",
    "qty": 1,
    "unit_cents": 39800,
    "received": 1,
    "eta": null
   },
   {
    "id": 23,
    "po_id": 4,
    "part_id": 30,
    "description": "Harmony ST6 7\" touch HMI, Ethernet",
    "qty": 1,
    "unit_cents": 158000,
    "received": 0,
    "eta": "2026-11-12"
   },
   {
    "id": 24,
    "po_id": 4,
    "part_id": 31,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 1,
    "unit_cents": 24500,
    "received": 1,
    "eta": null
   },
   {
    "id": 25,
    "po_id": 4,
    "part_id": 32,
    "description": "24 VDC DC-UPS module c/w 7 Ah battery",
    "qty": 1,
    "unit_cents": 64000,
    "received": 1,
    "eta": null
   },
   {
    "id": 26,
    "po_id": 4,
    "part_id": 33,
    "description": "Unmanaged industrial Ethernet switch, 8-port",
    "qty": 1,
    "unit_cents": 33000,
    "received": 1,
    "eta": null
   },
   {
    "id": 27,
    "po_id": 4,
    "part_id": 34,
    "description": "Phase failure / sequence relay",
    "qty": 5,
    "unit_cents": 16500,
    "received": 5,
    "eta": null
   },
   {
    "id": 28,
    "po_id": 5,
    "part_id": 66,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 8,
    "unit_cents": 950,
    "received": 8,
    "eta": null
   },
   {
    "id": 29,
    "po_id": 5,
    "part_id": 67,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 6,
    "unit_cents": 6200,
    "received": 6,
    "eta": null
   },
   {
    "id": 30,
    "po_id": 5,
    "part_id": 68,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 16,
    "unit_cents": 1400,
    "received": 16,
    "eta": null
   },
   {
    "id": 31,
    "po_id": 5,
    "part_id": 69,
    "description": "Bootlace ferrule kit, assorted",
    "qty": 1,
    "unit_cents": 4800,
    "received": 1,
    "eta": null
   },
   {
    "id": 32,
    "po_id": 5,
    "part_id": 70,
    "description": "Panel LED light c/w door switch",
    "qty": 1,
    "unit_cents": 8600,
    "received": 1,
    "eta": null
   },
   {
    "id": 33,
    "po_id": 5,
    "part_id": 71,
    "description": "Filter fan 230 V 150 m³/h c/w exhaust filter",
    "qty": 2,
    "unit_cents": 24500,
    "received": 2,
    "eta": null
   },
   {
    "id": 34,
    "po_id": 5,
    "part_id": 72,
    "description": "Enclosure thermostat / hygrostat",
    "qty": 1,
    "unit_cents": 7200,
    "received": 1,
    "eta": null
   },
   {
    "id": 35,
    "po_id": 5,
    "part_id": 73,
    "description": "Anti-condensation heater 100 W",
    "qty": 1,
    "unit_cents": 9800,
    "received": 1,
    "eta": null
   },
   {
    "id": 36,
    "po_id": 5,
    "part_id": 74,
    "description": "Copper earth bar, 12-way",
    "qty": 1,
    "unit_cents": 4400,
    "received": 1,
    "eta": null
   },
   {
    "id": 37,
    "po_id": 5,
    "part_id": 75,
    "description": "Compression lug 95 mm², pack of 10",
    "qty": 2,
    "unit_cents": 5800,
    "received": 2,
    "eta": null
   },
   {
    "id": 38,
    "po_id": 5,
    "part_id": 85,
    "description": "Control cable 12C 1.5 mm² screened",
    "qty": 60,
    "unit_cents": 780,
    "received": 60,
    "eta": null
   },
   {
    "id": 39,
    "po_id": 5,
    "part_id": 87,
    "description": "Cable gland kit M63, brass, c/w locknut",
    "qty": 6,
    "unit_cents": 3800,
    "received": 6,
    "eta": null
   },
   {
    "id": 40,
    "po_id": 6,
    "part_id": 36,
    "description": "E+H Cerabar PMC21 pressure transmitter 0–16 bar, 4–20 mA",
    "qty": 2,
    "unit_cents": 68500,
    "received": 2,
    "eta": null
   },
   {
    "id": 41,
    "po_id": 6,
    "part_id": 37,
    "description": "E+H Waterpilot FMX21 hydrostatic level 0–10 m, 20 m cable",
    "qty": 1,
    "unit_cents": 129000,
    "received": 1,
    "eta": null
   },
   {
    "id": 42,
    "po_id": 6,
    "part_id": 40,
    "description": "Level float switch, PP, 10 m cable",
    "qty": 8,
    "unit_cents": 24500,
    "received": 8,
    "eta": null
   },
   {
    "id": 43,
    "po_id": 7,
    "part_id": 1,
    "description": "Grundfos CR 45-3 vertical multistage pump c/w 22 kW IE3 motor",
    "qty": 3,
    "unit_cents": 1485000,
    "received": 0,
    "eta": null
   },
   {
    "id": 44,
    "po_id": 8,
    "part_id": 18,
    "description": "ABB ACS580-01-046A-4 VSD 22 kW IP21",
    "qty": 3,
    "unit_cents": 328000,
    "received": 0,
    "eta": null
   },
   {
    "id": 45,
    "po_id": 8,
    "part_id": 19,
    "description": "ABB ACS580-01-026A-4 VSD 11 kW IP21",
    "qty": 2,
    "unit_cents": 196000,
    "received": 0,
    "eta": null
   },
   {
    "id": 46,
    "po_id": 9,
    "part_id": 88,
    "description": "PE100 pipe DN160 PN16 SDR11",
    "qty": 120,
    "unit_cents": 4600,
    "received": 120,
    "eta": null
   },
   {
    "id": 47,
    "po_id": 9,
    "part_id": 90,
    "description": "Electrofusion coupler DN160",
    "qty": 16,
    "unit_cents": 9600,
    "received": 16,
    "eta": null
   },
   {
    "id": 48,
    "po_id": 9,
    "part_id": 91,
    "description": "Stub flange & backing ring DN160",
    "qty": 12,
    "unit_cents": 14800,
    "received": 12,
    "eta": null
   },
   {
    "id": 49,
    "po_id": 10,
    "part_id": 41,
    "description": "Pressure gauge 100 mm 0–16 bar glycerine filled",
    "qty": 6,
    "unit_cents": 6800,
    "received": 6,
    "eta": null
   },
   {
    "id": 50,
    "po_id": 10,
    "part_id": 42,
    "description": "DN150 lugged butterfly valve c/w electric actuator 240 V",
    "qty": 1,
    "unit_cents": 296000,
    "received": 0,
    "eta": null
   },
   {
    "id": 51,
    "po_id": 10,
    "part_id": 43,
    "description": "DN150 lugged butterfly valve, gear operated",
    "qty": 3,
    "unit_cents": 64000,
    "received": 0,
    "eta": null
   },
   {
    "id": 52,
    "po_id": 10,
    "part_id": 45,
    "description": "DN150 swing check valve, ductile iron",
    "qty": 3,
    "unit_cents": 112000,
    "received": 0,
    "eta": null
   },
   {
    "id": 53,
    "po_id": 10,
    "part_id": 47,
    "description": "DN150 resilient seat gate valve",
    "qty": 3,
    "unit_cents": 138000,
    "received": 0,
    "eta": null
   },
   {
    "id": 54,
    "po_id": 10,
    "part_id": 48,
    "description": "DN50 combination air release valve",
    "qty": 2,
    "unit_cents": 52000,
    "received": 0,
    "eta": null
   },
   {
    "id": 55,
    "po_id": 10,
    "part_id": 49,
    "description": "Victaulic Style 77 flexible coupling DN150",
    "qty": 12,
    "unit_cents": 11800,
    "received": 12,
    "eta": null
   },
   {
    "id": 56,
    "po_id": 11,
    "part_id": 25,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "unit_cents": 124000,
    "received": 1,
    "eta": null
   },
   {
    "id": 57,
    "po_id": 11,
    "part_id": 28,
    "description": "Modicon TM3 4-channel analogue input module",
    "qty": 1,
    "unit_cents": 48600,
    "received": 1,
    "eta": null
   },
   {
    "id": 58,
    "po_id": 11,
    "part_id": 31,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 1,
    "unit_cents": 24500,
    "received": 1,
    "eta": null
   },
   {
    "id": 59,
    "po_id": 12,
    "part_id": 80,
    "description": "316 stainless enclosure 1200 × 1000 × 400, IP66",
    "qty": 1,
    "unit_cents": 325000,
    "received": 0,
    "eta": null
   },
   {
    "id": 60,
    "po_id": 13,
    "part_id": 37,
    "description": "E+H Waterpilot FMX21 hydrostatic level 0–10 m, 20 m cable",
    "qty": 1,
    "unit_cents": 129000,
    "received": 1,
    "eta": null
   },
   {
    "id": 61,
    "po_id": 13,
    "part_id": 40,
    "description": "Level float switch, PP, 10 m cable",
    "qty": 2,
    "unit_cents": 24500,
    "received": 2,
    "eta": null
   },
   {
    "id": 62,
    "po_id": 14,
    "part_id": 52,
    "description": "NHP 250 A 3P MCCB, 36 kA, electronic trip",
    "qty": 2,
    "unit_cents": 98000,
    "received": 2,
    "eta": null
   },
   {
    "id": 63,
    "po_id": 14,
    "part_id": 54,
    "description": "NHP 100 A 3P MCCB, 25 kA",
    "qty": 1,
    "unit_cents": 42000,
    "received": 1,
    "eta": null
   },
   {
    "id": 64,
    "po_id": 14,
    "part_id": 56,
    "description": "AC3 115 A contactor, 240 VAC coil",
    "qty": 2,
    "unit_cents": 61000,
    "received": 2,
    "eta": null
   },
   {
    "id": 65,
    "po_id": 14,
    "part_id": 62,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 2,
    "unit_cents": 5200,
    "received": 2,
    "eta": null
   },
   {
    "id": 66,
    "po_id": 15,
    "part_id": 35,
    "description": "4G telemetry RTU c/w antenna & SIM tray",
    "qty": 1,
    "unit_cents": 285000,
    "received": 1,
    "eta": null
   },
   {
    "id": 67,
    "po_id": 15,
    "part_id": 82,
    "description": "Cable 95 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "qty": 140,
    "unit_cents": 7800,
    "received": 140,
    "eta": null
   },
   {
    "id": 68,
    "po_id": 15,
    "part_id": 85,
    "description": "Control cable 12C 1.5 mm² screened",
    "qty": 200,
    "unit_cents": 780,
    "received": 200,
    "eta": null
   },
   {
    "id": 69,
    "po_id": 16,
    "part_id": 20,
    "description": "ABB PSTX105-600-70 soft starter 55 kW",
    "qty": 2,
    "unit_cents": 274000,
    "received": 2,
    "eta": null
   },
   {
    "id": 70,
    "po_id": 17,
    "part_id": 77,
    "description": "Rittal VX25 freestanding 2000H × 800W × 600D",
    "qty": 2,
    "unit_cents": 264000,
    "received": 2,
    "eta": null
   },
   {
    "id": 71,
    "po_id": 18,
    "part_id": 2,
    "description": "Grundfos CR 32-4 vertical multistage pump c/w 15 kW IE3 motor",
    "qty": 2,
    "unit_cents": 1120000,
    "received": 2,
    "eta": null
   },
   {
    "id": 72,
    "po_id": 19,
    "part_id": 18,
    "description": "ABB ACS580-01-046A-4 VSD 22 kW IP21",
    "qty": 2,
    "unit_cents": 328000,
    "received": 2,
    "eta": null
   },
   {
    "id": 73,
    "po_id": 20,
    "part_id": 25,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "unit_cents": 124000,
    "received": 1,
    "eta": null
   },
   {
    "id": 74,
    "po_id": 20,
    "part_id": 26,
    "description": "Modicon TM3 16-channel digital input module",
    "qty": 2,
    "unit_cents": 26800,
    "received": 2,
    "eta": null
   },
   {
    "id": 75,
    "po_id": 20,
    "part_id": 27,
    "description": "Modicon TM3 16-channel relay output module",
    "qty": 1,
    "unit_cents": 31200,
    "received": 1,
    "eta": null
   },
   {
    "id": 76,
    "po_id": 20,
    "part_id": 28,
    "description": "Modicon TM3 4-channel analogue input module",
    "qty": 1,
    "unit_cents": 48600,
    "received": 1,
    "eta": null
   },
   {
    "id": 77,
    "po_id": 20,
    "part_id": 29,
    "description": "Modicon TM3 2-channel analogue output module",
    "qty": 1,
    "unit_cents": 39800,
    "received": 1,
    "eta": null
   },
   {
    "id": 78,
    "po_id": 20,
    "part_id": 30,
    "description": "Harmony ST6 7\" touch HMI, Ethernet",
    "qty": 1,
    "unit_cents": 158000,
    "received": 1,
    "eta": null
   },
   {
    "id": 79,
    "po_id": 20,
    "part_id": 31,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 1,
    "unit_cents": 24500,
    "received": 1,
    "eta": null
   },
   {
    "id": 80,
    "po_id": 20,
    "part_id": 32,
    "description": "24 VDC DC-UPS module c/w 7 Ah battery",
    "qty": 1,
    "unit_cents": 64000,
    "received": 1,
    "eta": null
   },
   {
    "id": 81,
    "po_id": 20,
    "part_id": 33,
    "description": "Unmanaged industrial Ethernet switch, 8-port",
    "qty": 1,
    "unit_cents": 33000,
    "received": 1,
    "eta": null
   },
   {
    "id": 82,
    "po_id": 21,
    "part_id": 76,
    "description": "Rittal VX25 freestanding 1800H × 1200W × 500D, 2-door",
    "qty": 1,
    "unit_cents": 398000,
    "received": 1,
    "eta": null
   },
   {
    "id": 83,
    "po_id": 21,
    "part_id": 78,
    "description": "VX25 plinth 100 mm, 1200 W",
    "qty": 1,
    "unit_cents": 42000,
    "received": 1,
    "eta": null
   },
   {
    "id": 84,
    "po_id": 22,
    "part_id": 54,
    "description": "NHP 100 A 3P MCCB, 25 kA",
    "qty": 2,
    "unit_cents": 42000,
    "received": 2,
    "eta": null
   },
   {
    "id": 85,
    "po_id": 22,
    "part_id": 59,
    "description": "MCB 1P 6 A C-curve, 6 kA",
    "qty": 6,
    "unit_cents": 1800,
    "received": 6,
    "eta": null
   },
   {
    "id": 86,
    "po_id": 22,
    "part_id": 62,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 2,
    "unit_cents": 5200,
    "received": 2,
    "eta": null
   },
   {
    "id": 87,
    "po_id": 22,
    "part_id": 63,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 6,
    "unit_cents": 2600,
    "received": 6,
    "eta": null
   },
   {
    "id": 88,
    "po_id": 22,
    "part_id": 64,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 2,
    "unit_cents": 11800,
    "received": 2,
    "eta": null
   },
   {
    "id": 89,
    "po_id": 22,
    "part_id": 65,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 12,
    "unit_cents": 3400,
    "received": 12,
    "eta": null
   },
   {
    "id": 90,
    "po_id": 23,
    "part_id": 66,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 2,
    "unit_cents": 950,
    "received": 2,
    "eta": null
   },
   {
    "id": 91,
    "po_id": 23,
    "part_id": 67,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 2,
    "unit_cents": 6200,
    "received": 2,
    "eta": null
   },
   {
    "id": 92,
    "po_id": 23,
    "part_id": 68,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 4,
    "unit_cents": 1400,
    "received": 4,
    "eta": null
   },
   {
    "id": 93,
    "po_id": 23,
    "part_id": 69,
    "description": "Bootlace ferrule kit, assorted",
    "qty": 1,
    "unit_cents": 4800,
    "received": 1,
    "eta": null
   },
   {
    "id": 94,
    "po_id": 23,
    "part_id": 70,
    "description": "Panel LED light c/w door switch",
    "qty": 1,
    "unit_cents": 8600,
    "received": 1,
    "eta": null
   },
   {
    "id": 95,
    "po_id": 23,
    "part_id": 71,
    "description": "Filter fan 230 V 150 m³/h c/w exhaust filter",
    "qty": 2,
    "unit_cents": 24500,
    "received": 2,
    "eta": null
   },
   {
    "id": 96,
    "po_id": 23,
    "part_id": 72,
    "description": "Enclosure thermostat / hygrostat",
    "qty": 1,
    "unit_cents": 7200,
    "received": 1,
    "eta": null
   },
   {
    "id": 97,
    "po_id": 23,
    "part_id": 73,
    "description": "Anti-condensation heater 100 W",
    "qty": 1,
    "unit_cents": 9800,
    "received": 1,
    "eta": null
   },
   {
    "id": 98,
    "po_id": 23,
    "part_id": 74,
    "description": "Copper earth bar, 12-way",
    "qty": 1,
    "unit_cents": 4400,
    "received": 1,
    "eta": null
   },
   {
    "id": 99,
    "po_id": 23,
    "part_id": 87,
    "description": "Cable gland kit M63, brass, c/w locknut",
    "qty": 6,
    "unit_cents": 3800,
    "received": 6,
    "eta": null
   },
   {
    "id": 100,
    "po_id": 24,
    "part_id": 36,
    "description": "E+H Cerabar PMC21 pressure transmitter 0–16 bar, 4–20 mA",
    "qty": 2,
    "unit_cents": 68500,
    "received": 2,
    "eta": null
   },
   {
    "id": 101,
    "po_id": 25,
    "part_id": 41,
    "description": "Pressure gauge 100 mm 0–16 bar glycerine filled",
    "qty": 2,
    "unit_cents": 6800,
    "received": 2,
    "eta": null
   },
   {
    "id": 102,
    "po_id": 25,
    "part_id": 43,
    "description": "DN150 lugged butterfly valve, gear operated",
    "qty": 2,
    "unit_cents": 64000,
    "received": 2,
    "eta": null
   },
   {
    "id": 103,
    "po_id": 25,
    "part_id": 45,
    "description": "DN150 swing check valve, ductile iron",
    "qty": 2,
    "unit_cents": 112000,
    "received": 2,
    "eta": null
   },
   {
    "id": 104,
    "po_id": 25,
    "part_id": 47,
    "description": "DN150 resilient seat gate valve",
    "qty": 2,
    "unit_cents": 138000,
    "received": 2,
    "eta": null
   },
   {
    "id": 105,
    "po_id": 25,
    "part_id": 49,
    "description": "Victaulic Style 77 flexible coupling DN150",
    "qty": 8,
    "unit_cents": 11800,
    "received": 8,
    "eta": null
   },
   {
    "id": 106,
    "po_id": 26,
    "part_id": 51,
    "description": "NHP 400 A 3P main switch-disconnector, 50 kA",
    "qty": 2,
    "unit_cents": 184000,
    "received": 2,
    "eta": null
   },
   {
    "id": 107,
    "po_id": 26,
    "part_id": 52,
    "description": "NHP 250 A 3P MCCB, 36 kA, electronic trip",
    "qty": 2,
    "unit_cents": 98000,
    "received": 2,
    "eta": null
   },
   {
    "id": 108,
    "po_id": 26,
    "part_id": 53,
    "description": "NHP 160 A 3P MCCB, 36 kA",
    "qty": 2,
    "unit_cents": 64000,
    "received": 2,
    "eta": null
   },
   {
    "id": 109,
    "po_id": 26,
    "part_id": 58,
    "description": "Surge protection device 3P+N, 40 kA",
    "qty": 1,
    "unit_cents": 52000,
    "received": 1,
    "eta": null
   },
   {
    "id": 110,
    "po_id": 26,
    "part_id": 59,
    "description": "MCB 1P 6 A C-curve, 6 kA",
    "qty": 6,
    "unit_cents": 1800,
    "received": 6,
    "eta": null
   },
   {
    "id": 111,
    "po_id": 26,
    "part_id": 62,
    "description": "Hand-Off-Auto 3-position selector switch",
    "qty": 4,
    "unit_cents": 5200,
    "received": 4,
    "eta": null
   },
   {
    "id": 112,
    "po_id": 26,
    "part_id": 63,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 12,
    "unit_cents": 2600,
    "received": 12,
    "eta": null
   },
   {
    "id": 113,
    "po_id": 26,
    "part_id": 64,
    "description": "Analogue ammeter 96 mm c/w CT",
    "qty": 4,
    "unit_cents": 11800,
    "received": 4,
    "eta": null
   },
   {
    "id": 114,
    "po_id": 26,
    "part_id": 65,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 22,
    "unit_cents": 3400,
    "received": 22,
    "eta": null
   },
   {
    "id": 115,
    "po_id": 27,
    "part_id": 15,
    "description": "ABB ACS580-01-145A-4 VSD 75 kW IP21",
    "qty": 2,
    "unit_cents": 942000,
    "received": 2,
    "eta": null
   },
   {
    "id": 116,
    "po_id": 27,
    "part_id": 17,
    "description": "ABB ACS580-01-073A-4 VSD 37 kW IP21",
    "qty": 2,
    "unit_cents": 512000,
    "received": 2,
    "eta": null
   },
   {
    "id": 117,
    "po_id": 27,
    "part_id": 21,
    "description": "Line reactor 145 A, 3-phase",
    "qty": 2,
    "unit_cents": 112000,
    "received": 2,
    "eta": null
   },
   {
    "id": 118,
    "po_id": 27,
    "part_id": 22,
    "description": "Line reactor 73 A, 3-phase",
    "qty": 2,
    "unit_cents": 69000,
    "received": 2,
    "eta": null
   },
   {
    "id": 119,
    "po_id": 27,
    "part_id": 23,
    "description": "EMC/RFI filter 145 A",
    "qty": 2,
    "unit_cents": 88000,
    "received": 2,
    "eta": null
   },
   {
    "id": 120,
    "po_id": 28,
    "part_id": 25,
    "description": "Schneider Modicon M241 PLC, 24 I/O, Ethernet + CANopen",
    "qty": 1,
    "unit_cents": 124000,
    "received": 1,
    "eta": null
   },
   {
    "id": 121,
    "po_id": 28,
    "part_id": 26,
    "description": "Modicon TM3 16-channel digital input module",
    "qty": 2,
    "unit_cents": 26800,
    "received": 2,
    "eta": null
   },
   {
    "id": 122,
    "po_id": 28,
    "part_id": 27,
    "description": "Modicon TM3 16-channel relay output module",
    "qty": 1,
    "unit_cents": 31200,
    "received": 1,
    "eta": null
   },
   {
    "id": 123,
    "po_id": 28,
    "part_id": 28,
    "description": "Modicon TM3 4-channel analogue input module",
    "qty": 1,
    "unit_cents": 48600,
    "received": 1,
    "eta": null
   },
   {
    "id": 124,
    "po_id": 28,
    "part_id": 29,
    "description": "Modicon TM3 2-channel analogue output module",
    "qty": 1,
    "unit_cents": 39800,
    "received": 1,
    "eta": null
   },
   {
    "id": 125,
    "po_id": 28,
    "part_id": 30,
    "description": "Harmony ST6 7\" touch HMI, Ethernet",
    "qty": 1,
    "unit_cents": 158000,
    "received": 1,
    "eta": null
   },
   {
    "id": 126,
    "po_id": 28,
    "part_id": 31,
    "description": "24 VDC 10 A switch-mode power supply",
    "qty": 1,
    "unit_cents": 24500,
    "received": 1,
    "eta": null
   },
   {
    "id": 127,
    "po_id": 28,
    "part_id": 32,
    "description": "24 VDC DC-UPS module c/w 7 Ah battery",
    "qty": 1,
    "unit_cents": 64000,
    "received": 1,
    "eta": null
   },
   {
    "id": 128,
    "po_id": 28,
    "part_id": 33,
    "description": "Unmanaged industrial Ethernet switch, 8-port",
    "qty": 1,
    "unit_cents": 33000,
    "received": 1,
    "eta": null
   },
   {
    "id": 129,
    "po_id": 29,
    "part_id": 76,
    "description": "Rittal VX25 freestanding 1800H × 1200W × 500D, 2-door",
    "qty": 2,
    "unit_cents": 398000,
    "received": 2,
    "eta": null
   },
   {
    "id": 130,
    "po_id": 29,
    "part_id": 78,
    "description": "VX25 plinth 100 mm, 1200 W",
    "qty": 2,
    "unit_cents": 42000,
    "received": 2,
    "eta": null
   },
   {
    "id": 131,
    "po_id": 30,
    "part_id": 66,
    "description": "DIN rail 35 mm top-hat, 2 m length",
    "qty": 8,
    "unit_cents": 950,
    "received": 8,
    "eta": null
   },
   {
    "id": 132,
    "po_id": 30,
    "part_id": 67,
    "description": "Terminal block 4 mm², box of 50",
    "qty": 4,
    "unit_cents": 6200,
    "received": 4,
    "eta": null
   },
   {
    "id": 133,
    "po_id": 30,
    "part_id": 68,
    "description": "Slotted cable duct 60 × 60, 2 m",
    "qty": 14,
    "unit_cents": 1400,
    "received": 14,
    "eta": null
   },
   {
    "id": 134,
    "po_id": 30,
    "part_id": 69,
    "description": "Bootlace ferrule kit, assorted",
    "qty": 1,
    "unit_cents": 4800,
    "received": 1,
    "eta": null
   },
   {
    "id": 135,
    "po_id": 30,
    "part_id": 70,
    "description": "Panel LED light c/w door switch",
    "qty": 2,
    "unit_cents": 8600,
    "received": 2,
    "eta": null
   },
   {
    "id": 136,
    "po_id": 30,
    "part_id": 71,
    "description": "Filter fan 230 V 150 m³/h c/w exhaust filter",
    "qty": 4,
    "unit_cents": 24500,
    "received": 4,
    "eta": null
   },
   {
    "id": 137,
    "po_id": 30,
    "part_id": 72,
    "description": "Enclosure thermostat / hygrostat",
    "qty": 2,
    "unit_cents": 7200,
    "received": 2,
    "eta": null
   },
   {
    "id": 138,
    "po_id": 30,
    "part_id": 73,
    "description": "Anti-condensation heater 100 W",
    "qty": 2,
    "unit_cents": 9800,
    "received": 2,
    "eta": null
   },
   {
    "id": 139,
    "po_id": 30,
    "part_id": 74,
    "description": "Copper earth bar, 12-way",
    "qty": 2,
    "unit_cents": 4400,
    "received": 2,
    "eta": null
   },
   {
    "id": 140,
    "po_id": 30,
    "part_id": 75,
    "description": "Compression lug 95 mm², pack of 10",
    "qty": 2,
    "unit_cents": 5800,
    "received": 2,
    "eta": null
   },
   {
    "id": 141,
    "po_id": 30,
    "part_id": 82,
    "description": "Cable 95 mm² 4C+E XLPE/PVC 0.6/1 kV",
    "qty": 60,
    "unit_cents": 7800,
    "received": 60,
    "eta": null
   },
   {
    "id": 142,
    "po_id": 30,
    "part_id": 87,
    "description": "Cable gland kit M63, brass, c/w locknut",
    "qty": 12,
    "unit_cents": 3800,
    "received": 12,
    "eta": null
   },
   {
    "id": 143,
    "po_id": 31,
    "part_id": 6,
    "description": "Flygt 2640.180 HT dewatering pump 7.4 kW",
    "qty": 2,
    "unit_cents": 985000,
    "received": 0,
    "eta": null
   },
   {
    "id": 144,
    "po_id": 31,
    "part_id": 8,
    "description": "Flygt 2201.011 SH submersible slurry pump 15 kW",
    "qty": 1,
    "unit_cents": 1860000,
    "received": 0,
    "eta": null
   },
   {
    "id": 145,
    "po_id": 32,
    "part_id": 59,
    "description": "MCB 1P 6 A C-curve, 6 kA",
    "qty": 40,
    "unit_cents": 1800,
    "received": 0,
    "eta": null
   },
   {
    "id": 146,
    "po_id": 32,
    "part_id": 63,
    "description": "LED pilot light 24 V (red / green / amber)",
    "qty": 40,
    "unit_cents": 2600,
    "received": 0,
    "eta": null
   },
   {
    "id": 147,
    "po_id": 32,
    "part_id": 65,
    "description": "Control relay 24 VDC 4 C/O c/w base",
    "qty": 30,
    "unit_cents": 3400,
    "received": 0,
    "eta": null
   }
  ],
  "po_allocs": [
   {
    "id": 1,
    "po_line_id": 1,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 2,
    "po_line_id": 2,
    "job_id": 5,
    "qty": 4,
    "received": 4
   },
   {
    "id": 3,
    "po_line_id": 3,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 4,
    "po_line_id": 4,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 5,
    "po_line_id": 5,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 6,
    "po_line_id": 6,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 7,
    "po_line_id": 7,
    "job_id": 5,
    "qty": 4,
    "received": 4
   },
   {
    "id": 8,
    "po_line_id": 8,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 9,
    "po_line_id": 9,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 10,
    "po_line_id": 10,
    "job_id": 5,
    "qty": 4,
    "received": 4
   },
   {
    "id": 11,
    "po_line_id": 11,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 12,
    "po_line_id": 12,
    "job_id": 1,
    "qty": 6,
    "received": 6
   },
   {
    "id": 13,
    "po_line_id": 13,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 14,
    "po_line_id": 14,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 15,
    "po_line_id": 14,
    "job_id": 5,
    "qty": 4,
    "received": 4
   },
   {
    "id": 16,
    "po_line_id": 15,
    "job_id": 1,
    "qty": 6,
    "received": 6
   },
   {
    "id": 17,
    "po_line_id": 15,
    "job_id": 5,
    "qty": 12,
    "received": 12
   },
   {
    "id": 18,
    "po_line_id": 16,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 19,
    "po_line_id": 16,
    "job_id": 5,
    "qty": 4,
    "received": 4
   },
   {
    "id": 20,
    "po_line_id": 17,
    "job_id": 1,
    "qty": 14,
    "received": 14
   },
   {
    "id": 21,
    "po_line_id": 17,
    "job_id": 5,
    "qty": 12,
    "received": 12
   },
   {
    "id": 22,
    "po_line_id": 18,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 23,
    "po_line_id": 19,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 24,
    "po_line_id": 20,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 25,
    "po_line_id": 21,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 26,
    "po_line_id": 22,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 27,
    "po_line_id": 23,
    "job_id": 1,
    "qty": 1,
    "received": 0
   },
   {
    "id": 28,
    "po_line_id": 24,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 29,
    "po_line_id": 25,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 30,
    "po_line_id": 26,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 31,
    "po_line_id": 27,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 32,
    "po_line_id": 27,
    "job_id": 5,
    "qty": 4,
    "received": 4
   },
   {
    "id": 33,
    "po_line_id": 28,
    "job_id": 1,
    "qty": 4,
    "received": 4
   },
   {
    "id": 34,
    "po_line_id": 28,
    "job_id": 5,
    "qty": 4,
    "received": 4
   },
   {
    "id": 35,
    "po_line_id": 29,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 36,
    "po_line_id": 29,
    "job_id": 5,
    "qty": 4,
    "received": 4
   },
   {
    "id": 37,
    "po_line_id": 30,
    "job_id": 1,
    "qty": 8,
    "received": 8
   },
   {
    "id": 38,
    "po_line_id": 30,
    "job_id": 5,
    "qty": 8,
    "received": 8
   },
   {
    "id": 39,
    "po_line_id": 31,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 40,
    "po_line_id": 32,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 41,
    "po_line_id": 33,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 42,
    "po_line_id": 34,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 43,
    "po_line_id": 35,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 44,
    "po_line_id": 36,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 45,
    "po_line_id": 37,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 46,
    "po_line_id": 38,
    "job_id": 1,
    "qty": 60,
    "received": 60
   },
   {
    "id": 47,
    "po_line_id": 39,
    "job_id": 1,
    "qty": 6,
    "received": 6
   },
   {
    "id": 48,
    "po_line_id": 40,
    "job_id": 1,
    "qty": 2,
    "received": 2
   },
   {
    "id": 49,
    "po_line_id": 41,
    "job_id": 1,
    "qty": 1,
    "received": 1
   },
   {
    "id": 50,
    "po_line_id": 42,
    "job_id": 5,
    "qty": 8,
    "received": 8
   },
   {
    "id": 51,
    "po_line_id": 43,
    "job_id": 2,
    "qty": 3,
    "received": 0
   },
   {
    "id": 52,
    "po_line_id": 44,
    "job_id": 2,
    "qty": 3,
    "received": 0
   },
   {
    "id": 53,
    "po_line_id": 45,
    "job_id": 7,
    "qty": 2,
    "received": 0
   },
   {
    "id": 54,
    "po_line_id": 46,
    "job_id": 2,
    "qty": 120,
    "received": 120
   },
   {
    "id": 55,
    "po_line_id": 47,
    "job_id": 2,
    "qty": 16,
    "received": 16
   },
   {
    "id": 56,
    "po_line_id": 48,
    "job_id": 2,
    "qty": 12,
    "received": 12
   },
   {
    "id": 57,
    "po_line_id": 49,
    "job_id": 2,
    "qty": 6,
    "received": 6
   },
   {
    "id": 58,
    "po_line_id": 50,
    "job_id": 2,
    "qty": 1,
    "received": 0
   },
   {
    "id": 59,
    "po_line_id": 51,
    "job_id": 2,
    "qty": 3,
    "received": 0
   },
   {
    "id": 60,
    "po_line_id": 52,
    "job_id": 2,
    "qty": 3,
    "received": 0
   },
   {
    "id": 61,
    "po_line_id": 53,
    "job_id": 2,
    "qty": 3,
    "received": 0
   },
   {
    "id": 62,
    "po_line_id": 54,
    "job_id": 2,
    "qty": 2,
    "received": 0
   },
   {
    "id": 63,
    "po_line_id": 55,
    "job_id": 2,
    "qty": 12,
    "received": 12
   },
   {
    "id": 64,
    "po_line_id": 56,
    "job_id": 7,
    "qty": 1,
    "received": 1
   },
   {
    "id": 65,
    "po_line_id": 57,
    "job_id": 7,
    "qty": 1,
    "received": 1
   },
   {
    "id": 66,
    "po_line_id": 58,
    "job_id": 7,
    "qty": 1,
    "received": 1
   },
   {
    "id": 67,
    "po_line_id": 59,
    "job_id": 7,
    "qty": 1,
    "received": 0
   },
   {
    "id": 68,
    "po_line_id": 60,
    "job_id": 7,
    "qty": 1,
    "received": 1
   },
   {
    "id": 69,
    "po_line_id": 61,
    "job_id": 7,
    "qty": 2,
    "received": 2
   },
   {
    "id": 70,
    "po_line_id": 62,
    "job_id": 6,
    "qty": 2,
    "received": 2
   },
   {
    "id": 71,
    "po_line_id": 63,
    "job_id": 7,
    "qty": 1,
    "received": 1
   },
   {
    "id": 72,
    "po_line_id": 64,
    "job_id": 6,
    "qty": 2,
    "received": 2
   },
   {
    "id": 73,
    "po_line_id": 65,
    "job_id": 7,
    "qty": 2,
    "received": 2
   },
   {
    "id": 74,
    "po_line_id": 66,
    "job_id": 7,
    "qty": 1,
    "received": 1
   },
   {
    "id": 75,
    "po_line_id": 67,
    "job_id": 6,
    "qty": 140,
    "received": 140
   },
   {
    "id": 76,
    "po_line_id": 68,
    "job_id": 6,
    "qty": 200,
    "received": 200
   },
   {
    "id": 77,
    "po_line_id": 69,
    "job_id": 6,
    "qty": 2,
    "received": 2
   },
   {
    "id": 78,
    "po_line_id": 70,
    "job_id": 6,
    "qty": 2,
    "received": 2
   },
   {
    "id": 79,
    "po_line_id": 71,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 80,
    "po_line_id": 72,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 81,
    "po_line_id": 73,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 82,
    "po_line_id": 74,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 83,
    "po_line_id": 75,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 84,
    "po_line_id": 76,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 85,
    "po_line_id": 77,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 86,
    "po_line_id": 78,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 87,
    "po_line_id": 79,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 88,
    "po_line_id": 80,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 89,
    "po_line_id": 81,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 90,
    "po_line_id": 82,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 91,
    "po_line_id": 83,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 92,
    "po_line_id": 84,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 93,
    "po_line_id": 85,
    "job_id": 3,
    "qty": 6,
    "received": 6
   },
   {
    "id": 94,
    "po_line_id": 86,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 95,
    "po_line_id": 87,
    "job_id": 3,
    "qty": 6,
    "received": 6
   },
   {
    "id": 96,
    "po_line_id": 88,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 97,
    "po_line_id": 89,
    "job_id": 3,
    "qty": 12,
    "received": 12
   },
   {
    "id": 98,
    "po_line_id": 90,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 99,
    "po_line_id": 91,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 100,
    "po_line_id": 92,
    "job_id": 3,
    "qty": 4,
    "received": 4
   },
   {
    "id": 101,
    "po_line_id": 93,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 102,
    "po_line_id": 94,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 103,
    "po_line_id": 95,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 104,
    "po_line_id": 96,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 105,
    "po_line_id": 97,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 106,
    "po_line_id": 98,
    "job_id": 3,
    "qty": 1,
    "received": 1
   },
   {
    "id": 107,
    "po_line_id": 99,
    "job_id": 3,
    "qty": 6,
    "received": 6
   },
   {
    "id": 108,
    "po_line_id": 100,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 109,
    "po_line_id": 101,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 110,
    "po_line_id": 102,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 111,
    "po_line_id": 103,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 112,
    "po_line_id": 104,
    "job_id": 3,
    "qty": 2,
    "received": 2
   },
   {
    "id": 113,
    "po_line_id": 105,
    "job_id": 3,
    "qty": 8,
    "received": 8
   },
   {
    "id": 114,
    "po_line_id": 106,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 115,
    "po_line_id": 107,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 116,
    "po_line_id": 108,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 117,
    "po_line_id": 109,
    "job_id": 4,
    "qty": 1,
    "received": 1
   },
   {
    "id": 118,
    "po_line_id": 110,
    "job_id": 4,
    "qty": 6,
    "received": 6
   },
   {
    "id": 119,
    "po_line_id": 111,
    "job_id": 4,
    "qty": 4,
    "received": 4
   },
   {
    "id": 120,
    "po_line_id": 112,
    "job_id": 4,
    "qty": 12,
    "received": 12
   },
   {
    "id": 121,
    "po_line_id": 113,
    "job_id": 4,
    "qty": 4,
    "received": 4
   },
   {
    "id": 122,
    "po_line_id": 114,
    "job_id": 4,
    "qty": 22,
    "received": 22
   },
   {
    "id": 123,
    "po_line_id": 115,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 124,
    "po_line_id": 116,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 125,
    "po_line_id": 117,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 126,
    "po_line_id": 118,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 127,
    "po_line_id": 119,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 128,
    "po_line_id": 120,
    "job_id": 4,
    "qty": 1,
    "received": 1
   },
   {
    "id": 129,
    "po_line_id": 121,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 130,
    "po_line_id": 122,
    "job_id": 4,
    "qty": 1,
    "received": 1
   },
   {
    "id": 131,
    "po_line_id": 123,
    "job_id": 4,
    "qty": 1,
    "received": 1
   },
   {
    "id": 132,
    "po_line_id": 124,
    "job_id": 4,
    "qty": 1,
    "received": 1
   },
   {
    "id": 133,
    "po_line_id": 125,
    "job_id": 4,
    "qty": 1,
    "received": 1
   },
   {
    "id": 134,
    "po_line_id": 126,
    "job_id": 4,
    "qty": 1,
    "received": 1
   },
   {
    "id": 135,
    "po_line_id": 127,
    "job_id": 4,
    "qty": 1,
    "received": 1
   },
   {
    "id": 136,
    "po_line_id": 128,
    "job_id": 4,
    "qty": 1,
    "received": 1
   },
   {
    "id": 137,
    "po_line_id": 129,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 138,
    "po_line_id": 130,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 139,
    "po_line_id": 131,
    "job_id": 4,
    "qty": 8,
    "received": 8
   },
   {
    "id": 140,
    "po_line_id": 132,
    "job_id": 4,
    "qty": 4,
    "received": 4
   },
   {
    "id": 141,
    "po_line_id": 133,
    "job_id": 4,
    "qty": 14,
    "received": 14
   },
   {
    "id": 142,
    "po_line_id": 134,
    "job_id": 4,
    "qty": 1,
    "received": 1
   },
   {
    "id": 143,
    "po_line_id": 135,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 144,
    "po_line_id": 136,
    "job_id": 4,
    "qty": 4,
    "received": 4
   },
   {
    "id": 145,
    "po_line_id": 137,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 146,
    "po_line_id": 138,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 147,
    "po_line_id": 139,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 148,
    "po_line_id": 140,
    "job_id": 4,
    "qty": 2,
    "received": 2
   },
   {
    "id": 149,
    "po_line_id": 141,
    "job_id": 4,
    "qty": 60,
    "received": 60
   },
   {
    "id": 150,
    "po_line_id": 142,
    "job_id": 4,
    "qty": 12,
    "received": 12
   },
   {
    "id": 151,
    "po_line_id": 143,
    "job_id": null,
    "qty": 2,
    "received": 0
   },
   {
    "id": 152,
    "po_line_id": 144,
    "job_id": null,
    "qty": 1,
    "received": 0
   },
   {
    "id": 153,
    "po_line_id": 145,
    "job_id": null,
    "qty": 40,
    "received": 0
   },
   {
    "id": 154,
    "po_line_id": 146,
    "job_id": null,
    "qty": 40,
    "received": 0
   },
   {
    "id": 155,
    "po_line_id": 147,
    "job_id": null,
    "qty": 30,
    "received": 0
   }
  ],
  "tasks": [
   {
    "id": 1,
    "job_id": 1,
    "stage_id": 1,
    "name": "Drawings & IFC approval",
    "kind": "Office",
    "status": "Complete",
    "staff_id": 5,
    "start": "2026-09-21",
    "end": "2026-10-02",
    "est_hours": 30,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 2,
    "job_id": 1,
    "stage_id": 3,
    "name": "Enclosure prep, gland plates & mounting rails",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 11,
    "start": "2026-10-12",
    "end": "2026-10-16",
    "est_hours": 16,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 3,
    "job_id": 1,
    "stage_id": 3,
    "name": "Mount drives, reactors & switchgear",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 8,
    "start": "2026-10-21",
    "end": "2026-10-30",
    "est_hours": 30,
    "progress": 100,
    "notes": null,
    "sort": 3
   },
   {
    "id": 4,
    "job_id": 1,
    "stage_id": 3,
    "name": "Power wiring",
    "kind": "Workshop",
    "status": "In production",
    "staff_id": 8,
    "start": "2026-11-02",
    "end": "2026-11-10",
    "est_hours": 28,
    "progress": 35,
    "notes": "Incomer and drive 1 terminated. Drive 2 today.",
    "sort": 4
   },
   {
    "id": 5,
    "job_id": 1,
    "stage_id": 3,
    "name": "Control wiring & PLC / HMI fit-off",
    "kind": "Workshop",
    "status": "Awaiting materials",
    "staff_id": 9,
    "start": "2026-11-04",
    "end": "2026-11-13",
    "est_hours": 26,
    "progress": 10,
    "notes": "HMI on back order (Schneider ETA 12 Nov). RTU and 3rd transmitter from V-01 not ordered yet.",
    "sort": 5
   },
   {
    "id": 6,
    "job_id": 1,
    "stage_id": 1,
    "name": "PLC & HMI programming",
    "kind": "Office",
    "status": "In production",
    "staff_id": 4,
    "start": "2026-10-26",
    "end": "2026-11-13",
    "est_hours": 18,
    "progress": 55,
    "notes": null,
    "sort": 6
   },
   {
    "id": 7,
    "job_id": 1,
    "stage_id": 4,
    "name": "FAT & testing",
    "kind": "Workshop",
    "status": "Ready",
    "staff_id": 7,
    "start": "2026-11-16",
    "end": "2026-11-20",
    "est_hours": 14,
    "progress": 0,
    "notes": null,
    "sort": 7
   },
   {
    "id": 8,
    "job_id": 1,
    "stage_id": 5,
    "name": "Delivery & site commissioning — Pit 3",
    "kind": "Site",
    "status": "Ready",
    "staff_id": 13,
    "start": "2026-11-30",
    "end": "2026-12-04",
    "est_hours": 24,
    "progress": 0,
    "notes": null,
    "sort": 8
   },
   {
    "id": 9,
    "job_id": 2,
    "stage_id": 6,
    "name": "Site survey & set-out",
    "kind": "Site",
    "status": "Complete",
    "staff_id": 13,
    "start": "2026-10-27",
    "end": "2026-10-29",
    "est_hours": 18,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 10,
    "job_id": 2,
    "stage_id": 6,
    "name": "P&ID, schematics & GA drawings",
    "kind": "Office",
    "status": "In production",
    "staff_id": 5,
    "start": "2026-10-26",
    "end": "2026-11-06",
    "est_hours": 36,
    "progress": 70,
    "notes": null,
    "sort": 2
   },
   {
    "id": 11,
    "job_id": 2,
    "stage_id": 8,
    "name": "Pipe spool fabrication & poly welding",
    "kind": "Workshop",
    "status": "In production",
    "staff_id": 12,
    "start": "2026-11-03",
    "end": "2026-11-12",
    "est_hours": 40,
    "progress": 20,
    "notes": null,
    "sort": 3
   },
   {
    "id": 12,
    "job_id": 2,
    "stage_id": 9,
    "name": "Control panel build — 3 × VSD starters",
    "kind": "Workshop",
    "status": "Awaiting materials",
    "staff_id": 8,
    "start": "2026-11-11",
    "end": "2026-11-20",
    "est_hours": 40,
    "progress": 0,
    "notes": "Drives due 11 Nov on the combined ABB order.",
    "sort": 4
   },
   {
    "id": 13,
    "job_id": 2,
    "stage_id": 8,
    "name": "Mechanical install — pumps & manifold",
    "kind": "Site",
    "status": "Awaiting materials",
    "staff_id": 11,
    "start": "2026-11-16",
    "end": "2026-11-25",
    "est_hours": 90,
    "progress": 0,
    "notes": "Pumps delayed — Grundfos ETA now 27 Nov, task starts 16 Nov.",
    "sort": 5
   },
   {
    "id": 14,
    "job_id": 2,
    "stage_id": 9,
    "name": "Electrical install & cabling",
    "kind": "Site",
    "status": "Awaiting materials",
    "staff_id": 9,
    "start": "2026-11-23",
    "end": "2026-12-04",
    "est_hours": 80,
    "progress": 0,
    "notes": null,
    "sort": 6
   },
   {
    "id": 15,
    "job_id": 2,
    "stage_id": 10,
    "name": "Commissioning & handover",
    "kind": "Site",
    "status": "Ready",
    "staff_id": 4,
    "start": "2026-12-07",
    "end": "2026-12-11",
    "est_hours": 40,
    "progress": 0,
    "notes": null,
    "sort": 7
   },
   {
    "id": 16,
    "job_id": 3,
    "stage_id": 11,
    "name": "Drawings & IFC approval",
    "kind": "Office",
    "status": "Complete",
    "staff_id": 5,
    "start": "2026-06-24",
    "end": "2026-06-30",
    "est_hours": 15,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 17,
    "job_id": 3,
    "stage_id": 13,
    "name": "Enclosure prep & mounting",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 11,
    "start": "2026-07-06",
    "end": "2026-07-13",
    "est_hours": 19,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 18,
    "job_id": 3,
    "stage_id": 13,
    "name": "Mount & power wiring",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 9,
    "start": "2026-07-13",
    "end": "2026-08-03",
    "est_hours": 43,
    "progress": 100,
    "notes": null,
    "sort": 3
   },
   {
    "id": 19,
    "job_id": 3,
    "stage_id": 13,
    "name": "Control wiring & PLC",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 10,
    "start": "2026-07-27",
    "end": "2026-08-13",
    "est_hours": 43,
    "progress": 100,
    "notes": null,
    "sort": 4
   },
   {
    "id": 20,
    "job_id": 3,
    "stage_id": 15,
    "name": "FAT & testing",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 7,
    "start": "2026-08-17",
    "end": "2026-08-24",
    "est_hours": 19,
    "progress": 100,
    "notes": null,
    "sort": 5
   },
   {
    "id": 21,
    "job_id": 3,
    "stage_id": 15,
    "name": "Delivery & commissioning",
    "kind": "Site",
    "status": "Complete",
    "staff_id": 13,
    "start": "2026-08-31",
    "end": "2026-09-10",
    "est_hours": 26,
    "progress": 100,
    "notes": null,
    "sort": 6
   },
   {
    "id": 22,
    "job_id": 4,
    "stage_id": 16,
    "name": "Drawings & IFC approval",
    "kind": "Office",
    "status": "Complete",
    "staff_id": 5,
    "start": "2026-08-03",
    "end": "2026-08-10",
    "est_hours": 33,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 23,
    "job_id": 4,
    "stage_id": 18,
    "name": "Enclosure prep & mounting",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 11,
    "start": "2026-08-17",
    "end": "2026-08-25",
    "est_hours": 42,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 24,
    "job_id": 4,
    "stage_id": 18,
    "name": "Mount & power wiring",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 9,
    "start": "2026-08-26",
    "end": "2026-09-21",
    "est_hours": 96,
    "progress": 100,
    "notes": null,
    "sort": 3
   },
   {
    "id": 25,
    "job_id": 4,
    "stage_id": 18,
    "name": "Control wiring & PLC",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 10,
    "start": "2026-09-10",
    "end": "2026-10-06",
    "est_hours": 96,
    "progress": 100,
    "notes": null,
    "sort": 4
   },
   {
    "id": 26,
    "job_id": 4,
    "stage_id": 20,
    "name": "FAT & testing",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 7,
    "start": "2026-10-09",
    "end": "2026-10-20",
    "est_hours": 42,
    "progress": 100,
    "notes": null,
    "sort": 5
   },
   {
    "id": 27,
    "job_id": 4,
    "stage_id": 20,
    "name": "Delivery & commissioning",
    "kind": "Site",
    "status": "In production",
    "staff_id": 13,
    "start": "2026-10-28",
    "end": "2026-11-12",
    "est_hours": 58,
    "progress": 50,
    "notes": null,
    "sort": 6
   },
   {
    "id": 28,
    "job_id": 5,
    "stage_id": 21,
    "name": "Drawings & IFC approval",
    "kind": "Office",
    "status": "Complete",
    "staff_id": 5,
    "start": "2026-09-21",
    "end": "2026-09-28",
    "est_hours": 11,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 29,
    "job_id": 5,
    "stage_id": 23,
    "name": "Enclosure prep & mounting",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 11,
    "start": "2026-09-30",
    "end": "2026-10-07",
    "est_hours": 14,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 30,
    "job_id": 5,
    "stage_id": 23,
    "name": "Mount & power wiring",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 9,
    "start": "2026-10-08",
    "end": "2026-10-26",
    "est_hours": 32,
    "progress": 100,
    "notes": null,
    "sort": 3
   },
   {
    "id": 31,
    "job_id": 5,
    "stage_id": 23,
    "name": "Control wiring & PLC",
    "kind": "Workshop",
    "status": "Ready",
    "staff_id": 8,
    "start": "2026-11-09",
    "end": "2026-11-13",
    "est_hours": 32,
    "progress": 0,
    "notes": null,
    "sort": 4
   },
   {
    "id": 32,
    "job_id": 5,
    "stage_id": 25,
    "name": "FAT & testing",
    "kind": "Workshop",
    "status": "Ready",
    "staff_id": 7,
    "start": "2026-11-05",
    "end": "2026-11-11",
    "est_hours": 14,
    "progress": 0,
    "notes": null,
    "sort": 5
   },
   {
    "id": 33,
    "job_id": 5,
    "stage_id": 25,
    "name": "Delivery & commissioning",
    "kind": "Site",
    "status": "Ready",
    "staff_id": 13,
    "start": "2026-11-17",
    "end": "2026-11-26",
    "est_hours": 19,
    "progress": 0,
    "notes": null,
    "sort": 6
   },
   {
    "id": 34,
    "job_id": 6,
    "stage_id": 26,
    "name": "Site survey",
    "kind": "Site",
    "status": "Complete",
    "staff_id": 13,
    "start": "2026-09-28",
    "end": "2026-09-30",
    "est_hours": 12,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 35,
    "job_id": 6,
    "stage_id": 26,
    "name": "Drawings & scope",
    "kind": "Office",
    "status": "Complete",
    "staff_id": 5,
    "start": "2026-09-30",
    "end": "2026-10-05",
    "est_hours": 23,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 36,
    "job_id": 6,
    "stage_id": 28,
    "name": "Workshop prefabrication",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 10,
    "start": "2026-10-08",
    "end": "2026-10-19",
    "est_hours": 43,
    "progress": 100,
    "notes": null,
    "sort": 3
   },
   {
    "id": 37,
    "job_id": 6,
    "stage_id": 28,
    "name": "Site installation",
    "kind": "Site",
    "status": "In production",
    "staff_id": 13,
    "start": "2026-10-20",
    "end": "2026-11-09",
    "est_hours": 74,
    "progress": 80,
    "notes": null,
    "sort": 4
   },
   {
    "id": 38,
    "job_id": 6,
    "stage_id": 30,
    "name": "Commissioning & handover",
    "kind": "Site",
    "status": "Ready",
    "staff_id": 4,
    "start": "2026-11-10",
    "end": "2026-11-19",
    "est_hours": 35,
    "progress": 0,
    "notes": null,
    "sort": 5
   },
   {
    "id": 39,
    "job_id": 7,
    "stage_id": 31,
    "name": "Drawings & IFC approval",
    "kind": "Office",
    "status": "Complete",
    "staff_id": 5,
    "start": "2026-10-19",
    "end": "2026-10-22",
    "est_hours": 10,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 40,
    "job_id": 7,
    "stage_id": 33,
    "name": "Enclosure prep & mounting",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 11,
    "start": "2026-10-26",
    "end": "2026-10-30",
    "est_hours": 12,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 41,
    "job_id": 7,
    "stage_id": 33,
    "name": "Mount & power wiring",
    "kind": "Workshop",
    "status": "In production",
    "staff_id": 9,
    "start": "2026-11-02",
    "end": "2026-11-13",
    "est_hours": 28,
    "progress": 30,
    "notes": null,
    "sort": 3
   },
   {
    "id": 42,
    "job_id": 7,
    "stage_id": 33,
    "name": "Control wiring & PLC",
    "kind": "Workshop",
    "status": "Ready",
    "staff_id": 10,
    "start": "2026-11-09",
    "end": "2026-11-23",
    "est_hours": 28,
    "progress": 0,
    "notes": null,
    "sort": 4
   },
   {
    "id": 43,
    "job_id": 7,
    "stage_id": 35,
    "name": "FAT & testing",
    "kind": "Workshop",
    "status": "Ready",
    "staff_id": 7,
    "start": "2026-11-23",
    "end": "2026-11-30",
    "est_hours": 12,
    "progress": 0,
    "notes": null,
    "sort": 5
   },
   {
    "id": 44,
    "job_id": 7,
    "stage_id": 35,
    "name": "Delivery & commissioning",
    "kind": "Site",
    "status": "Ready",
    "staff_id": 13,
    "start": "2026-12-03",
    "end": "2026-12-10",
    "est_hours": 17,
    "progress": 0,
    "notes": null,
    "sort": 6
   },
   {
    "id": 45,
    "job_id": 8,
    "stage_id": 38,
    "name": "Removal from site & transport",
    "kind": "Site",
    "status": "Complete",
    "staff_id": 13,
    "start": "2026-10-05",
    "end": "2026-10-07",
    "est_hours": 9,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 46,
    "job_id": 8,
    "stage_id": 38,
    "name": "Strip, inspect & assess",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 7,
    "start": "2026-10-08",
    "end": "2026-10-19",
    "est_hours": 29,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 47,
    "job_id": 8,
    "stage_id": 38,
    "name": "Core, winding & tap changer rebuild",
    "kind": "Workshop",
    "status": "In production",
    "staff_id": 12,
    "start": "2026-10-19",
    "end": "2026-11-09",
    "est_hours": 69,
    "progress": 80,
    "notes": null,
    "sort": 3
   },
   {
    "id": 48,
    "job_id": 8,
    "stage_id": 39,
    "name": "Oil fill, dry-out & electrical tests",
    "kind": "Workshop",
    "status": "Ready",
    "staff_id": 7,
    "start": "2026-11-10",
    "end": "2026-11-17",
    "est_hours": 24,
    "progress": 0,
    "notes": null,
    "sort": 4
   },
   {
    "id": 49,
    "job_id": 8,
    "stage_id": 39,
    "name": "Return to site & reconnection",
    "kind": "Site",
    "status": "Ready",
    "staff_id": 13,
    "start": "2026-11-19",
    "end": "2026-11-24",
    "est_hours": 18,
    "progress": 0,
    "notes": null,
    "sort": 5
   },
   {
    "id": 50,
    "job_id": 9,
    "stage_id": 40,
    "name": "Network design & drawings",
    "kind": "Office",
    "status": "Ready",
    "staff_id": 5,
    "start": "2026-11-16",
    "end": "2026-11-23",
    "est_hours": 19,
    "progress": 0,
    "notes": null,
    "sort": 1
   },
   {
    "id": 51,
    "job_id": 9,
    "stage_id": 42,
    "name": "Fibre installation & splicing",
    "kind": "Site",
    "status": "Ready",
    "staff_id": 13,
    "start": "2026-11-24",
    "end": "2026-12-09",
    "est_hours": 48,
    "progress": 0,
    "notes": null,
    "sort": 2
   },
   {
    "id": 52,
    "job_id": 9,
    "stage_id": 42,
    "name": "Switch panels & PLC network changes",
    "kind": "Workshop",
    "status": "Awaiting materials",
    "staff_id": 10,
    "start": "2026-11-26",
    "end": "2026-12-04",
    "est_hours": 28,
    "progress": 0,
    "notes": null,
    "sort": 3
   },
   {
    "id": 53,
    "job_id": 9,
    "stage_id": 43,
    "name": "Testing & handover",
    "kind": "Site",
    "status": "Ready",
    "staff_id": 4,
    "start": "2026-12-14",
    "end": "2026-12-17",
    "est_hours": 19,
    "progress": 0,
    "notes": null,
    "sort": 4
   },
   {
    "id": 54,
    "job_id": 10,
    "stage_id": 44,
    "name": "Survey & sampling plan",
    "kind": "Office",
    "status": "Complete",
    "staff_id": 5,
    "start": "2026-08-03",
    "end": "2026-08-11",
    "est_hours": 17,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 55,
    "job_id": 10,
    "stage_id": 46,
    "name": "Site round 1 — inspections & sampling",
    "kind": "Site",
    "status": "Complete",
    "staff_id": 13,
    "start": "2026-08-12",
    "end": "2026-09-23",
    "est_hours": 78,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 56,
    "job_id": 10,
    "stage_id": 46,
    "name": "Breather & gasket refurbishment",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 12,
    "start": "2026-09-07",
    "end": "2026-10-05",
    "est_hours": 53,
    "progress": 100,
    "notes": null,
    "sort": 3
   },
   {
    "id": 57,
    "job_id": 10,
    "stage_id": 46,
    "name": "Site round 2 — maintenance",
    "kind": "Site",
    "status": "In production",
    "staff_id": 9,
    "start": "2026-10-06",
    "end": "2026-11-17",
    "est_hours": 78,
    "progress": 70,
    "notes": null,
    "sort": 4
   },
   {
    "id": 58,
    "job_id": 10,
    "stage_id": 47,
    "name": "Condition reports & handover",
    "kind": "Office",
    "status": "Ready",
    "staff_id": 4,
    "start": "2026-11-18",
    "end": "2026-11-26",
    "est_hours": 17,
    "progress": 0,
    "notes": null,
    "sort": 5
   },
   {
    "id": 59,
    "job_id": 11,
    "stage_id": 50,
    "name": "Collect pumps & freight in",
    "kind": "Site",
    "status": "Complete",
    "staff_id": 13,
    "start": "2026-08-17",
    "end": "2026-08-21",
    "est_hours": 19,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 60,
    "job_id": 11,
    "stage_id": 50,
    "name": "Strip, inspect & measure wear",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 7,
    "start": "2026-08-24",
    "end": "2026-09-09",
    "est_hours": 74,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 61,
    "job_id": 11,
    "stage_id": 50,
    "name": "Rebuild — seals, bearings, impellers",
    "kind": "Workshop",
    "status": "In production",
    "staff_id": 11,
    "start": "2026-09-10",
    "end": "2026-11-05",
    "est_hours": 223,
    "progress": 95,
    "notes": null,
    "sort": 3
   },
   {
    "id": 62,
    "job_id": 11,
    "stage_id": 51,
    "name": "Test run & dispatch",
    "kind": "Workshop",
    "status": "Ready",
    "staff_id": 11,
    "start": "2026-11-06",
    "end": "2026-11-19",
    "est_hours": 56,
    "progress": 0,
    "notes": null,
    "sort": 4
   },
   {
    "id": 63,
    "job_id": 12,
    "stage_id": 54,
    "name": "Remove pumps from Pit 3",
    "kind": "Site",
    "status": "Complete",
    "staff_id": 13,
    "start": "2026-07-27",
    "end": "2026-07-31",
    "est_hours": 18,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 64,
    "job_id": 12,
    "stage_id": 54,
    "name": "Strip, inspect & measure wear",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 7,
    "start": "2026-08-03",
    "end": "2026-08-17",
    "est_hours": 58,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 65,
    "job_id": 12,
    "stage_id": 54,
    "name": "Rebuild — seals, bearings, impellers",
    "kind": "Workshop",
    "status": "Complete",
    "staff_id": 11,
    "start": "2026-08-17",
    "end": "2026-09-30",
    "est_hours": 174,
    "progress": 100,
    "notes": null,
    "sort": 3
   },
   {
    "id": 66,
    "job_id": 12,
    "stage_id": 55,
    "name": "Test run & reinstall",
    "kind": "Site",
    "status": "Complete",
    "staff_id": 13,
    "start": "2026-10-05",
    "end": "2026-10-15",
    "est_hours": 46,
    "progress": 100,
    "notes": null,
    "sort": 4
   },
   {
    "id": 67,
    "job_id": 13,
    "stage_id": 58,
    "name": "Service plan & isolations list",
    "kind": "Office",
    "status": "Complete",
    "staff_id": 5,
    "start": "2026-09-01",
    "end": "2026-09-07",
    "est_hours": 16,
    "progress": 100,
    "notes": null,
    "sort": 1
   },
   {
    "id": 68,
    "job_id": 13,
    "stage_id": 58,
    "name": "Round 1 — drives CV-1 to CV-8",
    "kind": "Site",
    "status": "Complete",
    "staff_id": 9,
    "start": "2026-09-07",
    "end": "2026-10-19",
    "est_hours": 105,
    "progress": 100,
    "notes": null,
    "sort": 2
   },
   {
    "id": 69,
    "job_id": 13,
    "stage_id": 58,
    "name": "Round 2 — drives CV-9 to CV-16",
    "kind": "Site",
    "status": "In production",
    "staff_id": 10,
    "start": "2026-10-26",
    "end": "2026-12-07",
    "est_hours": 108,
    "progress": 25,
    "notes": null,
    "sort": 3
   },
   {
    "id": 70,
    "job_id": 13,
    "stage_id": 58,
    "name": "Thermography reports",
    "kind": "Office",
    "status": "Ready",
    "staff_id": 4,
    "start": "2026-12-07",
    "end": "2026-12-17",
    "est_hours": 27,
    "progress": 0,
    "notes": null,
    "sort": 4
   }
  ],
  "timesheets": [
   {
    "id": 1,
    "staff_id": 7,
    "week": "2026-09-14",
    "status": "Approved",
    "submitted_on": "2026-09-18",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-09-21"
   },
   {
    "id": 2,
    "staff_id": 8,
    "week": "2026-09-14",
    "status": "Approved",
    "submitted_on": "2026-09-18",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-21"
   },
   {
    "id": 3,
    "staff_id": 9,
    "week": "2026-09-14",
    "status": "Approved",
    "submitted_on": "2026-09-18",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-21"
   },
   {
    "id": 4,
    "staff_id": 10,
    "week": "2026-09-14",
    "status": "Approved",
    "submitted_on": "2026-09-18",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-21"
   },
   {
    "id": 5,
    "staff_id": 11,
    "week": "2026-09-14",
    "status": "Approved",
    "submitted_on": "2026-09-18",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-21"
   },
   {
    "id": 6,
    "staff_id": 12,
    "week": "2026-09-14",
    "status": "Approved",
    "submitted_on": "2026-09-18",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-21"
   },
   {
    "id": 7,
    "staff_id": 13,
    "week": "2026-09-14",
    "status": "Approved",
    "submitted_on": "2026-09-18",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-21"
   },
   {
    "id": 8,
    "staff_id": 5,
    "week": "2026-09-21",
    "status": "Approved",
    "submitted_on": "2026-09-25",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-09-28"
   },
   {
    "id": 9,
    "staff_id": 7,
    "week": "2026-09-21",
    "status": "Approved",
    "submitted_on": "2026-09-25",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-09-28"
   },
   {
    "id": 10,
    "staff_id": 8,
    "week": "2026-09-21",
    "status": "Approved",
    "submitted_on": "2026-09-25",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-28"
   },
   {
    "id": 11,
    "staff_id": 9,
    "week": "2026-09-21",
    "status": "Approved",
    "submitted_on": "2026-09-25",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-28"
   },
   {
    "id": 12,
    "staff_id": 10,
    "week": "2026-09-21",
    "status": "Approved",
    "submitted_on": "2026-09-25",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-28"
   },
   {
    "id": 13,
    "staff_id": 11,
    "week": "2026-09-21",
    "status": "Approved",
    "submitted_on": "2026-09-25",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-28"
   },
   {
    "id": 14,
    "staff_id": 12,
    "week": "2026-09-21",
    "status": "Approved",
    "submitted_on": "2026-09-25",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-28"
   },
   {
    "id": 15,
    "staff_id": 13,
    "week": "2026-09-21",
    "status": "Approved",
    "submitted_on": "2026-09-25",
    "approved_by": "Luke Harding",
    "approved_on": "2026-09-28"
   },
   {
    "id": 16,
    "staff_id": 5,
    "week": "2026-09-28",
    "status": "Approved",
    "submitted_on": "2026-10-02",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-10-05"
   },
   {
    "id": 17,
    "staff_id": 7,
    "week": "2026-09-28",
    "status": "Approved",
    "submitted_on": "2026-10-02",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-10-05"
   },
   {
    "id": 18,
    "staff_id": 8,
    "week": "2026-09-28",
    "status": "Approved",
    "submitted_on": "2026-10-02",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-05"
   },
   {
    "id": 19,
    "staff_id": 9,
    "week": "2026-09-28",
    "status": "Approved",
    "submitted_on": "2026-10-02",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-05"
   },
   {
    "id": 20,
    "staff_id": 10,
    "week": "2026-09-28",
    "status": "Approved",
    "submitted_on": "2026-10-02",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-05"
   },
   {
    "id": 21,
    "staff_id": 11,
    "week": "2026-09-28",
    "status": "Approved",
    "submitted_on": "2026-10-02",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-05"
   },
   {
    "id": 22,
    "staff_id": 12,
    "week": "2026-09-28",
    "status": "Approved",
    "submitted_on": "2026-10-02",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-05"
   },
   {
    "id": 23,
    "staff_id": 13,
    "week": "2026-09-28",
    "status": "Approved",
    "submitted_on": "2026-10-02",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-05"
   },
   {
    "id": 24,
    "staff_id": 5,
    "week": "2026-10-05",
    "status": "Approved",
    "submitted_on": "2026-10-09",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-10-12"
   },
   {
    "id": 25,
    "staff_id": 8,
    "week": "2026-10-05",
    "status": "Approved",
    "submitted_on": "2026-10-09",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-12"
   },
   {
    "id": 26,
    "staff_id": 9,
    "week": "2026-10-05",
    "status": "Approved",
    "submitted_on": "2026-10-09",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-12"
   },
   {
    "id": 27,
    "staff_id": 10,
    "week": "2026-10-05",
    "status": "Approved",
    "submitted_on": "2026-10-09",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-12"
   },
   {
    "id": 28,
    "staff_id": 11,
    "week": "2026-10-05",
    "status": "Approved",
    "submitted_on": "2026-10-09",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-12"
   },
   {
    "id": 29,
    "staff_id": 12,
    "week": "2026-10-05",
    "status": "Approved",
    "submitted_on": "2026-10-09",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-12"
   },
   {
    "id": 30,
    "staff_id": 13,
    "week": "2026-10-05",
    "status": "Approved",
    "submitted_on": "2026-10-09",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-12"
   },
   {
    "id": 31,
    "staff_id": 7,
    "week": "2026-10-12",
    "status": "Approved",
    "submitted_on": "2026-10-16",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-10-19"
   },
   {
    "id": 32,
    "staff_id": 8,
    "week": "2026-10-12",
    "status": "Approved",
    "submitted_on": "2026-10-16",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-19"
   },
   {
    "id": 33,
    "staff_id": 9,
    "week": "2026-10-12",
    "status": "Approved",
    "submitted_on": "2026-10-16",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-19"
   },
   {
    "id": 34,
    "staff_id": 10,
    "week": "2026-10-12",
    "status": "Approved",
    "submitted_on": "2026-10-16",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-19"
   },
   {
    "id": 35,
    "staff_id": 11,
    "week": "2026-10-12",
    "status": "Approved",
    "submitted_on": "2026-10-16",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-19"
   },
   {
    "id": 36,
    "staff_id": 12,
    "week": "2026-10-12",
    "status": "Approved",
    "submitted_on": "2026-10-16",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-19"
   },
   {
    "id": 37,
    "staff_id": 13,
    "week": "2026-10-12",
    "status": "Approved",
    "submitted_on": "2026-10-16",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-19"
   },
   {
    "id": 38,
    "staff_id": 5,
    "week": "2026-10-19",
    "status": "Approved",
    "submitted_on": "2026-10-23",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-10-26"
   },
   {
    "id": 39,
    "staff_id": 7,
    "week": "2026-10-19",
    "status": "Approved",
    "submitted_on": "2026-10-23",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-10-26"
   },
   {
    "id": 40,
    "staff_id": 8,
    "week": "2026-10-19",
    "status": "Approved",
    "submitted_on": "2026-10-23",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-26"
   },
   {
    "id": 41,
    "staff_id": 9,
    "week": "2026-10-19",
    "status": "Approved",
    "submitted_on": "2026-10-23",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-26"
   },
   {
    "id": 42,
    "staff_id": 10,
    "week": "2026-10-19",
    "status": "Approved",
    "submitted_on": "2026-10-23",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-26"
   },
   {
    "id": 43,
    "staff_id": 11,
    "week": "2026-10-19",
    "status": "Approved",
    "submitted_on": "2026-10-23",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-26"
   },
   {
    "id": 44,
    "staff_id": 12,
    "week": "2026-10-19",
    "status": "Approved",
    "submitted_on": "2026-10-23",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-26"
   },
   {
    "id": 45,
    "staff_id": 13,
    "week": "2026-10-19",
    "status": "Approved",
    "submitted_on": "2026-10-23",
    "approved_by": "Luke Harding",
    "approved_on": "2026-10-26"
   },
   {
    "id": 46,
    "staff_id": 4,
    "week": "2026-10-26",
    "status": "Approved",
    "submitted_on": "2026-10-30",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-11-02"
   },
   {
    "id": 47,
    "staff_id": 5,
    "week": "2026-10-26",
    "status": "Approved",
    "submitted_on": "2026-10-30",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-11-02"
   },
   {
    "id": 48,
    "staff_id": 7,
    "week": "2026-10-26",
    "status": "Approved",
    "submitted_on": "2026-10-30",
    "approved_by": "Daniel Reeves",
    "approved_on": "2026-11-02"
   },
   {
    "id": 49,
    "staff_id": 8,
    "week": "2026-10-26",
    "status": "Approved",
    "submitted_on": "2026-10-30",
    "approved_by": "Luke Harding",
    "approved_on": "2026-11-02"
   },
   {
    "id": 50,
    "staff_id": 9,
    "week": "2026-10-26",
    "status": "Approved",
    "submitted_on": "2026-10-30",
    "approved_by": "Luke Harding",
    "approved_on": "2026-11-02"
   },
   {
    "id": 51,
    "staff_id": 10,
    "week": "2026-10-26",
    "status": "Approved",
    "submitted_on": "2026-10-30",
    "approved_by": "Luke Harding",
    "approved_on": "2026-11-02"
   },
   {
    "id": 52,
    "staff_id": 11,
    "week": "2026-10-26",
    "status": "Submitted",
    "submitted_on": "2026-10-30",
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 53,
    "staff_id": 12,
    "week": "2026-10-26",
    "status": "Submitted",
    "submitted_on": "2026-10-30",
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 54,
    "staff_id": 13,
    "week": "2026-10-26",
    "status": "Submitted",
    "submitted_on": "2026-10-30",
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 55,
    "staff_id": 4,
    "week": "2026-11-02",
    "status": "Draft",
    "submitted_on": null,
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 56,
    "staff_id": 5,
    "week": "2026-11-02",
    "status": "Draft",
    "submitted_on": null,
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 57,
    "staff_id": 7,
    "week": "2026-11-02",
    "status": "Draft",
    "submitted_on": null,
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 58,
    "staff_id": 8,
    "week": "2026-11-02",
    "status": "Draft",
    "submitted_on": null,
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 59,
    "staff_id": 9,
    "week": "2026-11-02",
    "status": "Draft",
    "submitted_on": null,
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 60,
    "staff_id": 10,
    "week": "2026-11-02",
    "status": "Draft",
    "submitted_on": null,
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 61,
    "staff_id": 11,
    "week": "2026-11-02",
    "status": "Draft",
    "submitted_on": null,
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 62,
    "staff_id": 12,
    "week": "2026-11-02",
    "status": "Draft",
    "submitted_on": null,
    "approved_by": null,
    "approved_on": null
   },
   {
    "id": 63,
    "staff_id": 13,
    "week": "2026-11-02",
    "status": "Draft",
    "submitted_on": null,
    "approved_by": null,
    "approved_on": null
   }
  ],
  "time_entries": [
   {
    "id": 1,
    "staff_id": 5,
    "date": "2026-06-24",
    "job_id": 3,
    "task_id": 16,
    "hours": 2.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 2,
    "staff_id": 5,
    "date": "2026-06-25",
    "job_id": 3,
    "task_id": 16,
    "hours": 3.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 3,
    "staff_id": 5,
    "date": "2026-06-26",
    "job_id": 3,
    "task_id": 16,
    "hours": 3.25,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 4,
    "staff_id": 5,
    "date": "2026-06-29",
    "job_id": 3,
    "task_id": 16,
    "hours": 3.25,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 5,
    "staff_id": 5,
    "date": "2026-06-30",
    "job_id": 3,
    "task_id": 16,
    "hours": 2.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 6,
    "staff_id": 11,
    "date": "2026-07-06",
    "job_id": 3,
    "task_id": 17,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 7,
    "staff_id": 11,
    "date": "2026-07-07",
    "job_id": 3,
    "task_id": 17,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 8,
    "staff_id": 11,
    "date": "2026-07-08",
    "job_id": 3,
    "task_id": 17,
    "hours": 3.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 9,
    "staff_id": 11,
    "date": "2026-07-09",
    "job_id": 3,
    "task_id": 17,
    "hours": 3.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 10,
    "staff_id": 11,
    "date": "2026-07-10",
    "job_id": 3,
    "task_id": 17,
    "hours": 3.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 11,
    "staff_id": 8,
    "date": "2026-07-13",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 12,
    "staff_id": 9,
    "date": "2026-07-13",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 13,
    "staff_id": 11,
    "date": "2026-07-13",
    "job_id": 3,
    "task_id": 17,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 14,
    "staff_id": 8,
    "date": "2026-07-14",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 15,
    "staff_id": 9,
    "date": "2026-07-14",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 16,
    "staff_id": 8,
    "date": "2026-07-15",
    "job_id": 3,
    "task_id": 18,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 17,
    "staff_id": 9,
    "date": "2026-07-15",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 18,
    "staff_id": 8,
    "date": "2026-07-16",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 19,
    "staff_id": 9,
    "date": "2026-07-16",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 20,
    "staff_id": 8,
    "date": "2026-07-17",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 21,
    "staff_id": 9,
    "date": "2026-07-17",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 22,
    "staff_id": 8,
    "date": "2026-07-20",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 23,
    "staff_id": 9,
    "date": "2026-07-20",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 24,
    "staff_id": 8,
    "date": "2026-07-21",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 25,
    "staff_id": 9,
    "date": "2026-07-21",
    "job_id": 3,
    "task_id": 18,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 26,
    "staff_id": 8,
    "date": "2026-07-22",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 27,
    "staff_id": 9,
    "date": "2026-07-22",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 28,
    "staff_id": 8,
    "date": "2026-07-23",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 29,
    "staff_id": 9,
    "date": "2026-07-23",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 30,
    "staff_id": 8,
    "date": "2026-07-24",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 31,
    "staff_id": 9,
    "date": "2026-07-24",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 32,
    "staff_id": 8,
    "date": "2026-07-27",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 33,
    "staff_id": 9,
    "date": "2026-07-27",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 34,
    "staff_id": 10,
    "date": "2026-07-27",
    "job_id": 3,
    "task_id": 19,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 35,
    "staff_id": 13,
    "date": "2026-07-27",
    "job_id": 12,
    "task_id": 63,
    "hours": 3.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 36,
    "staff_id": 8,
    "date": "2026-07-28",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 37,
    "staff_id": 9,
    "date": "2026-07-28",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 38,
    "staff_id": 10,
    "date": "2026-07-28",
    "job_id": 3,
    "task_id": 19,
    "hours": 3.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 39,
    "staff_id": 13,
    "date": "2026-07-28",
    "job_id": 12,
    "task_id": 63,
    "hours": 4,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 40,
    "staff_id": 8,
    "date": "2026-07-29",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 41,
    "staff_id": 9,
    "date": "2026-07-29",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 42,
    "staff_id": 10,
    "date": "2026-07-29",
    "job_id": 3,
    "task_id": 19,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 43,
    "staff_id": 13,
    "date": "2026-07-29",
    "job_id": 12,
    "task_id": 63,
    "hours": 3.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 44,
    "staff_id": 8,
    "date": "2026-07-30",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 45,
    "staff_id": 9,
    "date": "2026-07-30",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 46,
    "staff_id": 10,
    "date": "2026-07-30",
    "job_id": 3,
    "task_id": 19,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 47,
    "staff_id": 13,
    "date": "2026-07-30",
    "job_id": 12,
    "task_id": 63,
    "hours": 4,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 48,
    "staff_id": 8,
    "date": "2026-07-31",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 49,
    "staff_id": 9,
    "date": "2026-07-31",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 50,
    "staff_id": 10,
    "date": "2026-07-31",
    "job_id": 3,
    "task_id": 19,
    "hours": 3.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 51,
    "staff_id": 13,
    "date": "2026-07-31",
    "job_id": 12,
    "task_id": 63,
    "hours": 3.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 52,
    "staff_id": 5,
    "date": "2026-08-03",
    "job_id": 4,
    "task_id": 22,
    "hours": 6.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 53,
    "staff_id": 5,
    "date": "2026-08-03",
    "job_id": 10,
    "task_id": 54,
    "hours": 0.8499999999999996,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 54,
    "staff_id": 7,
    "date": "2026-08-03",
    "job_id": 12,
    "task_id": 64,
    "hours": 6.25,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 55,
    "staff_id": 8,
    "date": "2026-08-03",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 56,
    "staff_id": 9,
    "date": "2026-08-03",
    "job_id": 3,
    "task_id": 18,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 57,
    "staff_id": 10,
    "date": "2026-08-03",
    "job_id": 3,
    "task_id": 19,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 58,
    "staff_id": 5,
    "date": "2026-08-04",
    "job_id": 4,
    "task_id": 22,
    "hours": 7.6,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 59,
    "staff_id": 7,
    "date": "2026-08-04",
    "job_id": 12,
    "task_id": 64,
    "hours": 6,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 60,
    "staff_id": 10,
    "date": "2026-08-04",
    "job_id": 3,
    "task_id": 19,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 61,
    "staff_id": 5,
    "date": "2026-08-05",
    "job_id": 4,
    "task_id": 22,
    "hours": 7.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 62,
    "staff_id": 5,
    "date": "2026-08-05",
    "job_id": 10,
    "task_id": 54,
    "hours": 0.09999999999999964,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 63,
    "staff_id": 7,
    "date": "2026-08-05",
    "job_id": 12,
    "task_id": 64,
    "hours": 6.25,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 64,
    "staff_id": 10,
    "date": "2026-08-05",
    "job_id": 3,
    "task_id": 19,
    "hours": 3.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 65,
    "staff_id": 5,
    "date": "2026-08-06",
    "job_id": 4,
    "task_id": 22,
    "hours": 7.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 66,
    "staff_id": 5,
    "date": "2026-08-06",
    "job_id": 10,
    "task_id": 54,
    "hours": 0.09999999999999964,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 67,
    "staff_id": 7,
    "date": "2026-08-06",
    "job_id": 12,
    "task_id": 64,
    "hours": 5.25,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 68,
    "staff_id": 10,
    "date": "2026-08-06",
    "job_id": 3,
    "task_id": 19,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 69,
    "staff_id": 5,
    "date": "2026-08-07",
    "job_id": 4,
    "task_id": 22,
    "hours": 6.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 70,
    "staff_id": 5,
    "date": "2026-08-07",
    "job_id": 10,
    "task_id": 54,
    "hours": 0.8499999999999996,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 71,
    "staff_id": 7,
    "date": "2026-08-07",
    "job_id": 12,
    "task_id": 64,
    "hours": 5.75,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 72,
    "staff_id": 10,
    "date": "2026-08-07",
    "job_id": 3,
    "task_id": 19,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 73,
    "staff_id": 5,
    "date": "2026-08-10",
    "job_id": 4,
    "task_id": 22,
    "hours": 7.6,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 74,
    "staff_id": 7,
    "date": "2026-08-10",
    "job_id": 12,
    "task_id": 64,
    "hours": 5,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 75,
    "staff_id": 10,
    "date": "2026-08-10",
    "job_id": 3,
    "task_id": 19,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 76,
    "staff_id": 5,
    "date": "2026-08-11",
    "job_id": 10,
    "task_id": 54,
    "hours": 2.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 77,
    "staff_id": 7,
    "date": "2026-08-11",
    "job_id": 12,
    "task_id": 64,
    "hours": 5.5,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 78,
    "staff_id": 10,
    "date": "2026-08-11",
    "job_id": 3,
    "task_id": 19,
    "hours": 3.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 79,
    "staff_id": 7,
    "date": "2026-08-12",
    "job_id": 12,
    "task_id": 64,
    "hours": 6,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 80,
    "staff_id": 10,
    "date": "2026-08-12",
    "job_id": 3,
    "task_id": 19,
    "hours": 3.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 81,
    "staff_id": 10,
    "date": "2026-08-12",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 82,
    "staff_id": 13,
    "date": "2026-08-12",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 83,
    "staff_id": 7,
    "date": "2026-08-13",
    "job_id": 12,
    "task_id": 64,
    "hours": 5.75,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 84,
    "staff_id": 10,
    "date": "2026-08-13",
    "job_id": 3,
    "task_id": 19,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 85,
    "staff_id": 10,
    "date": "2026-08-13",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 86,
    "staff_id": 13,
    "date": "2026-08-13",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 87,
    "staff_id": 7,
    "date": "2026-08-14",
    "job_id": 12,
    "task_id": 64,
    "hours": 5,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 88,
    "staff_id": 10,
    "date": "2026-08-14",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 89,
    "staff_id": 13,
    "date": "2026-08-14",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 90,
    "staff_id": 7,
    "date": "2026-08-17",
    "job_id": 3,
    "task_id": 20,
    "hours": 3,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 91,
    "staff_id": 7,
    "date": "2026-08-17",
    "job_id": 12,
    "task_id": 64,
    "hours": 4.6,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 92,
    "staff_id": 10,
    "date": "2026-08-17",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 93,
    "staff_id": 10,
    "date": "2026-08-17",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 94,
    "staff_id": 11,
    "date": "2026-08-17",
    "job_id": 4,
    "task_id": 23,
    "hours": 7.6,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 95,
    "staff_id": 13,
    "date": "2026-08-17",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 96,
    "staff_id": 13,
    "date": "2026-08-17",
    "job_id": 11,
    "task_id": 59,
    "hours": 3,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 97,
    "staff_id": 7,
    "date": "2026-08-18",
    "job_id": 3,
    "task_id": 20,
    "hours": 3.25,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 98,
    "staff_id": 10,
    "date": "2026-08-18",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 99,
    "staff_id": 10,
    "date": "2026-08-18",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 100,
    "staff_id": 11,
    "date": "2026-08-18",
    "job_id": 4,
    "task_id": 23,
    "hours": 7.6,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 101,
    "staff_id": 13,
    "date": "2026-08-18",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 102,
    "staff_id": 13,
    "date": "2026-08-18",
    "job_id": 11,
    "task_id": 59,
    "hours": 3.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 103,
    "staff_id": 7,
    "date": "2026-08-19",
    "job_id": 3,
    "task_id": 20,
    "hours": 3.5,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 104,
    "staff_id": 10,
    "date": "2026-08-19",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 105,
    "staff_id": 10,
    "date": "2026-08-19",
    "job_id": 12,
    "task_id": 65,
    "hours": 3.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 106,
    "staff_id": 11,
    "date": "2026-08-19",
    "job_id": 4,
    "task_id": 23,
    "hours": 7.6,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 107,
    "staff_id": 13,
    "date": "2026-08-19",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 108,
    "staff_id": 13,
    "date": "2026-08-19",
    "job_id": 11,
    "task_id": 59,
    "hours": 3.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 109,
    "staff_id": 7,
    "date": "2026-08-20",
    "job_id": 3,
    "task_id": 20,
    "hours": 3,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 110,
    "staff_id": 10,
    "date": "2026-08-20",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 111,
    "staff_id": 10,
    "date": "2026-08-20",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 112,
    "staff_id": 11,
    "date": "2026-08-20",
    "job_id": 4,
    "task_id": 23,
    "hours": 7,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 113,
    "staff_id": 11,
    "date": "2026-08-20",
    "job_id": 12,
    "task_id": 65,
    "hours": 0.5999999999999996,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 114,
    "staff_id": 13,
    "date": "2026-08-20",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 115,
    "staff_id": 13,
    "date": "2026-08-20",
    "job_id": 11,
    "task_id": 59,
    "hours": 3.75,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 116,
    "staff_id": 7,
    "date": "2026-08-21",
    "job_id": 3,
    "task_id": 20,
    "hours": 3.5,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 117,
    "staff_id": 10,
    "date": "2026-08-21",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 118,
    "staff_id": 10,
    "date": "2026-08-21",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 119,
    "staff_id": 11,
    "date": "2026-08-21",
    "job_id": 4,
    "task_id": 23,
    "hours": 7,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 120,
    "staff_id": 11,
    "date": "2026-08-21",
    "job_id": 12,
    "task_id": 65,
    "hours": 0.5999999999999996,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 121,
    "staff_id": 13,
    "date": "2026-08-21",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 122,
    "staff_id": 13,
    "date": "2026-08-21",
    "job_id": 11,
    "task_id": 59,
    "hours": 3.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 123,
    "staff_id": 7,
    "date": "2026-08-24",
    "job_id": 3,
    "task_id": 20,
    "hours": 3,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 124,
    "staff_id": 7,
    "date": "2026-08-24",
    "job_id": 11,
    "task_id": 60,
    "hours": 4.6,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 125,
    "staff_id": 10,
    "date": "2026-08-24",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 126,
    "staff_id": 10,
    "date": "2026-08-24",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 127,
    "staff_id": 11,
    "date": "2026-08-24",
    "job_id": 4,
    "task_id": 23,
    "hours": 7.6,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 128,
    "staff_id": 13,
    "date": "2026-08-24",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 129,
    "staff_id": 7,
    "date": "2026-08-25",
    "job_id": 11,
    "task_id": 60,
    "hours": 6.75,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 130,
    "staff_id": 10,
    "date": "2026-08-25",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 131,
    "staff_id": 10,
    "date": "2026-08-25",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 132,
    "staff_id": 11,
    "date": "2026-08-25",
    "job_id": 4,
    "task_id": 23,
    "hours": 7.6,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 133,
    "staff_id": 13,
    "date": "2026-08-25",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 134,
    "staff_id": 7,
    "date": "2026-08-26",
    "job_id": 11,
    "task_id": 60,
    "hours": 6.75,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 135,
    "staff_id": 8,
    "date": "2026-08-26",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 136,
    "staff_id": 9,
    "date": "2026-08-26",
    "job_id": 4,
    "task_id": 24,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 137,
    "staff_id": 10,
    "date": "2026-08-26",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 138,
    "staff_id": 10,
    "date": "2026-08-26",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 139,
    "staff_id": 11,
    "date": "2026-08-26",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 140,
    "staff_id": 13,
    "date": "2026-08-26",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 141,
    "staff_id": 7,
    "date": "2026-08-27",
    "job_id": 11,
    "task_id": 60,
    "hours": 6.25,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 142,
    "staff_id": 8,
    "date": "2026-08-27",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 143,
    "staff_id": 9,
    "date": "2026-08-27",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 144,
    "staff_id": 10,
    "date": "2026-08-27",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 145,
    "staff_id": 10,
    "date": "2026-08-27",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 146,
    "staff_id": 11,
    "date": "2026-08-27",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 147,
    "staff_id": 13,
    "date": "2026-08-27",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 148,
    "staff_id": 7,
    "date": "2026-08-28",
    "job_id": 11,
    "task_id": 60,
    "hours": 6.5,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 149,
    "staff_id": 8,
    "date": "2026-08-28",
    "job_id": 4,
    "task_id": 24,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 150,
    "staff_id": 9,
    "date": "2026-08-28",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 151,
    "staff_id": 10,
    "date": "2026-08-28",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 152,
    "staff_id": 10,
    "date": "2026-08-28",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 153,
    "staff_id": 11,
    "date": "2026-08-28",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 154,
    "staff_id": 13,
    "date": "2026-08-28",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 155,
    "staff_id": 7,
    "date": "2026-08-31",
    "job_id": 11,
    "task_id": 60,
    "hours": 6.5,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 156,
    "staff_id": 8,
    "date": "2026-08-31",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 157,
    "staff_id": 9,
    "date": "2026-08-31",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 158,
    "staff_id": 10,
    "date": "2026-08-31",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 159,
    "staff_id": 10,
    "date": "2026-08-31",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 160,
    "staff_id": 11,
    "date": "2026-08-31",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 161,
    "staff_id": 13,
    "date": "2026-08-31",
    "job_id": 3,
    "task_id": 21,
    "hours": 2.75,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 162,
    "staff_id": 13,
    "date": "2026-08-31",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 163,
    "staff_id": 5,
    "date": "2026-09-01",
    "job_id": 13,
    "task_id": 67,
    "hours": 3,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 164,
    "staff_id": 7,
    "date": "2026-09-01",
    "job_id": 11,
    "task_id": 60,
    "hours": 6.25,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 165,
    "staff_id": 8,
    "date": "2026-09-01",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 166,
    "staff_id": 9,
    "date": "2026-09-01",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 167,
    "staff_id": 10,
    "date": "2026-09-01",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 168,
    "staff_id": 10,
    "date": "2026-09-01",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 169,
    "staff_id": 11,
    "date": "2026-09-01",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 170,
    "staff_id": 13,
    "date": "2026-09-01",
    "job_id": 3,
    "task_id": 21,
    "hours": 3,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 171,
    "staff_id": 13,
    "date": "2026-09-01",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 172,
    "staff_id": 5,
    "date": "2026-09-02",
    "job_id": 13,
    "task_id": 67,
    "hours": 2.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 173,
    "staff_id": 7,
    "date": "2026-09-02",
    "job_id": 11,
    "task_id": 60,
    "hours": 6.25,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 174,
    "staff_id": 8,
    "date": "2026-09-02",
    "job_id": 4,
    "task_id": 24,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 175,
    "staff_id": 9,
    "date": "2026-09-02",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 176,
    "staff_id": 10,
    "date": "2026-09-02",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 177,
    "staff_id": 10,
    "date": "2026-09-02",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 178,
    "staff_id": 11,
    "date": "2026-09-02",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 179,
    "staff_id": 13,
    "date": "2026-09-02",
    "job_id": 3,
    "task_id": 21,
    "hours": 3.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 180,
    "staff_id": 13,
    "date": "2026-09-02",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 181,
    "staff_id": 5,
    "date": "2026-09-03",
    "job_id": 13,
    "task_id": 67,
    "hours": 2.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 182,
    "staff_id": 7,
    "date": "2026-09-03",
    "job_id": 11,
    "task_id": 60,
    "hours": 5.75,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 183,
    "staff_id": 8,
    "date": "2026-09-03",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 184,
    "staff_id": 9,
    "date": "2026-09-03",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 185,
    "staff_id": 10,
    "date": "2026-09-03",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 186,
    "staff_id": 10,
    "date": "2026-09-03",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 187,
    "staff_id": 11,
    "date": "2026-09-03",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 188,
    "staff_id": 13,
    "date": "2026-09-03",
    "job_id": 3,
    "task_id": 21,
    "hours": 3,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 189,
    "staff_id": 13,
    "date": "2026-09-03",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 190,
    "staff_id": 5,
    "date": "2026-09-04",
    "job_id": 13,
    "task_id": 67,
    "hours": 3.25,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 191,
    "staff_id": 7,
    "date": "2026-09-04",
    "job_id": 11,
    "task_id": 60,
    "hours": 7,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 192,
    "staff_id": 8,
    "date": "2026-09-04",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 193,
    "staff_id": 9,
    "date": "2026-09-04",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 194,
    "staff_id": 10,
    "date": "2026-09-04",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 195,
    "staff_id": 10,
    "date": "2026-09-04",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 196,
    "staff_id": 11,
    "date": "2026-09-04",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 197,
    "staff_id": 13,
    "date": "2026-09-04",
    "job_id": 3,
    "task_id": 21,
    "hours": 2.75,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 198,
    "staff_id": 13,
    "date": "2026-09-04",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 199,
    "staff_id": 5,
    "date": "2026-09-07",
    "job_id": 13,
    "task_id": 67,
    "hours": 2.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 200,
    "staff_id": 7,
    "date": "2026-09-07",
    "job_id": 11,
    "task_id": 60,
    "hours": 5.75,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 201,
    "staff_id": 8,
    "date": "2026-09-07",
    "job_id": 4,
    "task_id": 24,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 202,
    "staff_id": 9,
    "date": "2026-09-07",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 203,
    "staff_id": 9,
    "date": "2026-09-07",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 204,
    "staff_id": 10,
    "date": "2026-09-07",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 205,
    "staff_id": 10,
    "date": "2026-09-07",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 206,
    "staff_id": 11,
    "date": "2026-09-07",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 207,
    "staff_id": 12,
    "date": "2026-09-07",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 208,
    "staff_id": 13,
    "date": "2026-09-07",
    "job_id": 3,
    "task_id": 21,
    "hours": 2.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 209,
    "staff_id": 13,
    "date": "2026-09-07",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 210,
    "staff_id": 7,
    "date": "2026-09-08",
    "job_id": 11,
    "task_id": 60,
    "hours": 6.5,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 211,
    "staff_id": 8,
    "date": "2026-09-08",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 212,
    "staff_id": 9,
    "date": "2026-09-08",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 213,
    "staff_id": 9,
    "date": "2026-09-08",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 214,
    "staff_id": 10,
    "date": "2026-09-08",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 215,
    "staff_id": 10,
    "date": "2026-09-08",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 216,
    "staff_id": 11,
    "date": "2026-09-08",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 217,
    "staff_id": 12,
    "date": "2026-09-08",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 218,
    "staff_id": 13,
    "date": "2026-09-08",
    "job_id": 3,
    "task_id": 21,
    "hours": 2.75,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 219,
    "staff_id": 13,
    "date": "2026-09-08",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 220,
    "staff_id": 7,
    "date": "2026-09-09",
    "job_id": 11,
    "task_id": 60,
    "hours": 6.25,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 221,
    "staff_id": 8,
    "date": "2026-09-09",
    "job_id": 4,
    "task_id": 24,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 222,
    "staff_id": 9,
    "date": "2026-09-09",
    "job_id": 4,
    "task_id": 24,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 223,
    "staff_id": 9,
    "date": "2026-09-09",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 224,
    "staff_id": 10,
    "date": "2026-09-09",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 225,
    "staff_id": 10,
    "date": "2026-09-09",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 226,
    "staff_id": 11,
    "date": "2026-09-09",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 227,
    "staff_id": 12,
    "date": "2026-09-09",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 228,
    "staff_id": 13,
    "date": "2026-09-09",
    "job_id": 3,
    "task_id": 21,
    "hours": 3,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 229,
    "staff_id": 13,
    "date": "2026-09-09",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 230,
    "staff_id": 8,
    "date": "2026-09-10",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 231,
    "staff_id": 9,
    "date": "2026-09-10",
    "job_id": 4,
    "task_id": 24,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 232,
    "staff_id": 9,
    "date": "2026-09-10",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 233,
    "staff_id": 10,
    "date": "2026-09-10",
    "job_id": 4,
    "task_id": 25,
    "hours": 7.6,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 234,
    "staff_id": 11,
    "date": "2026-09-10",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 235,
    "staff_id": 11,
    "date": "2026-09-10",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 236,
    "staff_id": 12,
    "date": "2026-09-10",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 237,
    "staff_id": 13,
    "date": "2026-09-10",
    "job_id": 3,
    "task_id": 21,
    "hours": 2.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 238,
    "staff_id": 13,
    "date": "2026-09-10",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 239,
    "staff_id": 8,
    "date": "2026-09-11",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 240,
    "staff_id": 9,
    "date": "2026-09-11",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 241,
    "staff_id": 9,
    "date": "2026-09-11",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 242,
    "staff_id": 10,
    "date": "2026-09-11",
    "job_id": 4,
    "task_id": 25,
    "hours": 7.6,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 243,
    "staff_id": 11,
    "date": "2026-09-11",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 244,
    "staff_id": 11,
    "date": "2026-09-11",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 245,
    "staff_id": 12,
    "date": "2026-09-11",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 246,
    "staff_id": 13,
    "date": "2026-09-11",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 247,
    "staff_id": 7,
    "date": "2026-09-14",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 248,
    "staff_id": 8,
    "date": "2026-09-14",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 249,
    "staff_id": 8,
    "date": "2026-09-14",
    "job_id": null,
    "task_id": null,
    "hours": 4.25,
    "cost_rate_cents": 7200,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 250,
    "staff_id": 9,
    "date": "2026-09-14",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 251,
    "staff_id": 9,
    "date": "2026-09-14",
    "job_id": 13,
    "task_id": 68,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 252,
    "staff_id": 9,
    "date": "2026-09-14",
    "job_id": null,
    "task_id": null,
    "hours": 0.75,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 253,
    "staff_id": 10,
    "date": "2026-09-14",
    "job_id": 4,
    "task_id": 25,
    "hours": 6.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 254,
    "staff_id": 10,
    "date": "2026-09-14",
    "job_id": 10,
    "task_id": 55,
    "hours": 0.8499999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 255,
    "staff_id": 11,
    "date": "2026-09-14",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 256,
    "staff_id": 11,
    "date": "2026-09-14",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 257,
    "staff_id": 11,
    "date": "2026-09-14",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 258,
    "staff_id": 12,
    "date": "2026-09-14",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 259,
    "staff_id": 12,
    "date": "2026-09-14",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 260,
    "staff_id": 13,
    "date": "2026-09-14",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 261,
    "staff_id": 13,
    "date": "2026-09-14",
    "job_id": null,
    "task_id": null,
    "hours": 6,
    "cost_rate_cents": 8400,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 262,
    "staff_id": 7,
    "date": "2026-09-15",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 263,
    "staff_id": 8,
    "date": "2026-09-15",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 264,
    "staff_id": 8,
    "date": "2026-09-15",
    "job_id": null,
    "task_id": null,
    "hours": 4.25,
    "cost_rate_cents": 7200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 265,
    "staff_id": 9,
    "date": "2026-09-15",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 266,
    "staff_id": 9,
    "date": "2026-09-15",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 267,
    "staff_id": 9,
    "date": "2026-09-15",
    "job_id": null,
    "task_id": null,
    "hours": 0.5,
    "cost_rate_cents": 7200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 268,
    "staff_id": 10,
    "date": "2026-09-15",
    "job_id": 4,
    "task_id": 25,
    "hours": 6.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 269,
    "staff_id": 10,
    "date": "2026-09-15",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.0999999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 270,
    "staff_id": 11,
    "date": "2026-09-15",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 271,
    "staff_id": 11,
    "date": "2026-09-15",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 272,
    "staff_id": 11,
    "date": "2026-09-15",
    "job_id": null,
    "task_id": null,
    "hours": 2,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 273,
    "staff_id": 12,
    "date": "2026-09-15",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 274,
    "staff_id": 12,
    "date": "2026-09-15",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 275,
    "staff_id": 13,
    "date": "2026-09-15",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 276,
    "staff_id": 13,
    "date": "2026-09-15",
    "job_id": null,
    "task_id": null,
    "hours": 6.25,
    "cost_rate_cents": 8400,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 277,
    "staff_id": 7,
    "date": "2026-09-16",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 278,
    "staff_id": 8,
    "date": "2026-09-16",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 279,
    "staff_id": 8,
    "date": "2026-09-16",
    "job_id": null,
    "task_id": null,
    "hours": 3.75,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 280,
    "staff_id": 9,
    "date": "2026-09-16",
    "job_id": 4,
    "task_id": 24,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 281,
    "staff_id": 9,
    "date": "2026-09-16",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 282,
    "staff_id": 9,
    "date": "2026-09-16",
    "job_id": null,
    "task_id": null,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 283,
    "staff_id": 10,
    "date": "2026-09-16",
    "job_id": 4,
    "task_id": 25,
    "hours": 7,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 284,
    "staff_id": 10,
    "date": "2026-09-16",
    "job_id": 10,
    "task_id": 55,
    "hours": 0.5999999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 285,
    "staff_id": 11,
    "date": "2026-09-16",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 286,
    "staff_id": 11,
    "date": "2026-09-16",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 287,
    "staff_id": 11,
    "date": "2026-09-16",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 288,
    "staff_id": 12,
    "date": "2026-09-16",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 289,
    "staff_id": 12,
    "date": "2026-09-16",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 290,
    "staff_id": 13,
    "date": "2026-09-16",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 291,
    "staff_id": 13,
    "date": "2026-09-16",
    "job_id": null,
    "task_id": null,
    "hours": 6,
    "cost_rate_cents": 8400,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 292,
    "staff_id": 7,
    "date": "2026-09-17",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 293,
    "staff_id": 8,
    "date": "2026-09-17",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 294,
    "staff_id": 8,
    "date": "2026-09-17",
    "job_id": null,
    "task_id": null,
    "hours": 4.25,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 295,
    "staff_id": 9,
    "date": "2026-09-17",
    "job_id": 4,
    "task_id": 24,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 296,
    "staff_id": 9,
    "date": "2026-09-17",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 297,
    "staff_id": 10,
    "date": "2026-09-17",
    "job_id": 4,
    "task_id": 25,
    "hours": 7.6,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 298,
    "staff_id": 11,
    "date": "2026-09-17",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 299,
    "staff_id": 11,
    "date": "2026-09-17",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 300,
    "staff_id": 11,
    "date": "2026-09-17",
    "job_id": null,
    "task_id": null,
    "hours": 2,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 301,
    "staff_id": 12,
    "date": "2026-09-17",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 302,
    "staff_id": 12,
    "date": "2026-09-17",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 7000,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 303,
    "staff_id": 13,
    "date": "2026-09-17",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 304,
    "staff_id": 13,
    "date": "2026-09-17",
    "job_id": null,
    "task_id": null,
    "hours": 6,
    "cost_rate_cents": 8400,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 305,
    "staff_id": 7,
    "date": "2026-09-18",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 306,
    "staff_id": 8,
    "date": "2026-09-18",
    "job_id": 4,
    "task_id": 24,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 307,
    "staff_id": 8,
    "date": "2026-09-18",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7200,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 308,
    "staff_id": 9,
    "date": "2026-09-18",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 309,
    "staff_id": 9,
    "date": "2026-09-18",
    "job_id": 13,
    "task_id": 68,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 310,
    "staff_id": 9,
    "date": "2026-09-18",
    "job_id": null,
    "task_id": null,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 311,
    "staff_id": 10,
    "date": "2026-09-18",
    "job_id": 4,
    "task_id": 25,
    "hours": 6,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 312,
    "staff_id": 10,
    "date": "2026-09-18",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 313,
    "staff_id": 10,
    "date": "2026-09-18",
    "job_id": 11,
    "task_id": 61,
    "hours": 0.34999999999999964,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 314,
    "staff_id": 11,
    "date": "2026-09-18",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 315,
    "staff_id": 11,
    "date": "2026-09-18",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 316,
    "staff_id": 11,
    "date": "2026-09-18",
    "job_id": null,
    "task_id": null,
    "hours": 1.75,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 317,
    "staff_id": 12,
    "date": "2026-09-18",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 318,
    "staff_id": 12,
    "date": "2026-09-18",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 319,
    "staff_id": 13,
    "date": "2026-09-18",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 320,
    "staff_id": 13,
    "date": "2026-09-18",
    "job_id": null,
    "task_id": null,
    "hours": 6,
    "cost_rate_cents": 8400,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 321,
    "staff_id": 5,
    "date": "2026-09-21",
    "job_id": 1,
    "task_id": 1,
    "hours": 3,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 322,
    "staff_id": 5,
    "date": "2026-09-21",
    "job_id": 5,
    "task_id": 28,
    "hours": 1.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 323,
    "staff_id": 7,
    "date": "2026-09-21",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 324,
    "staff_id": 8,
    "date": "2026-09-21",
    "job_id": 4,
    "task_id": 24,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 325,
    "staff_id": 8,
    "date": "2026-09-21",
    "job_id": null,
    "task_id": null,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 326,
    "staff_id": 9,
    "date": "2026-09-21",
    "job_id": 4,
    "task_id": 24,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 327,
    "staff_id": 9,
    "date": "2026-09-21",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 328,
    "staff_id": 9,
    "date": "2026-09-21",
    "job_id": null,
    "task_id": null,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 329,
    "staff_id": 10,
    "date": "2026-09-21",
    "job_id": 4,
    "task_id": 25,
    "hours": 6.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 330,
    "staff_id": 10,
    "date": "2026-09-21",
    "job_id": 10,
    "task_id": 55,
    "hours": 0.8499999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 331,
    "staff_id": 11,
    "date": "2026-09-21",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 332,
    "staff_id": 11,
    "date": "2026-09-21",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 333,
    "staff_id": 11,
    "date": "2026-09-21",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 334,
    "staff_id": 12,
    "date": "2026-09-21",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 335,
    "staff_id": 12,
    "date": "2026-09-21",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 7000,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 336,
    "staff_id": 13,
    "date": "2026-09-21",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 337,
    "staff_id": 13,
    "date": "2026-09-21",
    "job_id": null,
    "task_id": null,
    "hours": 6.25,
    "cost_rate_cents": 8400,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 338,
    "staff_id": 5,
    "date": "2026-09-22",
    "job_id": 1,
    "task_id": 1,
    "hours": 3.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 339,
    "staff_id": 5,
    "date": "2026-09-22",
    "job_id": 5,
    "task_id": 28,
    "hours": 2,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 340,
    "staff_id": 7,
    "date": "2026-09-22",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 341,
    "staff_id": 8,
    "date": "2026-09-22",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 342,
    "staff_id": 9,
    "date": "2026-09-22",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 343,
    "staff_id": 9,
    "date": "2026-09-22",
    "job_id": null,
    "task_id": null,
    "hours": 4.25,
    "cost_rate_cents": 7200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 344,
    "staff_id": 10,
    "date": "2026-09-22",
    "job_id": 4,
    "task_id": 25,
    "hours": 6.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 345,
    "staff_id": 10,
    "date": "2026-09-22",
    "job_id": 10,
    "task_id": 55,
    "hours": 0.8499999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 346,
    "staff_id": 11,
    "date": "2026-09-22",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 347,
    "staff_id": 11,
    "date": "2026-09-22",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 348,
    "staff_id": 11,
    "date": "2026-09-22",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 349,
    "staff_id": 12,
    "date": "2026-09-22",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 350,
    "staff_id": 12,
    "date": "2026-09-22",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 7000,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 351,
    "staff_id": 13,
    "date": "2026-09-22",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 352,
    "staff_id": 13,
    "date": "2026-09-22",
    "job_id": null,
    "task_id": null,
    "hours": 6,
    "cost_rate_cents": 8400,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 353,
    "staff_id": 5,
    "date": "2026-09-23",
    "job_id": 1,
    "task_id": 1,
    "hours": 3.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 354,
    "staff_id": 5,
    "date": "2026-09-23",
    "job_id": 5,
    "task_id": 28,
    "hours": 2,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 355,
    "staff_id": 7,
    "date": "2026-09-23",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 356,
    "staff_id": 8,
    "date": "2026-09-23",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 357,
    "staff_id": 9,
    "date": "2026-09-23",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 358,
    "staff_id": 9,
    "date": "2026-09-23",
    "job_id": null,
    "task_id": null,
    "hours": 4.25,
    "cost_rate_cents": 7200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 359,
    "staff_id": 10,
    "date": "2026-09-23",
    "job_id": 4,
    "task_id": 25,
    "hours": 6.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 360,
    "staff_id": 10,
    "date": "2026-09-23",
    "job_id": 10,
    "task_id": 55,
    "hours": 0.8499999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 361,
    "staff_id": 11,
    "date": "2026-09-23",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 362,
    "staff_id": 11,
    "date": "2026-09-23",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 363,
    "staff_id": 11,
    "date": "2026-09-23",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 364,
    "staff_id": 12,
    "date": "2026-09-23",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 365,
    "staff_id": 12,
    "date": "2026-09-23",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 366,
    "staff_id": 13,
    "date": "2026-09-23",
    "job_id": 10,
    "task_id": 55,
    "hours": 1.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 367,
    "staff_id": 13,
    "date": "2026-09-23",
    "job_id": null,
    "task_id": null,
    "hours": 6.25,
    "cost_rate_cents": 8400,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 368,
    "staff_id": 5,
    "date": "2026-09-24",
    "job_id": 1,
    "task_id": 1,
    "hours": 3,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 369,
    "staff_id": 5,
    "date": "2026-09-24",
    "job_id": 5,
    "task_id": 28,
    "hours": 1.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 370,
    "staff_id": 7,
    "date": "2026-09-24",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 371,
    "staff_id": 8,
    "date": "2026-09-24",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 372,
    "staff_id": 9,
    "date": "2026-09-24",
    "job_id": 13,
    "task_id": 68,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 373,
    "staff_id": 9,
    "date": "2026-09-24",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 374,
    "staff_id": 10,
    "date": "2026-09-24",
    "job_id": 4,
    "task_id": 25,
    "hours": 7.6,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 375,
    "staff_id": 11,
    "date": "2026-09-24",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 376,
    "staff_id": 11,
    "date": "2026-09-24",
    "job_id": 12,
    "task_id": 65,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 377,
    "staff_id": 11,
    "date": "2026-09-24",
    "job_id": null,
    "task_id": null,
    "hours": 1.5,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 378,
    "staff_id": 12,
    "date": "2026-09-24",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 379,
    "staff_id": 12,
    "date": "2026-09-24",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 380,
    "staff_id": 13,
    "date": "2026-09-24",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8400,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 381,
    "staff_id": 5,
    "date": "2026-09-25",
    "job_id": 1,
    "task_id": 1,
    "hours": 3.25,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 382,
    "staff_id": 5,
    "date": "2026-09-25",
    "job_id": 5,
    "task_id": 28,
    "hours": 2,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 383,
    "staff_id": 7,
    "date": "2026-09-25",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 384,
    "staff_id": 8,
    "date": "2026-09-25",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 385,
    "staff_id": 9,
    "date": "2026-09-25",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 386,
    "staff_id": 9,
    "date": "2026-09-25",
    "job_id": null,
    "task_id": null,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 387,
    "staff_id": 10,
    "date": "2026-09-25",
    "job_id": 4,
    "task_id": 25,
    "hours": 7.6,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 388,
    "staff_id": 11,
    "date": "2026-09-25",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 389,
    "staff_id": 11,
    "date": "2026-09-25",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 390,
    "staff_id": 11,
    "date": "2026-09-25",
    "job_id": null,
    "task_id": null,
    "hours": 2,
    "cost_rate_cents": 7000,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 391,
    "staff_id": 12,
    "date": "2026-09-25",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 392,
    "staff_id": 12,
    "date": "2026-09-25",
    "job_id": null,
    "task_id": null,
    "hours": 5,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 393,
    "staff_id": 13,
    "date": "2026-09-25",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8400,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 394,
    "staff_id": 5,
    "date": "2026-09-28",
    "job_id": 1,
    "task_id": 1,
    "hours": 3,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 395,
    "staff_id": 5,
    "date": "2026-09-28",
    "job_id": 5,
    "task_id": 28,
    "hours": 1.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 396,
    "staff_id": 7,
    "date": "2026-09-28",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 397,
    "staff_id": 8,
    "date": "2026-09-28",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 398,
    "staff_id": 9,
    "date": "2026-09-28",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 399,
    "staff_id": 9,
    "date": "2026-09-28",
    "job_id": null,
    "task_id": null,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 400,
    "staff_id": 10,
    "date": "2026-09-28",
    "job_id": 4,
    "task_id": 25,
    "hours": 7.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 401,
    "staff_id": 10,
    "date": "2026-09-28",
    "job_id": 11,
    "task_id": 61,
    "hours": 0.34999999999999964,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 402,
    "staff_id": 11,
    "date": "2026-09-28",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 403,
    "staff_id": 11,
    "date": "2026-09-28",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 404,
    "staff_id": 11,
    "date": "2026-09-28",
    "job_id": null,
    "task_id": null,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 405,
    "staff_id": 12,
    "date": "2026-09-28",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 406,
    "staff_id": 12,
    "date": "2026-09-28",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 7000,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 407,
    "staff_id": 13,
    "date": "2026-09-28",
    "job_id": 6,
    "task_id": 34,
    "hours": 4.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 408,
    "staff_id": 13,
    "date": "2026-09-28",
    "job_id": null,
    "task_id": null,
    "hours": 3,
    "cost_rate_cents": 8400,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 409,
    "staff_id": 5,
    "date": "2026-09-29",
    "job_id": 1,
    "task_id": 1,
    "hours": 3,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 410,
    "staff_id": 7,
    "date": "2026-09-29",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 411,
    "staff_id": 8,
    "date": "2026-09-29",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 412,
    "staff_id": 9,
    "date": "2026-09-29",
    "job_id": 13,
    "task_id": 68,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 413,
    "staff_id": 9,
    "date": "2026-09-29",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 414,
    "staff_id": 10,
    "date": "2026-09-29",
    "job_id": 4,
    "task_id": 25,
    "hours": 7.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 415,
    "staff_id": 10,
    "date": "2026-09-29",
    "job_id": 11,
    "task_id": 61,
    "hours": 0.34999999999999964,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 416,
    "staff_id": 11,
    "date": "2026-09-29",
    "job_id": 11,
    "task_id": 61,
    "hours": 3.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 417,
    "staff_id": 11,
    "date": "2026-09-29",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 418,
    "staff_id": 11,
    "date": "2026-09-29",
    "job_id": null,
    "task_id": null,
    "hours": 1.5,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 419,
    "staff_id": 12,
    "date": "2026-09-29",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 420,
    "staff_id": 12,
    "date": "2026-09-29",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 7000,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 421,
    "staff_id": 13,
    "date": "2026-09-29",
    "job_id": 6,
    "task_id": 34,
    "hours": 3.75,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 422,
    "staff_id": 13,
    "date": "2026-09-29",
    "job_id": null,
    "task_id": null,
    "hours": 3.75,
    "cost_rate_cents": 8400,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 423,
    "staff_id": 5,
    "date": "2026-09-30",
    "job_id": 1,
    "task_id": 1,
    "hours": 3,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 424,
    "staff_id": 5,
    "date": "2026-09-30",
    "job_id": 6,
    "task_id": 35,
    "hours": 4.6,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 425,
    "staff_id": 7,
    "date": "2026-09-30",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 426,
    "staff_id": 8,
    "date": "2026-09-30",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 427,
    "staff_id": 9,
    "date": "2026-09-30",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 428,
    "staff_id": 9,
    "date": "2026-09-30",
    "job_id": null,
    "task_id": null,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 429,
    "staff_id": 10,
    "date": "2026-09-30",
    "job_id": 4,
    "task_id": 25,
    "hours": 7,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 430,
    "staff_id": 10,
    "date": "2026-09-30",
    "job_id": 11,
    "task_id": 61,
    "hours": 0.5999999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 431,
    "staff_id": 11,
    "date": "2026-09-30",
    "job_id": 5,
    "task_id": 29,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 432,
    "staff_id": 11,
    "date": "2026-09-30",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 433,
    "staff_id": 11,
    "date": "2026-09-30",
    "job_id": 12,
    "task_id": 65,
    "hours": 2.3499999999999996,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 434,
    "staff_id": 12,
    "date": "2026-09-30",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 435,
    "staff_id": 12,
    "date": "2026-09-30",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 436,
    "staff_id": 13,
    "date": "2026-09-30",
    "job_id": 6,
    "task_id": 34,
    "hours": 3.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 437,
    "staff_id": 13,
    "date": "2026-09-30",
    "job_id": null,
    "task_id": null,
    "hours": 4,
    "cost_rate_cents": 8400,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 438,
    "staff_id": 5,
    "date": "2026-10-01",
    "job_id": 1,
    "task_id": 1,
    "hours": 3.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 439,
    "staff_id": 5,
    "date": "2026-10-01",
    "job_id": 6,
    "task_id": 35,
    "hours": 4.1,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 440,
    "staff_id": 7,
    "date": "2026-10-01",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 441,
    "staff_id": 8,
    "date": "2026-10-01",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 442,
    "staff_id": 9,
    "date": "2026-10-01",
    "job_id": 13,
    "task_id": 68,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 443,
    "staff_id": 9,
    "date": "2026-10-01",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 444,
    "staff_id": 10,
    "date": "2026-10-01",
    "job_id": 4,
    "task_id": 25,
    "hours": 7.6,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 445,
    "staff_id": 11,
    "date": "2026-10-01",
    "job_id": 5,
    "task_id": 29,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 446,
    "staff_id": 11,
    "date": "2026-10-01",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 447,
    "staff_id": 11,
    "date": "2026-10-01",
    "job_id": null,
    "task_id": null,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 448,
    "staff_id": 12,
    "date": "2026-10-01",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 449,
    "staff_id": 12,
    "date": "2026-10-01",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 450,
    "staff_id": 13,
    "date": "2026-10-01",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8400,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 451,
    "staff_id": 5,
    "date": "2026-10-02",
    "job_id": 1,
    "task_id": 1,
    "hours": 2.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 452,
    "staff_id": 5,
    "date": "2026-10-02",
    "job_id": 6,
    "task_id": 35,
    "hours": 4.85,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 453,
    "staff_id": 7,
    "date": "2026-10-02",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 454,
    "staff_id": 8,
    "date": "2026-10-02",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 455,
    "staff_id": 9,
    "date": "2026-10-02",
    "job_id": 13,
    "task_id": 68,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 456,
    "staff_id": 9,
    "date": "2026-10-02",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7200,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 457,
    "staff_id": 10,
    "date": "2026-10-02",
    "job_id": 4,
    "task_id": 25,
    "hours": 6.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 458,
    "staff_id": 10,
    "date": "2026-10-02",
    "job_id": 11,
    "task_id": 61,
    "hours": 1.0999999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 459,
    "staff_id": 11,
    "date": "2026-10-02",
    "job_id": 5,
    "task_id": 29,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 460,
    "staff_id": 11,
    "date": "2026-10-02",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 461,
    "staff_id": 11,
    "date": "2026-10-02",
    "job_id": null,
    "task_id": null,
    "hours": 2,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 462,
    "staff_id": 12,
    "date": "2026-10-02",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 463,
    "staff_id": 12,
    "date": "2026-10-02",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 464,
    "staff_id": 13,
    "date": "2026-10-02",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8400,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 465,
    "staff_id": 5,
    "date": "2026-10-05",
    "job_id": 6,
    "task_id": 35,
    "hours": 5.25,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 466,
    "staff_id": 8,
    "date": "2026-10-05",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 467,
    "staff_id": 9,
    "date": "2026-10-05",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 468,
    "staff_id": 9,
    "date": "2026-10-05",
    "job_id": null,
    "task_id": null,
    "hours": 4.25,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 469,
    "staff_id": 10,
    "date": "2026-10-05",
    "job_id": 4,
    "task_id": 25,
    "hours": 7.6,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 470,
    "staff_id": 11,
    "date": "2026-10-05",
    "job_id": 5,
    "task_id": 29,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 471,
    "staff_id": 11,
    "date": "2026-10-05",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 472,
    "staff_id": 11,
    "date": "2026-10-05",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 473,
    "staff_id": 12,
    "date": "2026-10-05",
    "job_id": 10,
    "task_id": 56,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 474,
    "staff_id": 12,
    "date": "2026-10-05",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 475,
    "staff_id": 13,
    "date": "2026-10-05",
    "job_id": 8,
    "task_id": 45,
    "hours": 3.75,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 476,
    "staff_id": 13,
    "date": "2026-10-05",
    "job_id": 12,
    "task_id": 66,
    "hours": 3.8499999999999996,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 477,
    "staff_id": 8,
    "date": "2026-10-06",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 478,
    "staff_id": 9,
    "date": "2026-10-06",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 479,
    "staff_id": 9,
    "date": "2026-10-06",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 480,
    "staff_id": 9,
    "date": "2026-10-06",
    "job_id": null,
    "task_id": null,
    "hours": 1.75,
    "cost_rate_cents": 7200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 481,
    "staff_id": 10,
    "date": "2026-10-06",
    "job_id": 4,
    "task_id": 25,
    "hours": 7.6,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 482,
    "staff_id": 11,
    "date": "2026-10-06",
    "job_id": 5,
    "task_id": 29,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 483,
    "staff_id": 11,
    "date": "2026-10-06",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 484,
    "staff_id": 11,
    "date": "2026-10-06",
    "job_id": null,
    "task_id": null,
    "hours": 2,
    "cost_rate_cents": 7000,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 485,
    "staff_id": 12,
    "date": "2026-10-06",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7000,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 486,
    "staff_id": 13,
    "date": "2026-10-06",
    "job_id": 8,
    "task_id": 45,
    "hours": 3.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 487,
    "staff_id": 13,
    "date": "2026-10-06",
    "job_id": 12,
    "task_id": 66,
    "hours": 4.1,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 488,
    "staff_id": 8,
    "date": "2026-10-07",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 489,
    "staff_id": 9,
    "date": "2026-10-07",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 490,
    "staff_id": 9,
    "date": "2026-10-07",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 491,
    "staff_id": 9,
    "date": "2026-10-07",
    "job_id": null,
    "task_id": null,
    "hours": 1.75,
    "cost_rate_cents": 7200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 492,
    "staff_id": 10,
    "date": "2026-10-07",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 493,
    "staff_id": 10,
    "date": "2026-10-07",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 3800,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 494,
    "staff_id": 11,
    "date": "2026-10-07",
    "job_id": 5,
    "task_id": 29,
    "hours": 2,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 495,
    "staff_id": 11,
    "date": "2026-10-07",
    "job_id": 11,
    "task_id": 61,
    "hours": 3.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 496,
    "staff_id": 11,
    "date": "2026-10-07",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 497,
    "staff_id": 12,
    "date": "2026-10-07",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 498,
    "staff_id": 13,
    "date": "2026-10-07",
    "job_id": 8,
    "task_id": 45,
    "hours": 3.75,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 499,
    "staff_id": 13,
    "date": "2026-10-07",
    "job_id": 12,
    "task_id": 66,
    "hours": 3.8499999999999996,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 500,
    "staff_id": 8,
    "date": "2026-10-08",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 501,
    "staff_id": 8,
    "date": "2026-10-08",
    "job_id": null,
    "task_id": null,
    "hours": 6.25,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 502,
    "staff_id": 9,
    "date": "2026-10-08",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 503,
    "staff_id": 9,
    "date": "2026-10-08",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 504,
    "staff_id": 9,
    "date": "2026-10-08",
    "job_id": 13,
    "task_id": 68,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 505,
    "staff_id": 9,
    "date": "2026-10-08",
    "job_id": null,
    "task_id": null,
    "hours": 0.5,
    "cost_rate_cents": 7200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 506,
    "staff_id": 10,
    "date": "2026-10-08",
    "job_id": 6,
    "task_id": 36,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 507,
    "staff_id": 10,
    "date": "2026-10-08",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 508,
    "staff_id": 10,
    "date": "2026-10-08",
    "job_id": null,
    "task_id": null,
    "hours": 1.75,
    "cost_rate_cents": 3800,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 509,
    "staff_id": 11,
    "date": "2026-10-08",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 510,
    "staff_id": 11,
    "date": "2026-10-08",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 511,
    "staff_id": 12,
    "date": "2026-10-08",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 512,
    "staff_id": 12,
    "date": "2026-10-08",
    "job_id": null,
    "task_id": null,
    "hours": 5,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 513,
    "staff_id": 13,
    "date": "2026-10-08",
    "job_id": 12,
    "task_id": 66,
    "hours": 4.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 514,
    "staff_id": 13,
    "date": "2026-10-08",
    "job_id": null,
    "task_id": null,
    "hours": 3,
    "cost_rate_cents": 8400,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 515,
    "staff_id": 8,
    "date": "2026-10-09",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 516,
    "staff_id": 8,
    "date": "2026-10-09",
    "job_id": null,
    "task_id": null,
    "hours": 6.25,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 517,
    "staff_id": 9,
    "date": "2026-10-09",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 518,
    "staff_id": 9,
    "date": "2026-10-09",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 519,
    "staff_id": 9,
    "date": "2026-10-09",
    "job_id": 13,
    "task_id": 68,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 520,
    "staff_id": 9,
    "date": "2026-10-09",
    "job_id": null,
    "task_id": null,
    "hours": 0.75,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 521,
    "staff_id": 10,
    "date": "2026-10-09",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 522,
    "staff_id": 10,
    "date": "2026-10-09",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 523,
    "staff_id": 10,
    "date": "2026-10-09",
    "job_id": null,
    "task_id": null,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 524,
    "staff_id": 11,
    "date": "2026-10-09",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 525,
    "staff_id": 11,
    "date": "2026-10-09",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 526,
    "staff_id": 12,
    "date": "2026-10-09",
    "job_id": 6,
    "task_id": 36,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 527,
    "staff_id": 12,
    "date": "2026-10-09",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 528,
    "staff_id": 13,
    "date": "2026-10-09",
    "job_id": 12,
    "task_id": 66,
    "hours": 4.75,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 529,
    "staff_id": 13,
    "date": "2026-10-09",
    "job_id": null,
    "task_id": null,
    "hours": 2.75,
    "cost_rate_cents": 8400,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 530,
    "staff_id": 7,
    "date": "2026-10-12",
    "job_id": 4,
    "task_id": 26,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 531,
    "staff_id": 7,
    "date": "2026-10-12",
    "job_id": 8,
    "task_id": 46,
    "hours": 0.09999999999999964,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 532,
    "staff_id": 8,
    "date": "2026-10-12",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 533,
    "staff_id": 8,
    "date": "2026-10-12",
    "job_id": null,
    "task_id": null,
    "hours": 6.25,
    "cost_rate_cents": 7200,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 534,
    "staff_id": 9,
    "date": "2026-10-12",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 535,
    "staff_id": 9,
    "date": "2026-10-12",
    "job_id": 10,
    "task_id": 57,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 536,
    "staff_id": 9,
    "date": "2026-10-12",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.3499999999999996,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 537,
    "staff_id": 10,
    "date": "2026-10-12",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 538,
    "staff_id": 10,
    "date": "2026-10-12",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 539,
    "staff_id": 10,
    "date": "2026-10-12",
    "job_id": null,
    "task_id": null,
    "hours": 2,
    "cost_rate_cents": 3800,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 540,
    "staff_id": 11,
    "date": "2026-10-12",
    "job_id": 1,
    "task_id": 2,
    "hours": 3.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 541,
    "staff_id": 11,
    "date": "2026-10-12",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 542,
    "staff_id": 11,
    "date": "2026-10-12",
    "job_id": null,
    "task_id": null,
    "hours": 0.75,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 543,
    "staff_id": 12,
    "date": "2026-10-12",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 544,
    "staff_id": 12,
    "date": "2026-10-12",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 545,
    "staff_id": 13,
    "date": "2026-10-12",
    "job_id": 12,
    "task_id": 66,
    "hours": 4.75,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 546,
    "staff_id": 13,
    "date": "2026-10-12",
    "job_id": null,
    "task_id": null,
    "hours": 2.75,
    "cost_rate_cents": 8400,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 547,
    "staff_id": 7,
    "date": "2026-10-13",
    "job_id": 4,
    "task_id": 26,
    "hours": 6.5,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 548,
    "staff_id": 7,
    "date": "2026-10-13",
    "job_id": 8,
    "task_id": 46,
    "hours": 1.0999999999999996,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 549,
    "staff_id": 8,
    "date": "2026-10-13",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 550,
    "staff_id": 8,
    "date": "2026-10-13",
    "job_id": null,
    "task_id": null,
    "hours": 6.25,
    "cost_rate_cents": 7200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 551,
    "staff_id": 9,
    "date": "2026-10-13",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 552,
    "staff_id": 9,
    "date": "2026-10-13",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 553,
    "staff_id": 9,
    "date": "2026-10-13",
    "job_id": 13,
    "task_id": 68,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 554,
    "staff_id": 9,
    "date": "2026-10-13",
    "job_id": null,
    "task_id": null,
    "hours": 0.75,
    "cost_rate_cents": 7200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 555,
    "staff_id": 10,
    "date": "2026-10-13",
    "job_id": 6,
    "task_id": 36,
    "hours": 3.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 556,
    "staff_id": 10,
    "date": "2026-10-13",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 557,
    "staff_id": 10,
    "date": "2026-10-13",
    "job_id": null,
    "task_id": null,
    "hours": 1.5,
    "cost_rate_cents": 3800,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 558,
    "staff_id": 11,
    "date": "2026-10-13",
    "job_id": 1,
    "task_id": 2,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 559,
    "staff_id": 11,
    "date": "2026-10-13",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 560,
    "staff_id": 11,
    "date": "2026-10-13",
    "job_id": null,
    "task_id": null,
    "hours": 1.5,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 561,
    "staff_id": 12,
    "date": "2026-10-13",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 562,
    "staff_id": 12,
    "date": "2026-10-13",
    "job_id": null,
    "task_id": null,
    "hours": 5,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 563,
    "staff_id": 13,
    "date": "2026-10-13",
    "job_id": 12,
    "task_id": 66,
    "hours": 5.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 564,
    "staff_id": 13,
    "date": "2026-10-13",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 8400,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 565,
    "staff_id": 7,
    "date": "2026-10-14",
    "job_id": 4,
    "task_id": 26,
    "hours": 7.6,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 566,
    "staff_id": 8,
    "date": "2026-10-14",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 567,
    "staff_id": 8,
    "date": "2026-10-14",
    "job_id": null,
    "task_id": null,
    "hours": 6.25,
    "cost_rate_cents": 7200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 568,
    "staff_id": 9,
    "date": "2026-10-14",
    "job_id": 5,
    "task_id": 30,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 569,
    "staff_id": 9,
    "date": "2026-10-14",
    "job_id": 10,
    "task_id": 57,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 570,
    "staff_id": 9,
    "date": "2026-10-14",
    "job_id": 13,
    "task_id": 68,
    "hours": 3.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 571,
    "staff_id": 10,
    "date": "2026-10-14",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 572,
    "staff_id": 10,
    "date": "2026-10-14",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 573,
    "staff_id": 10,
    "date": "2026-10-14",
    "job_id": null,
    "task_id": null,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 574,
    "staff_id": 11,
    "date": "2026-10-14",
    "job_id": 1,
    "task_id": 2,
    "hours": 3.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 575,
    "staff_id": 11,
    "date": "2026-10-14",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 576,
    "staff_id": 11,
    "date": "2026-10-14",
    "job_id": null,
    "task_id": null,
    "hours": 1.75,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 577,
    "staff_id": 12,
    "date": "2026-10-14",
    "job_id": 6,
    "task_id": 36,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 578,
    "staff_id": 12,
    "date": "2026-10-14",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 579,
    "staff_id": 13,
    "date": "2026-10-14",
    "job_id": 12,
    "task_id": 66,
    "hours": 5.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 580,
    "staff_id": 13,
    "date": "2026-10-14",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 8400,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 581,
    "staff_id": 7,
    "date": "2026-10-15",
    "job_id": 4,
    "task_id": 26,
    "hours": 7.25,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 582,
    "staff_id": 7,
    "date": "2026-10-15",
    "job_id": 8,
    "task_id": 46,
    "hours": 0.34999999999999964,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 583,
    "staff_id": 8,
    "date": "2026-10-15",
    "job_id": 5,
    "task_id": 30,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 584,
    "staff_id": 8,
    "date": "2026-10-15",
    "job_id": null,
    "task_id": null,
    "hours": 6.5,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 585,
    "staff_id": 9,
    "date": "2026-10-15",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 586,
    "staff_id": 9,
    "date": "2026-10-15",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 587,
    "staff_id": 9,
    "date": "2026-10-15",
    "job_id": 13,
    "task_id": 68,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 588,
    "staff_id": 9,
    "date": "2026-10-15",
    "job_id": null,
    "task_id": null,
    "hours": 0.5,
    "cost_rate_cents": 7200,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 589,
    "staff_id": 10,
    "date": "2026-10-15",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 590,
    "staff_id": 10,
    "date": "2026-10-15",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 591,
    "staff_id": 10,
    "date": "2026-10-15",
    "job_id": null,
    "task_id": null,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 592,
    "staff_id": 11,
    "date": "2026-10-15",
    "job_id": 1,
    "task_id": 2,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 593,
    "staff_id": 11,
    "date": "2026-10-15",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 594,
    "staff_id": 11,
    "date": "2026-10-15",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 595,
    "staff_id": 12,
    "date": "2026-10-15",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 596,
    "staff_id": 12,
    "date": "2026-10-15",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 597,
    "staff_id": 13,
    "date": "2026-10-15",
    "job_id": 12,
    "task_id": 66,
    "hours": 5.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 598,
    "staff_id": 13,
    "date": "2026-10-15",
    "job_id": null,
    "task_id": null,
    "hours": 2,
    "cost_rate_cents": 8400,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 599,
    "staff_id": 7,
    "date": "2026-10-16",
    "job_id": 4,
    "task_id": 26,
    "hours": 7.25,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 600,
    "staff_id": 7,
    "date": "2026-10-16",
    "job_id": 8,
    "task_id": 46,
    "hours": 0.34999999999999964,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 601,
    "staff_id": 8,
    "date": "2026-10-16",
    "job_id": 5,
    "task_id": 30,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 602,
    "staff_id": 8,
    "date": "2026-10-16",
    "job_id": null,
    "task_id": null,
    "hours": 6.5,
    "cost_rate_cents": 7200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 603,
    "staff_id": 9,
    "date": "2026-10-16",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 604,
    "staff_id": 9,
    "date": "2026-10-16",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 605,
    "staff_id": 9,
    "date": "2026-10-16",
    "job_id": 13,
    "task_id": 68,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 606,
    "staff_id": 9,
    "date": "2026-10-16",
    "job_id": null,
    "task_id": null,
    "hours": 0.75,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 607,
    "staff_id": 10,
    "date": "2026-10-16",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 608,
    "staff_id": 10,
    "date": "2026-10-16",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 609,
    "staff_id": 10,
    "date": "2026-10-16",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 3800,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 610,
    "staff_id": 11,
    "date": "2026-10-16",
    "job_id": 1,
    "task_id": 2,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 611,
    "staff_id": 11,
    "date": "2026-10-16",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 612,
    "staff_id": 11,
    "date": "2026-10-16",
    "job_id": null,
    "task_id": null,
    "hours": 1.5,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 613,
    "staff_id": 12,
    "date": "2026-10-16",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 614,
    "staff_id": 12,
    "date": "2026-10-16",
    "job_id": null,
    "task_id": null,
    "hours": 5,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 615,
    "staff_id": 13,
    "date": "2026-10-16",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8400,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 616,
    "staff_id": 5,
    "date": "2026-10-19",
    "job_id": 7,
    "task_id": 39,
    "hours": 2.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 617,
    "staff_id": 7,
    "date": "2026-10-19",
    "job_id": 4,
    "task_id": 26,
    "hours": 7.6,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 618,
    "staff_id": 8,
    "date": "2026-10-19",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 619,
    "staff_id": 8,
    "date": "2026-10-19",
    "job_id": null,
    "task_id": null,
    "hours": 6.25,
    "cost_rate_cents": 7200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 620,
    "staff_id": 9,
    "date": "2026-10-19",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 621,
    "staff_id": 9,
    "date": "2026-10-19",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 622,
    "staff_id": 9,
    "date": "2026-10-19",
    "job_id": 13,
    "task_id": 68,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 623,
    "staff_id": 9,
    "date": "2026-10-19",
    "job_id": null,
    "task_id": null,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 624,
    "staff_id": 10,
    "date": "2026-10-19",
    "job_id": 6,
    "task_id": 36,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 625,
    "staff_id": 10,
    "date": "2026-10-19",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 626,
    "staff_id": 10,
    "date": "2026-10-19",
    "job_id": null,
    "task_id": null,
    "hours": 1.75,
    "cost_rate_cents": 3800,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 627,
    "staff_id": 11,
    "date": "2026-10-19",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 628,
    "staff_id": 11,
    "date": "2026-10-19",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 629,
    "staff_id": 11,
    "date": "2026-10-19",
    "job_id": null,
    "task_id": null,
    "hours": 2,
    "cost_rate_cents": 7000,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 630,
    "staff_id": 12,
    "date": "2026-10-19",
    "job_id": 6,
    "task_id": 36,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 631,
    "staff_id": 12,
    "date": "2026-10-19",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 632,
    "staff_id": 12,
    "date": "2026-10-19",
    "job_id": null,
    "task_id": null,
    "hours": 2,
    "cost_rate_cents": 7000,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 633,
    "staff_id": 13,
    "date": "2026-10-19",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8400,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 634,
    "staff_id": 5,
    "date": "2026-10-20",
    "job_id": 7,
    "task_id": 39,
    "hours": 2.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 635,
    "staff_id": 7,
    "date": "2026-10-20",
    "job_id": 4,
    "task_id": 26,
    "hours": 7.6,
    "cost_rate_cents": 8200,
    "notes": null
   },
   {
    "id": 636,
    "staff_id": 8,
    "date": "2026-10-20",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 637,
    "staff_id": 8,
    "date": "2026-10-20",
    "job_id": null,
    "task_id": null,
    "hours": 6.25,
    "cost_rate_cents": 7200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 638,
    "staff_id": 9,
    "date": "2026-10-20",
    "job_id": 5,
    "task_id": 30,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 639,
    "staff_id": 9,
    "date": "2026-10-20",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 640,
    "staff_id": 9,
    "date": "2026-10-20",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 641,
    "staff_id": 9,
    "date": "2026-10-20",
    "job_id": null,
    "task_id": null,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 642,
    "staff_id": 10,
    "date": "2026-10-20",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 643,
    "staff_id": 10,
    "date": "2026-10-20",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 3800,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 644,
    "staff_id": 11,
    "date": "2026-10-20",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 645,
    "staff_id": 11,
    "date": "2026-10-20",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 646,
    "staff_id": 11,
    "date": "2026-10-20",
    "job_id": null,
    "task_id": null,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 647,
    "staff_id": 12,
    "date": "2026-10-20",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 648,
    "staff_id": 12,
    "date": "2026-10-20",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 649,
    "staff_id": 13,
    "date": "2026-10-20",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 650,
    "staff_id": 13,
    "date": "2026-10-20",
    "job_id": null,
    "task_id": null,
    "hours": 5,
    "cost_rate_cents": 8400,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 651,
    "staff_id": 5,
    "date": "2026-10-21",
    "job_id": 7,
    "task_id": 39,
    "hours": 2,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 652,
    "staff_id": 7,
    "date": "2026-10-21",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 653,
    "staff_id": 8,
    "date": "2026-10-21",
    "job_id": 1,
    "task_id": 3,
    "hours": 2,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 654,
    "staff_id": 8,
    "date": "2026-10-21",
    "job_id": 5,
    "task_id": 30,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 655,
    "staff_id": 8,
    "date": "2026-10-21",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 656,
    "staff_id": 9,
    "date": "2026-10-21",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 657,
    "staff_id": 9,
    "date": "2026-10-21",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 658,
    "staff_id": 9,
    "date": "2026-10-21",
    "job_id": 10,
    "task_id": 57,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 659,
    "staff_id": 9,
    "date": "2026-10-21",
    "job_id": null,
    "task_id": null,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 660,
    "staff_id": 10,
    "date": "2026-10-21",
    "job_id": 1,
    "task_id": 3,
    "hours": 2.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 661,
    "staff_id": 10,
    "date": "2026-10-21",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 662,
    "staff_id": 10,
    "date": "2026-10-21",
    "job_id": null,
    "task_id": null,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 663,
    "staff_id": 11,
    "date": "2026-10-21",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 664,
    "staff_id": 11,
    "date": "2026-10-21",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 665,
    "staff_id": 11,
    "date": "2026-10-21",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 666,
    "staff_id": 12,
    "date": "2026-10-21",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 667,
    "staff_id": 12,
    "date": "2026-10-21",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 668,
    "staff_id": 13,
    "date": "2026-10-21",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 669,
    "staff_id": 13,
    "date": "2026-10-21",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 8400,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 670,
    "staff_id": 5,
    "date": "2026-10-22",
    "job_id": 7,
    "task_id": 39,
    "hours": 2.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 671,
    "staff_id": 7,
    "date": "2026-10-22",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 672,
    "staff_id": 8,
    "date": "2026-10-22",
    "job_id": 1,
    "task_id": 3,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 673,
    "staff_id": 8,
    "date": "2026-10-22",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 674,
    "staff_id": 8,
    "date": "2026-10-22",
    "job_id": null,
    "task_id": null,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 675,
    "staff_id": 9,
    "date": "2026-10-22",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 676,
    "staff_id": 9,
    "date": "2026-10-22",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 677,
    "staff_id": 9,
    "date": "2026-10-22",
    "job_id": 10,
    "task_id": 57,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 678,
    "staff_id": 9,
    "date": "2026-10-22",
    "job_id": null,
    "task_id": null,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 679,
    "staff_id": 10,
    "date": "2026-10-22",
    "job_id": 1,
    "task_id": 3,
    "hours": 1.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 680,
    "staff_id": 10,
    "date": "2026-10-22",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 681,
    "staff_id": 10,
    "date": "2026-10-22",
    "job_id": null,
    "task_id": null,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 682,
    "staff_id": 11,
    "date": "2026-10-22",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 683,
    "staff_id": 11,
    "date": "2026-10-22",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 684,
    "staff_id": 11,
    "date": "2026-10-22",
    "job_id": null,
    "task_id": null,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 685,
    "staff_id": 12,
    "date": "2026-10-22",
    "job_id": 8,
    "task_id": 47,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 686,
    "staff_id": 12,
    "date": "2026-10-22",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7000,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 687,
    "staff_id": 13,
    "date": "2026-10-22",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 688,
    "staff_id": 13,
    "date": "2026-10-22",
    "job_id": null,
    "task_id": null,
    "hours": 5,
    "cost_rate_cents": 8400,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 689,
    "staff_id": 7,
    "date": "2026-10-23",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 690,
    "staff_id": 8,
    "date": "2026-10-23",
    "job_id": 1,
    "task_id": 3,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 691,
    "staff_id": 8,
    "date": "2026-10-23",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 692,
    "staff_id": 8,
    "date": "2026-10-23",
    "job_id": null,
    "task_id": null,
    "hours": 4,
    "cost_rate_cents": 7200,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 693,
    "staff_id": 9,
    "date": "2026-10-23",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 694,
    "staff_id": 9,
    "date": "2026-10-23",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 695,
    "staff_id": 9,
    "date": "2026-10-23",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 696,
    "staff_id": 9,
    "date": "2026-10-23",
    "job_id": null,
    "task_id": null,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 697,
    "staff_id": 10,
    "date": "2026-10-23",
    "job_id": 1,
    "task_id": 3,
    "hours": 2,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 698,
    "staff_id": 10,
    "date": "2026-10-23",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 699,
    "staff_id": 10,
    "date": "2026-10-23",
    "job_id": null,
    "task_id": null,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 700,
    "staff_id": 11,
    "date": "2026-10-23",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 701,
    "staff_id": 11,
    "date": "2026-10-23",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 702,
    "staff_id": 11,
    "date": "2026-10-23",
    "job_id": null,
    "task_id": null,
    "hours": 1.75,
    "cost_rate_cents": 7000,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 703,
    "staff_id": 12,
    "date": "2026-10-23",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 704,
    "staff_id": 12,
    "date": "2026-10-23",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 705,
    "staff_id": 13,
    "date": "2026-10-23",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 706,
    "staff_id": 13,
    "date": "2026-10-23",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 8400,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 707,
    "staff_id": 4,
    "date": "2026-10-26",
    "job_id": 1,
    "task_id": 6,
    "hours": 1.25,
    "cost_rate_cents": 9500,
    "notes": null
   },
   {
    "id": 708,
    "staff_id": 5,
    "date": "2026-10-26",
    "job_id": 2,
    "task_id": 10,
    "hours": 3.25,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 709,
    "staff_id": 7,
    "date": "2026-10-26",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 710,
    "staff_id": 8,
    "date": "2026-10-26",
    "job_id": 1,
    "task_id": 3,
    "hours": 1.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 711,
    "staff_id": 8,
    "date": "2026-10-26",
    "job_id": 5,
    "task_id": 30,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 712,
    "staff_id": 8,
    "date": "2026-10-26",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7200,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 713,
    "staff_id": 9,
    "date": "2026-10-26",
    "job_id": 5,
    "task_id": 30,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 714,
    "staff_id": 9,
    "date": "2026-10-26",
    "job_id": 6,
    "task_id": 37,
    "hours": 2,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 715,
    "staff_id": 9,
    "date": "2026-10-26",
    "job_id": 10,
    "task_id": 57,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 716,
    "staff_id": 9,
    "date": "2026-10-26",
    "job_id": null,
    "task_id": null,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 717,
    "staff_id": 10,
    "date": "2026-10-26",
    "job_id": 1,
    "task_id": 3,
    "hours": 2.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 718,
    "staff_id": 10,
    "date": "2026-10-26",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.25,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 719,
    "staff_id": 10,
    "date": "2026-10-26",
    "job_id": 13,
    "task_id": 69,
    "hours": 3.0999999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 720,
    "staff_id": 11,
    "date": "2026-10-26",
    "job_id": 7,
    "task_id": 40,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 721,
    "staff_id": 11,
    "date": "2026-10-26",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 722,
    "staff_id": 11,
    "date": "2026-10-26",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.3499999999999996,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 723,
    "staff_id": 12,
    "date": "2026-10-26",
    "job_id": 8,
    "task_id": 47,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 724,
    "staff_id": 12,
    "date": "2026-10-26",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7000,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 725,
    "staff_id": 13,
    "date": "2026-10-26",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 726,
    "staff_id": 13,
    "date": "2026-10-26",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 8400,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 727,
    "staff_id": 4,
    "date": "2026-10-27",
    "job_id": 1,
    "task_id": 6,
    "hours": 1.25,
    "cost_rate_cents": 9500,
    "notes": null
   },
   {
    "id": 728,
    "staff_id": 5,
    "date": "2026-10-27",
    "job_id": 2,
    "task_id": 10,
    "hours": 4.25,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 729,
    "staff_id": 7,
    "date": "2026-10-27",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 730,
    "staff_id": 8,
    "date": "2026-10-27",
    "job_id": 1,
    "task_id": 3,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 731,
    "staff_id": 8,
    "date": "2026-10-27",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 7200,
    "notes": "Stock DOL starter builds"
   },
   {
    "id": 732,
    "staff_id": 9,
    "date": "2026-10-27",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 733,
    "staff_id": 9,
    "date": "2026-10-27",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 734,
    "staff_id": 9,
    "date": "2026-10-27",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 735,
    "staff_id": 10,
    "date": "2026-10-27",
    "job_id": 1,
    "task_id": 3,
    "hours": 1.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 736,
    "staff_id": 10,
    "date": "2026-10-27",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 737,
    "staff_id": 10,
    "date": "2026-10-27",
    "job_id": 13,
    "task_id": 69,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 738,
    "staff_id": 11,
    "date": "2026-10-27",
    "job_id": 7,
    "task_id": 40,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 739,
    "staff_id": 11,
    "date": "2026-10-27",
    "job_id": 8,
    "task_id": 47,
    "hours": 3,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 740,
    "staff_id": 11,
    "date": "2026-10-27",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.0999999999999996,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 741,
    "staff_id": 13,
    "date": "2026-10-27",
    "job_id": 2,
    "task_id": 9,
    "hours": 6.75,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 742,
    "staff_id": 13,
    "date": "2026-10-27",
    "job_id": 6,
    "task_id": 37,
    "hours": 0.8499999999999996,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 743,
    "staff_id": 4,
    "date": "2026-10-28",
    "job_id": 1,
    "task_id": 6,
    "hours": 1,
    "cost_rate_cents": 9500,
    "notes": null
   },
   {
    "id": 744,
    "staff_id": 5,
    "date": "2026-10-28",
    "job_id": 2,
    "task_id": 10,
    "hours": 3.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 745,
    "staff_id": 7,
    "date": "2026-10-28",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 746,
    "staff_id": 8,
    "date": "2026-10-28",
    "job_id": 1,
    "task_id": 3,
    "hours": 1.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 747,
    "staff_id": 8,
    "date": "2026-10-28",
    "job_id": null,
    "task_id": null,
    "hours": 5.75,
    "cost_rate_cents": 7200,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 748,
    "staff_id": 9,
    "date": "2026-10-28",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 749,
    "staff_id": 9,
    "date": "2026-10-28",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 750,
    "staff_id": 9,
    "date": "2026-10-28",
    "job_id": null,
    "task_id": null,
    "hours": 2.5,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 751,
    "staff_id": 10,
    "date": "2026-10-28",
    "job_id": 1,
    "task_id": 3,
    "hours": 2,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 752,
    "staff_id": 10,
    "date": "2026-10-28",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 753,
    "staff_id": 10,
    "date": "2026-10-28",
    "job_id": 13,
    "task_id": 69,
    "hours": 2.5999999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 754,
    "staff_id": 11,
    "date": "2026-10-28",
    "job_id": 7,
    "task_id": 40,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 755,
    "staff_id": 11,
    "date": "2026-10-28",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 756,
    "staff_id": 11,
    "date": "2026-10-28",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 757,
    "staff_id": 12,
    "date": "2026-10-28",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 758,
    "staff_id": 12,
    "date": "2026-10-28",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 759,
    "staff_id": 13,
    "date": "2026-10-28",
    "job_id": 2,
    "task_id": 9,
    "hours": 6.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 760,
    "staff_id": 13,
    "date": "2026-10-28",
    "job_id": 4,
    "task_id": 27,
    "hours": 1.3499999999999996,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 761,
    "staff_id": 4,
    "date": "2026-10-29",
    "job_id": 1,
    "task_id": 6,
    "hours": 1.25,
    "cost_rate_cents": 9500,
    "notes": null
   },
   {
    "id": 762,
    "staff_id": 5,
    "date": "2026-10-29",
    "job_id": 2,
    "task_id": 10,
    "hours": 3.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 763,
    "staff_id": 7,
    "date": "2026-10-29",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 764,
    "staff_id": 8,
    "date": "2026-10-29",
    "job_id": 1,
    "task_id": 3,
    "hours": 1.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 765,
    "staff_id": 8,
    "date": "2026-10-29",
    "job_id": null,
    "task_id": null,
    "hours": 5.75,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 766,
    "staff_id": 9,
    "date": "2026-10-29",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 767,
    "staff_id": 9,
    "date": "2026-10-29",
    "job_id": 10,
    "task_id": 57,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 768,
    "staff_id": 9,
    "date": "2026-10-29",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 769,
    "staff_id": 10,
    "date": "2026-10-29",
    "job_id": 1,
    "task_id": 3,
    "hours": 1.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 770,
    "staff_id": 10,
    "date": "2026-10-29",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 771,
    "staff_id": 10,
    "date": "2026-10-29",
    "job_id": 13,
    "task_id": 69,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 772,
    "staff_id": 11,
    "date": "2026-10-29",
    "job_id": 7,
    "task_id": 40,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 773,
    "staff_id": 11,
    "date": "2026-10-29",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 774,
    "staff_id": 11,
    "date": "2026-10-29",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 775,
    "staff_id": 12,
    "date": "2026-10-29",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 776,
    "staff_id": 12,
    "date": "2026-10-29",
    "job_id": null,
    "task_id": null,
    "hours": 5,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 777,
    "staff_id": 13,
    "date": "2026-10-29",
    "job_id": 2,
    "task_id": 9,
    "hours": 6.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 778,
    "staff_id": 13,
    "date": "2026-10-29",
    "job_id": 4,
    "task_id": 27,
    "hours": 1.0999999999999996,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 779,
    "staff_id": 4,
    "date": "2026-10-30",
    "job_id": 1,
    "task_id": 6,
    "hours": 1.25,
    "cost_rate_cents": 9500,
    "notes": null
   },
   {
    "id": 780,
    "staff_id": 5,
    "date": "2026-10-30",
    "job_id": 2,
    "task_id": 10,
    "hours": 3.5,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 781,
    "staff_id": 7,
    "date": "2026-10-30",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 782,
    "staff_id": 8,
    "date": "2026-10-30",
    "job_id": 1,
    "task_id": 3,
    "hours": 2,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 783,
    "staff_id": 8,
    "date": "2026-10-30",
    "job_id": null,
    "task_id": null,
    "hours": 5.5,
    "cost_rate_cents": 7200,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 784,
    "staff_id": 9,
    "date": "2026-10-30",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 785,
    "staff_id": 9,
    "date": "2026-10-30",
    "job_id": 10,
    "task_id": 57,
    "hours": 3,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 786,
    "staff_id": 9,
    "date": "2026-10-30",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 787,
    "staff_id": 10,
    "date": "2026-10-30",
    "job_id": 1,
    "task_id": 3,
    "hours": 1.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 788,
    "staff_id": 10,
    "date": "2026-10-30",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 789,
    "staff_id": 10,
    "date": "2026-10-30",
    "job_id": 13,
    "task_id": 69,
    "hours": 2.8499999999999996,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 790,
    "staff_id": 11,
    "date": "2026-10-30",
    "job_id": 7,
    "task_id": 40,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 791,
    "staff_id": 11,
    "date": "2026-10-30",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 792,
    "staff_id": 11,
    "date": "2026-10-30",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.8499999999999996,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 793,
    "staff_id": 12,
    "date": "2026-10-30",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 794,
    "staff_id": 12,
    "date": "2026-10-30",
    "job_id": null,
    "task_id": null,
    "hours": 4.75,
    "cost_rate_cents": 7000,
    "notes": "Workshop housekeeping & 5S"
   },
   {
    "id": 795,
    "staff_id": 13,
    "date": "2026-10-30",
    "job_id": 4,
    "task_id": 27,
    "hours": 6.25,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 796,
    "staff_id": 13,
    "date": "2026-10-30",
    "job_id": 6,
    "task_id": 37,
    "hours": 1.3499999999999996,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 797,
    "staff_id": 4,
    "date": "2026-11-02",
    "job_id": 1,
    "task_id": 6,
    "hours": 1.25,
    "cost_rate_cents": 9500,
    "notes": null
   },
   {
    "id": 798,
    "staff_id": 5,
    "date": "2026-11-02",
    "job_id": 2,
    "task_id": 10,
    "hours": 3.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 799,
    "staff_id": 7,
    "date": "2026-11-02",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 800,
    "staff_id": 8,
    "date": "2026-11-02",
    "job_id": 1,
    "task_id": 4,
    "hours": 1.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 801,
    "staff_id": 8,
    "date": "2026-11-02",
    "job_id": 7,
    "task_id": 41,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 802,
    "staff_id": 8,
    "date": "2026-11-02",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7200,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 803,
    "staff_id": 9,
    "date": "2026-11-02",
    "job_id": 1,
    "task_id": 4,
    "hours": 1.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 804,
    "staff_id": 9,
    "date": "2026-11-02",
    "job_id": 6,
    "task_id": 37,
    "hours": 2,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 805,
    "staff_id": 9,
    "date": "2026-11-02",
    "job_id": 7,
    "task_id": 41,
    "hours": 1.5,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 806,
    "staff_id": 9,
    "date": "2026-11-02",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.3499999999999996,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 807,
    "staff_id": 10,
    "date": "2026-11-02",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.75,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 808,
    "staff_id": 10,
    "date": "2026-11-02",
    "job_id": 13,
    "task_id": 69,
    "hours": 3.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 809,
    "staff_id": 10,
    "date": "2026-11-02",
    "job_id": null,
    "task_id": null,
    "hours": 1.25,
    "cost_rate_cents": 3800,
    "notes": "Toolbox talk & safety"
   },
   {
    "id": 810,
    "staff_id": 11,
    "date": "2026-11-02",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 811,
    "staff_id": 11,
    "date": "2026-11-02",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 812,
    "staff_id": 11,
    "date": "2026-11-02",
    "job_id": null,
    "task_id": null,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 813,
    "staff_id": 12,
    "date": "2026-11-02",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 814,
    "staff_id": 12,
    "date": "2026-11-02",
    "job_id": null,
    "task_id": null,
    "hours": 5.25,
    "cost_rate_cents": 7000,
    "notes": "Stock receipt & racking"
   },
   {
    "id": 815,
    "staff_id": 13,
    "date": "2026-11-02",
    "job_id": 4,
    "task_id": 27,
    "hours": 6.5,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 816,
    "staff_id": 13,
    "date": "2026-11-02",
    "job_id": 6,
    "task_id": 37,
    "hours": 1.0999999999999996,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 817,
    "staff_id": 4,
    "date": "2026-11-03",
    "job_id": 1,
    "task_id": 6,
    "hours": 1,
    "cost_rate_cents": 9500,
    "notes": null
   },
   {
    "id": 818,
    "staff_id": 5,
    "date": "2026-11-03",
    "job_id": 2,
    "task_id": 10,
    "hours": 3.75,
    "cost_rate_cents": 7800,
    "notes": null
   },
   {
    "id": 819,
    "staff_id": 7,
    "date": "2026-11-03",
    "job_id": null,
    "task_id": null,
    "hours": 7.5,
    "cost_rate_cents": 8200,
    "notes": "Vehicle & tool maintenance"
   },
   {
    "id": 820,
    "staff_id": 8,
    "date": "2026-11-03",
    "job_id": 1,
    "task_id": 4,
    "hours": 1.75,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 821,
    "staff_id": 8,
    "date": "2026-11-03",
    "job_id": 7,
    "task_id": 41,
    "hours": 1.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 822,
    "staff_id": 8,
    "date": "2026-11-03",
    "job_id": null,
    "task_id": null,
    "hours": 4.5,
    "cost_rate_cents": 7200,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 823,
    "staff_id": 9,
    "date": "2026-11-03",
    "job_id": 1,
    "task_id": 4,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 824,
    "staff_id": 9,
    "date": "2026-11-03",
    "job_id": 6,
    "task_id": 37,
    "hours": 2.25,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 825,
    "staff_id": 9,
    "date": "2026-11-03",
    "job_id": 7,
    "task_id": 41,
    "hours": 1,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 826,
    "staff_id": 9,
    "date": "2026-11-03",
    "job_id": 10,
    "task_id": 57,
    "hours": 2.0999999999999996,
    "cost_rate_cents": 7200,
    "notes": null
   },
   {
    "id": 827,
    "staff_id": 10,
    "date": "2026-11-03",
    "job_id": 11,
    "task_id": 61,
    "hours": 3,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 828,
    "staff_id": 10,
    "date": "2026-11-03",
    "job_id": 13,
    "task_id": 69,
    "hours": 3.5,
    "cost_rate_cents": 3800,
    "notes": null
   },
   {
    "id": 829,
    "staff_id": 10,
    "date": "2026-11-03",
    "job_id": null,
    "task_id": null,
    "hours": 1,
    "cost_rate_cents": 3800,
    "notes": "Hire-fleet pump servicing"
   },
   {
    "id": 830,
    "staff_id": 11,
    "date": "2026-11-03",
    "job_id": 2,
    "task_id": 11,
    "hours": 2.25,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 831,
    "staff_id": 11,
    "date": "2026-11-03",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.75,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 832,
    "staff_id": 11,
    "date": "2026-11-03",
    "job_id": 11,
    "task_id": 61,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 833,
    "staff_id": 12,
    "date": "2026-11-03",
    "job_id": 2,
    "task_id": 11,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 834,
    "staff_id": 12,
    "date": "2026-11-03",
    "job_id": 8,
    "task_id": 47,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": null
   },
   {
    "id": 835,
    "staff_id": 12,
    "date": "2026-11-03",
    "job_id": null,
    "task_id": null,
    "hours": 2.5,
    "cost_rate_cents": 7000,
    "notes": "Training — VSD commissioning"
   },
   {
    "id": 836,
    "staff_id": 13,
    "date": "2026-11-03",
    "job_id": 4,
    "task_id": 27,
    "hours": 6,
    "cost_rate_cents": 8400,
    "notes": null
   },
   {
    "id": 837,
    "staff_id": 13,
    "date": "2026-11-03",
    "job_id": 6,
    "task_id": 37,
    "hours": 1.5999999999999996,
    "cost_rate_cents": 8400,
    "notes": null
   }
  ],
  "leave": [
   {
    "id": 1,
    "staff_id": 9,
    "type": "Annual leave",
    "start": "2026-11-11",
    "end": "2026-11-13",
    "hours": 22.799999999999997,
    "status": "Approved",
    "notes": "Family wedding in Port Macquarie",
    "requested": "2026-10-06",
    "decided_by": "John Lenoard"
   },
   {
    "id": 2,
    "staff_id": 12,
    "type": "Personal/carer's leave",
    "start": "2026-10-27",
    "end": "2026-10-27",
    "hours": 7.6,
    "status": "Approved",
    "notes": "Sick",
    "requested": "2026-10-27",
    "decided_by": "Luke Harding"
   },
   {
    "id": 3,
    "staff_id": 5,
    "type": "Personal/carer's leave",
    "start": "2026-10-15",
    "end": "2026-10-15",
    "hours": 7.6,
    "status": "Approved",
    "notes": "Carer's — child sick",
    "requested": "2026-10-15",
    "decided_by": "Daniel Reeves"
   },
   {
    "id": 4,
    "staff_id": 10,
    "type": "RDO",
    "start": "2026-11-06",
    "end": "2026-11-06",
    "hours": 7.6,
    "status": "Approved",
    "notes": null,
    "requested": "2026-10-20",
    "decided_by": "Luke Harding"
   },
   {
    "id": 5,
    "staff_id": 13,
    "type": "Annual leave",
    "start": "2026-11-17",
    "end": "2026-11-18",
    "hours": 15.2,
    "status": "Requested",
    "notes": "Long weekend — fishing trip",
    "requested": "2026-11-02",
    "decided_by": null
   },
   {
    "id": 6,
    "staff_id": 11,
    "type": "Annual leave",
    "start": "2026-12-21",
    "end": "2027-01-08",
    "hours": 114,
    "status": "Requested",
    "notes": "Christmas shutdown + 1 week",
    "requested": "2026-11-03",
    "decided_by": null
   },
   {
    "id": 7,
    "staff_id": 8,
    "type": "Long service leave",
    "start": "2027-02-01",
    "end": "2027-02-12",
    "hours": 76,
    "status": "Requested",
    "notes": null,
    "requested": "2026-10-30",
    "decided_by": null
   },
   {
    "id": 8,
    "staff_id": 7,
    "type": "Annual leave",
    "start": "2026-10-05",
    "end": "2026-10-09",
    "hours": 38,
    "status": "Approved",
    "notes": "School holidays",
    "requested": "2026-09-01",
    "decided_by": "John Lenoard"
   }
  ],
  "claims": [
   {
    "id": 1,
    "job_id": 3,
    "ref": "PC-26-029-01",
    "number": 1,
    "period_to": "2026-06-30",
    "status": "Paid",
    "issued": "2026-07-01",
    "contract_cents": 8632886,
    "variations_cents": 0,
    "to_date_cents": 2676195,
    "previous_cents": 0,
    "this_cents": 2676195,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-07-01",
    "invoice_id": 1,
    "notes": null
   },
   {
    "id": 2,
    "job_id": 3,
    "ref": "PC-26-029-02",
    "number": 2,
    "period_to": "2026-07-31",
    "status": "Paid",
    "issued": "2026-08-03",
    "contract_cents": 8632886,
    "variations_cents": 0,
    "to_date_cents": 5956692,
    "previous_cents": 2676195,
    "this_cents": 3280497,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-08-03",
    "invoice_id": 2,
    "notes": null
   },
   {
    "id": 3,
    "job_id": 4,
    "ref": "PC-26-033-01",
    "number": 1,
    "period_to": "2026-07-25",
    "status": "Paid",
    "issued": "2026-07-27",
    "contract_cents": 20378354,
    "variations_cents": 1420000,
    "to_date_cents": 3464320,
    "previous_cents": 0,
    "this_cents": 3464320,
    "retention_cents": 173216,
    "approved_by": "John Lenoard",
    "approved_on": "2026-07-27",
    "invoice_id": 3,
    "notes": null
   },
   {
    "id": 4,
    "job_id": 12,
    "ref": "PC-26-034-01",
    "number": 1,
    "period_to": "2026-08-31",
    "status": "Paid",
    "issued": "2026-08-31",
    "contract_cents": 5580000,
    "variations_cents": 0,
    "to_date_cents": 3571200,
    "previous_cents": 0,
    "this_cents": 3571200,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-08-31",
    "invoice_id": 4,
    "notes": null
   },
   {
    "id": 5,
    "job_id": 10,
    "ref": "PC-26-031-01",
    "number": 1,
    "period_to": "2026-08-31",
    "status": "Paid",
    "issued": "2026-08-31",
    "contract_cents": 3914000,
    "variations_cents": 0,
    "to_date_cents": 1213340,
    "previous_cents": 0,
    "this_cents": 1213340,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-08-31",
    "invoice_id": 5,
    "notes": null
   },
   {
    "id": 6,
    "job_id": 11,
    "ref": "PC-26-032-01",
    "number": 1,
    "period_to": "2026-08-31",
    "status": "Paid",
    "issued": "2026-09-01",
    "contract_cents": 6594160,
    "variations_cents": 0,
    "to_date_cents": 2505781,
    "previous_cents": 0,
    "this_cents": 2505781,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-09-01",
    "invoice_id": 6,
    "notes": null
   },
   {
    "id": 7,
    "job_id": 3,
    "ref": "PC-26-029-03",
    "number": 3,
    "period_to": "2026-09-11",
    "status": "Paid",
    "issued": "2026-09-14",
    "contract_cents": 8632886,
    "variations_cents": 0,
    "to_date_cents": 8632886,
    "previous_cents": 5956692,
    "this_cents": 2676194,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-09-14",
    "invoice_id": 7,
    "notes": null
   },
   {
    "id": 8,
    "job_id": 4,
    "ref": "PC-26-033-02",
    "number": 2,
    "period_to": "2026-08-25",
    "status": "Paid",
    "issued": "2026-08-26",
    "contract_cents": 20378354,
    "variations_cents": 1420000,
    "to_date_cents": 9268909,
    "previous_cents": 3464320,
    "this_cents": 5804589,
    "retention_cents": 290229,
    "approved_by": "John Lenoard",
    "approved_on": "2026-08-26",
    "invoice_id": 8,
    "notes": null
   },
   {
    "id": 9,
    "job_id": 4,
    "ref": "PC-26-033-03",
    "number": 3,
    "period_to": "2026-09-25",
    "status": "Paid",
    "issued": "2026-09-28",
    "contract_cents": 20378354,
    "variations_cents": 1420000,
    "to_date_cents": 16092415,
    "previous_cents": 9268909,
    "this_cents": 6823506,
    "retention_cents": 341175,
    "approved_by": "John Lenoard",
    "approved_on": "2026-09-28",
    "invoice_id": 9,
    "notes": null
   },
   {
    "id": 10,
    "job_id": 5,
    "ref": "PC-26-036-01",
    "number": 1,
    "period_to": "2026-09-30",
    "status": "Paid",
    "issued": "2026-10-01",
    "contract_cents": 4480632,
    "variations_cents": 0,
    "to_date_cents": 1153762,
    "previous_cents": 0,
    "this_cents": 1153762,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-10-01",
    "invoice_id": 10,
    "notes": null
   },
   {
    "id": 11,
    "job_id": 13,
    "ref": "PC-26-035-01",
    "number": 1,
    "period_to": "2026-09-30",
    "status": "Paid",
    "issued": "2026-09-30",
    "contract_cents": 3412000,
    "variations_cents": 0,
    "to_date_cents": 1236850,
    "previous_cents": 0,
    "this_cents": 1236850,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-09-30",
    "invoice_id": 11,
    "notes": null
   },
   {
    "id": 12,
    "job_id": 10,
    "ref": "PC-26-031-02",
    "number": 2,
    "period_to": "2026-09-30",
    "status": "Paid",
    "issued": "2026-09-30",
    "contract_cents": 3914000,
    "variations_cents": 0,
    "to_date_cents": 2211410,
    "previous_cents": 1213340,
    "this_cents": 998070,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-09-30",
    "invoice_id": 12,
    "notes": null
   },
   {
    "id": 13,
    "job_id": 11,
    "ref": "PC-26-032-02",
    "number": 2,
    "period_to": "2026-09-30",
    "status": "Paid",
    "issued": "2026-10-01",
    "contract_cents": 6594160,
    "variations_cents": 0,
    "to_date_cents": 4220262,
    "previous_cents": 2505781,
    "this_cents": 1714481,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-10-01",
    "invoice_id": 13,
    "notes": null
   },
   {
    "id": 14,
    "job_id": 1,
    "ref": "PC-26-041-01",
    "number": 1,
    "period_to": "2026-09-30",
    "status": "Invoiced",
    "issued": "2026-10-02",
    "contract_cents": 8062422,
    "variations_cents": 864000,
    "to_date_cents": 1934981,
    "previous_cents": 0,
    "this_cents": 1934981,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-10-02",
    "invoice_id": 14,
    "notes": null
   },
   {
    "id": 15,
    "job_id": 6,
    "ref": "PC-26-037-01",
    "number": 1,
    "period_to": "2026-09-30",
    "status": "Invoiced",
    "issued": "2026-10-01",
    "contract_cents": 6239060,
    "variations_cents": 0,
    "to_date_cents": 499125,
    "previous_cents": 0,
    "this_cents": 499125,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-10-01",
    "invoice_id": 15,
    "notes": null
   },
   {
    "id": 16,
    "job_id": 4,
    "ref": "PC-26-033-04",
    "number": 4,
    "period_to": "2026-10-25",
    "status": "Invoiced",
    "issued": "2026-10-27",
    "contract_cents": 20378354,
    "variations_cents": 1420000,
    "to_date_cents": 20575652,
    "previous_cents": 16092415,
    "this_cents": 4483237,
    "retention_cents": 224162,
    "approved_by": "John Lenoard",
    "approved_on": "2026-10-27",
    "invoice_id": 16,
    "notes": null
   },
   {
    "id": 17,
    "job_id": 12,
    "ref": "PC-26-034-02",
    "number": 2,
    "period_to": "2026-10-16",
    "status": "Paid",
    "issued": "2026-10-19",
    "contract_cents": 5580000,
    "variations_cents": 0,
    "to_date_cents": 5580000,
    "previous_cents": 3571200,
    "this_cents": 2008800,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-10-19",
    "invoice_id": 17,
    "notes": null
   },
   {
    "id": 18,
    "job_id": 10,
    "ref": "PC-26-031-03",
    "number": 3,
    "period_to": "2026-10-31",
    "status": "Invoiced",
    "issued": "2026-10-31",
    "contract_cents": 3914000,
    "variations_cents": 0,
    "to_date_cents": 2974640,
    "previous_cents": 2211410,
    "this_cents": 763230,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-10-31",
    "invoice_id": 18,
    "notes": null
   },
   {
    "id": 19,
    "job_id": 13,
    "ref": "PC-26-035-02",
    "number": 2,
    "period_to": "2026-10-31",
    "status": "Invoiced",
    "issued": "2026-10-31",
    "contract_cents": 3412000,
    "variations_cents": 0,
    "to_date_cents": 2209270,
    "previous_cents": 1236850,
    "this_cents": 972420,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-10-31",
    "invoice_id": 19,
    "notes": null
   },
   {
    "id": 20,
    "job_id": 11,
    "ref": "PC-26-032-03",
    "number": 3,
    "period_to": "2026-10-31",
    "status": "Invoiced",
    "issued": "2026-11-02",
    "contract_cents": 6594160,
    "variations_cents": 0,
    "to_date_cents": 5028047,
    "previous_cents": 4220262,
    "this_cents": 807785,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-11-02",
    "invoice_id": 20,
    "notes": null
   },
   {
    "id": 21,
    "job_id": 5,
    "ref": "PC-26-036-02",
    "number": 2,
    "period_to": "2026-10-31",
    "status": "Invoiced",
    "issued": "2026-11-02",
    "contract_cents": 4480632,
    "variations_cents": 0,
    "to_date_cents": 2553960,
    "previous_cents": 1153762,
    "this_cents": 1400198,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-11-02",
    "invoice_id": 21,
    "notes": null
   },
   {
    "id": 22,
    "job_id": 6,
    "ref": "PC-26-037-02",
    "number": 2,
    "period_to": "2026-10-31",
    "status": "Approved",
    "issued": "2026-11-03",
    "contract_cents": 6239060,
    "variations_cents": 0,
    "to_date_cents": 2408277,
    "previous_cents": 499125,
    "this_cents": 1909152,
    "retention_cents": 0,
    "approved_by": "John Lenoard",
    "approved_on": "2026-11-03",
    "invoice_id": null,
    "notes": null
   },
   {
    "id": 23,
    "job_id": 1,
    "ref": "PC-26-041-02",
    "number": 2,
    "period_to": "2026-10-31",
    "status": "Draft",
    "issued": null,
    "contract_cents": 8062422,
    "variations_cents": 864000,
    "to_date_cents": 5148517,
    "previous_cents": 1934981,
    "this_cents": 3213536,
    "retention_cents": 0,
    "approved_by": null,
    "approved_on": null,
    "invoice_id": null,
    "notes": null
   }
  ],
  "claim_lines": [
   {
    "id": 1,
    "claim_id": 1,
    "sort": 1,
    "stage_id": 11,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 863289,
    "pct": 100,
    "to_date_cents": 863289,
    "previous_cents": 0,
    "this_cents": 863289
   },
   {
    "id": 2,
    "claim_id": 1,
    "sort": 2,
    "stage_id": 12,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 3021510,
    "pct": 60,
    "to_date_cents": 1812906,
    "previous_cents": 0,
    "this_cents": 1812906
   },
   {
    "id": 3,
    "claim_id": 1,
    "sort": 3,
    "stage_id": 13,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 2589866,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 4,
    "claim_id": 1,
    "sort": 4,
    "stage_id": 14,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 1294933,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 5,
    "claim_id": 1,
    "sort": 5,
    "stage_id": 15,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 863288,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 6,
    "claim_id": 2,
    "sort": 1,
    "stage_id": 11,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 863289,
    "pct": 100,
    "to_date_cents": 863289,
    "previous_cents": 863289,
    "this_cents": 0
   },
   {
    "id": 7,
    "claim_id": 2,
    "sort": 2,
    "stage_id": 12,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 3021510,
    "pct": 100,
    "to_date_cents": 3021510,
    "previous_cents": 1812906,
    "this_cents": 1208604
   },
   {
    "id": 8,
    "claim_id": 2,
    "sort": 3,
    "stage_id": 13,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 2589866,
    "pct": 80,
    "to_date_cents": 2071893,
    "previous_cents": 0,
    "this_cents": 2071893
   },
   {
    "id": 9,
    "claim_id": 2,
    "sort": 4,
    "stage_id": 14,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 1294933,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 10,
    "claim_id": 2,
    "sort": 5,
    "stage_id": 15,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 863288,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 11,
    "claim_id": 3,
    "sort": 1,
    "stage_id": 16,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 2037835,
    "pct": 100,
    "to_date_cents": 2037835,
    "previous_cents": 0,
    "this_cents": 2037835
   },
   {
    "id": 12,
    "claim_id": 3,
    "sort": 2,
    "stage_id": 17,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 7132424,
    "pct": 20,
    "to_date_cents": 1426485,
    "previous_cents": 0,
    "this_cents": 1426485
   },
   {
    "id": 13,
    "claim_id": 3,
    "sort": 3,
    "stage_id": 18,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 6113506,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 14,
    "claim_id": 3,
    "sort": 4,
    "stage_id": 19,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 3056753,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 15,
    "claim_id": 3,
    "sort": 5,
    "stage_id": 20,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 2037836,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 16,
    "claim_id": 3,
    "sort": 50,
    "stage_id": null,
    "variation_id": 3,
    "description": "V-01 — Additional MCC tier — 2 × DOL starters for sump pumps",
    "value_cents": 1420000,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 17,
    "claim_id": 4,
    "sort": 1,
    "stage_id": 52,
    "variation_id": null,
    "description": "Strip & assess",
    "value_cents": 1116000,
    "pct": 100,
    "to_date_cents": 1116000,
    "previous_cents": 0,
    "this_cents": 1116000
   },
   {
    "id": 18,
    "claim_id": 4,
    "sort": 2,
    "stage_id": 53,
    "variation_id": null,
    "description": "Parts & materials",
    "value_cents": 1674000,
    "pct": 100,
    "to_date_cents": 1674000,
    "previous_cents": 0,
    "this_cents": 1674000
   },
   {
    "id": 19,
    "claim_id": 4,
    "sort": 3,
    "stage_id": 54,
    "variation_id": null,
    "description": "Overhaul & rebuild",
    "value_cents": 1953000,
    "pct": 40,
    "to_date_cents": 781200,
    "previous_cents": 0,
    "this_cents": 781200
   },
   {
    "id": 20,
    "claim_id": 4,
    "sort": 4,
    "stage_id": 55,
    "variation_id": null,
    "description": "Test & return to site",
    "value_cents": 837000,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 21,
    "claim_id": 5,
    "sort": 1,
    "stage_id": 44,
    "variation_id": null,
    "description": "Planning & surveys",
    "value_cents": 391400,
    "pct": 100,
    "to_date_cents": 391400,
    "previous_cents": 0,
    "this_cents": 391400
   },
   {
    "id": 22,
    "claim_id": 5,
    "sort": 2,
    "stage_id": 45,
    "variation_id": null,
    "description": "Materials & preparation",
    "value_cents": 1174200,
    "pct": 40,
    "to_date_cents": 469680,
    "previous_cents": 0,
    "this_cents": 469680
   },
   {
    "id": 23,
    "claim_id": 5,
    "sort": 3,
    "stage_id": 46,
    "variation_id": null,
    "description": "Site works",
    "value_cents": 1761300,
    "pct": 20,
    "to_date_cents": 352260,
    "previous_cents": 0,
    "this_cents": 352260
   },
   {
    "id": 24,
    "claim_id": 5,
    "sort": 4,
    "stage_id": 47,
    "variation_id": null,
    "description": "Reports & handover",
    "value_cents": 587100,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 25,
    "claim_id": 6,
    "sort": 1,
    "stage_id": 48,
    "variation_id": null,
    "description": "Strip & assess",
    "value_cents": 1318832,
    "pct": 100,
    "to_date_cents": 1318832,
    "previous_cents": 0,
    "this_cents": 1318832
   },
   {
    "id": 26,
    "claim_id": 6,
    "sort": 2,
    "stage_id": 49,
    "variation_id": null,
    "description": "Parts & materials",
    "value_cents": 1978248,
    "pct": 60,
    "to_date_cents": 1186949,
    "previous_cents": 0,
    "this_cents": 1186949
   },
   {
    "id": 27,
    "claim_id": 6,
    "sort": 3,
    "stage_id": 50,
    "variation_id": null,
    "description": "Overhaul & rebuild",
    "value_cents": 2307956,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 28,
    "claim_id": 6,
    "sort": 4,
    "stage_id": 51,
    "variation_id": null,
    "description": "Test & return to site",
    "value_cents": 989124,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 29,
    "claim_id": 7,
    "sort": 1,
    "stage_id": 11,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 863289,
    "pct": 100,
    "to_date_cents": 863289,
    "previous_cents": 863289,
    "this_cents": 0
   },
   {
    "id": 30,
    "claim_id": 7,
    "sort": 2,
    "stage_id": 12,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 3021510,
    "pct": 100,
    "to_date_cents": 3021510,
    "previous_cents": 3021510,
    "this_cents": 0
   },
   {
    "id": 31,
    "claim_id": 7,
    "sort": 3,
    "stage_id": 13,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 2589866,
    "pct": 100,
    "to_date_cents": 2589866,
    "previous_cents": 2071893,
    "this_cents": 517973
   },
   {
    "id": 32,
    "claim_id": 7,
    "sort": 4,
    "stage_id": 14,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 1294933,
    "pct": 100,
    "to_date_cents": 1294933,
    "previous_cents": 0,
    "this_cents": 1294933
   },
   {
    "id": 33,
    "claim_id": 7,
    "sort": 5,
    "stage_id": 15,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 863288,
    "pct": 100,
    "to_date_cents": 863288,
    "previous_cents": 0,
    "this_cents": 863288
   },
   {
    "id": 34,
    "claim_id": 8,
    "sort": 1,
    "stage_id": 16,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 2037835,
    "pct": 100,
    "to_date_cents": 2037835,
    "previous_cents": 2037835,
    "this_cents": 0
   },
   {
    "id": 35,
    "claim_id": 8,
    "sort": 2,
    "stage_id": 17,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 7132424,
    "pct": 70,
    "to_date_cents": 4992697,
    "previous_cents": 1426485,
    "this_cents": 3566212
   },
   {
    "id": 36,
    "claim_id": 8,
    "sort": 3,
    "stage_id": 18,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 6113506,
    "pct": 25,
    "to_date_cents": 1528377,
    "previous_cents": 0,
    "this_cents": 1528377
   },
   {
    "id": 37,
    "claim_id": 8,
    "sort": 4,
    "stage_id": 19,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 3056753,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 38,
    "claim_id": 8,
    "sort": 5,
    "stage_id": 20,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 2037836,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 39,
    "claim_id": 8,
    "sort": 50,
    "stage_id": null,
    "variation_id": 3,
    "description": "V-01 — Additional MCC tier — 2 × DOL starters for sump pumps",
    "value_cents": 1420000,
    "pct": 50,
    "to_date_cents": 710000,
    "previous_cents": 0,
    "this_cents": 710000
   },
   {
    "id": 40,
    "claim_id": 9,
    "sort": 1,
    "stage_id": 16,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 2037835,
    "pct": 100,
    "to_date_cents": 2037835,
    "previous_cents": 2037835,
    "this_cents": 0
   },
   {
    "id": 41,
    "claim_id": 9,
    "sort": 2,
    "stage_id": 17,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 7132424,
    "pct": 100,
    "to_date_cents": 7132424,
    "previous_cents": 4992697,
    "this_cents": 2139727
   },
   {
    "id": 42,
    "claim_id": 9,
    "sort": 3,
    "stage_id": 18,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 6113506,
    "pct": 80,
    "to_date_cents": 4890805,
    "previous_cents": 1528377,
    "this_cents": 3362428
   },
   {
    "id": 43,
    "claim_id": 9,
    "sort": 4,
    "stage_id": 19,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 3056753,
    "pct": 20,
    "to_date_cents": 611351,
    "previous_cents": 0,
    "this_cents": 611351
   },
   {
    "id": 44,
    "claim_id": 9,
    "sort": 5,
    "stage_id": 20,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 2037836,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 45,
    "claim_id": 9,
    "sort": 50,
    "stage_id": null,
    "variation_id": 3,
    "description": "V-01 — Additional MCC tier — 2 × DOL starters for sump pumps",
    "value_cents": 1420000,
    "pct": 100,
    "to_date_cents": 1420000,
    "previous_cents": 710000,
    "this_cents": 710000
   },
   {
    "id": 46,
    "claim_id": 10,
    "sort": 1,
    "stage_id": 21,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 448063,
    "pct": 100,
    "to_date_cents": 448063,
    "previous_cents": 0,
    "this_cents": 448063
   },
   {
    "id": 47,
    "claim_id": 10,
    "sort": 2,
    "stage_id": 22,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 1568221,
    "pct": 45,
    "to_date_cents": 705699,
    "previous_cents": 0,
    "this_cents": 705699
   },
   {
    "id": 48,
    "claim_id": 10,
    "sort": 3,
    "stage_id": 23,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 1344190,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 49,
    "claim_id": 10,
    "sort": 4,
    "stage_id": 24,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 672095,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 50,
    "claim_id": 10,
    "sort": 5,
    "stage_id": 25,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 448063,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 51,
    "claim_id": 11,
    "sort": 1,
    "stage_id": 56,
    "variation_id": null,
    "description": "Planning & surveys",
    "value_cents": 341200,
    "pct": 100,
    "to_date_cents": 341200,
    "previous_cents": 0,
    "this_cents": 341200
   },
   {
    "id": 52,
    "claim_id": 11,
    "sort": 2,
    "stage_id": 57,
    "variation_id": null,
    "description": "Materials & preparation",
    "value_cents": 1023600,
    "pct": 50,
    "to_date_cents": 511800,
    "previous_cents": 0,
    "this_cents": 511800
   },
   {
    "id": 53,
    "claim_id": 11,
    "sort": 3,
    "stage_id": 58,
    "variation_id": null,
    "description": "Site works",
    "value_cents": 1535400,
    "pct": 25,
    "to_date_cents": 383850,
    "previous_cents": 0,
    "this_cents": 383850
   },
   {
    "id": 54,
    "claim_id": 11,
    "sort": 4,
    "stage_id": 59,
    "variation_id": null,
    "description": "Reports & handover",
    "value_cents": 511800,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 55,
    "claim_id": 12,
    "sort": 1,
    "stage_id": 44,
    "variation_id": null,
    "description": "Planning & surveys",
    "value_cents": 391400,
    "pct": 100,
    "to_date_cents": 391400,
    "previous_cents": 391400,
    "this_cents": 0
   },
   {
    "id": 56,
    "claim_id": 12,
    "sort": 2,
    "stage_id": 45,
    "variation_id": null,
    "description": "Materials & preparation",
    "value_cents": 1174200,
    "pct": 80,
    "to_date_cents": 939360,
    "previous_cents": 469680,
    "this_cents": 469680
   },
   {
    "id": 57,
    "claim_id": 12,
    "sort": 3,
    "stage_id": 46,
    "variation_id": null,
    "description": "Site works",
    "value_cents": 1761300,
    "pct": 50,
    "to_date_cents": 880650,
    "previous_cents": 352260,
    "this_cents": 528390
   },
   {
    "id": 58,
    "claim_id": 12,
    "sort": 4,
    "stage_id": 47,
    "variation_id": null,
    "description": "Reports & handover",
    "value_cents": 587100,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 59,
    "claim_id": 13,
    "sort": 1,
    "stage_id": 48,
    "variation_id": null,
    "description": "Strip & assess",
    "value_cents": 1318832,
    "pct": 100,
    "to_date_cents": 1318832,
    "previous_cents": 1318832,
    "this_cents": 0
   },
   {
    "id": 60,
    "claim_id": 13,
    "sort": 2,
    "stage_id": 49,
    "variation_id": null,
    "description": "Parts & materials",
    "value_cents": 1978248,
    "pct": 100,
    "to_date_cents": 1978248,
    "previous_cents": 1186949,
    "this_cents": 791299
   },
   {
    "id": 61,
    "claim_id": 13,
    "sort": 3,
    "stage_id": 50,
    "variation_id": null,
    "description": "Overhaul & rebuild",
    "value_cents": 2307956,
    "pct": 40,
    "to_date_cents": 923182,
    "previous_cents": 0,
    "this_cents": 923182
   },
   {
    "id": 62,
    "claim_id": 13,
    "sort": 4,
    "stage_id": 51,
    "variation_id": null,
    "description": "Test & return to site",
    "value_cents": 989124,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 63,
    "claim_id": 14,
    "sort": 1,
    "stage_id": 1,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 806242,
    "pct": 100,
    "to_date_cents": 806242,
    "previous_cents": 0,
    "this_cents": 806242
   },
   {
    "id": 64,
    "claim_id": 14,
    "sort": 2,
    "stage_id": 2,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 2821848,
    "pct": 40,
    "to_date_cents": 1128739,
    "previous_cents": 0,
    "this_cents": 1128739
   },
   {
    "id": 65,
    "claim_id": 14,
    "sort": 3,
    "stage_id": 3,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 2418727,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 66,
    "claim_id": 14,
    "sort": 4,
    "stage_id": 4,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 1209363,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 67,
    "claim_id": 14,
    "sort": 5,
    "stage_id": 5,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 806242,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 68,
    "claim_id": 14,
    "sort": 50,
    "stage_id": null,
    "variation_id": 1,
    "description": "V-01 — Add 4G telemetry RTU and third discharge pressure transmitter",
    "value_cents": 864000,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 69,
    "claim_id": 15,
    "sort": 1,
    "stage_id": 26,
    "variation_id": null,
    "description": "Site establishment",
    "value_cents": 499125,
    "pct": 100,
    "to_date_cents": 499125,
    "previous_cents": 0,
    "this_cents": 499125
   },
   {
    "id": 70,
    "claim_id": 15,
    "sort": 2,
    "stage_id": 27,
    "variation_id": null,
    "description": "Equipment supply",
    "value_cents": 2495624,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 71,
    "claim_id": 15,
    "sort": 3,
    "stage_id": 28,
    "variation_id": null,
    "description": "Mechanical installation",
    "value_cents": 1372593,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 72,
    "claim_id": 15,
    "sort": 4,
    "stage_id": 29,
    "variation_id": null,
    "description": "Electrical installation",
    "value_cents": 1123031,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 73,
    "claim_id": 15,
    "sort": 5,
    "stage_id": 30,
    "variation_id": null,
    "description": "Commissioning & handover",
    "value_cents": 748687,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 74,
    "claim_id": 16,
    "sort": 1,
    "stage_id": 16,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 2037835,
    "pct": 100,
    "to_date_cents": 2037835,
    "previous_cents": 2037835,
    "this_cents": 0
   },
   {
    "id": 75,
    "claim_id": 16,
    "sort": 2,
    "stage_id": 17,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 7132424,
    "pct": 100,
    "to_date_cents": 7132424,
    "previous_cents": 7132424,
    "this_cents": 0
   },
   {
    "id": 76,
    "claim_id": 16,
    "sort": 3,
    "stage_id": 18,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 6113506,
    "pct": 100,
    "to_date_cents": 6113506,
    "previous_cents": 4890805,
    "this_cents": 1222701
   },
   {
    "id": 77,
    "claim_id": 16,
    "sort": 4,
    "stage_id": 19,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 3056753,
    "pct": 100,
    "to_date_cents": 3056753,
    "previous_cents": 611351,
    "this_cents": 2445402
   },
   {
    "id": 78,
    "claim_id": 16,
    "sort": 5,
    "stage_id": 20,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 2037836,
    "pct": 40,
    "to_date_cents": 815134,
    "previous_cents": 0,
    "this_cents": 815134
   },
   {
    "id": 79,
    "claim_id": 16,
    "sort": 50,
    "stage_id": null,
    "variation_id": 3,
    "description": "V-01 — Additional MCC tier — 2 × DOL starters for sump pumps",
    "value_cents": 1420000,
    "pct": 100,
    "to_date_cents": 1420000,
    "previous_cents": 1420000,
    "this_cents": 0
   },
   {
    "id": 80,
    "claim_id": 17,
    "sort": 1,
    "stage_id": 52,
    "variation_id": null,
    "description": "Strip & assess",
    "value_cents": 1116000,
    "pct": 100,
    "to_date_cents": 1116000,
    "previous_cents": 1116000,
    "this_cents": 0
   },
   {
    "id": 81,
    "claim_id": 17,
    "sort": 2,
    "stage_id": 53,
    "variation_id": null,
    "description": "Parts & materials",
    "value_cents": 1674000,
    "pct": 100,
    "to_date_cents": 1674000,
    "previous_cents": 1674000,
    "this_cents": 0
   },
   {
    "id": 82,
    "claim_id": 17,
    "sort": 3,
    "stage_id": 54,
    "variation_id": null,
    "description": "Overhaul & rebuild",
    "value_cents": 1953000,
    "pct": 100,
    "to_date_cents": 1953000,
    "previous_cents": 781200,
    "this_cents": 1171800
   },
   {
    "id": 83,
    "claim_id": 17,
    "sort": 4,
    "stage_id": 55,
    "variation_id": null,
    "description": "Test & return to site",
    "value_cents": 837000,
    "pct": 100,
    "to_date_cents": 837000,
    "previous_cents": 0,
    "this_cents": 837000
   },
   {
    "id": 84,
    "claim_id": 18,
    "sort": 1,
    "stage_id": 44,
    "variation_id": null,
    "description": "Planning & surveys",
    "value_cents": 391400,
    "pct": 100,
    "to_date_cents": 391400,
    "previous_cents": 391400,
    "this_cents": 0
   },
   {
    "id": 85,
    "claim_id": 18,
    "sort": 2,
    "stage_id": 45,
    "variation_id": null,
    "description": "Materials & preparation",
    "value_cents": 1174200,
    "pct": 100,
    "to_date_cents": 1174200,
    "previous_cents": 939360,
    "this_cents": 234840
   },
   {
    "id": 86,
    "claim_id": 18,
    "sort": 3,
    "stage_id": 46,
    "variation_id": null,
    "description": "Site works",
    "value_cents": 1761300,
    "pct": 80,
    "to_date_cents": 1409040,
    "previous_cents": 880650,
    "this_cents": 528390
   },
   {
    "id": 87,
    "claim_id": 18,
    "sort": 4,
    "stage_id": 47,
    "variation_id": null,
    "description": "Reports & handover",
    "value_cents": 587100,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 88,
    "claim_id": 19,
    "sort": 1,
    "stage_id": 56,
    "variation_id": null,
    "description": "Planning & surveys",
    "value_cents": 341200,
    "pct": 100,
    "to_date_cents": 341200,
    "previous_cents": 341200,
    "this_cents": 0
   },
   {
    "id": 89,
    "claim_id": 19,
    "sort": 2,
    "stage_id": 57,
    "variation_id": null,
    "description": "Materials & preparation",
    "value_cents": 1023600,
    "pct": 100,
    "to_date_cents": 1023600,
    "previous_cents": 511800,
    "this_cents": 511800
   },
   {
    "id": 90,
    "claim_id": 19,
    "sort": 3,
    "stage_id": 58,
    "variation_id": null,
    "description": "Site works",
    "value_cents": 1535400,
    "pct": 55,
    "to_date_cents": 844470,
    "previous_cents": 383850,
    "this_cents": 460620
   },
   {
    "id": 91,
    "claim_id": 19,
    "sort": 4,
    "stage_id": 59,
    "variation_id": null,
    "description": "Reports & handover",
    "value_cents": 511800,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 92,
    "claim_id": 20,
    "sort": 1,
    "stage_id": 48,
    "variation_id": null,
    "description": "Strip & assess",
    "value_cents": 1318832,
    "pct": 100,
    "to_date_cents": 1318832,
    "previous_cents": 1318832,
    "this_cents": 0
   },
   {
    "id": 93,
    "claim_id": 20,
    "sort": 2,
    "stage_id": 49,
    "variation_id": null,
    "description": "Parts & materials",
    "value_cents": 1978248,
    "pct": 100,
    "to_date_cents": 1978248,
    "previous_cents": 1978248,
    "this_cents": 0
   },
   {
    "id": 94,
    "claim_id": 20,
    "sort": 3,
    "stage_id": 50,
    "variation_id": null,
    "description": "Overhaul & rebuild",
    "value_cents": 2307956,
    "pct": 75,
    "to_date_cents": 1730967,
    "previous_cents": 923182,
    "this_cents": 807785
   },
   {
    "id": 95,
    "claim_id": 20,
    "sort": 4,
    "stage_id": 51,
    "variation_id": null,
    "description": "Test & return to site",
    "value_cents": 989124,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 96,
    "claim_id": 21,
    "sort": 1,
    "stage_id": 21,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 448063,
    "pct": 100,
    "to_date_cents": 448063,
    "previous_cents": 448063,
    "this_cents": 0
   },
   {
    "id": 97,
    "claim_id": 21,
    "sort": 2,
    "stage_id": 22,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 1568221,
    "pct": 100,
    "to_date_cents": 1568221,
    "previous_cents": 705699,
    "this_cents": 862522
   },
   {
    "id": 98,
    "claim_id": 21,
    "sort": 3,
    "stage_id": 23,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 1344190,
    "pct": 40,
    "to_date_cents": 537676,
    "previous_cents": 0,
    "this_cents": 537676
   },
   {
    "id": 99,
    "claim_id": 21,
    "sort": 4,
    "stage_id": 24,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 672095,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 100,
    "claim_id": 21,
    "sort": 5,
    "stage_id": 25,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 448063,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 101,
    "claim_id": 22,
    "sort": 1,
    "stage_id": 26,
    "variation_id": null,
    "description": "Site establishment",
    "value_cents": 499125,
    "pct": 100,
    "to_date_cents": 499125,
    "previous_cents": 499125,
    "this_cents": 0
   },
   {
    "id": 102,
    "claim_id": 22,
    "sort": 2,
    "stage_id": 27,
    "variation_id": null,
    "description": "Equipment supply",
    "value_cents": 2495624,
    "pct": 60,
    "to_date_cents": 1497374,
    "previous_cents": 0,
    "this_cents": 1497374
   },
   {
    "id": 103,
    "claim_id": 22,
    "sort": 3,
    "stage_id": 28,
    "variation_id": null,
    "description": "Mechanical installation",
    "value_cents": 1372593,
    "pct": 30,
    "to_date_cents": 411778,
    "previous_cents": 0,
    "this_cents": 411778
   },
   {
    "id": 104,
    "claim_id": 22,
    "sort": 4,
    "stage_id": 29,
    "variation_id": null,
    "description": "Electrical installation",
    "value_cents": 1123031,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 105,
    "claim_id": 22,
    "sort": 5,
    "stage_id": 30,
    "variation_id": null,
    "description": "Commissioning & handover",
    "value_cents": 748687,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 106,
    "claim_id": 23,
    "sort": 1,
    "stage_id": 1,
    "variation_id": null,
    "description": "Design & drawings",
    "value_cents": 806242,
    "pct": 100,
    "to_date_cents": 806242,
    "previous_cents": 806242,
    "this_cents": 0
   },
   {
    "id": 107,
    "claim_id": 23,
    "sort": 2,
    "stage_id": 2,
    "variation_id": null,
    "description": "Equipment procurement",
    "value_cents": 2821848,
    "pct": 100,
    "to_date_cents": 2821848,
    "previous_cents": 1128739,
    "this_cents": 1693109
   },
   {
    "id": 108,
    "claim_id": 23,
    "sort": 3,
    "stage_id": 3,
    "variation_id": null,
    "description": "Assembly & wiring",
    "value_cents": 2418727,
    "pct": 45,
    "to_date_cents": 1088427,
    "previous_cents": 0,
    "this_cents": 1088427
   },
   {
    "id": 109,
    "claim_id": 23,
    "sort": 4,
    "stage_id": 4,
    "variation_id": null,
    "description": "FAT & testing",
    "value_cents": 1209363,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 110,
    "claim_id": 23,
    "sort": 5,
    "stage_id": 5,
    "variation_id": null,
    "description": "Delivery & commissioning",
    "value_cents": 806242,
    "pct": 0,
    "to_date_cents": 0,
    "previous_cents": 0,
    "this_cents": 0
   },
   {
    "id": 111,
    "claim_id": 23,
    "sort": 50,
    "stage_id": null,
    "variation_id": 1,
    "description": "V-01 — Add 4G telemetry RTU and third discharge pressure transmitter",
    "value_cents": 864000,
    "pct": 50,
    "to_date_cents": 432000,
    "previous_cents": 0,
    "this_cents": 432000
   }
  ],
  "invoices": [
   {
    "id": 1,
    "ref": "INV-2237",
    "job_id": 3,
    "claim_id": 1,
    "customer_id": 9,
    "description": "J-26-029 Process-water pressure boosting station — progress claim 1",
    "issued": "2026-07-01",
    "due": "2026-09-01",
    "subtotal_cents": 2676195,
    "gst_cents": 267620,
    "total_cents": 2943815,
    "status": "Paid",
    "paid_cents": 2943815,
    "paid_on": "2026-07-30",
    "xero_id": "x-inv-1",
    "xero_status": "Synced",
    "xero_synced": "2026-07-01T16:10"
   },
   {
    "id": 2,
    "ref": "INV-2240",
    "job_id": 3,
    "claim_id": 2,
    "customer_id": 9,
    "description": "J-26-029 Process-water pressure boosting station — progress claim 2",
    "issued": "2026-08-03",
    "due": "2026-09-30",
    "subtotal_cents": 3280497,
    "gst_cents": 328050,
    "total_cents": 3608547,
    "status": "Paid",
    "paid_cents": 3608547,
    "paid_on": "2026-09-07",
    "xero_id": "x-inv-2",
    "xero_status": "Synced",
    "xero_synced": "2026-08-03T16:10"
   },
   {
    "id": 3,
    "ref": "INV-2239",
    "job_id": 4,
    "claim_id": 3,
    "customer_id": 4,
    "description": "J-26-033 Portable switchroom — Pit 4 dewatering — progress claim 1",
    "issued": "2026-07-27",
    "due": "2026-08-06",
    "subtotal_cents": 3291104,
    "gst_cents": 329110,
    "total_cents": 3620214,
    "status": "Paid",
    "paid_cents": 3620214,
    "paid_on": "2026-08-25",
    "xero_id": "x-inv-3",
    "xero_status": "Synced",
    "xero_synced": "2026-07-27T16:10"
   },
   {
    "id": 4,
    "ref": "INV-2242",
    "job_id": 12,
    "claim_id": 4,
    "customer_id": 1,
    "description": "J-26-034 Pit 3 dewatering pumps — overhaul 4 × Flygt 2670 — progress claim 1",
    "issued": "2026-08-31",
    "due": "2026-09-02",
    "subtotal_cents": 3571200,
    "gst_cents": 357120,
    "total_cents": 3928320,
    "status": "Paid",
    "paid_cents": 3928320,
    "paid_on": "2026-09-30",
    "xero_id": "x-inv-4",
    "xero_status": "Synced",
    "xero_synced": "2026-08-31T16:10"
   },
   {
    "id": 5,
    "ref": "INV-2243",
    "job_id": 10,
    "claim_id": 5,
    "customer_id": 4,
    "description": "J-26-031 Transformer maintenance & oil sampling round — Pit 4 & CHPP — progress claim 1",
    "issued": "2026-08-31",
    "due": "2026-09-02",
    "subtotal_cents": 1213340,
    "gst_cents": 121334,
    "total_cents": 1334674,
    "status": "Paid",
    "paid_cents": 1334674,
    "paid_on": "2026-10-03",
    "xero_id": "x-inv-5",
    "xero_status": "Synced",
    "xero_synced": "2026-08-31T16:10"
   },
   {
    "id": 6,
    "ref": "INV-2245",
    "job_id": 11,
    "claim_id": 6,
    "customer_id": 7,
    "description": "J-26-032 Dewatering pumpset overhauls — 6 × Flygt 2640 — progress claim 1",
    "issued": "2026-09-01",
    "due": "2026-11-02",
    "subtotal_cents": 2505781,
    "gst_cents": 250578,
    "total_cents": 2756359,
    "status": "Paid",
    "paid_cents": 2756359,
    "paid_on": "2026-09-30",
    "xero_id": "x-inv-6",
    "xero_status": "Synced",
    "xero_synced": "2026-09-01T16:10"
   },
   {
    "id": 7,
    "ref": "INV-2246",
    "job_id": 3,
    "claim_id": 7,
    "customer_id": 9,
    "description": "J-26-029 Process-water pressure boosting station — progress claim 3",
    "issued": "2026-09-14",
    "due": "2026-10-20",
    "subtotal_cents": 2676194,
    "gst_cents": 267619,
    "total_cents": 2943813,
    "status": "Paid",
    "paid_cents": 2943813,
    "paid_on": "2026-10-19",
    "xero_id": "x-inv-7",
    "xero_status": "Synced",
    "xero_synced": "2026-09-14T16:10"
   },
   {
    "id": 8,
    "ref": "INV-2241",
    "job_id": 4,
    "claim_id": 8,
    "customer_id": 4,
    "description": "J-26-033 Portable switchroom — Pit 4 dewatering — progress claim 2",
    "issued": "2026-08-26",
    "due": "2026-09-07",
    "subtotal_cents": 5514360,
    "gst_cents": 551436,
    "total_cents": 6065796,
    "status": "Paid",
    "paid_cents": 6065796,
    "paid_on": "2026-09-25",
    "xero_id": "x-inv-8",
    "xero_status": "Synced",
    "xero_synced": "2026-08-26T16:10"
   },
   {
    "id": 9,
    "ref": "INV-2248",
    "job_id": 4,
    "claim_id": 9,
    "customer_id": 4,
    "description": "J-26-033 Portable switchroom — Pit 4 dewatering — progress claim 3",
    "issued": "2026-09-28",
    "due": "2026-10-06",
    "subtotal_cents": 6482331,
    "gst_cents": 648233,
    "total_cents": 7130564,
    "status": "Paid",
    "paid_cents": 7130564,
    "paid_on": "2026-11-01",
    "xero_id": "x-inv-9",
    "xero_status": "Synced",
    "xero_synced": "2026-09-28T16:10"
   },
   {
    "id": 10,
    "ref": "INV-2252",
    "job_id": 5,
    "claim_id": 10,
    "customer_id": 7,
    "description": "J-26-036 4 × dewatering pumpset control panels (Flygt 2670) — progress claim 1",
    "issued": "2026-10-01",
    "due": "2026-12-02",
    "subtotal_cents": 1153762,
    "gst_cents": 115376,
    "total_cents": 1269138,
    "status": "Paid",
    "paid_cents": 1269138,
    "paid_on": "2026-11-03",
    "xero_id": "x-inv-10",
    "xero_status": "Synced",
    "xero_synced": "2026-10-01T16:10"
   },
   {
    "id": 11,
    "ref": "INV-2249",
    "job_id": 13,
    "claim_id": 11,
    "customer_id": 5,
    "description": "J-26-035 Conveyor drive servicing & thermography — Q3/Q4 — progress claim 1",
    "issued": "2026-09-30",
    "due": "2026-10-04",
    "subtotal_cents": 1236850,
    "gst_cents": 123685,
    "total_cents": 1360535,
    "status": "Paid",
    "paid_cents": 1360535,
    "paid_on": "2026-10-30",
    "xero_id": "x-inv-11",
    "xero_status": "Synced",
    "xero_synced": "2026-09-30T16:10"
   },
   {
    "id": 12,
    "ref": "INV-2251",
    "job_id": 10,
    "claim_id": 12,
    "customer_id": 4,
    "description": "J-26-031 Transformer maintenance & oil sampling round — Pit 4 & CHPP — progress claim 2",
    "issued": "2026-09-30",
    "due": "2026-10-04",
    "subtotal_cents": 998070,
    "gst_cents": 99807,
    "total_cents": 1097877,
    "status": "Paid",
    "paid_cents": 1097877,
    "paid_on": "2026-11-04",
    "xero_id": "x-inv-12",
    "xero_status": "Synced",
    "xero_synced": "2026-09-30T16:10"
   },
   {
    "id": 13,
    "ref": "INV-2253",
    "job_id": 11,
    "claim_id": 13,
    "customer_id": 7,
    "description": "J-26-032 Dewatering pumpset overhauls — 6 × Flygt 2640 — progress claim 2",
    "issued": "2026-10-01",
    "due": "2026-12-02",
    "subtotal_cents": 1714481,
    "gst_cents": 171448,
    "total_cents": 1885929,
    "status": "Paid",
    "paid_cents": 1885929,
    "paid_on": "2026-11-02",
    "xero_id": "x-inv-13",
    "xero_status": "Synced",
    "xero_synced": "2026-10-01T16:10"
   },
   {
    "id": 14,
    "ref": "INV-2256",
    "job_id": 1,
    "claim_id": 14,
    "customer_id": 1,
    "description": "J-26-041 Dual 75 kW VSD pump-control panel — Pit 3 dewatering — progress claim 1",
    "issued": "2026-10-02",
    "due": "2026-11-02",
    "subtotal_cents": 1934981,
    "gst_cents": 193498,
    "total_cents": 2128479,
    "status": "Awaiting payment",
    "paid_cents": 0,
    "paid_on": null,
    "xero_id": "x-inv-14",
    "xero_status": "Synced",
    "xero_synced": "2026-10-02T16:10"
   },
   {
    "id": 15,
    "ref": "INV-2255",
    "job_id": 6,
    "claim_id": 15,
    "customer_id": 5,
    "description": "J-26-037 Conveyor starter upgrade — CV-12 / CV-14 — progress claim 1",
    "issued": "2026-10-01",
    "due": "2026-10-31",
    "subtotal_cents": 499125,
    "gst_cents": 49913,
    "total_cents": 549038,
    "status": "Awaiting payment",
    "paid_cents": 0,
    "paid_on": null,
    "xero_id": "x-inv-15",
    "xero_status": "Synced",
    "xero_synced": "2026-10-01T16:10"
   },
   {
    "id": 16,
    "ref": "INV-2258",
    "job_id": 4,
    "claim_id": 16,
    "customer_id": 4,
    "description": "J-26-033 Portable switchroom — Pit 4 dewatering — progress claim 4",
    "issued": "2026-10-27",
    "due": "2026-11-06",
    "subtotal_cents": 4259075,
    "gst_cents": 425908,
    "total_cents": 4684983,
    "status": "Awaiting payment",
    "paid_cents": 0,
    "paid_on": null,
    "xero_id": "x-inv-16",
    "xero_status": "Synced",
    "xero_synced": "2026-10-27T16:10"
   },
   {
    "id": 17,
    "ref": "INV-2257",
    "job_id": 12,
    "claim_id": 17,
    "customer_id": 1,
    "description": "J-26-034 Pit 3 dewatering pumps — overhaul 4 × Flygt 2670 — progress claim 2",
    "issued": "2026-10-19",
    "due": "2026-11-14",
    "subtotal_cents": 2008800,
    "gst_cents": 200880,
    "total_cents": 2209680,
    "status": "Paid",
    "paid_cents": 2209680,
    "paid_on": "2026-11-02",
    "xero_id": "x-inv-17",
    "xero_status": "Synced",
    "xero_synced": "2026-10-19T16:10"
   },
   {
    "id": 18,
    "ref": "INV-2260",
    "job_id": 10,
    "claim_id": 18,
    "customer_id": 4,
    "description": "J-26-031 Transformer maintenance & oil sampling round — Pit 4 & CHPP — progress claim 3",
    "issued": "2026-10-31",
    "due": "2026-11-02",
    "subtotal_cents": 763230,
    "gst_cents": 76323,
    "total_cents": 839553,
    "status": "Awaiting payment",
    "paid_cents": 0,
    "paid_on": null,
    "xero_id": "x-inv-18",
    "xero_status": "Synced",
    "xero_synced": "2026-10-31T16:10"
   },
   {
    "id": 19,
    "ref": "INV-2261",
    "job_id": 13,
    "claim_id": 19,
    "customer_id": 5,
    "description": "J-26-035 Conveyor drive servicing & thermography — Q3/Q4 — progress claim 2",
    "issued": "2026-10-31",
    "due": "2026-11-02",
    "subtotal_cents": 972420,
    "gst_cents": 97242,
    "total_cents": 1069662,
    "status": "Awaiting payment",
    "paid_cents": 0,
    "paid_on": null,
    "xero_id": "x-inv-19",
    "xero_status": "Synced",
    "xero_synced": "2026-10-31T16:10"
   },
   {
    "id": 20,
    "ref": "INV-2262",
    "job_id": 11,
    "claim_id": 20,
    "customer_id": 7,
    "description": "J-26-032 Dewatering pumpset overhauls — 6 × Flygt 2640 — progress claim 3",
    "issued": "2026-11-02",
    "due": "2027-01-01",
    "subtotal_cents": 807785,
    "gst_cents": 80779,
    "total_cents": 888564,
    "status": "Awaiting payment",
    "paid_cents": 0,
    "paid_on": null,
    "xero_id": "x-inv-20",
    "xero_status": "Synced",
    "xero_synced": "2026-11-02T16:10"
   },
   {
    "id": 21,
    "ref": "INV-2264",
    "job_id": 5,
    "claim_id": 21,
    "customer_id": 7,
    "description": "J-26-036 4 × dewatering pumpset control panels (Flygt 2670) — progress claim 2",
    "issued": "2026-11-02",
    "due": "2027-01-01",
    "subtotal_cents": 1400198,
    "gst_cents": 140020,
    "total_cents": 1540218,
    "status": "Awaiting payment",
    "paid_cents": 0,
    "paid_on": null,
    "xero_id": "x-inv-21",
    "xero_status": "Synced",
    "xero_synced": "2026-11-02T16:10"
   }
  ],
  "bills": [
   {
    "id": 1,
    "ref": "BILL-5101",
    "supplier_ref": "102-83751",
    "supplier_id": 2,
    "po_id": 19,
    "issued": "2026-07-01",
    "due": "2026-08-15",
    "subtotal_cents": 656000,
    "gst_cents": 65600,
    "total_cents": 721600,
    "status": "Paid",
    "paid_on": "2026-08-12",
    "xero_id": "x-bill-1",
    "xero_status": "Synced",
    "xero_synced": "2026-07-01T15:20",
    "notes": null
   },
   {
    "id": 2,
    "ref": "BILL-5102",
    "supplier_ref": "103-95271",
    "supplier_id": 3,
    "po_id": 18,
    "issued": "2026-07-09",
    "due": "2026-08-23",
    "subtotal_cents": 2240000,
    "gst_cents": 224000,
    "total_cents": 2464000,
    "status": "Paid",
    "paid_on": "2026-08-20",
    "xero_id": "x-bill-2",
    "xero_status": "Synced",
    "xero_synced": "2026-07-09T15:20",
    "notes": null
   },
   {
    "id": 3,
    "ref": "BILL-5103",
    "supplier_ref": "107-77510",
    "supplier_id": 7,
    "po_id": 20,
    "issued": "2026-06-26",
    "due": "2026-08-10",
    "subtotal_cents": 576700,
    "gst_cents": 57670,
    "total_cents": 634370,
    "status": "Paid",
    "paid_on": "2026-08-07",
    "xero_id": "x-bill-3",
    "xero_status": "Synced",
    "xero_synced": "2026-06-26T15:20",
    "notes": null
   },
   {
    "id": 4,
    "ref": "BILL-5104",
    "supplier_ref": "108-59207",
    "supplier_id": 8,
    "po_id": 24,
    "issued": "2026-07-02",
    "due": "2026-08-16",
    "subtotal_cents": 137000,
    "gst_cents": 13700,
    "total_cents": 150700,
    "status": "Paid",
    "paid_on": "2026-08-13",
    "xero_id": "x-bill-4",
    "xero_status": "Synced",
    "xero_synced": "2026-07-02T15:20",
    "notes": null
   },
   {
    "id": 5,
    "ref": "BILL-5105",
    "supplier_ref": "110-65561",
    "supplier_id": 10,
    "po_id": 21,
    "issued": "2026-06-29",
    "due": "2026-08-13",
    "subtotal_cents": 440000,
    "gst_cents": 44000,
    "total_cents": 484000,
    "status": "Paid",
    "paid_on": "2026-08-10",
    "xero_id": "x-bill-5",
    "xero_status": "Synced",
    "xero_synced": "2026-06-29T15:20",
    "notes": null
   },
   {
    "id": 6,
    "ref": "BILL-5106",
    "supplier_ref": "101-57975",
    "supplier_id": 1,
    "po_id": 22,
    "issued": "2026-06-23",
    "due": "2026-08-07",
    "subtotal_cents": 185200,
    "gst_cents": 18520,
    "total_cents": 203720,
    "status": "Paid",
    "paid_on": "2026-08-04",
    "xero_id": "x-bill-6",
    "xero_status": "Synced",
    "xero_synced": "2026-06-23T15:20",
    "notes": null
   },
   {
    "id": 7,
    "ref": "BILL-5107",
    "supplier_ref": "106-98366",
    "supplier_id": 6,
    "po_id": 23,
    "issued": "2026-06-23",
    "due": "2026-08-07",
    "subtotal_cents": 126500,
    "gst_cents": 12650,
    "total_cents": 139150,
    "status": "Paid",
    "paid_on": "2026-08-04",
    "xero_id": "x-bill-7",
    "xero_status": "Synced",
    "xero_synced": "2026-06-23T15:20",
    "notes": null
   },
   {
    "id": 8,
    "ref": "BILL-5108",
    "supplier_ref": "109-89899",
    "supplier_id": 9,
    "po_id": 25,
    "issued": "2026-06-25",
    "due": "2026-08-09",
    "subtotal_cents": 736000,
    "gst_cents": 73600,
    "total_cents": 809600,
    "status": "Paid",
    "paid_on": "2026-08-06",
    "xero_id": "x-bill-8",
    "xero_status": "Synced",
    "xero_synced": "2026-06-25T15:20",
    "notes": null
   },
   {
    "id": 9,
    "ref": "BILL-5109",
    "supplier_ref": "102-83784",
    "supplier_id": 2,
    "po_id": 27,
    "issued": "2026-08-06",
    "due": "2026-09-20",
    "subtotal_cents": 3446000,
    "gst_cents": 344600,
    "total_cents": 3790600,
    "status": "Paid",
    "paid_on": "2026-09-17",
    "xero_id": "x-bill-9",
    "xero_status": "Synced",
    "xero_synced": "2026-08-06T15:20",
    "notes": null
   },
   {
    "id": 10,
    "ref": "BILL-5110",
    "supplier_ref": "106-50632",
    "supplier_id": 6,
    "po_id": 30,
    "issued": "2026-07-28",
    "due": "2026-09-11",
    "subtotal_cents": 740000,
    "gst_cents": 74000,
    "total_cents": 814000,
    "status": "Paid",
    "paid_on": "2026-09-08",
    "xero_id": "x-bill-10",
    "xero_status": "Synced",
    "xero_synced": "2026-07-28T15:20",
    "notes": null
   },
   {
    "id": 11,
    "ref": "BILL-5111",
    "supplier_ref": "107-71503",
    "supplier_id": 7,
    "po_id": 28,
    "issued": "2026-07-31",
    "due": "2026-09-14",
    "subtotal_cents": 576700,
    "gst_cents": 57670,
    "total_cents": 634370,
    "status": "Paid",
    "paid_on": "2026-09-11",
    "xero_id": "x-bill-11",
    "xero_status": "Synced",
    "xero_synced": "2026-07-31T15:20",
    "notes": null
   },
   {
    "id": 12,
    "ref": "BILL-5112",
    "supplier_ref": "110-61353",
    "supplier_id": 10,
    "po_id": 29,
    "issued": "2026-08-03",
    "due": "2026-09-17",
    "subtotal_cents": 880000,
    "gst_cents": 88000,
    "total_cents": 968000,
    "status": "Paid",
    "paid_on": "2026-09-14",
    "xero_id": "x-bill-12",
    "xero_status": "Synced",
    "xero_synced": "2026-08-03T15:20",
    "notes": null
   },
   {
    "id": 13,
    "ref": "BILL-5113",
    "supplier_ref": "101-93923",
    "supplier_id": 1,
    "po_id": 26,
    "issued": "2026-07-29",
    "due": "2026-09-12",
    "subtotal_cents": 928800,
    "gst_cents": 92880,
    "total_cents": 1021680,
    "status": "Paid",
    "paid_on": "2026-09-09",
    "xero_id": "x-bill-13",
    "xero_status": "Synced",
    "xero_synced": "2026-07-29T15:20",
    "notes": null
   },
   {
    "id": 14,
    "ref": "BILL-5114",
    "supplier_ref": "102-96786",
    "supplier_id": 2,
    "po_id": 1,
    "issued": "2026-10-16",
    "due": "2026-11-30",
    "subtotal_cents": 3596000,
    "gst_cents": 359600,
    "total_cents": 3955600,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-14",
    "xero_status": "Synced",
    "xero_synced": "2026-10-16T15:20",
    "notes": null
   },
   {
    "id": 15,
    "ref": "BILL-5115",
    "supplier_ref": "110-87324",
    "supplier_id": 10,
    "po_id": 2,
    "issued": "2026-10-07",
    "due": "2026-11-21",
    "subtotal_cents": 716000,
    "gst_cents": 71600,
    "total_cents": 787600,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-15",
    "xero_status": "Synced",
    "xero_synced": "2026-10-07T15:20",
    "notes": null
   },
   {
    "id": 16,
    "ref": "BILL-5116",
    "supplier_ref": "101-89154",
    "supplier_id": 1,
    "po_id": 3,
    "issued": "2026-09-29",
    "due": "2026-11-13",
    "subtotal_cents": 860800,
    "gst_cents": 86080,
    "total_cents": 946880,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-16",
    "xero_status": "Synced",
    "xero_synced": "2026-09-29T15:20",
    "notes": null
   },
   {
    "id": 17,
    "ref": "BILL-5117",
    "supplier_ref": "107-82781",
    "supplier_id": 7,
    "po_id": 4,
    "issued": "2026-10-09",
    "due": "2026-11-23",
    "subtotal_cents": 501200,
    "gst_cents": 50120,
    "total_cents": 551320,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-17",
    "xero_status": "Synced",
    "xero_synced": "2026-10-09T15:20",
    "notes": null
   },
   {
    "id": 18,
    "ref": "BILL-5118",
    "supplier_ref": "106-76138",
    "supplier_id": 6,
    "po_id": 5,
    "issued": "2026-09-29",
    "due": "2026-11-13",
    "subtotal_cents": 232200,
    "gst_cents": 23220,
    "total_cents": 255420,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-18",
    "xero_status": "Synced",
    "xero_synced": "2026-09-29T15:20",
    "notes": null
   },
   {
    "id": 19,
    "ref": "BILL-5119",
    "supplier_ref": "108-99431",
    "supplier_id": 8,
    "po_id": 6,
    "issued": "2026-10-15",
    "due": "2026-11-29",
    "subtotal_cents": 462000,
    "gst_cents": 46200,
    "total_cents": 508200,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-19",
    "xero_status": "Synced",
    "xero_synced": "2026-10-15T15:20",
    "notes": null
   },
   {
    "id": 20,
    "ref": "BILL-5120",
    "supplier_ref": "102-49571",
    "supplier_id": 2,
    "po_id": 16,
    "issued": "2026-10-13",
    "due": "2026-11-27",
    "subtotal_cents": 548000,
    "gst_cents": 54800,
    "total_cents": 602800,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-20",
    "xero_status": "Synced",
    "xero_synced": "2026-10-13T15:20",
    "notes": null
   },
   {
    "id": 21,
    "ref": "BILL-5121",
    "supplier_ref": "110-53088",
    "supplier_id": 10,
    "po_id": 17,
    "issued": "2026-10-09",
    "due": "2026-11-23",
    "subtotal_cents": 528000,
    "gst_cents": 52800,
    "total_cents": 580800,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-21",
    "xero_status": "Synced",
    "xero_synced": "2026-10-09T15:20",
    "notes": null
   },
   {
    "id": 22,
    "ref": "BILL-5122",
    "supplier_ref": "107-60875",
    "supplier_id": 7,
    "po_id": 11,
    "issued": "2026-10-23",
    "due": "2026-12-07",
    "subtotal_cents": 197100,
    "gst_cents": 19710,
    "total_cents": 216810,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-22",
    "xero_status": "Synced",
    "xero_synced": "2026-10-23T15:20",
    "notes": null
   },
   {
    "id": 23,
    "ref": "BILL-5123",
    "supplier_ref": "108-89178",
    "supplier_id": 8,
    "po_id": 13,
    "issued": "2026-10-30",
    "due": "2026-12-14",
    "subtotal_cents": 178000,
    "gst_cents": 17800,
    "total_cents": 195800,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-23",
    "xero_status": "Synced",
    "xero_synced": "2026-10-30T15:20",
    "notes": null
   },
   {
    "id": 24,
    "ref": "BILL-5124",
    "supplier_ref": "101-49909",
    "supplier_id": 1,
    "po_id": 14,
    "issued": "2026-10-20",
    "due": "2026-12-04",
    "subtotal_cents": 370400,
    "gst_cents": 37040,
    "total_cents": 407440,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-24",
    "xero_status": "Synced",
    "xero_synced": "2026-10-20T15:20",
    "notes": null
   },
   {
    "id": 25,
    "ref": "BILL-5125",
    "supplier_ref": "106-83679",
    "supplier_id": 6,
    "po_id": 15,
    "issued": "2026-10-16",
    "due": "2026-11-30",
    "subtotal_cents": 1533000,
    "gst_cents": 153300,
    "total_cents": 1686300,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-25",
    "xero_status": "Synced",
    "xero_synced": "2026-10-16T15:20",
    "notes": null
   },
   {
    "id": 26,
    "ref": "BILL-5126",
    "supplier_ref": "111-59708",
    "supplier_id": 11,
    "po_id": 9,
    "issued": "2026-11-02",
    "due": "2026-12-17",
    "subtotal_cents": 883200,
    "gst_cents": 88320,
    "total_cents": 971520,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": null,
    "xero_status": "Error",
    "xero_synced": null,
    "notes": "Supplier not linked to a Xero contact"
   },
   {
    "id": 27,
    "ref": "BILL-5127",
    "supplier_ref": "109-57587",
    "supplier_id": 9,
    "po_id": 10,
    "issued": "2026-11-03",
    "due": "2026-12-18",
    "subtotal_cents": 182400,
    "gst_cents": 18240,
    "total_cents": 200640,
    "status": "Awaiting payment",
    "paid_on": null,
    "xero_id": "x-bill-27",
    "xero_status": "Synced",
    "xero_synced": "2026-11-03T15:20",
    "notes": null
   }
  ],
  "xero_log": [
   {
    "id": 1,
    "ts": "2026-06-23T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5106",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0343 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 2,
    "ts": "2026-06-23T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5107",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0345 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 3,
    "ts": "2026-06-25T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5108",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0350 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 4,
    "ts": "2026-06-26T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5103",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0337 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 5,
    "ts": "2026-06-29T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5105",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0340 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 6,
    "ts": "2026-07-01T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5101",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0335 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 7,
    "ts": "2026-07-01T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2237",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-029 tracking",
    "href": "/invoices/1"
   },
   {
    "id": 8,
    "ts": "2026-07-02T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5104",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0348 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 9,
    "ts": "2026-07-09T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5102",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0333 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 10,
    "ts": "2026-07-27T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2239",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-033 tracking",
    "href": "/invoices/3"
   },
   {
    "id": 11,
    "ts": "2026-07-28T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5110",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0363 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 12,
    "ts": "2026-07-29T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5113",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0353 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 13,
    "ts": "2026-07-30T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2237",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/1"
   },
   {
    "id": 14,
    "ts": "2026-07-31T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5111",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0358 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 15,
    "ts": "2026-08-03T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5112",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0361 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 16,
    "ts": "2026-08-03T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2240",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-029 tracking",
    "href": "/invoices/2"
   },
   {
    "id": 17,
    "ts": "2026-08-06T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5109",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0356 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 18,
    "ts": "2026-08-25T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2239",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/3"
   },
   {
    "id": 19,
    "ts": "2026-08-26T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2241",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-033 tracking",
    "href": "/invoices/8"
   },
   {
    "id": 20,
    "ts": "2026-08-31T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2242",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-034 tracking",
    "href": "/invoices/4"
   },
   {
    "id": 21,
    "ts": "2026-08-31T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2243",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-031 tracking",
    "href": "/invoices/5"
   },
   {
    "id": 22,
    "ts": "2026-09-01T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2245",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-032 tracking",
    "href": "/invoices/6"
   },
   {
    "id": 23,
    "ts": "2026-09-07T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2240",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/2"
   },
   {
    "id": 24,
    "ts": "2026-09-14T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2246",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-029 tracking",
    "href": "/invoices/7"
   },
   {
    "id": 25,
    "ts": "2026-09-25T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2241",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/8"
   },
   {
    "id": 26,
    "ts": "2026-09-28T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2248",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-033 tracking",
    "href": "/invoices/9"
   },
   {
    "id": 27,
    "ts": "2026-09-28T16:40",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2248",
    "action": "Create invoice",
    "status": "Skipped",
    "message": "Already in Xero (matched on invoice number INV-2248) — not sent again",
    "href": "/invoices/9"
   },
   {
    "id": 28,
    "ts": "2026-09-29T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5116",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0295 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 29,
    "ts": "2026-09-29T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5118",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0300 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 30,
    "ts": "2026-09-30T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2249",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-035 tracking",
    "href": "/invoices/11"
   },
   {
    "id": 31,
    "ts": "2026-09-30T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2251",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-031 tracking",
    "href": "/invoices/12"
   },
   {
    "id": 32,
    "ts": "2026-09-30T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2242",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/4"
   },
   {
    "id": 33,
    "ts": "2026-09-30T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2245",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/6"
   },
   {
    "id": 34,
    "ts": "2026-10-01T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2252",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-036 tracking",
    "href": "/invoices/10"
   },
   {
    "id": 35,
    "ts": "2026-10-01T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2253",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-032 tracking",
    "href": "/invoices/13"
   },
   {
    "id": 36,
    "ts": "2026-10-01T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2255",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-037 tracking",
    "href": "/invoices/15"
   },
   {
    "id": 37,
    "ts": "2026-10-02T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2256",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-041 tracking",
    "href": "/invoices/14"
   },
   {
    "id": 38,
    "ts": "2026-10-03T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2243",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/5"
   },
   {
    "id": 39,
    "ts": "2026-10-07T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5115",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0293 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 40,
    "ts": "2026-10-09T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5117",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0297 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 41,
    "ts": "2026-10-09T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5121",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0330 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 42,
    "ts": "2026-10-13T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5120",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0328 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 43,
    "ts": "2026-10-15T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5119",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0302 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 44,
    "ts": "2026-10-16T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5114",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0291 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 45,
    "ts": "2026-10-16T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5125",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0325 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 46,
    "ts": "2026-10-19T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2257",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-034 tracking",
    "href": "/invoices/17"
   },
   {
    "id": 47,
    "ts": "2026-10-19T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2246",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/7"
   },
   {
    "id": 48,
    "ts": "2026-10-20T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5124",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0323 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 49,
    "ts": "2026-10-23T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5122",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0315 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 50,
    "ts": "2026-10-27T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2258",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-033 tracking",
    "href": "/invoices/16"
   },
   {
    "id": 51,
    "ts": "2026-10-30T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5123",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0320 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 52,
    "ts": "2026-10-30T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2249",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/11"
   },
   {
    "id": 53,
    "ts": "2026-10-31T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2260",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-031 tracking",
    "href": "/invoices/18"
   },
   {
    "id": 54,
    "ts": "2026-10-31T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2261",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-035 tracking",
    "href": "/invoices/19"
   },
   {
    "id": 55,
    "ts": "2026-11-01T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2248",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/9"
   },
   {
    "id": 56,
    "ts": "2026-11-02T15:22",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5126",
    "action": "Create bill",
    "status": "Error",
    "message": "Contact 'Iplex Pipelines' is not linked to a Xero contact. Link the supplier, then retry.",
    "href": "/xero"
   },
   {
    "id": 57,
    "ts": "2026-11-02T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2262",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-032 tracking",
    "href": "/invoices/20"
   },
   {
    "id": 58,
    "ts": "2026-11-02T16:10",
    "direction": "Out",
    "entity": "Invoice",
    "ref": "INV-2264",
    "action": "Created in Xero as ACCREC",
    "status": "OK",
    "message": "Coded 200 Sales — J-26-036 tracking",
    "href": "/invoices/21"
   },
   {
    "id": 59,
    "ts": "2026-11-02T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2253",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/13"
   },
   {
    "id": 60,
    "ts": "2026-11-02T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2257",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/17"
   },
   {
    "id": 61,
    "ts": "2026-11-03T15:20",
    "direction": "Out",
    "entity": "Bill",
    "ref": "BILL-5127",
    "action": "Created in Xero as ACCPAY",
    "status": "OK",
    "message": "Linked to PO-26-0313 — coded to job allocations",
    "href": "/invoices?tab=bills"
   },
   {
    "id": 62,
    "ts": "2026-11-03T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2252",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/10"
   },
   {
    "id": 63,
    "ts": "2026-11-04T07:30",
    "direction": "In",
    "entity": "Payments",
    "ref": "—",
    "action": "Scheduled payment check",
    "status": "OK",
    "message": "No new payments since 03 Nov 18:00",
    "href": "/xero"
   },
   {
    "id": 64,
    "ts": "2026-11-04T18:00",
    "direction": "In",
    "entity": "Payment",
    "ref": "INV-2251",
    "action": "Payment received",
    "status": "OK",
    "message": "Full payment matched in Xero bank feed",
    "href": "/invoices/12"
   }
  ],
  "audit": [
   {
    "id": 1,
    "ts": "2026-10-01T09:12",
    "who": "Jordan Price",
    "entity": "Part",
    "ref": "ABB-ACS580-75",
    "field": "Cost price",
    "old_value": "$9,100.00",
    "new_value": "$9,420.00",
    "href": "/parts?q=ABB-ACS580-75"
   },
   {
    "id": 2,
    "ts": "2026-10-01T09:13",
    "who": "Jordan Price",
    "entity": "Part",
    "ref": "ABB-ACS580-37",
    "field": "Cost price",
    "old_value": "$4,960.00",
    "new_value": "$5,120.00",
    "href": "/parts?q=ABB-ACS580-37"
   },
   {
    "id": 3,
    "ts": "2026-10-01T09:14",
    "who": "Jordan Price",
    "entity": "Part",
    "ref": "ABB-ACS580-22",
    "field": "Cost price",
    "old_value": "$3,180.00",
    "new_value": "$3,280.00",
    "href": "/parts?q=ABB-ACS580-22"
   },
   {
    "id": 4,
    "ts": "2026-10-08T14:30",
    "who": "Kate Morrison",
    "entity": "Part",
    "ref": "GF-CR45-3-22",
    "field": "Sell price",
    "old_value": "$17,950.00",
    "new_value": "$18,115.00",
    "href": "/parts?q=GF-CR45-3-22"
   },
   {
    "id": 5,
    "ts": "2026-10-15T11:02",
    "who": "John Lenoard",
    "entity": "Variation",
    "ref": "J-26-041 V-01",
    "field": "Status",
    "old_value": "Submitted",
    "new_value": "Approved",
    "href": "/jobs/1#variations"
   },
   {
    "id": 6,
    "ts": "2026-10-15T11:04",
    "who": "Daniel Reeves",
    "entity": "Job",
    "ref": "J-26-041",
    "field": "Budget — materials",
    "old_value": "$43,284",
    "new_value": "$49,244 (V-01)",
    "href": "/jobs/1"
   },
   {
    "id": 7,
    "ts": "2026-10-02T15:58",
    "who": "John Lenoard",
    "entity": "Progress claim",
    "ref": "PC-26-041-01",
    "field": "Status",
    "old_value": "Draft",
    "new_value": "Approved",
    "href": "/claims/14"
   },
   {
    "id": 8,
    "ts": "2026-10-02T16:10",
    "who": "Kate Morrison",
    "entity": "Invoice",
    "ref": "INV-2256",
    "field": "Xero",
    "old_value": "Not sent",
    "new_value": "Synced",
    "href": "/invoices/14"
   },
   {
    "id": 9,
    "ts": "2026-10-30T10:20",
    "who": "Jordan Price",
    "entity": "Purchase order",
    "ref": "PO-26-0356",
    "field": "ETA",
    "old_value": "13 Nov 2026",
    "new_value": "27 Nov 2026",
    "href": "/purchasing/7"
   },
   {
    "id": 10,
    "ts": "2026-10-27T16:45",
    "who": "Daniel Reeves",
    "entity": "Job",
    "ref": "J-26-033",
    "field": "Budget — labour hours",
    "old_value": "340",
    "new_value": "366",
    "href": "/jobs/4"
   },
   {
    "id": 11,
    "ts": "2026-11-03T08:05",
    "who": "Kate Morrison",
    "entity": "Quote",
    "ref": "Q-26-0183",
    "field": "Status",
    "old_value": "Draft",
    "new_value": "Awaiting approval",
    "href": "/quotes/16"
   }
  ],
  "staff": [
   {
    "id": 1,
    "name": "John Lenoard",
    "role": "Managing Director",
    "dept": "Management",
    "initials": "JL",
    "email": "john@hydrapowersolutions.com.au",
    "phone": "0418 226 714",
    "level": "Administrator",
    "access": "all",
    "cost_rate_cents": 0,
    "charge_rate_cents": 0,
    "since": "2019-03-01",
    "active": 1
   },
   {
    "id": 2,
    "name": "Kate Morrison",
    "role": "Office & Accounts Manager",
    "dept": "Office",
    "initials": "KM",
    "email": "accounts@hydrapowersolutions.com.au",
    "phone": "02 4964 1180",
    "level": "Office / project manager",
    "access": "dashboard,enquiries,quotes,customers,jobs,production,schedule,timesheets,parts,purchasing,suppliers,claims,invoices,xero,profit",
    "cost_rate_cents": 0,
    "charge_rate_cents": 0,
    "since": "2019-06-17",
    "active": 1
   },
   {
    "id": 3,
    "name": "Daniel Reeves",
    "role": "Project Manager",
    "dept": "Projects",
    "initials": "DR",
    "email": "daniel@hydrapowersolutions.com.au",
    "phone": "0427 381 552",
    "level": "Office / project manager",
    "access": "dashboard,enquiries,quotes,customers,jobs,production,schedule,timesheets,parts,purchasing,suppliers,claims,invoices,xero,profit",
    "cost_rate_cents": 9800,
    "charge_rate_cents": 15500,
    "since": "2020-02-10",
    "active": 1
   },
   {
    "id": 4,
    "name": "Sam Whitaker",
    "role": "Electrical / Project Engineer",
    "dept": "Engineering",
    "initials": "SW",
    "email": "sam@hydrapowersolutions.com.au",
    "phone": "0431 902 118",
    "level": "Office / project manager",
    "access": "dashboard,enquiries,quotes,customers,jobs,production,schedule,timesheets,parts,purchasing,suppliers,claims,invoices,xero,profit",
    "cost_rate_cents": 9500,
    "charge_rate_cents": 14500,
    "since": "2021-08-02",
    "active": 1
   },
   {
    "id": 5,
    "name": "Amy Tran",
    "role": "Electrical Drafter",
    "dept": "Engineering",
    "initials": "AT",
    "email": "amy@hydrapowersolutions.com.au",
    "phone": "0402 557 093",
    "level": "Office / project manager",
    "access": "dashboard,enquiries,quotes,customers,jobs,production,schedule,timesheets,parts,purchasing,suppliers,claims,invoices,xero,profit",
    "cost_rate_cents": 7800,
    "charge_rate_cents": 14500,
    "since": "2022-04-19",
    "active": 1
   },
   {
    "id": 6,
    "name": "Jordan Price",
    "role": "Stores & Purchasing",
    "dept": "Office",
    "initials": "JP",
    "email": "purchasing@hydrapowersolutions.com.au",
    "phone": "02 4964 1183",
    "level": "Office / project manager",
    "access": "dashboard,enquiries,quotes,customers,jobs,production,schedule,timesheets,parts,purchasing,suppliers,claims,invoices,xero,profit",
    "cost_rate_cents": 0,
    "charge_rate_cents": 0,
    "since": "2021-01-11",
    "active": 1
   },
   {
    "id": 7,
    "name": "Luke Harding",
    "role": "Workshop Supervisor",
    "dept": "Workshop",
    "initials": "LH",
    "email": "luke@hydrapowersolutions.com.au",
    "phone": "0419 644 270",
    "level": "Workshop",
    "access": "jobs,production,schedule,timesheets,parts",
    "cost_rate_cents": 8200,
    "charge_rate_cents": 11500,
    "since": "2019-05-06",
    "active": 1
   },
   {
    "id": 8,
    "name": "Ryan Cole",
    "role": "Electrical Tradesperson",
    "dept": "Workshop",
    "initials": "RC",
    "email": null,
    "phone": "0438 120 966",
    "level": "Workshop",
    "access": "jobs,production,schedule,timesheets,parts",
    "cost_rate_cents": 7200,
    "charge_rate_cents": 11500,
    "since": "2020-09-14",
    "active": 1
   },
   {
    "id": 9,
    "name": "Tyler Nguyen",
    "role": "Electrical Tradesperson",
    "dept": "Workshop",
    "initials": "TN",
    "email": null,
    "phone": "0447 803 215",
    "level": "Workshop",
    "access": "jobs,production,schedule,timesheets,parts",
    "cost_rate_cents": 7200,
    "charge_rate_cents": 11500,
    "since": "2022-01-24",
    "active": 1
   },
   {
    "id": 10,
    "name": "Ben Adams",
    "role": "Apprentice Electrician (3rd yr)",
    "dept": "Workshop",
    "initials": "BA",
    "email": null,
    "phone": "0459 226 041",
    "level": "Workshop",
    "access": "jobs,production,schedule,timesheets,parts",
    "cost_rate_cents": 3800,
    "charge_rate_cents": 7500,
    "since": "2024-01-15",
    "active": 1
   },
   {
    "id": 11,
    "name": "Josh Bell",
    "role": "Mechanical Fitter",
    "dept": "Workshop",
    "initials": "JB",
    "email": null,
    "phone": "0412 771 308",
    "level": "Workshop",
    "access": "jobs,production,schedule,timesheets,parts",
    "cost_rate_cents": 7000,
    "charge_rate_cents": 11500,
    "since": "2021-03-29",
    "active": 1
   },
   {
    "id": 12,
    "name": "Mick O'Connell",
    "role": "Mechanical Fitter / Poly Welder",
    "dept": "Workshop",
    "initials": "MO",
    "email": null,
    "phone": "0421 590 447",
    "level": "Workshop",
    "access": "jobs,production,schedule,timesheets,parts",
    "cost_rate_cents": 7000,
    "charge_rate_cents": 11500,
    "since": "2019-11-04",
    "active": 1
   },
   {
    "id": 13,
    "name": "Chris Walsh",
    "role": "Site Supervisor",
    "dept": "Field",
    "initials": "CW",
    "email": "chris@hydrapowersolutions.com.au",
    "phone": "0408 312 659",
    "level": "Workshop",
    "access": "jobs,production,schedule,timesheets,parts",
    "cost_rate_cents": 8400,
    "charge_rate_cents": 12500,
    "since": "2020-06-22",
    "active": 1
   }
  ],
  "settings": [
   {
    "key": "quote_approval_cents",
    "value": "5000000"
   },
   {
    "key": "po_approval_cents",
    "value": "1500000"
   },
   {
    "key": "xero_org",
    "value": "Hydra Power Solutions Pty Ltd (simulated)"
   },
   {
    "key": "xero_last_sync",
    "value": "2026-11-04T07:30"
   },
   {
    "key": "xero_connected",
    "value": "1"
   },
   {
    "key": "tour_quote",
    "value": "14"
   },
   {
    "key": "tour_job",
    "value": "1"
   },
   {
    "key": "tour_job2",
    "value": "2"
   },
   {
    "key": "tour_claim",
    "value": "23"
   },
   {
    "key": "tour_po",
    "value": "7"
   },
   {
    "key": "tour_task",
    "value": "13"
   },
   {
    "key": "tour_task2",
    "value": "4"
   },
   {
    "key": "xero_pay_queue",
    "value": "14"
   },
   {
    "key": "next_job",
    "value": "43"
   },
   {
    "key": "next_inv",
    "value": "2265"
   }
  ]
 }
}