{
  "version": 1,
  "retrieved_date": "2026-09-09",
  "purpose": "Review benchmark observations; not approved cost book or complete installed rates",
  "observations": [
    {
      "id": "NC-CEM-01",
      "source_id": "afrisam-kuruman",
      "source_url": "https://www.cashbuild.co.za/cement-yard/301-cement-afrisam-all-purpose-425n?link_store=QBZ3qnx7",
      "evidence_sha256": "83b3bc0d3c9919209e0164ea65b307a2ec5a8a68ba9f0205fa0631650d4d9122",
      "retrieved_at": "2026-09-09T07:43:18.679086+00:00",
      "region": "NC",
      "town": "Kuruman",
      "sku": "301",
      "description": "AfriSam all purpose 42.5N, 50 kg",
      "unit": "50 kg bag",
      "price_zar": "122.85",
      "vat_basis": "included",
      "ex_vat_zar": "106.83",
      "source_page": null,
      "valid_until": null,
      "kind": "material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": "1.00",
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "local_single_supplier_observation"
    },
    {
      "id": "NC-CEM-02",
      "source_id": "sephaku425-kuruman",
      "source_url": "https://www.cashbuild.co.za/cement-yard/303655-cement-sephaku-425n?link_store=QBZ3qnx7",
      "evidence_sha256": "60227295c6e002fd461238fb2d3b89bb6ee49e8fbb3b5fedaa838ffa19f5d881",
      "retrieved_at": "2026-09-09T07:43:19.164365+00:00",
      "region": "NC",
      "town": "Kuruman",
      "sku": "303655",
      "description": "Sephaku 42.5N, 50 kg",
      "unit": "50 kg bag",
      "price_zar": "118.45",
      "vat_basis": "included",
      "ex_vat_zar": "103.00",
      "source_page": null,
      "valid_until": null,
      "kind": "material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": "1.00",
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "local_single_supplier_observation"
    },
    {
      "id": "NC-TILE-01",
      "source_id": "cashbuild-nc-9762",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "evidence_sha256": "e472d1811b09a3f11decde17070672765fecadd1efe8bf45a37f0c1709bb4d21",
      "retrieved_at": "2026-09-09T07:43:13.462982+00:00",
      "region": "NC",
      "town": "Kuruman / Mothibistad",
      "sku": "324776",
      "description": "Vera Grey 35 x 35 cm; box covers 2 m2",
      "unit": "m2",
      "price_zar": "112.95",
      "vat_basis": "included",
      "ex_vat_zar": "98.22",
      "source_page": 1,
      "valid_until": "2026-09-20",
      "kind": "material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": null,
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "local_single_supplier_observation"
    },
    {
      "id": "NC-TILE-02",
      "source_id": "cashbuild-nc-9762",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "evidence_sha256": "e472d1811b09a3f11decde17070672765fecadd1efe8bf45a37f0c1709bb4d21",
      "retrieved_at": "2026-09-09T07:43:13.462982+00:00",
      "region": "NC",
      "town": "Kuruman / Mothibistad",
      "sku": "327247",
      "description": "Icon White porcelain 60 x 60 cm; box covers 1.44 m2",
      "unit": "m2",
      "price_zar": "179.95",
      "vat_basis": "included",
      "ex_vat_zar": "156.48",
      "source_page": 1,
      "valid_until": "2026-09-20",
      "kind": "material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": null,
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "local_single_supplier_observation"
    },
    {
      "id": "NC-TILE-03",
      "source_id": "cashbuild-nc-9762",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "evidence_sha256": "e472d1811b09a3f11decde17070672765fecadd1efe8bf45a37f0c1709bb4d21",
      "retrieved_at": "2026-09-09T07:43:13.462982+00:00",
      "region": "NC",
      "town": "Kuruman / Mothibistad",
      "sku": "324733",
      "description": "Hercules Stone 42 x 42 cm; box covers 1.59 m2",
      "unit": "m2",
      "price_zar": "122.95",
      "vat_basis": "included",
      "ex_vat_zar": "106.91",
      "source_page": 1,
      "valid_until": "2026-09-20",
      "kind": "material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": null,
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "local_single_supplier_observation"
    },
    {
      "id": "NC-STEEL-01",
      "source_id": "cashbuild-nc-9762",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "evidence_sha256": "e472d1811b09a3f11decde17070672765fecadd1efe8bf45a37f0c1709bb4d21",
      "retrieved_at": "2026-09-09T07:43:13.462982+00:00",
      "region": "NC",
      "town": "Kuruman / Mothibistad",
      "sku": "478",
      "description": "Square tube 50 x 50 x 1.6 mm, 6 m",
      "unit": "6 m length",
      "price_zar": "357.95",
      "vat_basis": "included",
      "ex_vat_zar": "311.26",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "kind": "material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": null,
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "local_single_supplier_observation"
    },
    {
      "id": "NC-STEEL-02",
      "source_id": "cashbuild-nc-9762",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "evidence_sha256": "e472d1811b09a3f11decde17070672765fecadd1efe8bf45a37f0c1709bb4d21",
      "retrieved_at": "2026-09-09T07:43:13.462982+00:00",
      "region": "NC",
      "town": "Kuruman / Mothibistad",
      "sku": "304065",
      "description": "Square tube 75 x 75 x 1.6 mm, 6 m",
      "unit": "6 m length",
      "price_zar": "534.95",
      "vat_basis": "included",
      "ex_vat_zar": "465.17",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "kind": "material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": null,
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "local_single_supplier_observation"
    },
    {
      "id": "NC-STEEL-03",
      "source_id": "cashbuild-nc-9762",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "evidence_sha256": "e472d1811b09a3f11decde17070672765fecadd1efe8bf45a37f0c1709bb4d21",
      "retrieved_at": "2026-09-09T07:43:13.462982+00:00",
      "region": "NC",
      "town": "Kuruman / Mothibistad",
      "sku": "304087",
      "description": "Lip channel 75 x 20 x 50 x 2 mm, 6 m",
      "unit": "6 m length",
      "price_zar": "464.95",
      "vat_basis": "included",
      "ex_vat_zar": "404.30",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "kind": "material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": null,
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "local_single_supplier_observation"
    },
    {
      "id": "NC-STEEL-04",
      "source_id": "cashbuild-nc-9762",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "evidence_sha256": "e472d1811b09a3f11decde17070672765fecadd1efe8bf45a37f0c1709bb4d21",
      "retrieved_at": "2026-09-09T07:43:13.462982+00:00",
      "region": "NC",
      "town": "Kuruman / Mothibistad",
      "sku": "314066",
      "description": "Rectangular tube 76 x 38 x 1.6 mm, 6 m",
      "unit": "6 m length",
      "price_zar": "399.95",
      "vat_basis": "included",
      "ex_vat_zar": "347.78",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "kind": "material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": null,
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "local_single_supplier_observation"
    },
    {
      "id": "NC-PAINT-01",
      "source_id": "cashbuild-nc-9762",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "evidence_sha256": "e472d1811b09a3f11decde17070672765fecadd1efe8bf45a37f0c1709bb4d21",
      "retrieved_at": "2026-09-09T07:43:13.462982+00:00",
      "region": "NC",
      "town": "Kuruman / Mothibistad",
      "sku": "5075",
      "description": "Dulux Rockgrip PVA white, 20 litres",
      "unit": "20 litre container",
      "price_zar": "629.95",
      "vat_basis": "included",
      "ex_vat_zar": "547.78",
      "source_page": 2,
      "valid_until": "2026-09-20",
      "kind": "material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": null,
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "local_single_supplier_observation"
    },
    {
      "id": "NW-CEM-01",
      "source_id": "afrisam-vryburg",
      "source_url": "https://www.cashbuild.co.za/cement-yard/301-cement-afrisam-all-purpose-425n?store=S144",
      "evidence_sha256": "d5040d25849ecf7ced98673d19d9cb6c133023420e44d484a7e2b1d1fd190fed",
      "retrieved_at": "2026-09-09T07:45:39.633234+00:00",
      "region": "NW",
      "town": "Vryburg Central",
      "sku": "301",
      "description": "AfriSam all purpose 42.5N, 50 kg",
      "unit": "50 kg bag",
      "price_zar": "113.65",
      "vat_basis": "included",
      "ex_vat_zar": "98.83",
      "source_page": null,
      "valid_until": null,
      "kind": "comparison_material",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-09",
      "date_basis": "observed on retrieval; publication start not established",
      "handling_zar_per_unit": "1.00",
      "delivery_basis": "Additional; project address, load and access must be checked",
      "status": "comparison_only"
    },
    {
      "id": "WAGE-1",
      "source_id": "bccei-wages-2026",
      "source_url": "https://bccei.co.za/wp-content/uploads/2026/01/Amended-Wages-and-Task-Grade-Collective-Agreement-Jan-2026.pdf",
      "evidence_sha256": "5feae950c5c651b4f44877620c28eeec2cfafa93975e8c426ee1fa15afad9b53",
      "retrieved_at": "2026-09-09T07:43:18.060755+00:00",
      "region": "ZA",
      "town": "Agreement scope applies",
      "sku": "1",
      "description": "Civil engineering task grade 1 minimum basic wage",
      "unit": "hour",
      "price_zar": "57.03",
      "vat_basis": "not_applicable",
      "ex_vat_zar": null,
      "source_page": 16,
      "valid_until": "2027-08-31",
      "kind": "wage_floor",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-01",
      "date_basis": "effective date stated in source",
      "handling_zar_per_unit": null,
      "delivery_basis": "Not a delivered material price",
      "status": "comparison_only"
    },
    {
      "id": "WAGE-2",
      "source_id": "bccei-wages-2026",
      "source_url": "https://bccei.co.za/wp-content/uploads/2026/01/Amended-Wages-and-Task-Grade-Collective-Agreement-Jan-2026.pdf",
      "evidence_sha256": "5feae950c5c651b4f44877620c28eeec2cfafa93975e8c426ee1fa15afad9b53",
      "retrieved_at": "2026-09-09T07:43:18.060755+00:00",
      "region": "ZA",
      "town": "Agreement scope applies",
      "sku": "2",
      "description": "Civil engineering task grade 2 minimum basic wage",
      "unit": "hour",
      "price_zar": "58.36",
      "vat_basis": "not_applicable",
      "ex_vat_zar": null,
      "source_page": 16,
      "valid_until": "2027-08-31",
      "kind": "wage_floor",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-01",
      "date_basis": "effective date stated in source",
      "handling_zar_per_unit": null,
      "delivery_basis": "Not a delivered material price",
      "status": "comparison_only"
    },
    {
      "id": "WAGE-3",
      "source_id": "bccei-wages-2026",
      "source_url": "https://bccei.co.za/wp-content/uploads/2026/01/Amended-Wages-and-Task-Grade-Collective-Agreement-Jan-2026.pdf",
      "evidence_sha256": "5feae950c5c651b4f44877620c28eeec2cfafa93975e8c426ee1fa15afad9b53",
      "retrieved_at": "2026-09-09T07:43:18.060755+00:00",
      "region": "ZA",
      "town": "Agreement scope applies",
      "sku": "3",
      "description": "Civil engineering task grade 3 minimum basic wage",
      "unit": "hour",
      "price_zar": "60.00",
      "vat_basis": "not_applicable",
      "ex_vat_zar": null,
      "source_page": 16,
      "valid_until": "2027-08-31",
      "kind": "wage_floor",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2026-09-01",
      "date_basis": "effective date stated in source",
      "handling_zar_per_unit": null,
      "delivery_basis": "Not a delivered material price",
      "status": "comparison_only"
    },
    {
      "id": "AE-HOUSE-E",
      "source_id": "aecom-2025-26",
      "source_url": "https://cdn.ymaws.com/www.asaqs.co.za/resource/resmgr/4_resources/free_resources/other_publications/aecom_africa_cost_guide_2025.pdf",
      "evidence_sha256": "6b9522646bbddecba2122c865c601a0487bb1a0bcda713aacf0337648e6c5259",
      "retrieved_at": "2026-09-09T07:41:34.116022+00:00",
      "region": "GAUTENG_BASIS",
      "town": "South Africa guide, mainly Gauteng data",
      "sku": "",
      "description": "Economic private dwelling",
      "unit": "m2 construction area",
      "price_zar": "7920",
      "vat_basis": "excluded",
      "ex_vat_zar": "7920",
      "source_page": 58,
      "valid_until": null,
      "kind": "building_context",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2025-07-01",
      "date_basis": "effective date stated in source",
      "handling_zar_per_unit": null,
      "delivery_basis": "Not a delivered material price",
      "status": "comparison_only"
    },
    {
      "id": "AE-HOUSE-S",
      "source_id": "aecom-2025-26",
      "source_url": "https://cdn.ymaws.com/www.asaqs.co.za/resource/resmgr/4_resources/free_resources/other_publications/aecom_africa_cost_guide_2025.pdf",
      "evidence_sha256": "6b9522646bbddecba2122c865c601a0487bb1a0bcda713aacf0337648e6c5259",
      "retrieved_at": "2026-09-09T07:41:34.116022+00:00",
      "region": "GAUTENG_BASIS",
      "town": "South Africa guide, mainly Gauteng data",
      "sku": "",
      "description": "Standard private dwelling",
      "unit": "m2 construction area",
      "price_zar": "9850",
      "vat_basis": "excluded",
      "ex_vat_zar": "9850",
      "source_page": 58,
      "valid_until": null,
      "kind": "building_context",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2025-07-01",
      "date_basis": "effective date stated in source",
      "handling_zar_per_unit": null,
      "delivery_basis": "Not a delivered material price",
      "status": "comparison_only"
    },
    {
      "id": "AE-HOUSE-M",
      "source_id": "aecom-2025-26",
      "source_url": "https://cdn.ymaws.com/www.asaqs.co.za/resource/resmgr/4_resources/free_resources/other_publications/aecom_africa_cost_guide_2025.pdf",
      "evidence_sha256": "6b9522646bbddecba2122c865c601a0487bb1a0bcda713aacf0337648e6c5259",
      "retrieved_at": "2026-09-09T07:41:34.116022+00:00",
      "region": "GAUTENG_BASIS",
      "town": "South Africa guide, mainly Gauteng data",
      "sku": "",
      "description": "Middle-class private dwelling",
      "unit": "m2 construction area",
      "price_zar": "11830",
      "vat_basis": "excluded",
      "ex_vat_zar": "11830",
      "source_page": 58,
      "valid_until": null,
      "kind": "building_context",
      "approved_for_cost_book": false,
      "source_count": 1,
      "price_date": "2025-07-01",
      "date_basis": "effective date stated in source",
      "handling_zar_per_unit": null,
      "delivery_basis": "Not a delivered material price",
      "status": "comparison_only"
    }
  ],
  "delivery_bands": [
    {
      "town": "Kuruman",
      "from_km": 0,
      "to_km": 15,
      "price_zar": "0",
      "vat_basis": "included",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "boundary_rule": "Adjacent printed bands overlap at endpoints; confirm exact boundary with store",
      "conditions": "Estimated delivery tariff; road access, handling, order value and load conditions require confirmation"
    },
    {
      "town": "Kuruman",
      "from_km": 15,
      "to_km": 45,
      "price_zar": "1035",
      "vat_basis": "included",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "boundary_rule": "Adjacent printed bands overlap at endpoints; confirm exact boundary with store",
      "conditions": "Estimated delivery tariff; road access, handling, order value and load conditions require confirmation"
    },
    {
      "town": "Kuruman",
      "from_km": 45,
      "to_km": 75,
      "price_zar": "1725",
      "vat_basis": "included",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "boundary_rule": "Adjacent printed bands overlap at endpoints; confirm exact boundary with store",
      "conditions": "Estimated delivery tariff; road access, handling, order value and load conditions require confirmation"
    },
    {
      "town": "Kuruman",
      "from_km": 75,
      "to_km": 100,
      "price_zar": "2300",
      "vat_basis": "included",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "boundary_rule": "Adjacent printed bands overlap at endpoints; confirm exact boundary with store",
      "conditions": "Estimated delivery tariff; road access, handling, order value and load conditions require confirmation"
    },
    {
      "town": "Mothibistad",
      "from_km": 0,
      "to_km": 30,
      "price_zar": "0",
      "vat_basis": "included",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "boundary_rule": "Adjacent printed bands overlap at endpoints; confirm exact boundary with store",
      "conditions": "Estimated delivery tariff; road access, handling, order value and load conditions require confirmation"
    },
    {
      "town": "Mothibistad",
      "from_km": 30,
      "to_km": 50,
      "price_zar": "1150",
      "vat_basis": "included",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "boundary_rule": "Adjacent printed bands overlap at endpoints; confirm exact boundary with store",
      "conditions": "Estimated delivery tariff; road access, handling, order value and load conditions require confirmation"
    },
    {
      "town": "Mothibistad",
      "from_km": 50,
      "to_km": 100,
      "price_zar": "2300",
      "vat_basis": "included",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "boundary_rule": "Adjacent printed bands overlap at endpoints; confirm exact boundary with store",
      "conditions": "Estimated delivery tariff; road access, handling, order value and load conditions require confirmation"
    },
    {
      "town": "Mothibistad",
      "from_km": 100,
      "to_km": 150,
      "price_zar": "3450",
      "vat_basis": "included",
      "source_url": "https://www.cashbuild.co.za/module/gb_leaflet/download?id_leaflet=9762",
      "source_page": 4,
      "valid_until": "2026-09-20",
      "boundary_rule": "Adjacent printed bands overlap at endpoints; confirm exact boundary with store",
      "conditions": "Estimated delivery tariff; road access, handling, order value and load conditions require confirmation"
    }
  ]
}