{
 "about": "Predictions for the 849 jobs without a label. System: claude-sonnet-5-5 reads the engineer forms (text only) and writes the quote with the quoting rules, the rate card and three worked examples in the prompt (frozen in analysis/frozen_v5). Code checks the codes against the rate card and adds up the totals. confidence: green = the rules give one answer from what the form states; yellow = a default or estimate was used; red = conflicting or missing information. possible_duplicate_of: another job has an identical form, so the same work may be quoted twice.",
 "jobs": [
  {
   "item": "J0002",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required says only 'see pictures', so confirm what needs replacing (channel and grates)",
    "The 900 mm is the concrete section length, not a stated defective length; the 2 m minimum was used",
    "Confirm the area between units 4 and 5 is not a car park or road (if it is, use rule 6.11 surfacing instead of MAT-CREP)",
    "Confirm there is no sump or trash box"
   ]
  },
  {
   "item": "J0003",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1490,
     "total": 2980.0,
     "rule": "7.3+5.9"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 3052.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm 2 nights after 19:00 is required, not just suggested, so nights rates apply",
    "Confirm the 110mm cast iron 90\u00b0 bend is priced as one PIP-FIT; cast iron may need a special part or couplings",
    "Confirm the number of days or nights needed for descaling the stack and PVC foul lines across 3 floors with CCTV",
    "Confirm access to the ground-floor void above the ducting (ladder, restricted space)",
    "Confirm whether waste from descaling needs removing"
   ]
  },
  {
   "item": "J0005",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 7.0,
     "unit_price": 330,
     "total": 2310.0,
     "rule": "3.2+3.3+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 4.0,
     "unit_price": 1150,
     "total": 4600.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 42.0,
     "unit_price": 68,
     "total": 2856.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 10171.0,
   "confidence": "green",
   "estimator_checks": [
    "7 covers: 3 single locations (service carpark, sbr carpark, site entrance) plus 4 foul water manholes (5, 9, 11, 15)",
    "covers are only seized or have broken keyholes, so confirm a replacement is wanted rather than a repair"
   ]
  },
  {
   "item": "J0006",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0007",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 290,
     "total": 580.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 3298.0,
   "confidence": "yellow",
   "estimator_checks": [
    "number of patch liners: one for the 2 displaced joints near 3.0m downstream of f6 plus one upstream of f5, assumed 2 in total",
    "whether the benching needs more material than the standard 4 mortar tubs (MAT-BENCH not added)",
    "whether traffic management is needed, as both manholes are in the road by a parking bay and EV charging points",
    "whether the second drainage crew is needed alongside the civils gang for the chamber repair and lining"
   ]
  },
  {
   "item": "J0008",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "2.2+4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2248.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening is only 300x300 (existing Floplast 340x340), so confirm the size and that CVR-PLATE is right for a pavement location",
    "confirm the grade: the form says B125 but also says a heavier grade is required",
    "'Part required' says 'undetermined'; a metal cover and frame was priced because the notes recommend one"
   ]
  },
  {
   "item": "J0009",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.19"
    },
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 55,
     "total": 275.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 6,
     "total": 168.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 3867.0,
   "confidence": "red",
   "estimator_checks": [
    "Defective run is 34 m, over the 10 m limit: only 2 m priced as a local repair. Confirm the actual scope and whether the full run should be quoted separately",
    "Form splits the run as 8 m S05 and 26 m S010 in the notes but 8 m and 24 m in Part required (conflict)",
    "Whether the tarmac is a car park or road (rule 6.11 used) and whether black dye is really needed (form asks for 15 tubs, 1 priced)",
    "Whether the engineer's extra kit (floor saw, mini digger, breaker, generator, 70 m fencing) should be added, as none is priced",
    "Sump replacement confirmed (1 x sump ordered)"
   ]
  },
  {
   "item": "J0010",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2918.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0011",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the basement/underground car park cover should be a sealed chequer plate rather than a cast-iron C250 cover",
    "Fob access to the underground car park needs to be arranged"
   ]
  },
  {
   "item": "J0013",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Out-of-hours (after 6pm) is only suggested in the form ('best to be done'), so it is quoted in hours; confirm whether the client requires out-of-hours, which would change the crew to LAB-DRN-ND",
    "Number of gullies: 2 confirmed, with a possible further 2 in the same car park; confirm the scope",
    "Confirm whether the gullies only need root clearing or also need new grates or pots",
    "Confirm whether any small materials are needed (MSC-01) and whether arisings need removing"
   ]
  },
  {
   "item": "J0014",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1590,
     "total": 4770.0,
     "rule": "7.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 6008.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether a dig is actually ordered, since 'Part required' only lists a vivax and locator",
    "whether a locate visit alone would be enough (crew visit)",
    "night or out-of-hours working is required (the form says it needs to be out of operational hours)",
    "kitchen floor finish (tiles or concrete) and the reinstatement needed",
    "kitchen fittings need moving and cleaning afterwards",
    "whether the dig can go ahead before the manhole is located",
    "what the manhole needs once it is found (cover, benching, etc.)"
   ]
  },
  {
   "item": "J0015",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 330,
     "total": 990.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.3+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3984.0,
   "confidence": "green",
   "estimator_checks": [
    "Out-of-hours working and permit are confirmed, so the nights/weekends crew rate is used",
    "640 x 640 is taken as the existing cover size, although the form says the opening could not be measured",
    "Block paving reinstatement is not included because the rules give no line for covers in block paving; confirm no surface lines are needed",
    "The 'split channel drainage' note is not priced; confirm no channel work is required"
   ]
  },
  {
   "item": "J0016",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1426.0,
   "confidence": "red",
   "estimator_checks": [
    "The form does not say what work is needed. Confirm whether the whole silt box/sump unit or only its cover and bolts are to be replaced. If the sump unit is replaced, use CHN-SUMP 1, CHN-RUN 1, CHN-GRATE 3 and LAB-CIV-D 1.",
    "No channel length is given; 2 m is the default minimum.",
    "The surface (tarmac or concrete) in the loading area is not stated, so no surface reinstatement lines are priced.",
    "The opening of 500x360 is a rough size and the depth could not be measured.",
    "The rounded-off bolts may be removable by other means, such as drilling or extraction, instead of replacement.",
    "The loading area is trafficked, so confirm that traffic management or fencing is not needed."
   ]
  },
  {
   "item": "J0017",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 asks for a new rat gate on the FW chamber (PIP-RAT, rule 7.5). Under 1.5 only the cover is priced, so confirm whether to quote the rat gate separately.",
    "Form 2 note says the cover is incorrect for the frame. Confirm the 610x610 D400 replacement cover fits the existing frame, or whether the frame also needs replacing.",
    "Confirm the surface is concrete, so no asphalt or banding lines are added."
   ]
  },
  {
   "item": "J0018",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the channel sits in the tarmac car park (surface and notes say so) rather than only at the shop entrance. If it is an entrance with a coloured surface, add MAT-DYE 1 under 6.10."
   ]
  },
  {
   "item": "J0019",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "7.4+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 2064.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the work is breaking out the failed concrete cap in the chamber and re-capping the line, not a dig",
    "Confirm the out-of-hours window (OOHS works required) and that a night full day is enough",
    "Confirm the cap type and pipe size, and whether the 1.2 m deep chamber needs man entry or breathing apparatus",
    "Confirm whether a rodent barrier or other fittings are needed",
    "Confirm whether traffic management or fencing is needed at the front entrance"
   ]
  },
  {
   "item": "J0020",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1388.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0021",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening measured at 420 x 460 mm is under 500 mm and small sizes are often mis-measured, so confirm the real cover size",
    "confirm the location is a vehicle-trafficked road or access road (this decides the standard cover rather than a plate)",
    "confirm D400 grade is still right for the replacement"
   ]
  },
  {
   "item": "J0022",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 4.0,
     "unit_price": 95,
     "total": 380.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 8.0,
     "unit_price": 55,
     "total": 440.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 32.0,
     "unit_price": 6,
     "total": 192.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 19,
     "total": 152.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 6,
     "total": 48.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3817.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the channel is in a vehicle area (HGVs, tarmac) so the asphalt reinstatement lines apply",
    "confirm whether the whole 4 m run is replaced or only the grates and bolts (Part required lists grates and bolts, not channel sections)"
   ]
  },
  {
   "item": "J0023",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form says 'Part required: unknown', so the estimator is pricing a visit to find out what is needed. Confirm what is needed once on site: a new gully grate and frame, and whether the pot is also broken.",
    "The gully is on a bend by a driveway on a busy road with HGV traffic. Confirm whether traffic management is needed.",
    "Confirm the surface type and the size and grade of the gully frame."
   ]
  },
  {
   "item": "J0024",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2538.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the manhole is inside the building (pot wash / food prep area), which is why a sealed chequer plate cover is used. If it is outside and the cover is light duty, the main line would change.",
    "Surface type is unknown (possibly screed), so no surface reinstatement lines are included.",
    "Part required is not stated on the form. Confirm a replacement cover is wanted and not just a reseal or a visit.",
    "Out-of-hours working is required, so the night rate applies. Confirm access past the stairs for the civils crew."
   ]
  },
  {
   "item": "J0025",
   "is_manhole_job": true,
   "job_type": "manhole: rebed / reset existing cover and frame (no new cover)",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.8 (engineer states two men, 1 full day)"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1 (bag up and take away)"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 10.0,
     "unit_price": 68,
     "total": 680.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "6.4 (covers the 5 bags of building sand requested)"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-BRICK",
     "description": "Engineering bricks",
     "unit": "each",
     "qty": 60.0,
     "unit_price": 1.5,
     "total": 90.0,
     "rule": "P2 (ordered in Part required, for the 350 mm raise)"
    },
    {
     "code": "MAT-CEM",
     "description": "Cement, 25 kg bag",
     "unit": "bag",
     "qty": 2.0,
     "unit_price": 11,
     "total": 22.0,
     "rule": "P2 (ordered in Part required)"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Is 'dig out the catch pit' just clearing silt (priced here as bag-up and waste only) or a real excavation (which would make this a dig job under 2.1 / 7.2)?",
    "Surface around the manhole (tarmac, paving or soft ground), as no surface reinstatement is priced",
    "Existing frame and lid are reusable and the 350 mm raise with 4 brick courses is confirmed",
    "Location 'back of number 1' and access, as the form says to check with site",
    "Whether the catch pit is a separate item from the manhole being raised"
   ]
  },
  {
   "item": "J0027",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1426.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Job mixes three different problems. Only the channel replacement is priced (rule 1.5).",
    "Form 1 (loose manhole lid in a plastic chamber) only needs stainless screws, so it is not a cover replacement and is not priced. Confirm whether to add MSC-01 for screws or a separate visit.",
    "Form 2 (root ingress in 100 mm clay pipe, 15 m between assets, within chamber) is not priced. It would need a separate drainage crew visit.",
    "Confirm whether the unit 7-8 frontage counts as a shop front. If it does, add MAT-DYE 1 (rule 6.10).",
    "Defective channel length is 1 m, so the 2 m minimum run was applied."
   ]
  },
  {
   "item": "J0028",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 330,
     "total": 1320.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 24.0,
     "unit_price": 68,
     "total": 1632.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 6612.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Two 'Other' forms are about seized channel catchpit bolts needing cutting equipment. They are not priced, because the cover work is priced as the main repair (1.5). Confirm whether that work needs a separate visit.",
    "Four manholes priced: PI 2 stage 2, PI 3 second stage, SW 21 and FW 13. Each is a different location, 700x700, D400. Confirm none are duplicates.",
    "Only PI 2 and PI 3 are in tarmac, so asphalt reinstatement covers two covers. SW 21 is in block paving and FW 13 in concrete, with no surface line priced for either. Confirm.",
    "700x700 is the old cover size; the chamber opening was not measured."
   ]
  },
  {
   "item": "J0029",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 20.0,
     "unit_price": 6,
     "total": 120.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4473.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 gives no part required and the cause of the collapse is unknown, so confirm a dig is wanted and not CCTV or jetting first",
    "Confirm the extent of any pipe relay (35 m between assets); only one fitting is priced because the parts are unknown",
    "Form 2 (missing surface beside the manhole at the rear of unit 5) is a minor surface repair on a different part of the site and is not priced separately; confirm whether it needs a line",
    "Confirm that block paving is the surface for the dig and whether fencing is needed on the access road"
   ]
  },
  {
   "item": "J0030",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3321.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 (580x580, tarmac): 'Part required' is unknown and the lid is broken. Confirm a new cover and frame is wanted, and that the E600 grade is covered by CVR-600-H (no E600 line on the rate card).",
    "Form 4 (630x470 grass): the rectangular size fits no standard band, so CVR-600-L was used as the nearest band above. Confirm the size, since the engineer says the opening should be wider and longer, and confirm light duty (pedestrian staff entrance).",
    "Forms 1 and 3 (breaking out concrete and re-benching, man entry and lifting gear to remove a kerb stone) are not priced. Confirm whether a separate chamber repair visit is needed.",
    "Confirm the number of covers priced is 2 (forms 2 and 4)."
   ]
  },
  {
   "item": "J0031",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.6+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1676.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Channel length is not given, so the 2 m minimum was used. Confirm the length and whether the grates and bolts only need replacing or any channel sections need replacing too.",
    "Surface type is not given, so no surface reinstatement lines were added. Confirm the surface.",
    "The 'ooh' access note was treated as a requirement for out-of-hours work (LAB-CIV-NH). Confirm; if it is only a preference, use LAB-CIV-H.",
    "Grade/duty of the channel is not given.",
    "Check the photos to see whether the job is only drilling out, re-tapping and new bolts with the channel left in place. If so, the quote may be much smaller."
   ]
  },
  {
   "item": "J0032",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm a sealed chequer plate cover is acceptable for the D400 grade stated, if vehicles can reach this manhole"
   ]
  },
  {
   "item": "J0033",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 17.0,
     "unit_price": 95,
     "total": 1615.0,
     "rule": "4.17 (10 m + 7 m, different locations; 10 m is not over 10)"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 34.0,
     "unit_price": 55,
     "total": 1870.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 136.0,
     "unit_price": 6,
     "total": 816.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 34.0,
     "unit_price": 19,
     "total": 646.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 34.0,
     "unit_price": 6,
     "total": 204.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 8696.0,
   "confidence": "yellow",
   "estimator_checks": [
    "CCTV survey form (form 3) is not priced because rule 1.5 prices one main repair per visit. Confirm whether a separate CCTV or drainage visit is wanted",
    "Form 1 channel width of 21 mm looks like a typo (probably 210 mm)",
    "Form 1 is a 10 m run, at the limit of rule 4.18, so confirm the length",
    "Form 1 is D400 and form 2 is C250 with a heavier grade required. Confirm the grate grade",
    "Confirm whether the channels are at a shop front or entrance (MAT-DYE) or in a car park or road (asphalt lines instead of concrete repair)"
   ]
  },
  {
   "item": "J0034",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3399.0,
   "confidence": "green",
   "estimator_checks": [
    "Form 3 reports heavy water infiltration in the chamber. Confirm whether any extra work is needed beyond the frame replacement."
   ]
  },
  {
   "item": "J0035",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.7+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4560.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether Form 1 (3.5 m) and Form 2 (0.5 m) are two separate runs or the same location repeated, as the sizes differ. Priced as two runs, 4 m plus 1 m.",
    "Surface is recorded as concrete but the location is a main roadway. Priced the road surface reinstatement (6.11) rather than the concrete repair kits (6.9).",
    "Form 2 lists a different manufacturer (POLY) and grade (E600) from Form 1 (aco, D400). Confirm that the replacement channel and grates are compatible.",
    "Night work is required because it is the main access road, so the nights/weekends gang rate is used. Confirm that traffic management is not needed."
   ]
  },
  {
   "item": "J0036",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.8+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0037",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm a smaller jetter is available to get round the bend on the stack",
    "Confirm access to the stack, as there are no access caps on any stacks",
    "Confirm whether a full day or half day is needed for the jetting",
    "Confirm what small materials are needed, for example an access cap or fitting"
   ]
  },
  {
   "item": "J0038",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 55,
     "total": 165.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 6,
     "total": 168.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 2148.0,
   "confidence": "red",
   "estimator_checks": [
    "Form 1 (kerb drainage along the site road): the run is about 60 m with 5 broken sections of unknown length, over 10 m, so it is not priced (4.18). It needs a site survey, and CP sumps would be added if the run is renewed.",
    "The forms are labelled 'Other / PPM', but the work is channel drain and sump replacement, so I priced it as a channel job.",
    "Form 2 (sump): no channel length is given, so I used the minimum CHN-RUN of 1 alongside the sump.",
    "Surface type for the sump (yard with portacabins) is not stated, so no surface reinstatement lines are included. Confirm the surface. If it is tarmac or a road, add asphalt, overbanding and carriage. If it is concrete or an entrance, add concrete repair kits or dye.",
    "Whether the road run is wanted as a separate survey or quote, and whether traffic management is needed for the road section."
   ]
  },
  {
   "item": "J0039",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the work is jetting and CCTV of the sw manhole and line to clear the silt, not a cover replacement",
    "Whether man entry is needed (breathing apparatus and confined space kit)",
    "Whether a tanker is needed to remove the silt, and the tonnage",
    "Exact location, as the form only gives 'outside [business]'"
   ]
  },
  {
   "item": "J0041",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening 620 x 450 mm falls between the 600 x 450 and 600 x 600 bands. Confirm the size and which frame fits.",
    "Confirm whether vehicles use the side of building 256. Heavy duty was chosen from the C250 grade and 'heavier grade required: Yes'.",
    "Photo of the marked-up site plan was not seen; confirm the location."
   ]
  },
  {
   "item": "J0043",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": [
    "Out of hours was only recommended, not required, so priced in hours; confirm with the customer",
    "Channel is in the road; confirm whether traffic management is needed"
   ]
  },
  {
   "item": "J0044",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate / recessed (paving infill)",
   "quote_lines": [
    {
     "code": "CVR-REC",
     "description": "Cover & frame, recessed (takes paving/tile infill), any size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 410,
     "total": 410.0,
     "rule": "4.1"
    },
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.3+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3356.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 (coal cave room, 820 x 825 mm): confirm the tray is tile-filled, which gives a recessed cover. The notes say tiles but also 'believe concrete infill'. If it is concrete-filled, price a sealed chequer plate instead.",
    "Form 2 (kitchen, 670 x 530 mm): priced as a sealed chequer plate because it is inside a building and the infill is concrete, not tile. Confirm whether the engineer meant a recessed tray.",
    "Confirm the out-of-hours requirement for the kitchen (form 2) and whether the whole job, including the coal cave, needs nights/weekends. The nights/weekends civils day rate has been applied to the whole job.",
    "Neither opening could be measured, so the sizes are the cover sizes. Confirm them before ordering."
   ]
  },
  {
   "item": "J0045",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface is recorded as concrete but the location is a car park entrance: confirm whether reinstatement is asphalt (6.11) or concrete repair kit (MAT-CREP 4, 6.9)",
    "E600 forklift-grade channel was specified but the rate card only has standard channel: confirm the grade is suitable",
    "1 m ordered but the minimum of 2 m of channel was priced"
   ]
  },
  {
   "item": "J0046",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "7.2 (tarmac reinstatement ordered in form)"
    }
   ],
   "quote_total": 4784.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 (benching reconfiguration and capping 2 branch lines in manhole outside unit 11G) is a different location and was not priced separately. Confirm whether it needs its own chamber-repair quote (7.4)",
    "tarmac reinstatement quantity: no standard rule for tarmac on dig jobs",
    "whether temporary fencing is needed (public or busy area)",
    "pipe length and fittings: 1 x 3 m length and 2 bandseals as ordered"
   ]
  },
  {
   "item": "J0047",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3358.0,
   "confidence": "green",
   "estimator_checks": [
    "Out-of-hours working is stated in the access notes, so the night/weekend crew rate is used; confirm it is required",
    "Whether the client's site FM will cone off the area (no traffic management is priced)"
   ]
  },
  {
   "item": "J0048",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is unknown: confirm what repair is needed (new cover and frame, rebed or other) for the loose manhole surround",
    "Confirm cover size, grade and surface (road, likely tarmac)",
    "Possible traffic management needed on the main road",
    "Possible out-of-hours work, as this is a P0 danger same-day job"
   ]
  },
  {
   "item": "J0050",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0051",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the manhole and the petrol interceptor cover are two separate covers (no locations given, both 700x700)",
    "Opening could not be measured, so the 700x700 old cover size was used",
    "Block paving reinstatement around the covers (no surface line applies under the rules)"
   ]
  },
  {
   "item": "J0054",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-LIQ",
     "description": "Liquid waste disposal (gully / interceptor / septic), per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 120,
     "total": 480.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 1895.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of silt/liquid waste to be removed and disposed of",
    "whether compacted silt needs jetting or a drainage crew to loosen it before the tanker",
    "length and location of the split channel",
    "whether the waste is classed as liquid or contaminated (WST-LIQ vs WST-GRS)"
   ]
  },
  {
   "item": "J0055",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0056",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 210,
     "total": 630.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 3196.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 (root ingress, clay 150mm line, root cutter) is not priced because rule 1.5 prices only the gully repair. Confirm whether a separate drainage visit for root cutting is wanted.",
    "Three gullies at different yard locations were counted as 3 separate items (rule 3.2). Confirm they are three distinct gullies.",
    "Forms 2 and 3 do not name a part. Replacement of the grate was assumed (rule 2.4).",
    "Confirm that none of the gully pots are broken. No GUL-POT was added."
   ],
   "possible_duplicate_of": [
    {
     "item": "J0182",
     "labelled": false
    }
   ]
  },
  {
   "item": "J0057",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1590,
     "total": 4770.0,
     "rule": "7.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2 (parts unknown)"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2 (busy public area)"
    }
   ],
   "quote_total": 5619.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is 'unsure': confirm the dig/relay is wanted, as opposed to a crew visit",
    "Length of missing pipe and fittings needed (only 1 fitting allowed)",
    "Tarmac reinstatement: no standard line in the dig pattern, confirm whether asphalt is needed",
    "OOH working is required, so the night rate is used: confirm timings",
    "Traffic management for the drive-thru entrance"
   ]
  },
  {
   "item": "J0058",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Surface type at the dig location (block paving or concrete reinstatement lines are not included)",
    "Whether the site is public or busy, which would need temporary fencing",
    "Whether a new cover and frame will be needed once the chamber (S8) is exposed",
    "Depth of the chamber and whether the dig will take the full 3 days",
    "Whether any pipe repair is needed (PIP-FIT 1 is a placeholder because parts are unknown)"
   ]
  },
  {
   "item": "J0059",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-H",
     "description": "Drainage gang (2 operatives + jetter van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 610,
     "total": 610.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 610.0,
   "confidence": "red",
   "estimator_checks": [
    "The form only says 'silttrap', so the work needed is not stated (clean-out, tanker, repair, or replacement of a cover or part).",
    "Confirm what the engineer wants done at the silt trap before pricing anything beyond a drainage crew visit.",
    "Check whether a tanker or waste disposal is needed.",
    "Check whether a cover or frame needs replacing; if it does, the size, grade and surface are needed.",
    "Check the exact location and access, as the form only says 'side of building'."
   ]
  },
  {
   "item": "J0060",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the leak is a water main/supply (plumbing, LAB-ENG-H) or a drainage issue, and what leak detection equipment is needed",
    "source of the water ingress into the manhole chamber",
    "whether any repair, dig or materials will be needed once the leak is found",
    "exact location (rear of two businesses)"
   ]
  },
  {
   "item": "J0061",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "red",
   "estimator_checks": [
    "The defective run is about 41 m (45 sections), over 10 m, so it is not priced in full and only 2 m is quoted (rule 4.18). Confirm the real scope and whether a full-run quote or survey is needed.",
    "The form asks for 45 sections, but the standard channel is sold in 1 m lengths. The sections here are 0.9 m concrete units, so confirm the product.",
    "The form also asks for a replacement gully cover and surround (18x12 in lid, 25x18 in surround). Only one main repair is priced per visit, so confirm whether to add GUL-GRATE separately.",
    "Confirm the surface is a lorry yard or car park (tarmac), which was assumed for the surface lines in 6.11."
   ]
  },
  {
   "item": "J0062",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Form 2 'Part required' says only 'concrete'. I assumed a new cover and frame, as with Form 1 and the default rule 2.4. Confirm it is not a rebed.",
    "The two covers are at different locations (FW between 1375 and 1380, and SW 4 / PI stage one), so they are priced as two items."
   ]
  },
  {
   "item": "J0063",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 290,
     "total": 290.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1430.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm that a single patch liner is enough: 'Part required' says '100m straight patch', which looks like a 100 mm straight patch rather than a run length, and the distance between assets is unsure",
    "Confirm root cutting and jetting on the day with the drainage jetter crew",
    "Confirm access to the manhole at the back of unit 10, on grass (no excavation or cover replacement ordered)"
   ]
  },
  {
   "item": "J0064",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0066",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 395,
     "total": 395.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1623.0,
   "confidence": "yellow",
   "estimator_checks": [
    "650 x 550 opening is not square (550/650 is under 85%) and fits no standard band, so the next size up (675 x 675 D400) was used; confirm it fits the opening",
    "Grade: the old cover is B125 but heavier grade is required and the opening is a driveway with vehicles, so heavy duty was priced",
    "Concrete surround: no surface repair line is added for concrete under the rules; confirm whether any concrete reinstatement is needed",
    "Work is in hours (daytime only)"
   ]
  },
  {
   "item": "J0069",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0070",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 12.0,
     "unit_price": 210,
     "total": 2520.0,
     "rule": "4.15+P3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 48.0,
     "unit_price": 68,
     "total": 3264.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 7534.0,
   "confidence": "red",
   "estimator_checks": [
    "Number of gully grates: Form 1 says 6 (units 16 and 17), Form 2 says 12 (3 per channel x 4 channels across units 16, 17 and 18). Priced 12 as the work actually asked for.",
    "Confirm whether any gully pots are broken (GUL-POT not included).",
    "Confirm whether the work needs more than one day for 12 seized, bolted-down grates (labour kept at 1 day per rule 5.5).",
    "Confirm the grate and frame are C250 heavy duty and 420 x 420 flat (GUL-GRATE is the only gully line on the rate card).",
    "Confirm the surface is concrete in all three units, including inside unit 16."
   ]
  },
  {
   "item": "J0071",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form is Other/PPM and orders no part, so confirm whether SMH 19 needs a new cover and frame or only a visit to assess it",
    "Confirm the cover grade and the traffic loading at the location",
    "Confirm the cover size: the 570 x 720 mm figure may be the opening, the old cover or the lifting concrete",
    "Confirm the extent of the lifting surround concrete and whether it needs reinstating",
    "Confirm the surface type"
   ]
  },
  {
   "item": "J0072",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 3.0,
     "unit_price": 38,
     "total": 114.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 22,
     "total": 88.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-EXC",
     "description": "Mini excavator (3 t) hire, per day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 210,
     "total": 630.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-SHORE",
     "description": "Trench shoring system hire",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 260,
     "total": 780.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 5889.0,
   "confidence": "yellow",
   "estimator_checks": [
    "rate card only has 110 mm pipe, but the pipe is 225 mm clay, so confirm pipe and flexible coupling pricing (3-4 couplings requested, 4 used)",
    "number of shifts (3 days assumed from 'multiple shifts required')",
    "whether the excavator, trench boards and Chapter 8 barriers are needed for the full 3 days",
    "grass reinstatement (no reinstatement line priced)"
   ]
  },
  {
   "item": "J0073",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4359.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the dig scope: Forms 1-3 ask for catchpit excavation, tracing and a 3 m pipe replacement. The gully (Form 4) and channel (Form 1) are not priced separately because the dig takes priority under 2.1.",
    "Confirm the length of pipe to be replaced (about 3 m under the path) and the pipe size, since the existing pipe looks like 50 mm corrugated.",
    "Confirm the location of the lost catchpit.",
    "Confirm the surface to reinstate for each dig (shingle, concrete, car park, kerb line) and whether any reinstatement materials are needed.",
    "Confirm that fencing is needed in the public car park.",
    "Confirm whether the gully top and frame in Form 4 should be quoted as a separate visit."
   ]
  },
  {
   "item": "J0074",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3514.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the tarmac area outside the business is a road or car park used by HGVs, as 6.11 assumes",
    "Confirm whether the whole 3 m run is being replaced or only the grates, since Part required lists only grates and bolts"
   ]
  },
  {
   "item": "J0076",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 520,
     "total": 1040.0,
     "rule": "4.11+4.14+3.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3186.0,
   "confidence": "yellow",
   "estimator_checks": [
    "790 x 640 mm opening is not a standard size (not square, under 800 mm): confirm the nearest band above, CVR-750-H, is right",
    "confirm there are 2 covers (x2 in notes, same size, next to each other)",
    "confirm heavy duty is right: service yard with vehicles, form grade C250"
   ]
  },
  {
   "item": "J0077",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether traffic management is needed on the busy bus roundabout (SRV-TM)",
    "whether the survey must be done out of hours or outside bus service times, as the form only suggests it, so it is priced in hours",
    "whether the chamber is redundant, which the CCTV survey should confirm",
    "the stone-filled chamber may need clearing before the camera can run"
   ]
  },
  {
   "item": "J0078",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    },
    {
     "code": "HIR-BA",
     "description": "Breathing apparatus set (confined space)",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 180,
     "total": 180.0,
     "rule": "P2: confined space entry equipment named in the forms"
    }
   ],
   "quote_total": 1808.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the number of breathing apparatus sets and the confined space entry kit needed for a 1.85 m deep chamber",
    "Confirm the 'civils materials' needed, e.g. whether benching mix (MAT-BENCH) is required",
    "Confirm the clay half-channel section is covered by one PIP-CHAN, and that one day is enough",
    "Confirm whether the job is in hours"
   ]
  },
  {
   "item": "J0079",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-CCTV-D",
     "description": "CCTV survey / jetting crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1240,
     "total": 1240.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2630.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the channel and manhole are actually connected (the channel is believed to drop into the manhole blind)",
    "Whether the blockage is root ingress, as suspected, and whether any follow-on repair or dig is needed after the CCTV",
    "Whether liquid waste disposal (WST-LIQ) and a consignment note are needed for the tanker",
    "Which crew to use for CCTV: the CCTV crew (LAB-CCTV-D) or a drainage crew with an engineer"
   ]
  },
  {
   "item": "J0080",
   "is_manhole_job": true,
   "job_type": "manhole: rebed / reset existing cover and frame (no new cover)",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.8"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 10.0,
     "unit_price": 68,
     "total": 680.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1644.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the work is a rebed of the loose frame and no new cover is needed",
    "Cover size, grade and condition (none given)",
    "Whether more than one manhole is involved",
    "Quantity of concrete needed (Part required says only 'Concrete')",
    "Surface is grass, so no surface reinstatement lines were added"
   ]
  },
  {
   "item": "J0081",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Height restriction of 2.1m at the site: confirm the jetter van can get in, and who opens the boom (contact named in the form)",
    "Suspected collapsed clay pipe at the urinal gully: a dig is not ordered, so none is priced. A follow-up dig quote may be needed once the CCTV shows the damage",
    "Whether any small materials (MSC-01) are needed, for example if a patch repair is done during the visit",
    "Whether the form's depths are right: upstream 200mm, downstream 2m, 2m apart"
   ]
  },
  {
   "item": "J0082",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "red",
   "estimator_checks": [
    "Gully frame dimensions (4100 x 4500 x 1000 mm) are impossible for a gully, probably a typo for about 410 x 450 x 100. Confirm the real size.",
    "Confirm there is only one gully, as the description says, so one grate.",
    "Confirm the pot is not broken, so no GUL-POT is needed.",
    "Confirm the C250 grade with a hinged heavy-duty grate."
   ]
  },
  {
   "item": "J0083",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 6.0,
     "unit_price": 95,
     "total": 570.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 12.0,
     "unit_price": 55,
     "total": 660.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 48.0,
     "unit_price": 6,
     "total": 288.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 12.0,
     "unit_price": 19,
     "total": 228.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 12.0,
     "unit_price": 6,
     "total": 72.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 3162.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the channel is at an entrance (dye line 6.10 added); block paving elsewhere would have no dye or surface line"
   ]
  },
  {
   "item": "J0084",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form orders a heavy duty manhole lifter, not a new cover or frame, so no cover is priced. Confirm that is right once the lid is up.",
    "Confirm whether the lifter is to be bought or hired. There is no rate card line for it, so MSC-01 is a placeholder allowance.",
    "The manhole is linked to internal gullies that keep backing up. Confirm whether jetting or CCTV is needed once access is gained, and whether a cover replacement follows.",
    "Confirm the surface and the traffic conditions at the drive-through."
   ]
  },
  {
   "item": "J0085",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is 'unknown' on all three manhole forms, so this is priced as a crew visit only (rule 2.3)",
    "Covers 1 (750x750, block paving, seized) and 3 (635x635, block paving) are light duty, and cover 2 (635x635, tarmac car park) is D400. Confirm what is needed once opened.",
    "Cover 1 could not be lifted with a man-up key. Confirm whether it needs breaking out or replacing.",
    "Grease form (catchment pit full of grease by the security hut) also has no part specified. Confirm whether a tanker visit and grease waste removal (7.1) are needed separately.",
    "Confirm whether a drainage crew (LAB-DRN-H) is more suitable than a civils crew for the grease pit"
   ]
  },
  {
   "item": "J0086",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 1440.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0087",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1426.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type is not given, so no surface reinstatement line is included (concrete, tarmac, paving, or coloured)",
    "the form only mentions a missing 1.5 m plastic grate; confirm whether the channel body also needs replacing or only the grates, as the rules price a 2 m run with 4 grates",
    "confirm the channel length of 1.5 m and that there is no sump or trash box to replace"
   ]
  },
  {
   "item": "J0089",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0090",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 9.0,
     "unit_price": 210,
     "total": 1890.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 36.0,
     "unit_price": 68,
     "total": 2448.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 6088.0,
   "confidence": "red",
   "estimator_checks": [
    "Grate count conflicts: Form 1 orders 9 gully lids and frames, Form 2 says 4 required. I priced 9 from the Defective Gully form. Confirm whether the two forms are the same car park and whether the total is 4, 9 or 13.",
    "Lid sizes conflict: 200x200 mm on Form 1 against 5x6 in on Form 2, and the form frame size is 150x150 mm.",
    "Surface is unclear: the field says concrete, but the notes and Form 2 mention tarmac. I priced concrete (MAT-CREP 2). If it is tarmac, use MAT-ASPH 2 and MAT-BAND 1 instead.",
    "Confirm whether any gully pots are broken (none priced)."
   ]
  },
  {
   "item": "J0091",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 3699.0,
   "confidence": "green",
   "estimator_checks": [
    "whether the work must be done at the weekend (Saturday afternoon/Sunday) when the site is empty. If so, switch the labour to LAB-CIV-ND",
    "F900 aircraft grade on the form is unusual for a workshop yard, so confirm the grate grade",
    "confirm the channel is at a bay entrance (dye line) and not a coloured surface"
   ]
  },
  {
   "item": "J0092",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    },
    {
     "code": "HIR-BA",
     "description": "Breathing apparatus set (confined space)",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 180,
     "total": 180.0,
     "rule": "P2 (confined space entry equipment required in forms)"
    }
   ],
   "quote_total": 1808.0,
   "confidence": "yellow",
   "estimator_checks": [
    "number of breathing apparatus sets needed for man entry",
    "number of 45\u00b0 channel bends and channel sections needed",
    "chamber location, depth and access",
    "whether benching mix (MAT-BENCH) is needed beyond the standard mortar"
   ]
  },
  {
   "item": "J0093",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4299.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Pipe runs, lengths and fittings are unknown until the excavation is done, so only 1 fitting is priced and no pipe lengths.",
    "Pump supply and installation (puddle pump with low-level sensor) is not priced. Confirm whether a pump and an engineer visit (LAB-ENG-H) are wanted.",
    "Confirm the surface to reinstate (grass/soil) and whether topsoil is needed.",
    "Confirm whether fencing and Chapter 8 barriers are needed in this communal area.",
    "Confirm the access arrangements with the on-site building manager."
   ]
  },
  {
   "item": "J0094",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2480.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the CCTV survey needs a dedicated CCTV crew (LAB-CCTV-D) instead of the drainage crew",
    "Volume of water and silt to be tankered from the catchpits, and whether liquid waste disposal (WST-LIQ) and a consignment note are chargeable",
    "Whether the tanker is needed before the CCTV run and the root cutting",
    "Whether the roots can be cleared by jetting or a dig is needed"
   ]
  },
  {
   "item": "J0095",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 410.0,
   "confidence": "yellow",
   "estimator_checks": [
    "valve type and size (side inlet valve) and whether it is a stock part",
    "whether a half day is enough",
    "cistern/tank location and access",
    "whether the P1 urgency requires out-of-hours attendance (not stated, so priced in hours)"
   ]
  },
  {
   "item": "J0096",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.7+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3651.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the two forms are two separate 1 m locations (middle of car park vs in front of the unit) and not a repeat",
    "confirm night working is required (form 2 says night shift needed, form 1 says best done at night) so the nights gang is correct",
    "form 1 upstream invert depth of 19 mm looks like a typo (other readings are about 205-220 mm)"
   ]
  },
  {
   "item": "J0097",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening 625 x 485 is not a standard size, so the next band up (600 x 600) was used; confirm the size",
    "confirm no vehicle traffic on the grass area, which would make it heavy duty",
    "confirm the A15 grade, since the frame has collapsed"
   ]
  },
  {
   "item": "J0098",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "4.16+4.17+4.19"
    },
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 55,
     "total": 165.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 6,
     "total": 168.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2988.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0099",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-ND",
     "description": "Vacuum tanker + crew, nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1890,
     "total": 1890.0,
     "rule": "7.1+5.9"
    },
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1490,
     "total": 1490.0,
     "rule": "7.1+5.9"
    }
   ],
   "quote_total": 3380.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm night working is required (picnic area access)",
    "confirm whether the holding manhole is also contaminated by the adjacent petrol interceptor, which would need WST-GRS and WST-NOTE",
    "tonnes of liquid waste to remove",
    "whether CCTV needs a specific crew rather than the drainage crew"
   ]
  },
  {
   "item": "J0100",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0101",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm benching materials quantity (MAT-BENCH not in default pattern; add if engineer wants a benching mix)",
    "Confirm whether man entry / breathing apparatus is needed at 1.5 m depth",
    "Confirm the 110 mm uPVC channel section in the base needs replacing (PIP-CHAN) or only benching rebuild",
    "Confirm paving is not disturbed (double infilled cover is lifted only, no block paving reinstatement priced)"
   ]
  },
  {
   "item": "J0102",
   "is_manhole_job": true,
   "job_type": "manhole: rebed / reset existing cover and frame (no new cover)",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.8"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 10.0,
     "unit_price": 68,
     "total": 680.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1644.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm this is a reseat/rebed of the existing frame only, with no new cover or frame needed (the lid is in OK condition)",
    "Cover size and grade are not given; confirm whether it is large, which would make the labour a full day",
    "Confirm the extent of the brickwork repair and the debris removal needed (concrete or cement and a shovel are mentioned)",
    "Surface is mud/grass, so no surface reinstatement lines were added",
    "Check whether the yard gates will be closed at the time of the visit"
   ]
  },
  {
   "item": "J0103",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 265,
     "total": 530.0,
     "rule": "3.2+4.7+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3336.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 width is entered as '52p'. I read it as 520 mm, which with 670 mm gives the 600x450 size under rule 4.7. Confirm the real width.",
    "The forms give no traffic information for the rectangular covers. I used heavy duty (H) because both forms say D400 and heavier grade is not required. Confirm that vehicles can reach unit 9 and unit 7.",
    "Only the tarmac cover (unit 7, fw 5) has asphalt, banding and carriage. The grass cover (sw 17) has no surface line."
   ]
  },
  {
   "item": "J0104",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 382.0,
   "confidence": "yellow",
   "estimator_checks": [
    "stack is surface water or foul water (form says both)",
    "whether the U trap removal can be done in a half day",
    "access to the toilet in unit 14 and whether other units need to be isolated",
    "any further blockage clearance needed after the elbow is fitted"
   ]
  },
  {
   "item": "J0105",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1748.0,
   "confidence": "yellow",
   "estimator_checks": [
    "720 x 570 opening is rectangular and does not fit a standard band; the next size up (750 x 750 heavy duty) was used, so confirm the cover size",
    "Existing grade is B125 (footpath) but the form says a heavier grade is required; confirm heavy duty is wanted",
    "Confirm the pavement is not trafficked by vehicles",
    "Concrete surround: no surfacing lines added, confirm reinstatement is not needed"
   ]
  },
  {
   "item": "J0107",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm man-entry/confined-space requirements for a chamber about 4 m deep (breathing apparatus, extra kit, crew size)",
    "Confirm exact manhole location from the highlighted plans",
    "Confirm the invert/channel repair scope for the 6 inch foul line and whether a single day is enough",
    "Confirm whether bypass pumping or jetting is needed while the invert is repaired"
   ]
  },
  {
   "item": "J0108",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "Part required wording ('new manholes cover frame is fine') is read as an order for a new cover and frame"
   ]
  },
  {
   "item": "J0109",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether manual man entry into the flow control chamber is confirmed, and whether confined space kit (breathing apparatus) is needed",
    "Whether the line from the catch pit is solid with bricks and needs a dig or relay, which would be priced as a dig under 7.2",
    "Whether the flow control valve itself needs repair or replacement, as no part is specified",
    "Whether mortar and a channel section are actually needed, as no repair to the chamber base is described",
    "Whether a skip or tanker is needed for the solids and debris removed"
   ]
  },
  {
   "item": "J0113",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / chequer plate / 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 185,
     "total": 370.0,
     "rule": "4.5+4.13 (form 1, 700x700 B125) and 4.12 (form 3, no size, copied from form 1)"
    },
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13 (form 4, 500x500, heavier grade required)"
    },
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10 (form 5, 470x470, footway by the unit door)"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 24.0,
     "unit_price": 68,
     "total": 1632.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 6352.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 3 (grass, no size, 'existing frame to be cemented in', part required none) is counted as a cover under 1.5 and 4.12. Confirm whether it is a cover replacement or just a rebed.",
    "Form 3 size and grade are assumed to match form 1 (B125, light duty). Confirm by measuring.",
    "Form 5 is 470x470, so CVR-PLATE was chosen on the assumption that it sits on a footway by the door. If vehicles run there, use CVR-600-H instead.",
    "Form 4 is on the edge of the size band, 500x500. Confirm the measurement and that heavier grade is really needed.",
    "Form 2 (manholes charged and holding above benching, blockage not traced) is not priced in this cover quote. It needs a separate tanker or drainage job (7.1), with the extent to be confirmed.",
    "Surface for forms 1 and 3 is grass, so there is no asphalt reinstatement for them. Asphalt is allowed for the two tarmac covers only."
   ]
  },
  {
   "item": "J0114",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Forms 2 and 3 (both 670x670, D400, next to a catchpit) are treated as one cover. Confirm they are the same chamber and not two.",
    "The job also has forms for jetting a possible collapsed drain, root ingress, a gully and two channel runs (30 m and 5 m). Only the cover work is priced, per Step 1.5. Confirm the customer does not need the others quoted separately.",
    "Form 8 is on a public crossing (630x630). Confirm traffic management is not needed.",
    "Seized lids on forms 3 and 8 are assumed to be replaced rather than freed."
   ]
  },
  {
   "item": "J0115",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": [
    "Notes say the lid and frame are in good order and only the concrete surround is damaged. The forms order no new part, so the default replacement (2.4) is priced. Confirm whether a new cover is wanted or only the surround needs repair.",
    "Confirm whether traffic management is needed, as the manhole is in the middle of a road."
   ]
  },
  {
   "item": "J0116",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2068.0,
   "confidence": "green",
   "estimator_checks": [
    "Circular cover: the form field says 715 mm but the notes say the cover is 680 mm and the frame 715 mm. Both sizes give the same line (CVR-600-H), and both are 675 mm or more, so a full day of labour is used.",
    "The notes say it may be a water board manhole. Confirm who owns it and that we are allowed to replace it.",
    "The opening could not be measured."
   ]
  },
  {
   "item": "J0117",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the scope is a one-off machining visit rather than the bi-annual PPM contract the form advises",
    "Confirm a full day is enough for six sink wastes and one dishwasher waste",
    "Confirm whether any small materials are needed (MSC-01 not added)",
    "Confirm access to all points and whether the work is in hours"
   ]
  },
  {
   "item": "J0118",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1426.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0119",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2258.0,
   "confidence": "green",
   "estimator_checks": [
    "Old cover is A15 but the form says a heavier grade is required. Quoted as heavy duty (D400); confirm the grade.",
    "The 'Part required' text only says expose the manhole and reinstate like for like. It does not order a new cover. Confirm a replacement is wanted rather than just exposing and reinstating.",
    "Block paving reinstatement is not priced (no surface line for a cover in block paving). Confirm no paving is needed."
   ]
  },
  {
   "item": "J0120",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "red",
   "estimator_checks": [
    "Notes say roughly 20+ m of aco is missing around the site, but the defective length given is 2 m. Only 2 m is priced (rule 4.18). Confirm the scope, and whether the missing run needs a separate quote.",
    "Surface is given as concrete but the location is a car park. The asphalt reinstatement lines follow rule 6.11 (car park). Confirm the actual surface and whether concrete repair (MAT-CREP) is needed instead.",
    "No 'Part required' is stated. Replacement of 2 m with grates is assumed (rule 2.4).",
    "Confirm the grade: C250 is given with no heavier grade needed."
   ]
  },
  {
   "item": "J0121",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface around the kerb channel: the form only gives the kerb material (concrete). If it is a road or car park, swap MAT-CREP 4 for MAT-ASPH 4, MAT-BAND 2 and SUN-CARR 1",
    "length: the form gives two sections of 500 mm (the 'x100mm' and '500m' entries look like typos), so 2 x 0.5 m was rounded up to 2 m",
    "whether a kerb drain needs the 2 grates per metre that rule 4.21 adds",
    "whether traffic management is needed if the channel is on a public road"
   ]
  },
  {
   "item": "J0122",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Both forms ask only for new seals and screws (3 and 4 AS70 screws), not a new cover and frame. Confirm no cover replacement is needed.",
    "Confirm the seals and screws are covered by one MSC-01 allowance for the two chambers (front door and stairwell).",
    "Confirm one drainage crew day covers both locations."
   ]
  },
  {
   "item": "J0124",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0125",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4299.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm the collapsed ground above the new line needs a dig and relay, as the form does not state the work required",
    "pipe length and parts to replace",
    "surface type of the car park for reinstatement (block paving or concrete)",
    "whether the line is a new pipe that has failed and whether the cause is a warranty issue",
    "access and any need for out-of-hours working in the underground car park"
   ]
  },
  {
   "item": "J0126",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of oil/contaminated waste to remove from the interceptor",
    "Form 1 (collapsed channel catchpit) orders no part, dig or repair, so it is not priced. Confirm whether a sump or channel replacement or a dig is wanted",
    "interceptor type is not known, so confirm whether the primary chamber also needs emptying",
    "whether investigation or CCTV is wanted alongside the tanker"
   ]
  },
  {
   "item": "J0127",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-H",
     "description": "Drainage gang (2 operatives + jetter van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 610,
     "total": 610.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 610.0,
   "confidence": "yellow",
   "estimator_checks": [
    "No part is ordered and no dig is asked for. The only issue is seized bolts on the channel catchment pit, so this is priced as a crew visit. The estimator should confirm whether the visit should be a replacement of the sump or grates instead.",
    "Confirm whether a drainage crew (LAB-DRN-H) or a civils crew (LAB-CIV-H) is wanted. The channel was only washed from the top, so a drainage crew was assumed for cleaning the pit.",
    "Confirm whether an impact driver is available on the van or needs to be hired or bought, as it is not on the rate card."
   ]
  },
  {
   "item": "J0128",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.11+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1748.0,
   "confidence": "yellow",
   "estimator_checks": [
    "700 x 550 rectangular opening does not match a standard band, so the next size up (750 heavy duty) was used; confirm the size",
    "existing grade is E600 (forklift yard) and the rate card only goes to D400; confirm the grade is suitable",
    "the form has no 'Part required' text, so replacement was assumed by default; confirm a new cover is needed",
    "concrete surround: no surface reinstatement line added for covers in concrete"
   ]
  },
  {
   "item": "J0129",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0130",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0131",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate / 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.3"
    },
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 185,
     "total": 370.0,
     "rule": "4.8+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3284.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Forms 1 and 2 are treated as one cover (same location, 840 x 690 vs 840 x 680). Confirm they are not two separate covers.",
    "Whether f9a (form 2) and f9 (form 4) are the same cover.",
    "Locations f11 and f9 are unclear, so confirm whether vehicles run there. If they do, the two 640-650 x 490-500 covers become CVR-600-H.",
    "Grade is B125 (grass/footpath) but the opening is by a car park, so confirm the traffic loading. If it is vehicular, the 840 x 690 cover becomes CVR-750-H.",
    "Form 3 says 'cover and possibly frame replacement'. Confirm a full cover and frame is required.",
    "Debris around the 840 x 690 cover may affect measurements."
   ]
  },
  {
   "item": "J0132",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 330,
     "total": 990.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3544.0,
   "confidence": "green",
   "estimator_checks": [
    "covers could not be lifted: confirm the size of the existing frames",
    "opening not measurable: sizes taken from cover dimensions"
   ]
  },
  {
   "item": "J0133",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4359.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Pipe is 150 mm but the rate card only has 110 mm pipe, so confirm the pipe size and price",
    "Surface type in the parking area (tarmac, concrete or block paving) to set the reinstatement materials",
    "What the 'sand cement' in the part required is for and how much is needed",
    "Depth of the drain and whether shoring is needed",
    "Whether the work is limited to after 7am (in hours) or needs out-of-hours working",
    "Whether fencing or traffic management is needed near the disabled bays"
   ]
  },
  {
   "item": "J0134",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 3345.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of FOG/grease waste to be removed",
    "Picote (root/FOG cutter) is not on the rate card, so it is not priced separately; confirm whether any extra kit or subcontract is needed",
    "whether the follow-up camera survey needs a separate CCTV crew or the drainage crew covers it",
    "number of manholes/runs affected in service yard 6",
    "loading bay access and any traffic management needed"
   ]
  },
  {
   "item": "J0136",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 185,
     "total": 370.0,
     "rule": "3.1+3.2+4.8+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2516.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Forms 1 and 2 treated as one cover (same size, form 2 has no location), so 2 covers in total; confirm there are not 3",
    "Confirm light duty (B125) is right for both covers: the main entrance is pedestrian, but the cover between buildings may see vehicles from the service yard",
    "Mixed job: only the covers are priced. The service yard gully flooding (possible concrete in the line, tanker and CCTV recommended) and the 2 dished gully grates are not priced and need a separate quote",
    "Form 2 repeats Form 1 without a location; seized cover assumed to be replaced"
   ]
  },
  {
   "item": "J0137",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface/floor finish around the cover is not stated (no surface lines added)",
    "cover grade and sealing requirement not given; chequer plate assumed because the cover is inside a building",
    "confirm 725 x 575 mm is the opening size, not the cover size"
   ]
  },
  {
   "item": "J0138",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 210,
     "total": 630.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 3196.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm 3 separate gullies (locations differ: unit 2, unit 6 air con, unit 10 road end)",
    "Form 3 grade E600 is above D400; confirm GUL-GRATE heavy duty is suitable",
    "Form 3 frame cracked while trying to open; confirm whether the gully pot is also broken (GUL-POT not priced)"
   ]
  },
  {
   "item": "J0140",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening is under 500 mm (480 x 480), which may be mis-measured; confirm the real size",
    "whether the location in front of unit P1 is a vehicle area (car park or yard) or a footpath. If footpath only, the main line would be CVR-PLATE instead of CVR-600-H",
    "the form grade is B125 but heavier grade is marked Yes; confirm the grade needed"
   ]
  },
  {
   "item": "J0141",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "3.2+4.11+4.14"
    },
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "3.2+4.11+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3921.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the two forms are two separate covers (same car park, but openings measure 560x460 and 630x460)",
    "Form 1 sizes (560x460) fit no standard band, so priced as 600x450 (matches the 'Part required' text)",
    "Form 2 sizes (630x460) priced one band up as 600x600",
    "Form 1 grade is A15 but 'heavier grade required: Yes'; both covers priced heavy duty because vehicles use the car park",
    "Confirm the number of asphalt kits and overbanding rolls for two covers"
   ]
  },
  {
   "item": "J0142",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, recessed (paving infill)",
   "quote_lines": [
    {
     "code": "CVR-REC",
     "description": "Cover & frame, recessed (takes paving/tile infill), any size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 410,
     "total": 410.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2148.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the internal chamber lid is a recessed tray (CVR-REC) and not a sealed chequer plate (CVR-PLATE), and what it is filled with (floor finish or concrete)",
    "Sizes: the form says the opening could not be measured, but 690x690 is given as the frame top and the text says 600x600, so confirm the real size",
    "The forms also ask for a follow-up HPWJ descale of the line upstream by a 2-man team. It is not priced here because cover jobs carry one labour line. Confirm whether to add a drainage crew (LAB-DRN-D 1)",
    "Confirm the reinstatement material round the frame (form says concrete, no surface lines added)"
   ]
  },
  {
   "item": "J0145",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1+4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2098.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0146",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0147",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0148",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "whether the gully pot is also broken (GUL-POT not included; frame depth could not be measured as the grate would not lift)"
   ]
  },
  {
   "item": "J0149",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm the 450 x 450 opening size, as small sizes are often mis-measured",
    "confirm the cover is in an HGV-trafficked yard or loading area, since this is why a standard 600 x 600 cover is quoted rather than a plate",
    "concrete surround reinstatement is not priced, so confirm whether any is needed"
   ]
  },
  {
   "item": "J0150",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening 590 x 500 is not square (500/590 is under 85%) and fits no standard band, so the next size up (600 x 600) was used; confirm the size",
    "Light duty chosen because the grade is B125 on grass or footpath; confirm no vehicles use the alley",
    "Surface type is 'Other', so no surface reinstatement was priced; confirm the surface",
    "No 'Part required' field was given, so replacement was assumed by default"
   ]
  },
  {
   "item": "J0151",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "Location text says 'channel front entrance', but the form, size (455x415 frame) and part required all describe a gully grate. Confirm it is a gully grate and not an ACO channel grate."
   ]
  },
  {
   "item": "J0152",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0153",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, other / non-standard size",
   "quote_lines": [
    {
     "code": "CVR-OTHER",
     "description": "Cover & frame, other / non-standard size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 350,
     "total": 350.0,
     "rule": "4.9"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2238.0,
   "confidence": "green",
   "estimator_checks": [
    "The chamber opening could not be measured, so confirm the 600 x 400 size is the existing cover size",
    "The cover could not be lifted and the engineer recommends breaking it out, so confirm that no further excavation is needed"
   ]
  },
  {
   "item": "J0154",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0156",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Rule 2.1 applies because the form orders a dig (\"dug out and replaced\"), so this is priced as a dig and not as a channel replacement.",
    "The replacement channel (about 2 m of ACO-type channel and grates) is not in the dig pattern. Confirm whether to add CHN-RUN and CHN-GRATE.",
    "Tarmac reinstatement is not covered by the dig pattern. Confirm whether asphalt and banding are needed.",
    "Confirm the extent of the collapse and the pipe or channel parts needed (manufacturer unknown, so PIP-FIT 1 only).",
    "Confirm whether temporary fencing or traffic management is needed (HGV traffic)."
   ]
  },
  {
   "item": "J0157",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "no remedy is specified in the form: confirm whether root cutting/jetting only or a patch liner or dig is needed",
    "distance between assets and downstream depth are unknown",
    "the 2m length (probably the affected length) is unlabelled: confirm what it refers to",
    "the 'line holding water' answer 'Heavy' is not a yes/no, so confirm whether the line is full",
    "confirm whether a CCTV survey is needed to establish root location and extent",
    "entrance road access: check whether traffic management is needed"
   ]
  },
  {
   "item": "J0158",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.8+4.13+P3"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2073.0,
   "confidence": "red",
   "estimator_checks": [
    "Opening width of 5500 mm is impossible (probably 550 mm), so confirm the real opening size. The part required is 650 x 500, which would give CVR-600-? either way.",
    "Grade conflict: the form says 'heavier grade required: Yes' but the part required is B125 (light duty) and the location is a footpath. I priced light duty (CVR-600-L) because the part ordered is B125. If heavier grade is really needed, change to CVR-600-H.",
    "Confirm the footpath beside the A43 has no vehicle access or traffic management need."
   ]
  },
  {
   "item": "J0159",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1590,
     "total": 4770.0,
     "rule": "7.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-TM",
     "description": "Traffic management (subcontract)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 450,
     "total": 450.0,
     "rule": "P2 (traffic management stated in forms)"
    }
   ],
   "quote_total": 6129.0,
   "confidence": "yellow",
   "estimator_checks": [
    "length of straight pipework needed and the fittings required",
    "surface type to reinstate (tarmac, paving or concrete)",
    "whether traffic management subcontract is needed and its cost",
    "night working is confirmed as required (the forms state it must be done at night)",
    "extent of the dig; the line entry to the manhole is at 750 mm depth"
   ]
  },
  {
   "item": "J0160",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 1390.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the work is only clearing and exposing the interceptor, or whether excavation (7.2 dig) or a civils gang is needed",
    "Whether the interceptor has to be emptied. If so, add the tonnage of liquid or contaminated waste, WST-GRS and WST-NOTE",
    "Whether any investigation or jetting is wanted (add LAB-DRN-D 1 or LAB-ENG-D 1)",
    "What is meant by 'give room to lift and place safely', i.e. whether the interceptor is to be lifted out and replaced"
   ]
  },
  {
   "item": "J0161",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 14.0,
     "unit_price": 95,
     "total": 1330.0,
     "rule": "4.17+4.18"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 28.0,
     "unit_price": 55,
     "total": 1540.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1590,
     "total": 3180.0,
     "rule": "5.7+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 112.0,
     "unit_price": 6,
     "total": 672.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 19,
     "total": 532.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 6,
     "total": 168.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 9116.0,
   "confidence": "red",
   "estimator_checks": [
    "Form 2 run (10.5 m, over 10 m) is not priced under rule 4.18; confirm how it is to be dealt with or priced separately",
    "Priced runs are 8 m (entrance) and 6 m (top of ramp) = 14 m; the forms also mention 4 m ramp sections each side, so confirm the scope",
    "The forms ask for ooh working and phased work in a 24hr car park; confirm the number of night shifts (priced as 2 nights-gang days)",
    "Confirm whether traffic management is needed (24hr car park, 2.1 m height restriction)",
    "The forms mention possibly stainless steel channel; confirm the channel type",
    "Confirm whether the coloured dye line is needed at the entrance",
    "Surface is concrete in a car park, so asphalt reinstatement lines were used; confirm the surface"
   ]
  },
  {
   "item": "J0162",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2098.0,
   "confidence": "green",
   "estimator_checks": [
    "the 875 x 720 mm size is the existing cover, since the opening could not be measured",
    "the cover is inside the building (kitchen), so a sealed chequer plate is right"
   ]
  },
  {
   "item": "J0163",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-TM",
     "description": "Traffic management (subcontract)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 450,
     "total": 450.0,
     "rule": "P2 (forms order 3 way traffic management)"
    },
    {
     "code": "HIR-BRK",
     "description": "Hydraulic breaker attachment hire, per day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 75,
     "total": 75.0,
     "rule": "P2 (forms order breaker)"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 3.0,
     "unit_price": 260,
     "total": 780.0,
     "rule": "P2 (forms order 3 x asphalt repair kit)"
    }
   ],
   "quote_total": 5664.0,
   "confidence": "yellow",
   "estimator_checks": [
    "actual length of collapsed pipe (distance between assets and depth unknown)",
    "whether the 3 way traffic management is needed and who provides it",
    "whether dust extraction, a mini excavator or a generator is needed (not in forms as rate card items)",
    "whether the HGV entrance can stay open during works",
    "number of days the breaker is needed"
   ]
  },
  {
   "item": "J0164",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "GUL-POT",
     "description": "Gully pot / gully assembly (new)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1487.0,
   "confidence": "red",
   "estimator_checks": [
    "The form is vague and its two statements conflict: it says a gully is to be installed 'into manhole cover'. Confirm whether this is a new gully (priced here as gully, not a cover job) or a cover replacement.",
    "Confirm whether a new gully pot is needed (included) or only a grate and frame.",
    "Surface is not stated. A car park is probably tarmac, so asphalt (MAT-ASPH 2, MAT-BAND 1) would be added if confirmed. Not included.",
    "Confirm the number of gullies or locations (priced as 1) and the cause of the water pooling.",
    "No part required or size is given on the form."
   ]
  },
  {
   "item": "J0165",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "red",
   "estimator_checks": [
    "Both forms appear to describe the same run of about 12 m (12496.8 on form 1 is 41 ft entered in the metres field). Confirm that it is one run, not two.",
    "The run is over 10 m, so by rule 4.18 only 2 m is priced. Confirm what is actually damaged and the length to replace.",
    "Grade conflict: form 1 says D400 (HGVs), form 2 says F900 (Aircraft). Confirm the grade needed.",
    "Channel width conflict: 200 mm on form 1, 210 mm on form 2 (ulma). Confirm the channel type and width.",
    "Form 1 says replace all of the channel, but the form 2 part wording is 'channel and cover 12m'. Confirm whether a sump or trash box is needed.",
    "Confirm the yard is concrete and not a road or car park (this affects the surface lines), and whether traffic management is needed because of oncoming traffic."
   ]
  },
  {
   "item": "J0166",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 22,
     "total": 132.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 2.0,
     "unit_price": 38,
     "total": 76.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 568.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Pipe sizes are 2\" and 1.5\" but the rate card only has 110 mm pipe, so confirm the PIP-110 lines are the right substitute",
    "Confirm 6 fittings: 2x 2\" 90\u00b0, 1x 2\" swept T, 1x 1.5\"-2\" reducer, 2x 1.5\" 45\u00b0",
    "Confirm 2 pipe lengths: 1x 2\" and 1x 1.5\"",
    "Confirm half a day is enough for the kitchen work, and whether a grease trap clean-out or waste removal is needed",
    "Confirm the work is in hours only (access from 8am)"
   ]
  },
  {
   "item": "J0167",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4264.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm that the belly is repaired by a dig and pipe relay, because the form is labelled 'Other' and the part required is pipe and couplings",
    "Confirm 3 days of civils labour for a shallow (6 in) 1.5 m dig in turf",
    "Confirm the pipe is 4 in (110 mm) and the length to replace, about 1.5 m (one 3 m length priced)",
    "Confirm the number of couplings and fittings required",
    "Confirm turf reinstatement is not needed as a priced line",
    "The round foul manhole chamber is not being replaced, so this is not a manhole job"
   ]
  },
  {
   "item": "J0168",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1490,
     "total": 1490.0,
     "rule": "7.3+5.9"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1540.0,
   "confidence": "red",
   "estimator_checks": [
    "The form gives no part required and does not order a dig, so confirm what work is needed: jetting or CCTV only, or an excavation and pipe repair (7.2)",
    "Confirm the foul line is damaged in the ground and whether it needs a dig, relay or patch liner (PIP-LINER)",
    "Out of hours working is required, so nights/weekends rates are used. Confirm the timing",
    "Confirm traffic management or fencing is needed at the service area gate"
   ]
  },
  {
   "item": "J0169",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "1.5+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2068.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The job mixes a manhole form and a gully form. Only the cover is priced (rule 1.5), so confirm the gully grate at the front entrance sign is handled separately.",
    "The form says the opening could not be measured, yet it gives 680 x 680 mm. Confirm the real size, because 680 mm on both sides counts as a large cover (full-day crew).",
    "Confirm the seized lid and frame can be removed and replaced.",
    "Block paving surround: confirm no reinstatement materials are needed."
   ]
  },
  {
   "item": "J0170",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 410.0,
   "confidence": "yellow",
   "estimator_checks": [
    "pump make/model and price: the rate card has no pump line, so MSC-01 is a placeholder allowance and needs replacing with the real supplier cost",
    "confirm the pump size/type from the photos (not visible in the forms)",
    "confirm whether a half day is enough to remove and fit the pump and test it",
    "confirm whether the P1 urgent response needs out-of-hours work (the forms do not require it, so priced in hours)"
   ]
  },
  {
   "item": "J0171",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the surface round the gully is tarmac (the form only says tarmac on one side of the frame)",
    "Trench board is mentioned but has no rate card code, so it is not priced",
    "The grate is 280x280 and the only gully grate code is heavy duty hinged, so confirm that suits"
   ]
  },
  {
   "item": "J0172",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "P2 (disabled bays to be sectioned off, per notes)"
    }
   ],
   "quote_total": 4215.0,
   "confidence": "green",
   "estimator_checks": [
    "Part required lists only grates, bolts and materials, but the full 5 m channel has been priced as replaced (rule 2.2). Confirm whether only the grates are needed.",
    "Invert depths vary from 170 to 130 mm along the run, so confirm the channel depth.",
    "Confirm the fencing or sectioning-off of the disabled bays is needed and priced."
   ]
  },
  {
   "item": "J0173",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening of 230 x 230 mm is under 500 mm and may be mis-measured; confirm the real size",
    "location 'unit 4' is vague; confirm it is a footpath/pedestrian area (B125 grade suggests so) and not a vehicle area, which would need CVR-600-L",
    "frame depth '35m' looks like a typo (35 mm?)",
    "no 'Part required' given, so replacement is assumed by default",
    "block paving reinstatement around the cover is not priced"
   ]
  },
  {
   "item": "J0174",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Length is given as '1 grate', not in metres, so the 2 m minimum was used. Confirm the actual length of defective channel.",
    "Part required is only 'cement for side wall', so no channel or grate replacement is ordered. Confirm whether the work is a full replacement (default) or just a side-wall repair.",
    "Confirm the tarmac in front of unit D1 is a car park or road (the car-park surface lines were applied)."
   ]
  },
  {
   "item": "J0175",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 5354.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 (camera, Picote, possible HPWJ on the blocked kitchen pipework) is priced as a separate drainage crew, LAB-DRN-D 1. Confirm it is wanted alongside the dig.",
    "Surface type over the excavation route (block paving, concrete or tarmac) for reinstatement. None priced.",
    "The 50mm solvent-weld small-bore pipework, fittings and core drilling are not on the rate card and are not priced. Confirm whether to allow MSC-01.",
    "Dig length and depth, and whether the 3 m of 100mm pipe is the full run from the external manhole",
    "Whether temporary fencing is needed. The site is a secure officers' mess and ID is required to sign in."
   ]
  },
  {
   "item": "J0176",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "4.15+3.2"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 2714.0,
   "confidence": "green",
   "estimator_checks": [
    "whether either gully pot is broken (GUL-POT not priced)",
    "unit 2 grade is E600 (heavy forklift yard); the heavy-duty grate is priced as the nearest rate card line"
   ]
  },
  {
   "item": "J0177",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "red",
   "estimator_checks": [
    "Recorded size of 96 x 82 mm is impossible for a manhole cover. It may be cm (960 x 820 mm), which would be a large cover needing LAB-CIV-D 1 under rule 5.2. Confirm the actual size.",
    "Confirm the cover is inside the building (toilet corridor), so a sealed chequer plate is right.",
    "The opening could not be measured, so confirm the frame size on site.",
    "Confirm the surface type, as 'Other' was given."
   ]
  },
  {
   "item": "J0178",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 330,
     "total": 1650.0,
     "rule": "4.12+4.13+3.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 7545.0,
   "confidence": "red",
   "estimator_checks": [
    "Recorded size of 6000 x 6000 mm is impossible on both forms and no opening was measured, so confirm the real cover sizes (CVR-600-H is a default)",
    "Confirm the number of covers: form 2 says 5 covers and frames, form 1 is a separate location asking for one manhole and cover; 5 assumed in total",
    "Confirm that all covers are D400 and the same size",
    "Confirm the surface is concrete everywhere, with no tarmac"
   ]
  },
  {
   "item": "J0180",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 6.0,
     "unit_price": 95,
     "total": 570.0,
     "rule": "4.17 (1 m + 5 m)"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 12.0,
     "unit_price": 55,
     "total": 660.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 48.0,
     "unit_price": 6,
     "total": 288.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 12.0,
     "unit_price": 19,
     "total": 228.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 12.0,
     "unit_price": 6,
     "total": 72.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4423.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 has no length (na) but the notes ask for the whole run to be re-levelled: confirm the total length and whether it is more than the 6 m priced (a run over 10 m would not be priced in full)",
    "Form 2 grade is F900 (aircraft) while Form 3 is D400: confirm the grade, probably D400",
    "Confirm Forms 2 and 3 are separate sections at the same location (1 m and 5 m) and not the same run",
    "Confirm the surface is a road or car park (tarmac reinstatement priced)",
    "No sump has been priced; confirm none is needed given the heavy silt"
   ]
  },
  {
   "item": "J0181",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 10.0,
     "unit_price": 95,
     "total": 950.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 20.0,
     "unit_price": 55,
     "total": 1100.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 80.0,
     "unit_price": 6,
     "total": 480.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 20.0,
     "unit_price": 19,
     "total": 380.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 20.0,
     "unit_price": 6,
     "total": 120.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 6575.0,
   "confidence": "red",
   "estimator_checks": [
    "channel width of 1500 mm is implausible for an ACO channel, so confirm the real width",
    "grade F900 (aircraft) is implausible for a service yard, and the form says a heavier grade is not required, so confirm the real load class",
    "confirm the defective run is really 10 m. It is priced in full because it is not over 10 m, and a longer run would not be priced in full (4.18)",
    "confirm whether the whole 10 m is to be replaced or only a local defect",
    "worn, rusted bolts mean the grates cannot be lifted, so confirm the grates are being replaced",
    "no sump is mentioned, so confirm none is to be replaced"
   ]
  },
  {
   "item": "J0182",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 210,
     "total": 630.0,
     "rule": "3.2+4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 3196.0,
   "confidence": "green",
   "estimator_checks": [],
   "possible_duplicate_of": [
    {
     "item": "J0056",
     "labelled": false
    }
   ]
  },
  {
   "item": "J0183",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BRICK",
     "description": "Engineering bricks",
     "unit": "each",
     "qty": 20.0,
     "unit_price": 1.5,
     "total": 30.0,
     "rule": "P2 (form note: supporting bricks perished)"
    }
   ],
   "quote_total": 1947.0,
   "confidence": "green",
   "estimator_checks": [
    "quantity of engineering bricks needed to rebuild the frame support (20 is an estimate)"
   ]
  },
  {
   "item": "J0184",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is unknown: confirm what is needed (new cover and frame, or only a lift/repair) once on site",
    "Cover has a broken key hole and cannot be lifted: confirm access and condition of the chamber",
    "Opening could not be measured (cover size 530 x 530 mm, C250): confirm size and grade before ordering a replacement"
   ]
  },
  {
   "item": "J0185",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    },
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "2.1+4.12"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 5097.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 3 orders an excavation, so the quote follows the dig pattern (2.1). The new inspection chamber cover is priced inside it.",
    "Cover size and grade are not given. CVR-600-H is a default (4.12).",
    "Forms 1 and 2 (hole in channel, missing vc channel) are not priced separately. Confirm whether vc channel sections and mortar are wanted in addition.",
    "Yard surface is not stated, so no reinstatement line. Confirm whether it is concrete, tarmac or block paving.",
    "Chamber build materials (sections, bricks, benching) are not on the rate card. Confirm whether to add MSC-01 or extra lines.",
    "Confirm that the barriers asked for are the HIR-FENCE set."
   ]
  },
  {
   "item": "J0186",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3+2.4"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2258.0,
   "confidence": "green",
   "estimator_checks": [
    "Cover is seized and could not be lifted, so the frame size is taken from the old cover (950 x 650), not a measured opening. Confirm it on site."
   ]
  },
  {
   "item": "J0188",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1678.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 is priced as an in-chamber repair (benching and man entry) because it needs no new cover, so no cover line is included",
    "MSC-01 is an allowance for the 3 x 100 mm and 2 x 150 mm bungs; confirm it is enough",
    "Form 2 (the covered manhole that cannot be found) is not priced: it needs a locator and an uncover, and the forms do not say what repair follows",
    "Confirm whether a locator survey or a dig (rule 7.2) should be added for Form 2",
    "Confirm the Form 1 location and the man-entry requirements: 2 m deep, no step irons, 5 drop pipes"
   ]
  },
  {
   "item": "J0190",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / chequer plate / 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 9.0,
     "unit_price": 185,
     "total": 1665.0,
     "rule": "3.3+4.5+4.13"
    },
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "3.1+4.10"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 6.0,
     "unit_price": 1150,
     "total": 6900.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 66.0,
     "unit_price": 68,
     "total": 4488.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 14808.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Total manhole count: 9 on the Form 2 run, 1 lay-by cover (Form 3), plus 1 small 260 mm cover assuming Forms 4 and 5 are copies. Confirm whether the 260 mm covers are among the 9 or separate.",
    "260 mm covers: size is probably mis-measured and the C250 grade suggests vehicle use. Confirm the cover size and whether these are footway (plate) or trafficked (standard 600 cover).",
    "Whether the engineer's key-type lids need a special cover (the rate card has no keyed lid).",
    "The channel form (cosmetic damage, 20+ sections) is not priced because rule 1.5 prices one main repair per visit. Confirm whether a separate channel quote is needed.",
    "Form 2 wants all 9 manholes changed, but the Part required text only mentions seized or missing handles. Confirm the replacements are ordered.",
    "Cover grade on Form 2 is B125 (light duty) in a footpath area, so CVR-600-L is used."
   ]
  },
  {
   "item": "J0191",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 520,
     "total": 2600.0,
     "rule": "3.2+4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 8495.0,
   "confidence": "green",
   "estimator_checks": [
    "5 covers: FWMH7, FWMH12, SWMH3, soakaway next to SA3 (blank manhole) and FWMH2, all at 835 x 835 mm",
    "the forms say the opening could not be measured, but the 835 mm sizes are given, so confirm them",
    "block paving surround: no surface line added, confirm whether any paving reinstatement is needed"
   ]
  },
  {
   "item": "J0193",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0194",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0195",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, recessed (paving infill)",
   "quote_lines": [
    {
     "code": "CVR-REC",
     "description": "Cover & frame, recessed (takes paving/tile infill), any size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 410,
     "total": 410.0,
     "rule": "4.2"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.1+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "P2 (Chapter 8 barriers named in forms)"
    }
   ],
   "quote_total": 1983.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Chapter 8 barriers: confirm whether temporary fencing (HIR-FENCE) is enough or subcontract traffic management (SRV-TM) is needed",
    "Opening could not be measured: confirm the 650x650 size and that a recessed tray cover is right (existing cover is concrete infill with paving slabs, slab size 400x400)",
    "Confirm the out-of-hours window and that nights rate applies"
   ]
  },
  {
   "item": "J0196",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 2909.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0197",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "Location label 'mnp3' could mean a manhole, but the form, 410x410 size and flat grate design all point to a gully. Confirm it is a gully grate and not a manhole cover.",
    "Grate is rusted in and cannot be lifted. Confirm the frame can be removed without extra work."
   ]
  },
  {
   "item": "J0198",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 360,
     "total": 720.0,
     "rule": "3.2+4.1"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.3+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3306.0,
   "confidence": "green",
   "estimator_checks": [
    "Both covers are screeded; confirm they are sealed plate covers and not recessed trays (CVR-REC)",
    "Out-of-hours work is required after the store closes, so nights labour is priced"
   ]
  },
  {
   "item": "J0199",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of oily water/contaminated waste to be removed from lift shafts 1 and 2",
    "whether the 30 m suction hose is on the tanker or needs to be supplied (no rate card line, not priced)",
    "access to the lift shafts and whether confined space or other precautions are needed",
    "whether the waste is liquid (WST-LIQ) or oil-contaminated (WST-GRS)"
   ]
  },
  {
   "item": "J0202",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "red",
   "estimator_checks": [
    "Mixed job (catchpit cover, aco sump basket, pot gullies, collapsed drain camera surveys, branch line grinding). Priced one main repair only: the Form 2 catchpit cover (1.5, 2.2). Confirm whether the other work should be quoted separately.",
    "Cover size is not given, so the default CVR-600-H (D400 ordered) was used. Confirm the actual size of the catchpit cover.",
    "Hauraton is a channel drain brand, so the catchpit may belong to the aco channel. Confirm whether this is an inspection chamber cover or a channel catchpit/sump unit.",
    "Conflicting access requirements: Form 1 says out of hours required, Form 2 says in hours required with a locked gate out of hours. Priced in hours because the priced cover form asks for it. Confirm.",
    "Surface for the catchpit cover is not stated (nearby forms say tarmac). Add MAT-ASPH 2, MAT-BAND 1 and SUN-CARR 1 if it is tarmac.",
    "The pot gullies at the front of the unit have no cover (150 mm, 30 mm deep). Not priced because a cover job takes priority, and the client has been advised."
   ]
  },
  {
   "item": "J0203",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether Form 1 (manhole 47) and Form 2 (rear of TGI Friday's) are the same manhole or two separate chambers",
    "whether a new cover and frame is actually needed (Form 2 has no part required and the opening is 575 x 675 on grass, B125)",
    "brickwork quantity for replacement, as engineering bricks are not in the standard pattern",
    "concrete haunching and benching quantities",
    "the hazard noted on Form 1 (surround completely removed) and whether man entry or extra safety measures are needed"
   ]
  },
  {
   "item": "J0204",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": [
    "opening was not measured, so confirm the 600x600 cover size is the existing cover",
    "confirm the cover is outside the building (block paving surface), not inside it"
   ]
  },
  {
   "item": "J0205",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.5+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 2167.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface is mixed (tarmac and concrete): confirm whether the concrete repair kit (MAT-CREP 2) is also needed",
    "confirm whether the gully pot is broken and needs replacing (GUL-POT) or only the grate and frame",
    "confirm the weekend out-of-hours working, which the engineer says is required"
   ]
  },
  {
   "item": "J0206",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 600 x 600, light duty (A15/B125) / 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.13/4.14"
    },
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3334.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 (600x460) and Form 3 (650x470) fit no standard band exactly, so both were priced up to a 600x600 cover (4.11); confirm sizes",
    "Form 3 is on grass by a unit with a B125 grade, so it was priced light duty (foot traffic only) even though the form says heavier grade required: Yes; confirm whether vehicles can reach it",
    "Confirm that the shingle locations at S3A take vehicle traffic, because they were priced heavy duty",
    "Three separate locations were priced as three covers"
   ]
  },
  {
   "item": "J0207",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 330,
     "total": 1320.0,
     "rule": "3.3+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 24.0,
     "unit_price": 68,
     "total": 1632.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 5432.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm there are 4 lids (location text lists catchpits 47, 48 and 24, but notes say 4 lids)"
   ]
  },
  {
   "item": "J0209",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form orders no dig or part. Confirm the concrete can be cleared by jetting or cutting and does not need an excavation (a dig would be priced under 7.2).",
    "Confirm the exact line and location (outside unit 9) and whether it is foul or surface water.",
    "Confirm the extent of the concrete and whether CCTV is needed first.",
    "Confirm whether any small materials are needed (MSC-01)."
   ]
  },
  {
   "item": "J0210",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4783.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether this is a dig (collapsed channel plus access to install and outlet bend to cut straight) or only a jetting/CCTV visit (7.3)",
    "whether the CCTV survey on form 4 (225 mm pipe, possible collapse) needs its own crew",
    "what pipe or fittings are needed, because the parts are unknown",
    "whether traffic management is needed, since the location is a roadway",
    "how many access points are needed, because the forms describe the same channel several times",
    "reinstatement in concrete"
   ]
  },
  {
   "item": "J0211",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / chequer plate",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3574.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether FWMH 3 in corridor 1 is inside a building (sealed plate cover). If it is outside, use CVR-600-H instead",
    "Cover grade (no grade on any form, so heavy duty assumed)",
    "Surface type around each cover (not stated, so no surfacing lines added)",
    "Form 1 is 705 x 710 mm and Form 2 is 710 x 710 mm. Both are treated as square and fall in the 600 x 600 band"
   ]
  },
  {
   "item": "J0212",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.10+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2153.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The opening is 490 x 340 mm, under 500 mm, so the size may be mis-measured. Confirm the actual size.",
    "Confirm whether the catch pit is in a road or car park, where vehicles run (CVR-600x450-H), or on a footway (CVR-PLATE would apply instead). The Safeticurb kerb drainage suggests vehicle traffic.",
    "The form has no 'Part required' entry. Confirm a replacement cover and frame is wanted, not a clean-out or a repair to the channel drainage."
   ]
  },
  {
   "item": "J0213",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 330,
     "total": 990.0,
     "rule": "3.2+3.3+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3544.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0214",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4120.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the 3 forms are 3 separate runs (2 m + 1 m + 2 m = 5 m) or repeated forms for the same run (forms 1 and 3 have the same location text and length)",
    "whether the catchment pits (500x500, noted on forms 1 and 2) are to be replaced; if so add CHN-SUMP, reduce CHN-RUN to metres rounded down, add 1 CHN-GRATE and the extra sump bedding materials per 4.19, 4.21 and 6.5",
    "exact location, to confirm it is a car park or road (tarmac surface and D400 HGV grade assumed)"
   ]
  },
  {
   "item": "J0215",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4748.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 orders a 1 m section of 225 mm clay pipe, but the rate card only has 110 mm pipe. Confirm the pipe and fittings.",
    "Form 1 (patching and benching at the bottom of the unit 8 chamber) is not priced separately. Confirm whether to add chamber repair lines (PIP-CHAN 1, MAT-MORT 4) or cover it within the dig gang's time.",
    "Confirm whether temporary fencing is needed (HIR-FENCE) if the area is public or busy.",
    "Confirm the two forms are at different locations (unit 8 front door, units 5 and 7B side), so they are not duplicates."
   ]
  },
  {
   "item": "J0216",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 520,
     "total": 1560.0,
     "rule": "4.3+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 6.0,
     "unit_price": 260,
     "total": 1560.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 5814.0,
   "confidence": "green",
   "estimator_checks": [
    "The form says the chamber opening could not be measured, so confirm the 800 x 670 mm size is the existing cover size",
    "Confirm the three covers are SW3, SW4 and SW6, all the same size"
   ]
  },
  {
   "item": "J0217",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.2a+4.4+4.5+4.13 (form 1 existing 600x600, D400; form 3 600x600, D400)"
    },
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3 (form 2, 970x450, C250)"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 3.0,
     "unit_price": 260,
     "total": 780.0,
     "rule": "6.6 (2 for the tarmac cover plus 1 extra kit asked for in form 3 notes)"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 4654.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1: the note says to use the measured 760x760 opening, but rule 4.4 priced the existing 600x600 size (CVR-600-H). Confirm whether CVR-675-H is wanted instead",
    "Form 3: the opening was not measured and 600x600 is assumed. Confirm the size",
    "Form 2: the 970x450 opening is next to a fire hydrant cover (90 mm away). Confirm the size and fit",
    "Form 3: confirm whether the 350 mm haunching and the extra asphalt kit are needed. No haunching line has been priced",
    "Form 3: the 'exit road ofh' access note. Confirm whether out-of-hours working is required (priced in hours)"
   ],
   "possible_duplicate_of": [
    {
     "item": "J0992",
     "labelled": true
    }
   ]
  },
  {
   "item": "J0218",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 3345.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the tanker is only pumping out the high-level chambers and petrol interceptor, and the tonnes of contaminated waste to be removed",
    "whether a separate man-entry crew is wanted (breathing apparatus, route cutting) in addition to the drainage/CCTV crew",
    "whether the exposed interceptor cover at PI2 needs rebedding in this visit (rebeds are not predicted and no new cover is ordered)",
    "the location of the upstream surface water manhole and the catchment pit, as Form 1 gives none"
   ]
  },
  {
   "item": "J0219",
   "is_manhole_job": true,
   "job_type": "manhole: rebed / reset existing cover and frame (no new cover)",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.8"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 10.0,
     "unit_price": 68,
     "total": 680.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2304.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Price only the manhole rebed (Form 1) under Step 1.5. Confirm the grease removal with man entry (Form 2) and the root ingress (Form 3) are quoted separately or dropped.",
    "Confirm the road surface is tarmac, since the form gives no surface type.",
    "The manhole is in a main road with a traffic access issue. Confirm whether traffic management (SRV-TM) is needed. It is not in the rules, so it is not included.",
    "Confirm the old lid and frame are reused and no new cover is needed. The engineer says they are in good condition."
   ]
  },
  {
   "item": "J0220",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "Frame size of 50 x 50 mm looks like a mis-measurement; it does not change the gully pricing but is worth confirming"
   ]
  },
  {
   "item": "J0221",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2073.0,
   "confidence": "green",
   "estimator_checks": [
    "660x660 is the cover size, as the opening could not be measured",
    "the form does not say a new cover is needed (default replace, not a rebed)"
   ]
  },
  {
   "item": "J0223",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "number of gullies to be cleared (two forms, different locations)",
    "whether one day is enough for both gullies and the root cutting",
    "whether any gully needs a replacement grate or pot after clearing"
   ]
  },
  {
   "item": "J0224",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 2909.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0225",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 6.0,
     "unit_price": 95,
     "total": 570.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 12.0,
     "unit_price": 55,
     "total": 660.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 48.0,
     "unit_price": 6,
     "total": 288.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 12.0,
     "unit_price": 19,
     "total": 228.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 12.0,
     "unit_price": 6,
     "total": 72.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 3988.0,
   "confidence": "green",
   "estimator_checks": [
    "Delivery area is concrete and not a road or car park (if it is, use MAT-ASPH 4, MAT-BAND 2, SUN-CARR 1 instead of MAT-CREP)",
    "Channel length: the form says 6 m and the notes give 3.5 m + 2 m, which rounds up to 6 m"
   ]
  },
  {
   "item": "J0226",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Extent and depth of the collapse and whether pipe will be relaid (the 300 mm salt-glazed pipe is larger than the 110 mm on the rate card, so pipe and fittings are unknown)",
    "Tarmac reinstatement: no standard rule for it in the dig pattern, so confirm whether asphalt materials are needed",
    "Whether temporary fencing is needed, as it is a car park beside a building site",
    "Access and any traffic management around the scaffolding and dead-end road"
   ]
  },
  {
   "item": "J0227",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 3079.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface is not stated: the concrete surround is assumed from the 'concrete channel' wording, so confirm it is concrete (MAT-CREP 4)",
    "whether the rear doors count as an entrance needing a colour dye (MAT-DYE)",
    "whether the 3 m is one run and whether a sump / trash box is needed",
    "load grade of the channel is not given"
   ]
  },
  {
   "item": "J0228",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Form 2 says the work must be done early morning or on a night shift, while Form 1 says normal hours are fine. Priced in hours because nights are not strictly required. Confirm the timing.",
    "Form 2 cover is seized; replaced as per 2.4"
   ]
  },
  {
   "item": "J0229",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "red",
   "estimator_checks": [
    "Form 2 channel run of 18.5 m in the HGV service yard is not priced (over 10 m, rule 4.18); confirm how it should be quoted",
    "Form 1 (grease, CCTV, man-entry jetting, tanker, nights) is a different kind of work and is not priced under rule 1.5; confirm whether it needs a separate quote, as it needs nights and man entry",
    "Form 3 only: 0.5 m channel in the staff car park priced as the 2 m minimum, in hours, tarmac reinstatement",
    "Form 3 says C250 but heavier grade required is Yes; confirm the grade",
    "Form 3 says the channel has fallen in and could not be secured; confirm the replacement scope"
   ],
   "possible_duplicate_of": [
    {
     "item": "J0921",
     "labelled": true
    }
   ]
  },
  {
   "item": "J0231",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2480.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Both forms look like the same blocked interceptor trap at the loading bay, so they are priced as one job. Confirm this.",
    "Rule 7.1 applies because of the interceptor, so a tanker is included. Confirm the tanker is needed to empty the trap.",
    "Neither form says grease or contaminated waste is removed, so WST-GRS and WST-NOTE are left out. Add them (WST-GRS 4, WST-NOTE 1) and confirm the tonnage if the trap contents are taken off site.",
    "Confirm the picote milling kit and extension lead are available. They are not on the rate card, so no line is priced for them.",
    "The drainage crew covers HPWJ and picote descaling of the clay pipework downstream of the trap."
   ]
  },
  {
   "item": "J0232",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 3079.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0233",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, recessed (paving infill)",
   "quote_lines": [
    {
     "code": "CVR-REC",
     "description": "Cover & frame, recessed (takes paving/tile infill), any size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 410,
     "total": 410.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1638.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the cover is a recessed tray taking the concrete infill and lino finish (CVR-REC). If it is a plain sealed cover, use CVR-PLATE instead.",
    "The engineer notes the cover 'may come up without damage'. Confirm that a replacement is wanted rather than a visit or reseal."
   ]
  },
  {
   "item": "J0234",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1302.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type around the gully (tarmac, concrete or block paving) is not given, so no surface reinstatement lines were added",
    "confirm the gully pot is intact and only the grate and frame need replacing",
    "confirm the number of gullies (one assumed)"
   ]
  },
  {
   "item": "J0235",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.11+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 cover is 620 x 460, which fits no standard band, so the next size up (600 x 600) was used; confirm the size",
    "Form 1 grade is B125 but 'heavier grade required: Yes', so heavy duty was priced; confirm traffic at Unit 9",
    "Form 4 has no location; it was counted as a separate cover because its size differs from Form 1; confirm it is not a repeat",
    "Both covers are corroded and cannot be lifted; confirm break-out is covered by the single gang day",
    "The two root ingress forms (gully outlets, car park) were not priced as one main repair per visit; a separate drainage quote with root cutting may be needed"
   ]
  },
  {
   "item": "J0236",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 2715.0,
   "confidence": "red",
   "estimator_checks": [
    "Length conflict: the length field says 1000 (1 m), but Part required asks for 16 m of 6 inch ACO. The 16 m run is over 10 m, so it is not priced in full and 2 m is priced instead. Confirm the real length and whether the 16 m run needs a separate quote.",
    "Is the tarmac at the rear of the site a car park or road? The tarmac surface lines (6.11) assume it is.",
    "Black dye is requested in the Part required field; confirm it is wanted.",
    "Part required quantities (tons of ballast, 1 ton of sharp sand) are unclear and were replaced by the standard channel bedding quantities.",
    "The existing channel is concrete aircraft-grade (F900) and the requested replacement is 6 inch ACO. Confirm the loading grade is suitable."
   ]
  },
  {
   "item": "J0237",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.3+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 4426.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the two covers are separate locations (roadway vs car park exit)",
    "Night work is required for the roadway cover, so the nights gang is used for the whole job",
    "Traffic management is not included; confirm whether it is needed for the roadway"
   ]
  },
  {
   "item": "J0238",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-H",
     "description": "Drainage gang (2 operatives + jetter van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 610,
     "total": 610.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 610.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is 'unknown' on the form, so this is priced as a drainage crew visit to find the cause",
    "Confirm what is backing up: surface water system or channel, and where it runs to and from (the forms say it comes from off-demise and runs off-demise)",
    "The jetting crew needs tiger tails or a suitable hose for the dirty channel, because the previous attempt shredded the hose",
    "Whether a full day of jetting, CCTV or a dig will be needed after the visit"
   ]
  },
  {
   "item": "J0240",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Road plate hire to protect the cure time is not on the rate card, so it is not priced. Confirm whether to allow for it (e.g. MSC-01) or for traffic management.",
    "The form grade is D400, but the notes say a low-grade cover is currently in place. Either way the new cover is heavy duty (D400), so confirm the existing grade.",
    "The surface is concrete and the cover is in a road, so confirm whether any surface reinstatement is needed."
   ]
  },
  {
   "item": "J0244",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "red",
   "estimator_checks": [
    "Mixed job (channel, gully, CCTV, grease): one main repair priced under 1.5, gully chosen over channel. Confirm the engineer's intended main repair.",
    "Gully form says the cover is OK but the chamber is full of set concrete, and no part is ordered. The gully grate replacement is the default (2.4). Confirm what work is actually needed.",
    "Channel form asks for a catchpit and 2 replacement grates (145 x 500 mm), with a second 32 m channel in a workshop. Not priced here: the 32 m run is over 10 m (4.18) and channel ranks below gully in 1.5.",
    "CCTV survey (unit 17-18, cannot jet beyond 0.5 m) and grease-affected PI full of FOG (tanker, WST-GRS) not priced. Confirm whether to quote these separately.",
    "SW lid number 10 is under several hundred kilos of glass in a locked compound. Confirm access and whether the lid needs work."
   ],
   "possible_duplicate_of": [
    {
     "item": "J0323",
     "labelled": false
    }
   ]
  },
  {
   "item": "J0245",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm whether the gully pot is also broken (GUL-POT is only added if it is)",
    "Gully is solid with silt and not flowing: confirm whether clearing is needed, as it is not priced here"
   ]
  },
  {
   "item": "J0246",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Cause of the backup is unknown. The jetting did not lower the level, so confirm whether CCTV, a tanker or a dig will be needed.",
    "Landscapers must clear the shrubs to reach the manhole between this one and the offsite one. Confirm who arranges and pays for that, as it is not priced here.",
    "Confirm whether the form is asking for a return jetting visit or only reporting the issue."
   ]
  },
  {
   "item": "J0247",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 2.0,
     "unit_price": 38,
     "total": 76.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4397.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type over the 6 m run (car park exit) and any reinstatement needed",
    "whether the pipe is to be relaid or only patched (6 m of 4in clay assumed replaced in 110 mm)",
    "whether the interceptor needs emptying or tanker work",
    "whether traffic management or fencing is needed at the car park exit",
    "the cause of the smell near the basement"
   ]
  },
  {
   "item": "J0248",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0249",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 210,
     "total": 630.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 3196.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0250",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 520,
     "total": 1560.0,
     "rule": "3.2+4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 6.0,
     "unit_price": 260,
     "total": 1560.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 5814.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Three covers at different locations (pedestrian crossing, HGV bay 10, reception/HGV bay 1), all 900x600 D400, so priced as 3 separate items",
    "Petrol interceptor form (tanker, confined space entry, fibreglass removal) is not priced here under rule 1.5 (one main repair per visit). Confirm whether it needs a separate quote",
    "Heavy-duty cover required: 900x600 on tarmac in HGV areas, priced as CVR-750-H"
   ]
  },
  {
   "item": "J0251",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether a tanker is needed to remove the debris and water from the 2 gully chambers",
    "whether the gullies are blocked only or also damaged (no part is ordered, so no grate or pot is priced)",
    "whether traffic management or bay closure is needed in the car park",
    "whether jetting or CCTV is needed on the downstream pipework"
   ]
  },
  {
   "item": "J0252",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 55,
     "total": 165.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 6,
     "total": 168.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2988.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0253",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm the chamber is accessible and the benching repair is the only work needed",
    "whether traffic management is needed on the main road",
    "confirm whether man entry or breathing apparatus is required",
    "size and depth of the chamber and extent of the benching collapse"
   ]
  },
  {
   "item": "J0256",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 8.0,
     "unit_price": 95,
     "total": 760.0,
     "rule": "4.17 (2 + 6 m, separate locations)"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 16.0,
     "unit_price": 55,
     "total": 880.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.7 (8 m or more)"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2 (replaces WST-GEN)"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 64.0,
     "unit_price": 6,
     "total": 384.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 5983.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0259",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": [
    "Chamber opening was not measured; size taken from the existing cover (600 x 600)"
   ]
  },
  {
   "item": "J0260",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease/contaminated waste to be removed from the interceptor",
    "whether any investigation or jetting of the interceptor or its pipework is also needed",
    "no part is specified in the form, so confirm the scope of work",
    "whether out-of-hours work is needed (the form says P1 Urgent, 1-3 days, but does not require nights or weekends)"
   ]
  },
  {
   "item": "J0261",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.7+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "green",
   "estimator_checks": [
    "whether vehicles use the cage area (grade chosen as C250 from the form)"
   ]
  },
  {
   "item": "J0262",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The forms give no remedy for the displaced joint upstream of FW25. Confirm whether jetting and CCTV is enough, or a patch liner (PIP-LINER) or a dig (7.2) is needed.",
    "Confirm how far the pipe is reduced to 3 inch and where the joint sits (right side of unit 4).",
    "Confirm access to unit 4 and the toilets, and whether any work must be out of hours."
   ]
  },
  {
   "item": "J0264",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "the form does not say what work is wanted: confirm that a tanker should pump out and remove the FOG (fats, oils, grease)",
    "tonnes of grease waste to be removed",
    "whether jetting or CCTV is also needed to clear the cause (would add LAB-DRN-D 1)",
    "which lines are surcharged and where they are, at the rear of the premises"
   ]
  },
  {
   "item": "J0265",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17+4.19+4.20"
    },
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 7.0,
     "unit_price": 55,
     "total": 385.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 36.0,
     "unit_price": 6,
     "total": 216.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 19,
     "total": 152.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 6,
     "total": 48.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 3510.0,
   "confidence": "red",
   "estimator_checks": [
    "Form 2 is an 'Other' form about a roughly 9 m silted concrete channel at the restaurant car park entrance. It is a cleaning problem, not a defect, and the only work suggested is a catchpit. Confirm whether a catchpit (sump) is wanted and whether any of the 9 m should be replaced; I priced the sump with a minimum 1 m run.",
    "Form 1 gives grade A15 but also says a heavier grade is required. Confirm the grade needed (C250/D400) for the 2 m run at the rear.",
    "The two forms are at different locations (rear of the business and the entrance), so I priced them as separate items.",
    "The surface of the Form 2 entrance channel is assumed to be concrete. If it is in the car park (tarmac), swap MAT-CREP for MAT-ASPH 4, MAT-BAND 2 and SUN-CARR 1.",
    "Confirm whether the channel outlet and the sw 13 manhole connection are as per the map, since no outlet was found.",
    "The 9 m run is under the 10 m limit but close to it. Confirm the actual length."
   ]
  },
  {
   "item": "J0266",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0267",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    },
    {
     "code": "HIR-DUST",
     "description": "Cut-off saw dust extraction unit hire",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 60,
     "total": 60.0,
     "rule": "P2 (concrete cutting equipment named in Part required)"
    }
   ],
   "quote_total": 1688.0,
   "confidence": "yellow",
   "estimator_checks": [
    "extent of concrete in the chamber and whether the channel and benching need rebuilding (PIP-CHAN, MAT-MORT)",
    "whether a dust extraction unit or other cutting kit is needed (HIR-DUST)",
    "whether confined-space entry or breathing apparatus is needed",
    "access past the concrete blocks at the yard entrance",
    "waste volume from broken-out concrete (WST-GEN may need to be a skip)"
   ]
  },
  {
   "item": "J0268",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 4.0,
     "unit_price": 95,
     "total": 380.0,
     "rule": "4.16"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 8.0,
     "unit_price": 55,
     "total": 440.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 32.0,
     "unit_price": 6,
     "total": 192.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 19,
     "total": 152.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 6,
     "total": 48.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4671.0,
   "confidence": "red",
   "estimator_checks": [
    "Length of defective channel is 2 m but Part required orders 4 sections. Confirm the number of sections or metres to replace (4 priced, following the order).",
    "Surface is both concrete and tarmac. Confirm the split and whether both the concrete repair kit and the asphalt repair are needed.",
    "Confirm whether a coloured finish (dye) is needed at the entrance.",
    "Confirm whether the entrance is a vehicle road or car park area (tarmac reinstatement lines were added because tarmac resurfacing is ordered)."
   ]
  },
  {
   "item": "J0270",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether one drainage day covers all three root-cutting runs (5 m, 10 m, 20 m)",
    "whether any waste removal or tanker is needed",
    "whether CCTV is required after cutting"
   ]
  },
  {
   "item": "J0271",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2073.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0272",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening is only 310 x 310 mm, so the size is under 500 mm (rule 4.10). Confirm whether it is on a footway or forecourt (CVR-PLATE, as quoted) or in a car park or vehicle area (use CVR-600-L instead).",
    "Centre management has not yet decided between in-hours and out-of-hours work. Quoted in hours, because out-of-hours is not required in the forms. If out-of-hours is chosen, change to LAB-CIV-NH.",
    "Confirm the sealed screw-down plastic cover and frame suits the location and traffic, as the rate card has no plastic cover.",
    "The disabled parking bay needs coning off by site staff for vehicle access."
   ]
  },
  {
   "item": "J0273",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm that 'new gully' means a replacement grate and frame only, not a new gully pot"
   ]
  },
  {
   "item": "J0274",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2480.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the foul chamber is surcharged and needs tanker pump-out and a drainage crew to jet and investigate the blocked or collapsed outlet line",
    "Confirm whether foul or contaminated waste will be removed, which would add WST-GRS and WST-NOTE, and the tonnage",
    "Confirm whether the surface water road gullies and lines will be flushed and emptied in the same visit; liquid waste disposal would be extra",
    "Outlet line is 9 inch, so confirm whether the 110 mm rate card pipe items apply if a collapse needs a dig",
    "The engineer says remedial works will be quoted after the investigation, so this quote covers the investigation and clearing visit only"
   ]
  },
  {
   "item": "J0275",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2048.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form asks only for materials to set the manhole back in place. Confirm whether this is a rebed (re-set the existing frame) or a new cover, as quoted under default rule 2.4.",
    "The 610 x 460 opening is slightly outside the 600 x 450 band (width 460 vs 445-455). Confirm the size and that a 600 x 450 frame fits, or whether 600 x 600 is needed.",
    "Bricks have come away and one side of the chamber is open. Confirm whether brickwork or chamber repair is needed (e.g. MAT-BRICK).",
    "Confirm the footpath is pedestrian only, which is why a light-duty cover is quoted."
   ]
  },
  {
   "item": "J0276",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "GUL-POT",
     "description": "Gully pot / gully assembly (new)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 2102.0,
   "confidence": "green",
   "estimator_checks": [
    "GUL-POT included because the gully base is broken through; confirm a new pot or assembly is needed",
    "one grate assumed"
   ]
  },
  {
   "item": "J0277",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2258.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0279",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Mixed job: only the 2 m ACO channel replacement (Form 2) is priced, per rule 1.5/1.3. The other forms are not priced: collapsed drain camera survey, FOG contamination tanker (about 30 m of channel and 3 SW chambers), the missing 1 m grate at the access ramp, the channel with no catchpit, and the out-of-hours silted 1200 mm lines at SW32/34/39 with confined-space entry. Confirm whether any of these need separate quotes.",
    "Form 4 (1 m grate missing at the bottom of the access ramp) is a different location from Form 2. Confirm whether to add 1 m of channel and grates.",
    "Surface is concrete at a delivery area entrance. Confirm whether colour dye is needed instead of or as well as the concrete repair kit.",
    "The 30 m of channel in the contamination form is a cleaning job, not a defective run. It is not priced under rule 4.18."
   ]
  },
  {
   "item": "J0280",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 4.0,
     "unit_price": 95,
     "total": 380.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 8.0,
     "unit_price": 55,
     "total": 440.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 32.0,
     "unit_price": 6,
     "total": 192.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 19,
     "total": 152.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 6,
     "total": 48.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3817.0,
   "confidence": "green",
   "estimator_checks": [
    "note says 'x2 different types of aco': confirm the 4 m is the total run and whether the two types need different grates or sections"
   ]
  },
  {
   "item": "J0281",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "green",
   "estimator_checks": [
    "location is vague (turn-in of a business): confirm it is not a car park or road, which would change the surface lines to asphalt (6.11)"
   ]
  },
  {
   "item": "J0282",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2480.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Forms are PPM/Other with no part ordered, so this is priced as a combi tanker clean-out of the channel plus CCTV/jetting. Confirm that scope.",
    "One full shift for the tanker is stated in Form 3. Confirm whether CCTV needs a separate crew (LAB-CCTV-D) instead of the drainage crew.",
    "Confirm whether to allow for disposal of the stone and silt (WST-LIQ or WST-GEN) and a consignment note.",
    "The bolted catchment pit needs the bolts drilled out. Confirm whether to allow MSC-01 for this.",
    "Confirm whether any cover or catchment pit replacement is wanted. None is ordered in the forms.",
    "Confirm whether the work is in hours. No night or out-of-hours work is required in the forms, but the location is a road, so check whether traffic management (SRV-TM) is needed."
   ]
  },
  {
   "item": "J0283",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1748.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening is 730 x 580 mm, a non-standard rectangle (not square, not a standard band). Confirm the size and that the 750 x 750 heavy duty cover is the right replacement.",
    "Confirm the grade is C250 / heavy duty. The form says no heavier grade is needed, and vehicle use at the main entrance is unclear."
   ]
  },
  {
   "item": "J0284",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 3329.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0286",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Both forms say Part required is unknown, so this is a crew visit to find out what is needed.",
    "Form 1 (car park channel, full of soil and plants) says access is night time only. Confirm whether the visit needs nights/weekends (LAB-CIV-NH) or can be done in hours. The service yard manhole says no access issues.",
    "Form 2 manhole is 600x600 with grade A15, but 'heavier grade required' is Yes. Confirm the grade needed.",
    "Channel clearance in the car park may need a drainage crew instead of a civils crew (LAB-DRN-H). Only one main item is priced per visit."
   ]
  },
  {
   "item": "J0287",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.7+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 4125.0,
   "confidence": "green",
   "estimator_checks": [
    "surface is concrete at the entrance to the underground car park, so concrete repair (6.9) is used rather than asphalt (6.11); confirm",
    "weekend working is required by the client, so the nights/weekends crew rate is used"
   ]
  },
  {
   "item": "J0288",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1302.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type around the gully (tarmac would add MAT-ASPH 2 and MAT-BAND 1; concrete or block paving would add MAT-CREP 2)",
    "number of gullies (assumed 1)",
    "whether the gully pot is also broken (GUL-POT)",
    "confirm replacement of grate and frame is intended, as the form is an Other/PPM form with no part required field",
    "whether traffic management is needed at the roundabout"
   ]
  },
  {
   "item": "J0289",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 185,
     "total": 370.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2516.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the two covers are separate: the SW and FW manholes are at different locations, so they are priced as two items",
    "Form 2 mentions cutting equipment to cut out the fused frame; no rate-card line is added for it (HIR-DUST is the only possible one), so confirm whether it is needed",
    "Frame and surrounding brickwork are lifting in block paving; confirm no extra brickwork or paving reinstatement is needed"
   ]
  },
  {
   "item": "J0290",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125) / 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 160,
     "total": 320.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3059.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0291",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease/contaminated waste to be removed (3rd chamber not visible, assumed contaminated)",
    "whether any investigation or jetting of the interceptor or outlet pipework is also required"
   ]
  },
  {
   "item": "J0292",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "300x300 opening is under 500 mm and may be mis-measured; confirm the actual size",
    "drive-thru is treated as a vehicle area, so a standard 600x600 cover is used; confirm",
    "engineer asked for a plastic Brett 300x300 lid (code B2802), which is not on the rate card; confirm a standard light-duty cover is acceptable",
    "block paving reinstatement around the cover is not priced; confirm whether any is needed"
   ]
  },
  {
   "item": "J0293",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, other / non-standard size",
   "quote_lines": [
    {
     "code": "CVR-OTHER",
     "description": "Cover & frame, other / non-standard size",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 350,
     "total": 1050.0,
     "rule": "4.9"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 6.0,
     "unit_price": 260,
     "total": 1560.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 5304.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the three covers are the same 600 x 443 size",
    "Confirm the opening size, since 443 mm is just under the standard 450 mm width",
    "Confirm the grade, as the form says A15 but vehicles drive over it daily"
   ]
  },
  {
   "item": "J0294",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0295",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening 640 x 480 is not a standard band; priced as the next size up (600 x 600), so confirm the size",
    "grade: the old cover is A15, but heavier grade is required and it is a driveway, so heavy duty (D400) was used",
    "the form mentions concrete to bed the frame; standard mortar bedding was priced, so confirm whether extra concrete is needed",
    "shingle surface, so no surface reinstatement lines were added"
   ]
  },
  {
   "item": "J0296",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the repair is limited to the chamber side wall and base. If the collapsed clay pipe outside the chamber needs digging out and relaying, re-quote as a dig (7.2).",
    "Confirm the extent of the collapse, because the distance between assets is unknown.",
    "Confirm whether man entry or breathing apparatus is needed.",
    "Confirm whether any tarmac reinstatement is needed."
   ]
  },
  {
   "item": "J0297",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening is under 500 mm (450x450), so the size comes from rule 4.10. Confirm the measurement.",
    "Confirm the location is a vehicle area (rear of the premises, tarmac, C250 grade) and not a footway. If it is a footway, use CVR-PLATE instead.",
    "Confirm the heavier grade (C250 or above) is needed.",
    "Confirm that same-day P0 priority does not mean out-of-hours working. It is priced in hours."
   ]
  },
  {
   "item": "J0298",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0299",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 265,
     "total": 530.0,
     "rule": "3.2+4.10+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2676.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Chamber openings were not measured and the 330 x 270 cover size is probably mis-measured; confirm the real size",
    "Confirm there are two separate covers, since the two bay locations differ",
    "Form 2 asks for a frame repair, not a new cover; confirm a full replacement is wanted",
    "Form 1 says D400 with no heavier grade needed and form 2 says C250 with heavier grade needed; both priced as heavy duty",
    "Confirm block paving reinstatement is not needed (no surface lines added)"
   ]
  },
  {
   "item": "J0300",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": [
    "frame depth recorded as '2meters', which looks like a data entry error; it does not affect the lines priced"
   ]
  },
  {
   "item": "J0301",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "cover size and grade (none given, defaulted to 600x600 heavy duty)",
    "surface around the manhole in the unit road (tarmac would add MAT-ASPH 2, MAT-BAND 1, SUN-CARR 1)",
    "the 20 m channel drain on Form 2 is not priced (rule 1.5: one main repair per visit, and a run over 10 m is never priced in full); confirm whether it needs a separate quote"
   ]
  },
  {
   "item": "J0302",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening is under 500 mm, so confirm the size was measured correctly",
    "Confirm the location is a pedestrian area (grass, A15) with no vehicle access; if vehicles can reach it, use CVR-600-L instead",
    "The form says the lid is in good condition and only a new frame is needed. The rate card has only cover-and-frame sets, so confirm the full cover and frame set is acceptable"
   ]
  },
  {
   "item": "J0304",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of contaminated waste",
    "whether investigation of the source of the sewage (e.g. CCTV/jetting of connected foul drainage) is required, as the forms do not ask for it",
    "whether the interceptor needs only emptying or any repair"
   ]
  },
  {
   "item": "J0305",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-ND",
     "description": "Vacuum tanker + crew, nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1890,
     "total": 1890.0,
     "rule": "7.1+5.9"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1490,
     "total": 1490.0,
     "rule": "7.1+5.9"
    }
   ],
   "quote_total": 4245.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease waste (estimate of 4)",
    "whether the crawler camera needs to be charged separately (HIR-CAM) or comes with the drainage gang",
    "confirm the out-of-hours window and access to the manholes",
    "road gully believed to be the source; not priced as a gully repair"
   ]
  },
  {
   "item": "J0306",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "surface type is only given as 'Other', so no surface reinstatement lines were added; confirm it is not tarmac",
    "opening could not be measured, so the size is taken from the 670 x 670 mm cover"
   ]
  },
  {
   "item": "J0307",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 15.0,
     "unit_price": 95,
     "total": 1425.0,
     "rule": "1.5+3.2+4.17 (2+2+6+5 m)"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 30.0,
     "unit_price": 55,
     "total": 1650.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1+6.3"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 120.0,
     "unit_price": 6,
     "total": 720.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 30.0,
     "unit_price": 19,
     "total": 570.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 30.0,
     "unit_price": 6,
     "total": 180.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 8525.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Forms 5 and 6 (root ingress) are not priced because only one main repair is priced per visit (rule 1.5). They need a separate drainage quote.",
    "Confirm the four channel locations are separate runs (2, 2, 6 and 5 m) and not duplicate forms. Forms 1 and 2 are both near the PI.",
    "Confirm whether the catchpit on form 1 is being replaced. If it is, add CHN-SUMP 1.",
    "Form 4 orders top grates only. Confirm whether the channel runs also need replacing.",
    "Form 4 says heavier grade required (Yes) while the others say No. Confirm the grade.",
    "Form 1 gives conflicting invert depths: 280 mm in the field against 180 mm in the notes.",
    "Confirm whether the tarmac is in a car park or road, which decides if the asphalt, overbanding and carriage lines (rule 6.11) apply.",
    "Confirm whether the 15 m total needs two civils gang days and a skip, since no single run is 8 m or more."
   ]
  },
  {
   "item": "J0308",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": [
    "frame depth entered as '16p' (probably a typo; does not affect pricing)"
   ]
  },
  {
   "item": "J0309",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of silt and contaminated waste to remove",
    "interceptor type and size (not known)",
    "condition of collapsing walls: whether a structural repair or drainage investigation is needed after clearing",
    "access on the building site for the tanker"
   ]
  },
  {
   "item": "J0310",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1: part required is 'unknown' and the cover (700x700, C250, block paving) is rusted down and cannot be opened, so the visit must establish what is needed",
    "Form 2: balance pond dredging and the sw manholes holding water are not priced; confirm whether a tanker or drainage crew is needed, and the access and waste tonnage",
    "Whether the two forms are related (the pumping issue may be why the manholes are holding)"
   ]
  },
  {
   "item": "J0312",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "1.1+2.2+4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2248.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm that a sealed double-seal cover is wanted (priced as CVR-PLATE under 4.1). If a standard cover is wanted instead, use CVR-600x450-H, since vehicles could drive over it.",
    "The form gives no load grade, and the cover is beside the entrance but could be driven over.",
    "The form is labelled 'Other / Reactive' but orders a new cover and frame, so it is priced as a cover job."
   ]
  },
  {
   "item": "J0313",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "red",
   "estimator_checks": [
    "Root ingress form has implausible or conflicting values: downstream asset depth 20 m, an unlabelled 10 m field, and 'line holding water: Heavy'. Confirm the real depth and run length.",
    "Forms 2 and 3 (foul manhole off unit 15, 580x580, and surface water manhole by unit 7) are seized covers on 'Other' forms. No new cover or frame is ordered, so none is priced. Confirm whether replacement covers are wanted (CVR-600-? each, with a civils gang).",
    "Confirm whether root cutting by jetting is enough or a patch liner (PIP-LINER) is needed after the survey.",
    "Confirm whether out-of-hours or traffic management is needed for the tarmac / road location."
   ]
  },
  {
   "item": "J0314",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 4.0,
     "unit_price": 95,
     "total": 380.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 8.0,
     "unit_price": 55,
     "total": 440.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 32.0,
     "unit_price": 6,
     "total": 192.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 19,
     "total": 152.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 6,
     "total": 48.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 3382.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0315",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-D",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 620,
     "total": 620.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 620.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm whether the mini miller descaling kit is the engineer's own equipment or needs hiring or an MSC-01 allowance",
    "Confirm whether any compression fittings or seals will need replacing (PIP-FIT)",
    "Site opening times: work is in hours, so confirm the access window suits a full shift"
   ]
  },
  {
   "item": "J0316",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 4.0,
     "unit_price": 95,
     "total": 380.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 8.0,
     "unit_price": 55,
     "total": 440.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 32.0,
     "unit_price": 6,
     "total": 192.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 19,
     "total": 152.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 6,
     "total": 48.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 3382.0,
   "confidence": "red",
   "estimator_checks": [
    "The notes describe a blocked or filled-in channel (a new concrete pillar poured round it, with the outlet to the manhole possibly broken or blocked), not a worn channel. Confirm whether the work is replacing 4 m of channel or clearing or re-forming the outfall to the manhole, which might need jetting, CCTV or a dig.",
    "The 'Part required' field is blank, so replacement was applied as the default under 2.4.",
    "Check whether the 4 m length is the whole defective run and whether a sump or trash box is needed.",
    "Confirm the surface (concrete) and that the area is not a car park or road."
   ]
  },
  {
   "item": "J0317",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3168.0,
   "confidence": "green",
   "estimator_checks": [
    "form says the chamber opening could not be measured, but cover size 695 x 695 is given; confirm the size",
    "access is out of hours only; confirm the night/weekend crew is needed",
    "695 x 695 is large (both sides 675 mm or more), so a full-day crew is priced"
   ]
  },
  {
   "item": "J0318",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": [
    "ooh work is only 'possible', so it is quoted in hours; confirm whether nights are required (5.9)",
    "busy road: confirm whether traffic management is needed",
    "confirm the gully pot is not broken (GUL-POT not included)"
   ]
  },
  {
   "item": "J0319",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "700 x 555 mm is neither square nor a standard band, so the size band was chosen by judgement (CVR-600). Confirm the right frame size on site.",
    "The chamber opening was not measured; the 700 x 555 figure is the existing cover.",
    "Confirm whether vehicles can reach the rear of the unit 33 toilet block (heavy or light grade). The form grade D400 was kept."
   ]
  },
  {
   "item": "J0320",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "4.16"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 55,
     "total": 110.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2496.0,
   "confidence": "green",
   "estimator_checks": [
    "Form says barriers are needed to section off the car park. No barrier or traffic management line was added because the rules give none for channel jobs. Confirm whether SRV-TM or HIR-FENCE is wanted.",
    "Part required orders '1x 1m length', so CHN-RUN is 1 under 4.16 rather than the 2 m minimum in 4.20. Confirm 1 m is right.",
    "Part required also mentions concrete, but the channel is in a car park, so the tarmac surface lines (6.11) were used."
   ]
  },
  {
   "item": "J0321",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 330,
     "total": 1320.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 7735.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 notes say all manholes on site need looking at (soakaway covers, a couple of SW, FW in the road), but give no count. I priced one 1000x1000 cover for Form 1; confirm how many covers are really required.",
    "Form 3 and Form 4 are both in the middle of a through road at different spots, so I priced them as two separate covers. Confirm they are not the same cover.",
    "Form 5 cover is compacted down and the engineer recommends a new 600x600 C250 solid top. I priced this as CVR-600-H on a 630x630 opening; confirm the size.",
    "Several covers are in the middle of a busy through road. Traffic management is not priced; confirm whether it is needed and when the client wants access."
   ]
  },
  {
   "item": "J0322",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1388.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0323",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease/FOG waste to remove from the PI",
    "whether jetting or investigation of the interceptor and outlet is also needed",
    "access to the PI just inside the main gate, and whether out-of-hours working is required"
   ],
   "possible_duplicate_of": [
    {
     "item": "J0244",
     "labelled": false
    }
   ]
  },
  {
   "item": "J0324",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400) / 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 265,
     "total": 1325.0,
     "rule": "3.3+4.6+4.14"
    },
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "3.2+4.11+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 36.0,
     "unit_price": 68,
     "total": 2448.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 12.0,
     "unit_price": 260,
     "total": 3120.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 11408.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 'Part required' starts '5x': confirm there are 5 covers of 600x450 at the 'outside [business]' location and not 1",
    "Form 1 opening is 600x460, slightly outside the 600x450 band; priced as 600x450 per the 'Part required' text",
    "Form 2 opening is 700x550 (part text says 700x600), which fits no standard band; priced as CVR-750-H (nearest band above); confirm size",
    "Form 2 frame is reported broken and was not lifted; confirm the replacement and the access",
    "Grade is H (D400) on both forms and vehicles use the road; confirm",
    "Total 6 covers gives 3 civils days, so a skip is used instead of WST-GEN"
   ]
  },
  {
   "item": "J0325",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "GUL-POT",
     "description": "Gully pot / gully assembly (new)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 2102.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Priced as one gully repair under 1.5. Confirm that the rodding eye (Form 1, part unknown) and the pump station lid cementing (Form 2) are not meant to be quoted. The rodding eye would be a separate crew visit under 2.3.",
    "The gully pot is cracked and missing its rim, so a new pot is included. Confirm whether the grate and frame (reported OK) really need replacing as well.",
    "Confirm the surface is tarmac and the location, next to PI 3 in the front car park."
   ]
  },
  {
   "item": "J0326",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Gully grate (form 1) and petrol interceptor clearance (form 2) are not priced, because only one main repair is quoted per visit (rule 1.5). Confirm whether they need separate quotes.",
    "The two manholes are at different locations (workshop entrance and main entrance by the fire door), so they are priced as two covers.",
    "Both covers are 590 x 590 and the opening could not be measured. Confirm the size on site."
   ]
  },
  {
   "item": "J0327",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "P2 (100mm cast iron cap named in forms)"
    }
   ],
   "quote_total": 2316.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type around the gullies (none stated, so no surface lines added)",
    "whether the 100 mm cast iron cap is a pipe cap priced as PIP-FIT, or needs a specialist part",
    "whether the two different grate sizes (300x300 and 230x230) are both covered by the heavy duty hinged GUL-GRATE",
    "that the gully pots are intact (GUL-POT only if broken)",
    "that the form is labelled 'Other' but the work is on gully grates, so it is priced as a gully job"
   ]
  },
  {
   "item": "J0328",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 395,
     "total": 395.0,
     "rule": "4.4+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2283.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0329",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "4.7+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2048.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0330",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form is a PPM 'Other' form with no 'Part required' and no order for a new cover, so it is priced as a crew visit. Confirm this rather than a replacement.",
    "Confirm whether the cover needs replacing. The opening is 820 x 820 mm and the cover won't lift. If it is replaced, rule 4.4 would give CVR-675-H (or the existing cover size if known), with LAB-CIV-D 1 and the standard lines.",
    "Grade and surface are not given (a drive-thru, so vehicles run there).",
    "Confirm whether any recovery of the seized cover is needed, such as breaking it free."
   ]
  },
  {
   "item": "J0331",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether removing the gully and exposing the 4 inch pipe is a real dig or breakout of the basement floor (if so, reprice as a dig under 7.2)",
    "what the second obstruction is, and whether Picote coring is needed",
    "where the pipe runs to, since no manholes were found",
    "whether the job needs a patch liner or pipe fittings once the pipe is exposed",
    "reinstatement of the basement floor after the gully is removed"
   ]
  },
  {
   "item": "J0332",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Cover size: it was not measured, so CVR-600-H is a default",
    "Whether Form 1 (middle of road at the gate) and Form 2 (in front of the metals yard) are the same manhole. I priced one cover. If they are two, it becomes 2 covers, LAB-CIV-D 1 and MAT-MORT 12",
    "Form 1 says the cover will not lift and is lifting the brickwork around it. Check whether the frame or surround needs rebedding, or whether a dig is needed",
    "Surface is given as block paving but the cover is in a road. I added no surface reinstatement line, so confirm the surface and whether any reinstatement or traffic management is needed"
   ]
  },
  {
   "item": "J0333",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The forms are Other/PPM forms, not Defective Manhole forms. None orders a new cover and none gives a Part required, so this is priced as a crew visit and not a replacement (rule 2.4 does not apply).",
    "If seized covers are to be replaced, confirm the cover sizes, grades and surface for the 3 locations (catchment pit 14 on the zebra crossing, S/W manhole 11, catchment pit 25). The quote would then be re-priced as a cover job with 3 covers.",
    "Confirm whether the 3 locations are separate items. The locations differ, so they are not duplicates.",
    "Confirm whether traffic management is needed for the zebra crossing location."
   ]
  },
  {
   "item": "J0334",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the two forms are two separate covers (front of the business vs beside the front door) and not one repeated form",
    "Seized covers default to replacement (rule 2.4). Confirm replacement is wanted rather than just freeing the covers",
    "Cones and barriers are carried by the crew, so no traffic management is priced"
   ]
  },
  {
   "item": "J0335",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, recessed (paving infill)",
   "quote_lines": [
    {
     "code": "CVR-REC",
     "description": "Cover & frame, recessed (takes paving/tile infill), any size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 410,
     "total": 410.0,
     "rule": "4.2"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1638.0,
   "confidence": "green",
   "estimator_checks": [
    "Cover is priced as recessed (CVR-REC) because the form orders a new lid and frame plus paving infill; confirm the infill type",
    "Channel form (rear of business, 1 m) is not priced: one main repair per visit, and its Part required says only 'see photo'",
    "Paving infill and slab reset not priced separately; confirm whether any slabs need replacing"
   ]
  },
  {
   "item": "J0336",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0337",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 410.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Push button flush is not on the rate card, so it is priced as other materials (MSC-01); confirm the actual part cost",
    "Confirm the flush type and that a half day is enough"
   ]
  },
  {
   "item": "J0338",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.6+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2951.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Mixed job: priced the channel replacement only (1.5). The collapsed lateral / camera work (Form 1) and the catchpit bolt drilling (Form 3) are not priced; confirm whether they are wanted separately.",
    "Out-of-hours (9pm onwards) is stated on Form 1 only; confirm it applies to the car park channel work, otherwise use LAB-CIV-H.",
    "Confirm there is no sump or catchpit unit to replace, since Form 3 mentions a catchpit cover with rusted bolts.",
    "Length 1 m rounded up to the 2 m minimum."
   ]
  },
  {
   "item": "J0339",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "150mm cast repair coupling is not on the rate card (PIP-FIT is 110mm only), so it is allowed for under MSC-01; confirm the cost",
    "scope and duration of descaling the urinal stack and float lines on every floor; one drainage day assumed",
    "whether a plumbing engineer (LAB-ENG) is needed instead of or as well as the drainage crew",
    "access to the suspended pipework in the car park (tower or access equipment may be needed)",
    "job report referred to in Form 2 was not provided"
   ]
  },
  {
   "item": "J0340",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 6.0,
     "unit_price": 95,
     "total": 570.0,
     "rule": "4.17 (4 m block paving + 2 m tarmac, each location rounded up separately)"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 12.0,
     "unit_price": 55,
     "total": 660.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 48.0,
     "unit_price": 6,
     "total": 288.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 12.0,
     "unit_price": 19,
     "total": 228.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 12.0,
     "unit_price": 6,
     "total": 72.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4423.0,
   "confidence": "red",
   "estimator_checks": [
    "The length field says 5 m, but the notes describe 4 m at the block-paving location plus 2 m at the tarmac car park location (6 m total). I priced 6 m from the notes (P3). Confirm the total length.",
    "Extra lengths and corner sections for the L-shaped corner are mentioned, so confirm whether more channel or fittings are needed.",
    "The block-paving location has no surface line (6.12); confirm none is needed.",
    "The tarmac car park location has the 6.11 surface lines; confirm the surfacing.",
    "Confirm the grade (D400, heavier grade not required)."
   ]
  },
  {
   "item": "J0341",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 4.0,
     "unit_price": 95,
     "total": 380.0,
     "rule": "4.17+4.19"
    },
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 9.0,
     "unit_price": 55,
     "total": 495.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 44.0,
     "unit_price": 6,
     "total": 264.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4234.0,
   "confidence": "red",
   "estimator_checks": [
    "Length conflict: the form says the defective length is 0.5 m, but Part required asks for the basket plus 2 m of aco either side (about 4 m). I priced 4 m under P3. If only 0.5 m is wanted, CHN-RUN falls to 1 and the other lines scale down.",
    "The text '220m for aco' is unclear. I assumed 220 mm, i.e. the 2 m either side plus the basket.",
    "Basket/sump size: the form gives 550 mm and the channel width is given as 500 mm, which conflicts with 'half metre wide'.",
    "Confirm that the E600 forklift-grade channel is available. The rate card has only generic channel and grate lines.",
    "Confirm whether traffic management or car-park closure is needed, since cars park on the channel."
   ]
  },
  {
   "item": "J0342",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1490,
     "total": 1490.0,
     "rule": "7.3+5.9"
    }
   ],
   "quote_total": 1490.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the work really has to be done before 8am. The forms say so twice, so the night/out-of-hours drainage gang rate was used.",
    "Whether the jetter van's own suction can clear the stones and silt, or a vacuum tanker (LAB-TNK) is needed as well.",
    "Whether the single drainage gang day is enough for three round plastic manholes, and whether silt waste disposal needs charging.",
    "Whether a water supply is needed for jetting, since there is no water on site.",
    "Whether the three manholes are foul or surface water."
   ]
  },
  {
   "item": "J0343",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the kitchen floor finish: if the cover sits in a tray filled with floor tiles, use CVR-REC instead of CVR-PLATE"
   ]
  },
  {
   "item": "J0344",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 2714.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0345",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Forms 2 and 3 (CCTV and jetting of blocked or capped foul lines, and clearing bricks and debris from a manhole) are not priced, because only one main repair is quoted per visit. Confirm whether they need a separate quote.",
    "The cover is priced as one 620x620 D400 pump station cover in tarmac."
   ]
  },
  {
   "item": "J0347",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 7.0,
     "unit_price": 95,
     "total": 665.0,
     "rule": "3.1+4.17+4.18"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 14.0,
     "unit_price": 55,
     "total": 770.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 56.0,
     "unit_price": 6,
     "total": 336.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 14.0,
     "unit_price": 19,
     "total": 266.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 14.0,
     "unit_price": 6,
     "total": 84.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4726.0,
   "confidence": "red",
   "estimator_checks": [
    "Forms 3 and 4 are 15 m channel runs (loading area and rear of the unit). Both are over 10 m and were not priced (4.18), so a separate quote or survey is needed.",
    "Forms 1 and 5 (drive-through entrance, 3 m) and forms 2 and 6 (next to disabled bays, 4 m) were treated as duplicates (3.1). Their channel widths differ (65 mm vs 270-355 mm) and the manufacturer is aco on forms 1-3 but unknown on forms 4-6, so confirm they are the same channels and that the channel width and type are right.",
    "Drive-through entrance: confirm access and timing, because the work might need to be done out of hours. Nothing in the forms requires nights, so it is quoted in hours.",
    "Form 6 notes that a disabled bay must be taken up and that the last metre is in the middle of the car park. Confirm any bay closure, traffic management or fencing, which are not priced.",
    "No sump is mentioned, so none was priced.",
    "Grade is C250 on forms 1-3 and D400 on forms 4-6; confirm the grate grade.",
    "Dye (6.10) was not added because the entrance surface is plain tarmac; confirm."
   ]
  },
  {
   "item": "J0348",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 185,
     "total": 925.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 7480.0,
   "confidence": "red",
   "estimator_checks": [
    "Form 5 opening length is recorded as 50 mm, which is impossible. It was treated as 500 x 500 like the other forms, so confirm the real size.",
    "Forms 1-4 say the opening cannot be measured but give 500 x 500. Confirm those sizes.",
    "Five separate covers were priced (different locations). Confirm there are five and that none is a repeat form.",
    "Forms 1-4 are in block paving with loose brickwork. No paving reinstatement line was added, so confirm whether any is needed (e.g. MAT-PAVE or a sand/jointing sand allowance).",
    "Form 5 is in tarmac, so the asphalt, overbanding and carriage lines were added for that cover only.",
    "Confirm the B125 light-duty grade is right for the covers by the trolley bay, the pavement in front of the shop and the yard."
   ]
  },
  {
   "item": "J0349",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "number of tankers needed (form says 'multiple tankers', priced as one day)",
    "tonnes of contaminated waste",
    "type of interceptor (not known)",
    "source of the ammonia smell and whether investigation or jetting is needed"
   ]
  },
  {
   "item": "J0351",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    },
    {
     "code": "HIR-DUST",
     "description": "Cut-off saw dust extraction unit hire",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 60,
     "total": 60.0,
     "rule": "P2 (form 2 orders cutting equipment)"
    }
   ],
   "quote_total": 3526.0,
   "confidence": "green",
   "estimator_checks": [
    "Form 2 size (700x700) is the existing cover size, not a measured opening; confirm the frame size",
    "Form 2 cover cannot be lifted and must be cut out; confirm the cutting kit (dust extraction included)"
   ]
  },
  {
   "item": "J0352",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm only one gully grate to replace"
   ]
  },
  {
   "item": "J0353",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 410.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Number of taps to be replaced (form 2 says one or possibly two; form 1 needs one swan pillar tap), so the tap count and type need confirming",
    "Taps are not on the rate card, so MSC-01 is an allowance for the tap(s) and must be checked against the actual cost",
    "Whether isolation valves under the sinks work or need replacing",
    "Whether one half day covers both locations (main sink by the door and near the ice machine)"
   ]
  },
  {
   "item": "J0354",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Number of chambers affected: four forms with different locations (two are 'T-[place]' placeholders), and one day for the crew may not cover all of them",
    "Whether the missing step rails in the catchpit need replacing (not on the rate card)",
    "Whether the chambers need confined-space entry and breathing apparatus",
    "Whether the set cement can be broken out or needs a different method"
   ]
  },
  {
   "item": "J0355",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "7.6"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.6"
    }
   ],
   "quote_total": 690.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm this is a water stop cock cover (100x70mm) and not a drainage manhole or inspection chamber",
    "source or price the non-standard cover (the allowance is MSC-01)",
    "surface type and whether any reinstatement is needed"
   ]
  },
  {
   "item": "J0356",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3514.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0357",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4688.0,
   "confidence": "yellow",
   "estimator_checks": [
    "dig length and depth, and whether 3 days of civils is right given access under the caravan",
    "exact fittings needed for the 22mm water feed (only one fitting allowed as parts unknown)",
    "whether a plumber or engineer is needed to reconnect the supply",
    "whether the surface is concrete, and whether temporary fencing is needed on a busy or public site"
   ]
  },
  {
   "item": "J0358",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.5+4.13 (form 1, 620x620 D400); 4.11+4.14 (form 2, 665x550 C250)"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 part required is 'lift lid or new lid and frame'. Confirm a new cover and frame is wanted, not just lifting the seized round lid.",
    "Form 2 opening is 665 x 550 mm, which is not a standard band. Priced as CVR-600-H (next size up); confirm the frame size.",
    "Confirm whether vehicles use the area behind unit 330, which decides light or heavy duty for the rectangular cover. Priced heavy, following the C250 grade on the form.",
    "The blockage between the two foul manholes is not priced. Confirm whether jetting or CCTV is needed once the lid is open.",
    "Surface is concrete, so no asphalt or overbanding lines are included."
   ]
  },
  {
   "item": "J0359",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 520,
     "total": 1560.0,
     "rule": "4.3+4.11+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 4114.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 (750x600) and Form 3 (720x600) are non-square rectangles, so 4.11 priced them at the next band up (CVR-750-H); confirm the size",
    "Form 2 gives 1100x750 as the cover but 1200x750 under part required; both price as CVR-750-H, so confirm the real size",
    "Forms 2 and 3 are both 'outside [business]' but the sizes differ, so they were counted as two separate covers; confirm they are not the same cover",
    "Form 4 (hole in the tarmac at the entrance, gully pot or capping) was not priced under 1.5; confirm whether a separate quote is needed",
    "Night shift was only suggested for Form 1, so the work was priced in hours; confirm whether out-of-hours working is required",
    "Concrete surface around the covers, so no surface reinstatement lines were added"
   ]
  },
  {
   "item": "J0360",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 330,
     "total": 990.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 520,
     "total": 1040.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 7925.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Cover count: priced 5 (yard A 1, yard C 2 as forms 3 and 4 are duplicates, yard B 2). Form 1 says x3 chambers at yard A and may mean more covers. Confirm the total.",
    "Forms 3 and 4 treated as the same cover (same location and size). Confirm they are not two separate covers.",
    "Form 5 (990x680) and form 2 (900x660) priced as CVR-750-H. The other covers are CVR-600-H.",
    "Seized covers set in concrete need breaking out. No rule covers that, so no extra breaker or concrete reinstatement is priced.",
    "Plumbing form (pipework come apart in a yard C chamber) not priced; only one main repair is priced per visit. Confirm whether a separate engineer visit is needed.",
    "The measured sizes are of the old covers, although the forms say the opening could not be measured. Confirm on site."
   ]
  },
  {
   "item": "J0361",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 7.0,
     "unit_price": 330,
     "total": 2310.0,
     "rule": "3.3+4.11+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 4.0,
     "unit_price": 1150,
     "total": 4600.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 42.0,
     "unit_price": 68,
     "total": 2856.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 10171.0,
   "confidence": "yellow",
   "estimator_checks": [
    "700 x 550 is a non-square rectangle that fits no standard band; CVR-600-H is the nearest band above and the size needs confirming",
    "number of covers: the text says x7 fw manholes but also mentions fw 9, which could not be lifted, so check whether it is the 7th or an 8th",
    "grade: form says C250 and no heavier grade required; the engineer recommends light-weight cast covers, so confirm C250 is right for the traffic by the units",
    "shingle surface: no surface reinstatement lines added"
   ]
  },
  {
   "item": "J0362",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0363",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0364",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "green",
   "estimator_checks": [
    "Part required says 'possibly' new lid and frame, so confirm a replacement is wanted rather than benching only",
    "Confirm vehicles use the area (busy road, parking by the path), which sets heavy duty. The form grade is C250."
   ]
  },
  {
   "item": "J0365",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0366",
   "is_manhole_job": true,
   "job_type": "manhole: rebed / reset existing cover and frame (no new cover)",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.8"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 10.0,
     "unit_price": 68,
     "total": 680.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1644.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm this is a rebed only (cement around the frame has broken loose, no new cover or frame ordered)",
    "Surface type around the frame is not stated, so no surface reinstatement lines are included; confirm whether any are needed",
    "Confirm the frame itself is sound and the cover size is standard, so a half day is enough"
   ]
  },
  {
   "item": "J0367",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease waste to be removed",
    "whether jetting or a CCTV investigation of the foul line is also needed (not asked for in the form)",
    "whether traffic management is needed, as the manhole is in the road"
   ]
  },
  {
   "item": "J0368",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease waste to be removed",
    "whether jetting or investigation of the gully and downstream line is also needed",
    "whether the gully grate or pot also needs replacing (the form only says the gully is solid with FOG)"
   ]
  },
  {
   "item": "J0369",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "3.1+4.5+4.13"
    },
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 395,
     "total": 395.0,
     "rule": "3.2+4.4+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2871.0,
   "confidence": "green",
   "estimator_checks": [
    "Forms 1 and 2 (unit 6, 700x700) were treated as one duplicate cover. Confirm they are not two separate covers, as the notes differ (concrete lid vs rusty lid).",
    "Both unit 6 covers are seized and cannot be lifted, so confirm the lids can be broken out and replaced.",
    "Work is in hours only because the gate is locked."
   ]
  },
  {
   "item": "J0370",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 2718.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether forms 1 and 2 are the same chamber (same unit 6 loading area) or two separate chambers; if two, PIP-CHAN and mortar may need to increase",
    "whether the channel and surface water line deep clean needs a tanker for the silt, or whether the drainage gang is enough",
    "length of the channel and surface water line to be cleaned, and whether it fits in one day",
    "traffic management or fencing for the busy site with the 24hr recovery company, since the forms do not require it",
    "whether the channel has defects, such as the uneven depths where parts were replaced, that need repair rather than cleaning"
   ]
  },
  {
   "item": "J0371",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4264.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether a dig and pipe replacement is wanted rather than a patch liner (the form only says 'repair required', and the 90 bend and branch make lining difficult)",
    "length of clay pipe to replace (1 PIP-110 length assumed) and fittings needed (bend and branch junction assumed)",
    "surface at the delivery/back door (tarmac, concrete or paving) and the reinstatement needed",
    "whether fencing or traffic management is needed in this delivery area",
    "the form does not ask for a new manhole cover, so no cover is priced"
   ]
  },
  {
   "item": "J0372",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 (manhole cementing into position at rear of unit A1/A2) is not priced separately: it orders no new cover, and rebeds are not predicted. Confirm whether a rebed should be added.",
    "Number of gully grates (one assumed)",
    "Confirm the gully is in tarmac and whether the gully pot is intact"
   ]
  },
  {
   "item": "J0373",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": [
    "Surface is block paving in a car park: rule 6.11 (car park) was applied, so confirm whether the asphalt lines are wanted or whether block paving reinstatement is needed instead",
    "Collapsed blocks: confirm whether the sub-base needs digging out or relaying",
    "Grade shown as F900 (aircraft) for a unit car park: confirm the grade"
   ]
  },
  {
   "item": "J0377",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1490,
     "total": 1490.0,
     "rule": "7.3+5.9"
    }
   ],
   "quote_total": 1490.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the work is a blockage clear on small bore pipework, not a dig or a part replacement. 'Part required' only says '2 man team'.",
    "Confirm the out-of-hours slot with the site manager (possibly next Tuesday).",
    "Confirm the blockage location (possibly in the wall store) and that the drainage gang can get access behind the counter.",
    "Confirm whether any small materials are needed (MSC-01). None are named in the forms."
   ]
  },
  {
   "item": "J0378",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm the 265 x 195 mm size, as small sizes are often mis-measured",
    "confirm the surface around the rodding eye (tarmac would add MAT-ASPH 2, MAT-BAND 1 and SUN-CARR 1)",
    "confirm it is a rodding eye or chamber cover and whether the frame is also being replaced"
   ]
  },
  {
   "item": "J0379",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is 'unknown', so a crew visit is quoted to find out what is needed. Confirm the repair needed: new cover and frame (770x770 square, C250, in tarmac), or only re-seating or repair of the broken frame and keyholes.",
    "The form is a P0 danger (same day) job. Confirm whether the visit is needed urgently or out of hours."
   ]
  },
  {
   "item": "J0380",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 395,
     "total": 790.0,
     "rule": "3.2+4.4+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2+5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2936.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the two forms are two separate manholes or one repeated form, since the location descriptions differ ('suspected foul line' vs 'suspected surface manhole') but the size is the same (if repeated: CVR-675-H 1, MAT-MORT 6, LAB-CIV-D 1)",
    "exact locations from the drawing/map",
    "form 2 notes the frame is bent across the lid and cannot be lifted, so confirm the replacement is still the right scope"
   ]
  },
  {
   "item": "J0382",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": [
    "tarmac reinstatement lines applied as for a vehicle-access channel (6.11); confirm surface at the gate"
   ]
  },
  {
   "item": "J0383",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.7+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 (jetting blocked surface water channel, camera survey recommended) is not priced under Step 1.5. Confirm whether a separate CCTV/drainage quote is needed.",
    "Confirm whether vehicles use the area at sw 5. The form grade is D400, so heavy duty was used.",
    "Confirm the cover size of 670 x 520 mm. The opening could not be measured.",
    "The cover cannot be lifted because the keyhole is damaged. It must be broken out, which adds no extra line."
   ],
   "possible_duplicate_of": [
    {
     "item": "J0868",
     "labelled": true
    }
   ]
  },
  {
   "item": "J0384",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0385",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-BRICK",
     "description": "Engineering bricks",
     "unit": "each",
     "qty": 8.0,
     "unit_price": 1.5,
     "total": 12.0,
     "rule": "P2 (Part required orders 8 bricks)"
    }
   ],
   "quote_total": 1505.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm 8 engineering bricks for the chamber",
    "confirm vehicle traffic at the corner of unit 4 (heavy grade chosen)"
   ]
  },
  {
   "item": "J0386",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "red",
   "estimator_checks": [
    "The forms do not say what work is needed. The engineer says the channel itself is working fine, with the surface above it collapsed and half a wall collapsed. No part or repair is ordered or recommended.",
    "No measurements: channel length, grade, surface type and manufacturer are all unknown. The engineer assumes it is HGV-graded.",
    "Confirm whether this is a channel replacement, a surface or wall repair, or a dig. If a dig, re-quote under 7.2.",
    "Confirm which wall has collapsed (the channel's own wall or an adjacent structure) and how much is affected.",
    "The form is Other / PPM, not a Defective Channel form, so the default replace rule (2.4) does not apply. A site visit is priced to scope the work."
   ]
  },
  {
   "item": "J0387",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    },
    {
     "code": "HIR-DUST",
     "description": "Cut-off saw dust extraction unit hire",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 60,
     "total": 60.0,
     "rule": "P2 (cutting equipment named in Part required)"
    }
   ],
   "quote_total": 2788.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Chamber opening could not be measured, so confirm the 700 x 700 size is the cover size",
    "Surface is given as 'Other', and the notes say both concrete and tarmac. Confirm the tarmac reinstatement is needed",
    "Confirm the dust extraction unit is needed for cutting the seized cover free"
   ]
  },
  {
   "item": "J0388",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1590,
     "total": 4770.0,
     "rule": "7.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    },
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1490,
     "total": 1490.0,
     "rule": "7.1+5.9"
    }
   ],
   "quote_total": 7109.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm what access chamber is to be installed (type, size, depth) and whether it needs a dig or just a cover and frame",
    "Confirm the Friday evening out-of-hours working is required, not just preferred",
    "Confirm the number of dig days",
    "Confirm whether the jetting and vacuum silt removal needs a tanker as well as the drainage crew",
    "Confirm the surface reinstatement (tarmac or concrete) and whether traffic management is needed on the main road"
   ]
  },
  {
   "item": "J0389",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2918.0,
   "confidence": "green",
   "estimator_checks": [
    "Mixed job: only the cover replacement is priced (rule 1.5). The possible collapsed drain (Form 2) and the petrol interceptor entry/tanker clean-out (Form 3) are not in this quote and need separate pricing or visits if wanted.",
    "Opening is 700 x 850 mm, so longest side is over 800 mm and D400 gives the large cast-iron cover (CVR-750-H)."
   ]
  },
  {
   "item": "J0390",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1490,
     "total": 1490.0,
     "rule": "7.3+5.9"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1540.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the gully can be cleared from the top or the cast iron pipework has to be cut into",
    "whether a section of cast iron pipe needs replacing, which would add pipe or fittings, or a patch liner",
    "whether the seized gully grid bolts have to be cut and the grate replaced (GUL-GRATE)",
    "whether the Picote and generator are carried on the drainage crew's van or need separate hire",
    "whether the out-of-hours working is required, which the form implies, or only suggested",
    "whether the car park floors below need access or traffic management"
   ]
  },
  {
   "item": "J0391",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1426.0,
   "confidence": "red",
   "estimator_checks": [
    "The defective run is 57 m, over the 10 m limit (4.18), so only 2 m is priced. Confirm the real extent of the collapse and whether a full replacement or a dig is needed.",
    "The form gives no 'Part required', so confirm whether a new channel, a dig or a relay is wanted.",
    "Confirm the surface (concrete, tarmac, block paving), because no surface or reinstatement line has been added.",
    "Confirm whether a sump or trash box is involved.",
    "Confirm the 57 m is metres and not a typo; if it is 57 mm, the run is under 1 m.",
    "Confirm whether traffic management or fencing is needed, as the channel is opposite a business."
   ]
  },
  {
   "item": "J0392",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether a vacuum tanker is needed as well as the jetter to remove the concrete debris and standing water",
    "how much concrete is in the line and whether jetting will clear it or a dig will be needed",
    "whether the pump chamber needs inspecting or clearing"
   ]
  },
  {
   "item": "J0393",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is not specified; the civils team is only asked to review. Confirm what work is needed to remove the concrete from the gully in bin shed 1.",
    "Confirm whether the gully grate, frame or pot needs replacing after the concrete is cleared."
   ]
  },
  {
   "item": "J0394",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 210,
     "total": 1050.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 20.0,
     "unit_price": 68,
     "total": 1360.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 4355.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the count of 5 gullies: 1 on the corner before the petrol station, 1 at the bus stop, and 3 on the bend towards the petrol station. The corner gully and the bend gullies could overlap.",
    "Confirm the pots are intact, since no GUL-POT is priced."
   ]
  },
  {
   "item": "J0395",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 (root ingress, footpath, block paving) is not priced: the estimator prices one main repair per visit under 1.5, and its part required is unknown. Confirm whether a separate drainage visit or jetting for the roots is wanted.",
    "Gully is blocked with set cement/concrete. Confirm that the gully pot is not broken and that only the grate and frame need replacing, and whether the blockage needs clearing.",
    "Gully frame is 440 x 390 mm, so confirm the grate is a standard hinged heavy-duty one (D400, concrete surface, service yard)."
   ]
  },
  {
   "item": "J0396",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 26,
     "total": 52.0,
     "rule": "7.4+3.2"
    }
   ],
   "quote_total": 1654.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm that two separate chambers (outside unit 18 and outside unit 17) are to be benched, so two half-channel sections are needed",
    "Confirm whether one civils day covers both chambers",
    "Form 2 mentions unconnected lines and a pipe pushed over another; confirm whether extra pipe or fittings (PIP-FIT) are needed, or whether a dig is required",
    "Confirm whether traffic management or access arrangements are needed for the narrow road"
   ]
  },
  {
   "item": "J0397",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm the three forms are one chamber (same location, 740 x 590/600 mm) and not three",
    "confirm a sealed chequer plate cover is wanted rather than a seal-only fix, since the forms ask for a double-sealed MH",
    "engineer is unsure of the grade (A15 recorded, but the existing cover looks heavier); confirm the plate suits the basement use",
    "confirm the corridor is inside the building so the sealed plate applies"
   ]
  },
  {
   "item": "J0398",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "the form says the opening could not be measured, so confirm the 640 x 640 is the old cover size"
   ]
  },
  {
   "item": "J0399",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": [
    "Part required only names bedding mortar, not a new cover. Priced as a replacement under 2.4; confirm it is not a rebed."
   ]
  },
  {
   "item": "J0400",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 6.0,
     "unit_price": 95,
     "total": 570.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 12.0,
     "unit_price": 55,
     "total": 660.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 48.0,
     "unit_price": 6,
     "total": 288.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 12.0,
     "unit_price": 19,
     "total": 228.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 12.0,
     "unit_price": 6,
     "total": 72.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 3988.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0401",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "Whether the seized cover can be freed (grinder and Kobus lifter) or must be replaced as quoted",
    "Smoke alarm isolation to be arranged in advance, and door access via code"
   ]
  },
  {
   "item": "J0402",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "red",
   "estimator_checks": [
    "Defective run is 26 m, over the 10 m limit, so only 2 m is priced. Confirm the actual extent of repair or whether a full replacement is wanted, which needs a separate quote.",
    "Notes describe concrete that has lifted or dropped, so the aco is bending and breaking away. Confirm whether the slab needs reinstating beyond the 2 m.",
    "Confirm the surface is not a car park or road (the form says concrete, with yard/unit access).",
    "No sump or part order is given. Confirm the replacement is channel sections and grates only."
   ]
  },
  {
   "item": "J0403",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.16"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the kerb drainage is ACO-type channel, not resin kerb units that the rate card does not cover",
    "Lengths of the 2 kerb sections are unknown, so 2 x 1 m was assumed",
    "Car park surface type is not stated, so tarmac was assumed (ASPH/BAND lines)",
    "Confirm whether grates are needed on resin kerb sections",
    "Confirm no sump unit is being replaced"
   ]
  },
  {
   "item": "J0404",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": [
    "Access road is busy: confirm whether traffic management is needed (not priced, as no rule covers it)",
    "Engineer asked for a 700x700x100 frame; the rate card has no 700 size, so the 600x600 D400 line was used"
   ]
  },
  {
   "item": "J0405",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 290,
     "total": 290.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1430.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the repair is a patch liner or just resealing the gully and pipe joint. If it is only a reseal, swap to LAB-ENG-H 1 plus MSC-01 1 (rule 7.5) and drop PIP-LINER.",
    "How many patches are needed. One is assumed.",
    "Access to the 1st floor kitchen (DC7) and whether the work needs to be outside kitchen hours.",
    "The form is labelled Other / Reactive and is not a defective gully form. Nothing orders a new grate or pot, so it is priced as other work, not a gully replacement."
   ]
  },
  {
   "item": "J0407",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the dig is wanted: the form only says the surrounding area 'would benefit' from being dug away, and does not order a new grate or pot",
    "Confirm the extent of the dig and the amount of root removal",
    "Surface type is not stated, so no reinstatement lines are included",
    "Pipe damage or the parts needed are unknown, so only 1 fitting is allowed",
    "Confirm whether the car park is public or busy enough to need temporary fencing (HIR-FENCE)",
    "The gully lid is held tight; confirm whether the grate also needs replacing"
   ]
  },
  {
   "item": "J0408",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "red",
   "estimator_checks": [
    "Grade conflict: the form says A15 but also says heavier grade required: Yes. I priced heavy duty (H) as the work asked for. Confirm the grade.",
    "The opening could not be measured, so confirm that the 500 x 500 size is correct.",
    "The engineer wrote 'still safe and Holding' under Part required but also reported a cracked plastic lid. I priced a replacement cover as the default. Confirm that a replacement is wanted.",
    "The channel drain form (990 mm, about 1 m) was not priced. Only one main repair is priced per visit, and cover takes priority over channel. Confirm whether the channel needs its own quote."
   ]
  },
  {
   "item": "J0409",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4299.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the job is really a dig (3 days) or a smaller visit: the forms only say expose brickwork, cut the pipe, fit a new 4 inch bung and cap off",
    "surface type in the car park for reinstatement (not stated)",
    "whether temporary fencing is needed (private multi-user car park)",
    "exact fittings needed (bung/cap, size 4 inch)"
   ]
  },
  {
   "item": "J0410",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "cover grade (not stated, defaulted to heavy duty)",
    "surface type around the cover (tarmac would add MAT-ASPH 2, MAT-BAND 1, SUN-CARR 1)",
    "confirm 668 x 668 mm is the opening size"
   ]
  },
  {
   "item": "J0411",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0412",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 395,
     "total": 1185.0,
     "rule": "3.3+4.4+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 6.0,
     "unit_price": 260,
     "total": 1560.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 5439.0,
   "confidence": "red",
   "estimator_checks": [
    "number of manholes: four forms, but form 3 note says replace all three, and form 1 says x2",
    "forms 1-4 have similar but not identical locations, so confirm whether they are separate covers or repeats",
    "form 4 says heavier grade not required, the others say yes, so confirm D400 grade",
    "750x750 ordered but no opening measured, so confirm the size",
    "engineer asked for flowable concrete x4 per cover, not included under the standard rules"
   ]
  },
  {
   "item": "J0413",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 290,
     "total": 290.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1430.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether a MEWP or access tower (HIR-TOWER) is needed for access from above; a MEWP is not on the rate card",
    "confirm the 4 inch cast downpipe can take a 110mm patch liner",
    "number of patches needed (one assumed)",
    "confirm a drainage crew rather than a single engineer (LAB-ENG-H) is wanted for this above-ground repair"
   ]
  },
  {
   "item": "J0414",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Two different locations (bed for exit, and between barriers and first floor ramp) with the same 660x660 size, so priced as 2 covers",
    "Form grade is B125 but 'heavier grade required: Yes' on both forms, so heavy duty (H) priced"
   ]
  },
  {
   "item": "J0415",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0416",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 8.0,
     "unit_price": 95,
     "total": 760.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 16.0,
     "unit_price": 55,
     "total": 880.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 64.0,
     "unit_price": 6,
     "total": 384.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 6404.0,
   "confidence": "red",
   "estimator_checks": [
    "Which option the customer wants: option 1 (extend existing channel about 8 m) or option 2 (new channel across the bays, 7 m affected out of a 12 m opening). Priced as option 1, 8 m.",
    "Final channel length. If option 2 is chosen at 7 m, the quote changes to CHN-RUN 7, LAB-CIV-D 1 and WST-GEN instead of the skip, with the channel and bed materials scaled to match.",
    "Whether a sump or trash box is needed, e.g. at the connection to the surface water manhole 3 m away. None priced.",
    "The forms give no confirmed channel length and no confirmed order for a new channel ('parts depending on option chosen'), so the work is not fully specified.",
    "Surface is mixed tarmac and soil. Priced as a tarmac car park or road.",
    "D400 grade is required because cars will drive over the channel."
   ]
  },
  {
   "item": "J0417",
   "is_manhole_job": true,
   "job_type": "manhole: rebed / reset existing cover and frame (no new cover)",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.8"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 10.0,
     "unit_price": 68,
     "total": 680.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1644.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm this is a rebed (remove old concrete surround and re-set the existing frame) and not a new cover and frame, as the engineer says the frame looks OK",
    "Cover size, grade and surface type are not given. Check whether it is large enough to need a full day (LAB-CIV-D)",
    "Confirm there is only one SW manhole at the rear of unit 2/2a",
    "Confirm the cover can be lifted safely for the work"
   ]
  },
  {
   "item": "J0418",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2258.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Forms 1 and 2 (possible collapsed drains, CCTV requested) are not priced because the quote covers one main repair (the cover) per visit (rule 1.5). Confirm whether CCTV or dig work is wanted separately.",
    "Form 3 says the opening could not be measured but gives a cover size of 1005 x 680. Confirm the size.",
    "Form 3 surface is 'Concrete' but the location is 'grass area next to Unit 5'. Confirm the surface and reinstatement.",
    "The form grade is C250 and heavier grade is not required, so CVR-750-H (the heavy-duty cover) was used. Confirm the grade."
   ]
  },
  {
   "item": "J0419",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "HIR-BRK",
     "description": "Hydraulic breaker attachment hire, per day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 75,
     "total": 75.0,
     "rule": "P2 (Part required: breaking equipment)"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2776.0,
   "confidence": "red",
   "estimator_checks": [
    "Forms ask only to break out the tarmac covering the channel and clear the spoil. They do not order a new channel or grates, so confirm whether the channel needs replacing at all.",
    "The default replace rule (2.4) was applied, with the 2 m minimum run and the 1 m length taken from the 1000 mm section.",
    "Confirm whether the location facing unit 20a is a car park or road. Tarmac reinstatement (6.11) was assumed.",
    "Confirm that the breaker hire (HIR-BRK) is needed and whether a mini excavator is also required."
   ]
  },
  {
   "item": "J0420",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0422",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Collapsed chamber side wall (700 mm deep): shuttering and a new concrete wall are ordered but not priced, and the quantities and extra labour are unknown. Confirm whether a dig or chamber repair is needed on top of the cover replacement.",
    "Grade conflict: the old cover is B125 (grass/footpath) but the form says a heavier grade is required, so H (CVR-600-H) was used. Confirm the grade.",
    "Size: 620 x 570 mm is treated as square, so CVR-600 was chosen. Confirm the measurement.",
    "Urgent P0 same-day job: confirm whether out-of-hours work is required. It is not stated, so in-hours rates were used."
   ]
  },
  {
   "item": "J0423",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0424",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Size 670 x 515 mm falls between the 4.7 and 4.8 bands; confirm the frame size (600x450 vs 600x600)",
    "Duty grade is not given; heavy duty assumed. Confirm traffic at the front of unit 5 and the grade required",
    "Surface type is not stated; confirm whether it is tarmac, in which case asphalt, overbanding tape and carriage lines would be added",
    "The form is labelled Other/PPM, not Defective Manhole; the work is treated as a new cover and frame replacement (rule 1.1)"
   ]
  },
  {
   "item": "J0425",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "actual cover size: 35 x 35 mm is not a plausible measurement, and the opening was not measured",
    "whether the compound is a vehicle area (if so, use CVR-600-L instead of CVR-PLATE; the grade is B125 grass/footpaths)",
    "that the cover, whose screw is stuck, is to be replaced rather than freed",
    "surface is concrete, so no surface reinstatement lines were added"
   ]
  },
  {
   "item": "J0426",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "cover size: 607 x 502 mm is not a standard band, so the next size up (600 x 600) was used",
    "opening could not be measured",
    "grade: the form says D400 and heavier grade not required, but the location (corner of unit 2) does not show whether vehicles run there, so grade H was kept from the old cover",
    "concrete surround: no surface reinstatement line added"
   ]
  },
  {
   "item": "J0427",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-ENG-D",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 620,
     "total": 620.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2875.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of FOG waste to remove",
    "whether the pump service needs a full engineer day or only a half day",
    "whether the benching repair in the bay 9 manhole (sand and cement, rubble sacks) is to be priced as a separate chamber repair with a civils gang, since it is a different problem from the FOG pump station",
    "the bay 9 manhole form has no size, and it only needs benching, so no cover is priced"
   ]
  },
  {
   "item": "J0428",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4264.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form asks for a civils team for 1 shift, but the standard dig pattern is 3 days. Confirm duration.",
    "Surface type above the defect (needed to decide reinstatement materials)",
    "Whether a dig is really needed or a jointing repair is enough (defect is 0.80m from the chamber, 0.47m deep)",
    "Pipe length and fittings needed"
   ]
  },
  {
   "item": "J0429",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "1.5+4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2048.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The cover is 700 x 550 mm, which fits no standard band exactly. Confirm the size, and whether the 600x450 frame is right.",
    "Light or heavy duty: the cover is rectangular and on a pavement, so it was priced light under 4.14. The form grade is D400 and could mean heavy duty.",
    "Mixed job: only the cover (FW 49) is priced. The Aco channel (1 m, units 71/72) and the silt clearance with tanker and CCTV were not priced and need separate quotes or confirmation."
   ]
  },
  {
   "item": "J0431",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the channel sits in a car park or road (vehicle traffic, C250, tarmac) so the 6.11 surface lines apply",
    "length was given as 500 mm, so it is treated as 0.5 m and the 2 m minimum run applies"
   ]
  },
  {
   "item": "J0432",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0433",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the blockage can be cleared by jetting or needs a dig/relay",
    "extent and exact location of the cement residue plug in the lateral",
    "whether a CCTV survey is needed to confirm the blockage",
    "whether traffic management or fencing is needed in the lower car park entrance"
   ]
  },
  {
   "item": "J0435",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "Number of grates: only one gully form, assumed 1 grate",
    "Basement plant room access: door codes are redacted on the form and need confirming with the site",
    "Confirm the concrete reinstatement kits are needed for a basement floor"
   ]
  },
  {
   "item": "J0437",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-LIQ",
     "description": "Liquid waste disposal (gully / interceptor / septic), per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 120,
     "total": 480.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 1895.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of liquid and silt waste from the 11 road gullies (minimum charge applies)",
    "whether the tanker can fit through the 2.50 m kerb-to-kerb entry and the barrier (key fob needed)",
    "whether one day is enough for 11 gullies",
    "work is in normal hours, so no night rate"
   ]
  },
  {
   "item": "J0439",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "1.5+4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Mixed job: only the gully (Form 1) is priced under 1.5. Channel replacement (Forms 2 and 3), the blocked gully that can only be jetted 8 m (Form 4) and the roots in the PI chamber (Form 5) are not in this quote.",
    "Form 3 channel length of 910 is probably mm (about 1 m), so confirm it and the 'grate only' request.",
    "Form 1 has no 'Part required' entry; confirm that a new gully grate and frame is wanted (default under 2.4).",
    "Form 1 frame is 495 x 495 mm and flat; confirm the grate fits the opening and the D400 grade."
   ]
  },
  {
   "item": "J0440",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1+4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2098.0,
   "confidence": "green",
   "estimator_checks": [
    "Form grade is A15 but 'heavier grade required: Yes'. A sealed chequer plate is priced either way, so confirm the loading is acceptable for an internal toilet area."
   ]
  },
  {
   "item": "J0441",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": [
    "engineer's notes list 1 x 1m section, but the 2 m minimum run applies (4.20), so 2 m and 4 grates are priced",
    "engineer listed 8 bags of ballast and 2 cement, but the standard channel bed (16 ballast, 4 rapid-hardening cement, 4 sand) is priced"
   ]
  },
  {
   "item": "J0442",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.1+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1808.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 (benching in the service yard chamber) is not priced; under 1.5 only the cover is priced, so confirm whether benching needs a separate quote",
    "out-of-hours work: the form says the car park work is 'to be out of hours', so I treated it as required and used the nights/weekends rate",
    "the cover is on a petrol interceptor: confirm a new cover is wanted rather than cleaning, and that D400 is right",
    "the opening could not be measured, so 600x600 is taken from the cover size on the form",
    "block paving surround: no surface line added; confirm whether paving reinstatement is needed"
   ]
  },
  {
   "item": "J0443",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "The form says the opening could not be measured, but cover dimensions (820 x 670) are given. Confirm the sealed chequer plate suits the basement location."
   ]
  },
  {
   "item": "J0444",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0445",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the two forms are one cover (same location and 350 x 350 size, so priced as one under 3.1)",
    "Confirm whether vehicles run over the workshop entrance. If they do, use CVR-600-H instead of CVR-PLATE (4.10), though the form grade is B125 footpath",
    "The 350 mm opening is under 500 mm and may be mis-measured, so re-measure the opening and existing cover",
    "No 'Part required' was given, so replacement is assumed by default (2.4)"
   ]
  },
  {
   "item": "J0447",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2098.0,
   "confidence": "green",
   "estimator_checks": [
    "The 720 x 720 mm size is the existing cover, as the opening could not be measured",
    "The cover is sealed and sits inside a building (basement), so a sealed chequer plate was chosen",
    "Concrete surface: no surface reinstatement lines added"
   ]
  },
  {
   "item": "J0448",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2918.0,
   "confidence": "green",
   "estimator_checks": [
    "Black dye is mentioned in 'Part required' but no rule prices dye for a cover in tarmac, so it is left out; confirm whether to add MAT-DYE",
    "Engineer advises a 3-man team because of the cover weight; the rate card only has 2-operative gangs, so confirm lifting arrangements",
    "Opening could not be measured, so the 920 x 920 old cover size was used",
    "Delivery access: one delivery on Sunday 5-6pm, any time the rest of the week; work is priced in hours"
   ]
  },
  {
   "item": "J0449",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2068.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0450",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3358.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Surface: the field says tarmac but the notes also mention block paving. Confirm whether block paving reinstatement is needed.",
    "The notes say the concrete around the cover is damaged and needs replacing. Confirm whether extra concrete or rebed work is needed beyond the standard bedding mortar.",
    "No 'Part required' is given. The quote assumes a new D400 cover, since the opening is 1100 x 1100 and the form is a Defective Manhole.",
    "Out-of-hours work (from 9pm) is required, so the nights/weekends crew rate is used."
   ]
  },
  {
   "item": "J0451",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the gully only needs clearing and no new grate or pot is required",
    "Confirm the cut in the 3-inch cast rainwater pipe and the bandseal repair are included",
    "Confirm the decor has been removed by the client before attendance",
    "Confirm a full day is needed rather than a half day"
   ]
  },
  {
   "item": "J0452",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "type and amount of debris in the manhole",
    "whether a tanker is needed to remove it",
    "whether jetting or CCTV is also needed",
    "no part is ordered, so confirm no cover or frame replacement is required",
    "manhole depth and confined space entry requirements"
   ]
  },
  {
   "item": "J0453",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.5+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    },
    {
     "code": "SRV-TM",
     "description": "Traffic management (subcontract)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 450,
     "total": 450.0,
     "rule": "P2 (Chapter 8 traffic management stated in forms)"
    }
   ],
   "quote_total": 2617.0,
   "confidence": "green",
   "estimator_checks": [
    "Chapter 8 traffic management needed on the roundabout (SRV-TM added)",
    "Out-of-hours shift (one night shift) is required, so the night half-day crew is used",
    "Gully must be cleared and unblocked before the work; not priced as a separate crew",
    "Part required text says 'tarmac concrete'; form surface is tarmac, so tarmac reinstatement priced"
   ]
  },
  {
   "item": "J0454",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4359.0,
   "confidence": "yellow",
   "estimator_checks": [
    "length of collapsed clay pipe to be replaced (PIP-110 qty assumes one 3 m length)",
    "surface type at front entrance, to decide on reinstatement materials",
    "whether the entrance is public or busy enough to need fencing",
    "whether shoring is needed for the 2 m deep chamber",
    "exact location and extent of the collapse"
   ]
  },
  {
   "item": "J0455",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, recessed (paving infill)",
   "quote_lines": [
    {
     "code": "CVR-REC",
     "description": "Cover & frame, recessed (takes paving/tile infill), any size",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 410,
     "total": 820.0,
     "rule": "4.2+3.3"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.3+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "P2 (named in Part required)"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "P2 (named in Part required)"
    }
   ],
   "quote_total": 3550.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm 2 covers (x2 in Part required) are at the same or different locations, and that 260x260 is the true size of the recessed infill covers",
    "Forms also ask for a drainage team, chamber inspection, CCTV and jetting (HPWJ) upstream and downstream. Cover jobs get one labour line, so these are not priced. Confirm whether a separate drainage crew or CCTV visit is needed",
    "Confirm the night shift (6pm start) is required, not just a suggestion",
    "Confirm the quantities of sand and kiln-dried sand",
    "Confirm any excavation is only the block-paving infill, not a dig"
   ]
  },
  {
   "item": "J0456",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125) / 600 x 450, light duty (A15/B125) / other / non-standard size / 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-OTHER",
     "description": "Cover & frame, other / non-standard size",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 350,
     "total": 1050.0,
     "rule": "4.9 (forms 1, 2, 4)"
    },
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.11+4.14 (form 3)"
    },
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "4.6+4.14 (form 5)"
    },
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 520,
     "total": 1040.0,
     "rule": "4.11+4.14 (forms 6, 7)"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 4.0,
     "unit_price": 1150,
     "total": 4600.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 42.0,
     "unit_price": 68,
     "total": 2856.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 10.0,
     "unit_price": 260,
     "total": 2600.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 13036.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether forms 1, 2 and 4 (600x350, 600x360, 610x360) and forms 3 and 5 (610x460, 600x450) are separate manholes or repeat forms. This quote prices 7 covers under rule 3.2. If they are repeats there would be 4 covers and 2 gang days.",
    "Form 3 (610x460) is priced one band up as CVR-600-L because the width is just over the 600x450 band",
    "Forms 6 and 7 (760x600 and 780x370) are priced as CVR-750-H on the engineer's D400 note, although the form grade is B125",
    "Surface conflict on forms 6 and 7: the surface field says grass or concrete, but the notes say tarmac and/or concrete. Forms 6 and 7 are priced with no tarmac reinstatement",
    "Whether vehicles run over the covers outside the business, because that would change the light/heavy grade of forms 3 and 5",
    "Parts ordered are only mortar and asphalt repair kits, so check whether new covers are needed rather than rebeds"
   ]
  },
  {
   "item": "J0457",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "2.2+4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": [
    "Part required field says unknown, but the notes ask for a new frame, so it is priced as a replacement. Confirm the gully pot is not damaged (GUL-POT not included).",
    "Confirm that one grate and frame is the whole scope.",
    "The job is marked P0 danger (same day), but the forms do not require out-of-hours work, so it is priced at in-hours rates."
   ]
  },
  {
   "item": "J0458",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "red",
   "estimator_checks": [
    "Defective channel length is 11 m, over the 10 m limit (rule 4.18). The full run is not priced; 2 m is allowed. Confirm the actual extent of the defect and whether a full-run quote is needed.",
    "Part required is 'channel frame and covers', which suggests grates only rather than a full 11 m replacement.",
    "Confirm whether the tarmac surface is a car park or road (6.11 surface lines applied) or a shop front/entrance (dye, 6.10).",
    "Confirm whether there is a sump or trash box to replace."
   ]
  },
  {
   "item": "J0459",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0460",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 22,
     "total": 88.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 448.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Pipe fitting count: elbow, 45 deg bend, two y branches and the 2 inch access cap are all in the description, so confirm the quantities and whether a 4 inch y branch needs a different part",
    "Whether a full day (LAB-ENG-D) is needed instead of a half day, since the 3 inch stack removal and cutting into the 4 inch stack may take longer",
    "Length of new 110 mm pipe needed for the run across the window and any 3 inch pipe replacement",
    "Access via the bathroom window of flat 17 (tenant must provide access), and whether the lightwell needs an access tower (HIR-TOWER)"
   ]
  },
  {
   "item": "J0461",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": [
    "Form 2 has no location and the same size and details as Form 1, so it is treated as a repeat and priced as one grate. Confirm there is only one gully."
   ]
  },
  {
   "item": "J0462",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is unknown: confirm what cover and frame is needed (size and grade) after the visit",
    "Opening was not measured (cover 600 x 400 mm), so confirm the size",
    "Form says a heavier grade is required but the existing cover is B125: confirm the grade needed",
    "Confirm whether the cover is a footpath or grass location, as the notes say it is rusted and could break if walked on"
   ]
  },
  {
   "item": "J0463",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, other / non-standard size",
   "quote_lines": [
    {
     "code": "CVR-OTHER",
     "description": "Cover & frame, other / non-standard size",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 350,
     "total": 700.0,
     "rule": "3.3+4.9"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-PRIM",
     "description": "Primer for asphalt repair kit",
     "unit": "kit",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "P2 (primer listed in Part required)"
    }
   ],
   "quote_total": 3544.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Only one form with one set of measurements was given for the 2 manholes; confirm the second manhole is also 590 x 440 mm (same cover type)",
    "One manhole is in tarmac and the other in concrete; asphalt/band is priced for the tarmac one only, so confirm the surface reinstatement for the concrete one",
    "The 590 x 440 size is just under the 600 x 450 standard, so CVR-OTHER was used; confirm the size and duty (B125 grass/footpath vs. vehicle traffic)",
    "Confirm whether the primer kit is needed (it is listed in Part required)"
   ]
  },
  {
   "item": "J0464",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "yellow",
   "estimator_checks": [
    "location of the channel is not given: confirm it is in a car park or road (assumed from tarmac surface and C250 vehicle grade), otherwise remove the asphalt, overbanding and carriage lines",
    "no 'Part required' text: confirm replacement of the channel is wanted",
    "confirm there is no sump or trash box to replace",
    "defective length is only 0.7 m, priced at the 2 m minimum"
   ]
  },
  {
   "item": "J0466",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "cover size (none given, defaulted to 600x600)",
    "load grade (none given, defaulted to heavy duty)",
    "surface type around the cover (if tarmac, add asphalt, overbanding and carriage)",
    "whether the cover is in a road or vehicle area"
   ]
  },
  {
   "item": "J0467",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 3 (SW 60 outlet dig) is the only form that orders a dig, so under 2.1 it takes priority over the seized-cover form (Form 4) and the quote is priced as a dig. Confirm this is the main work wanted.",
    "Form 4 (3 seized Gattic covers, 1180x700, F900) is not priced. It would be a separate cover job (large light/heavy cover) if wanted, and the F900 grade needs checking against the rate card.",
    "Form 1 and Form 5 (FOG contamination in 2 + 5 gullies and SW 65, remedial tanker) are not priced. They would need a separate tanker quote (LAB-TNK-D, WST-GRS, WST-NOTE). Form 1 requires out-of-hours working from 11pm, which has not been applied here.",
    "Form 2 (15m kerb channel that cannot be jetted, no catchpit) is not priced. A run over 10 m is not priced in full, so it needs a survey or access decision.",
    "Form 6 (SW pump station pumping water through the manhole covers) says the engineer needs to speak to the remedial team, so the work is unclear.",
    "The dig has no pipe parts specified, so only 1 fitting is allowed. Confirm the reinstatement surface and whether fencing is needed at SW 60.",
    "Confirm the dig duration (3 days assumed by default)."
   ]
  },
  {
   "item": "J0468",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether a dig is definitely required: the form says 'likely', so confirm it rather than a CCTV or jetting visit",
    "Pipe repair scope: deformed at 0.8 m and 5 m downstream of manhole 23, so confirm the length to replace and which fittings are needed (PIP-FIT 1 is a placeholder)",
    "Surface type above the pipe and how to reinstate it",
    "Whether fencing is needed (public or busy area)",
    "Whether the engineer is certain the deformity is causing the blockages"
   ]
  },
  {
   "item": "J0469",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Form 1 note says 'infill cover'. Confirm it is a standard solid-top cover and not a recessed tray taking paving infill (CVR-REC).",
    "Block paving surround may need relaying. No sand or paving lines are priced, so confirm whether any are needed.",
    "OOH working was only mentioned as a possibility, so it is priced in hours. Confirm whether nights are required."
   ]
  },
  {
   "item": "J0472",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2098.0,
   "confidence": "green",
   "estimator_checks": [
    "whether a digger is needed to lift the concrete slab (form says 'possible'; not priced, would add HIR-EXC 1)",
    "frame depth of 1007 mm looks unusual; confirm the measurements"
   ]
  },
  {
   "item": "J0473",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0474",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Mixed job (root ingress x2, manhole, gully): only the cover is priced under rule 1.5, so confirm the root cutting and gully repair are quoted separately or not needed",
    "Form says the chamber opening could not be measured; confirm the 650 x 650 mm cover size and D400 grade",
    "Confirm the root-ingress locations (SW 11, SW 53) are not manhole covers needing replacement"
   ]
  },
  {
   "item": "J0475",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 4.0,
     "unit_price": 95,
     "total": 380.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 8.0,
     "unit_price": 55,
     "total": 440.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.7+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 32.0,
     "unit_price": 6,
     "total": 192.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 19,
     "total": 152.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 6,
     "total": 48.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4257.0,
   "confidence": "red",
   "estimator_checks": [
    "downstream invert depth of '9 meters' is impossible (upstream is 150mm), so confirm the real figure",
    "confirm the 4 m defective length",
    "confirm the work is replacement of the channel; 'digging equipment' in Part required was read as part of the channel replacement, not as a separate dig",
    "surface is block paving in a car park: 6.11 asphalt reinstatement was applied because it is a car park, so confirm the surface reinstatement",
    "out-of-hours work is required (access issue 'ooh', issue type ooh), so confirm the night/weekend rate and the driver/car consent arrangements"
   ]
  },
  {
   "item": "J0476",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is 'unknown' on every form, so this is priced as a crew visit only (rule 2.3).",
    "Confirm the actual size of the seized manhole covers. Form 1 size of 600x600 is only a best estimate, and forms 2 and 3 give no size.",
    "Confirm the grade and surface for each cover.",
    "Confirm whether the seized covers need replacing or can be freed and re-seated.",
    "Confirm whether the unit 40 channel needs a catchpit/sump, how long the run is, and how much is bent. No length was measured.",
    "Confirm the locations are separate items: car park, main road back road, and unit 33 steps."
   ]
  },
  {
   "item": "J0477",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400) / 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 395,
     "total": 790.0,
     "rule": "4.4+4.13"
    },
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.7+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3609.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The channel replacement (Form 1, 1 m, dig up and replace) is not priced because the job is mixed and the cover is the one main repair (rule 1.5). Confirm whether it needs a separate quote.",
    "Form 2 says x2 manholes (fw 4 and fw 5), both 745x745 and seized, so they are priced as 2 covers. Confirm the count and that both are D400.",
    "Form 3 (fw2) is 685x530, E600 grade, in a loading area. It is priced as CVR-600x450-H. Confirm the size and the traffic grade.",
    "Access: the loading area opens at 6am. Priced as in-hours work. Confirm with the client whether site access is possible with a code."
   ]
  },
  {
   "item": "J0478",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease waste to remove from the three catchpits (standard 4 tonnes assumed)",
    "whether the tanker can reach all three catchpits in one day",
    "form 1 (plastic frame to be secured to the chamber at the gym) is not priced: it is not a new cover order, so confirm whether a separate small fix or materials are needed",
    "no investigation or jetting was asked for, so no drainage crew is included"
   ]
  },
  {
   "item": "J0479",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0480",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4748.0,
   "confidence": "yellow",
   "estimator_checks": [
    "exact location of the collapse (probe and mark needed before digging)",
    "pipe is 150 mm clay but the rate card only has 110 mm pipe, so confirm the replacement pipe and fittings",
    "whether the pipe is replaced or only a local repair (fitting count)",
    "no fencing priced because it is a private sprinkler yard behind gates; confirm"
   ]
  },
  {
   "item": "J0482",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "Part required says only 'broken key holes', not a new cover. Replacement is priced under the 2.4 default; confirm a new cover and frame is needed rather than a repair."
   ]
  },
  {
   "item": "J0483",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0484",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 395,
     "total": 395.0,
     "rule": "3.2+P3 (engineer orders 675x675 D400)"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 4051.0,
   "confidence": "red",
   "estimator_checks": [
    "Form 2: the opening measures 620 x 620 (which would normally give a 600x600 cover) but the engineer orders a 675x675 D400 cover. Confirm which size is right.",
    "Form 1 asks for a cut-off saw, generator and breaker. These were not priced because the rules have no line for them. Confirm whether hire is needed.",
    "The two forms are at different locations, so they are priced as two covers (this gives a one-day crew).",
    "Form 1's cover is for street lighting; confirm it is D400 (heavier grade required: Yes)."
   ]
  },
  {
   "item": "J0485",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BRICK",
     "description": "Engineering bricks",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 1.5,
     "total": 15.0,
     "rule": "P2 (ordered in Part required: x10 bricks to build chamber up one course)"
    }
   ],
   "quote_total": 2233.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening measured 600 x 480 fits no standard band (4.11, next size up), while Part required says 650 x 650 D400. Confirm which cover size to supply.",
    "Confirm the 10 bricks and whether extra cement, ballast and sand are needed beyond the standard bedding mortar (quantities not given).",
    "Confirm D400 grade (form says C250 with heavier grade required: Yes).",
    "Confirm whether the alleyway takes vehicle traffic."
   ]
  },
  {
   "item": "J0487",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, recessed (paving infill)",
   "quote_lines": [
    {
     "code": "CVR-REC",
     "description": "Cover & frame, recessed (takes paving/tile infill), any size",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 410,
     "total": 820.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2966.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0488",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2248.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the rodding eye cap and frame is a replacement and that CVR-PLATE is acceptable for a 130 x 130 mm rodding eye on a footpath (rule 4.10, size is small and may be mis-measured)",
    "Confirm the surface is tarmac as stated",
    "Confirm the work is in hours (P1 urgent 1-3 days, no out-of-hours work required)"
   ]
  },
  {
   "item": "J0489",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-LIQ",
     "description": "Liquid waste disposal (gully / interceptor / septic), per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 120,
     "total": 480.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 1895.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of septic tank liquid waste (the form says 2-3 loads; 4 tonnes is a pattern estimate, not a measured figure)",
    "whether the job needs more than one tanker day or trip",
    "access through the black gates to the car park behind units 16 and 17"
   ]
  },
  {
   "item": "J0490",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The 'Part required' asks for repairs to the channel walls, not a replacement channel. Confirm whether the 0.5 m defect needs replacing (priced at the 2 m minimum) or a repair only.",
    "Confirm the service yard is a vehicle area, which is why the car park/road surface lines were used for the tarmac.",
    "F900 (aircraft) grade is stated but the rate card has no matching channel line, so standard channel pricing is used.",
    "The location text mentions a 'cover marked with blue X', which is odd on a channel form. Confirm the exact location."
   ]
  },
  {
   "item": "J0491",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "4.7+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1388.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The job mixes two gully forms and one manhole form, so only the cover is priced (rule 1.5). Confirm the gullies are not wanted in the quote.",
    "No grade is given for the manhole. Light duty was chosen because it is a pedestrian mall area (rule 4.14). Confirm no vehicles use it.",
    "The notes say the client wants a round cover only. Confirm whether this applies to the gullies or to the manhole, since the manhole opening is 680/530 mm rectangular.",
    "The surface is block paving and no reinstatement line is included. Confirm whether paving needs to be made good.",
    "Part required is not stated, so replacement was assumed from the Defective Manhole form (rule 2.4). The notes only suggest cutting round the frame to loosen it."
   ]
  },
  {
   "item": "J0492",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Cover size, grade and quantity are unknown, so no cover or bricks are priced. Confirm whether to add a cover (CVR-*) and MAT-BRICK once the chamber is exposed.",
    "Depth of dig is unknown because the permit to break ground was not obtained.",
    "Surface type is unknown, so no reinstatement lines are priced.",
    "Confirm whether PIP-FIT 1 is needed, since no pipe work is described.",
    "Confirm that the area is not public or busy, so no temporary fencing is priced."
   ]
  },
  {
   "item": "J0493",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is unknown: confirm what work and which cover/frame is needed on site",
    "Opening is large (1225 x 680 mm, D400, HGV yard, tarmac): confirm size and grade before quoting a replacement"
   ]
  },
  {
   "item": "J0494",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the store room is inside a building, so a sealed chequer plate cover applies",
    "chamber opening was not measured; the size used is the existing cover size, 700 x 550 mm"
   ]
  },
  {
   "item": "J0495",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 22,
     "total": 88.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 448.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part list has 4 fittings (p trap, coupler, 90 degree bend, sink waste) plus 1x 40mm solvent weld pipe length; PIP-FIT covers the fittings only, with no pipe length line since PIP-110 is 110 mm drainage pipe",
    "Confirm half day is enough for cutting out the 32mm pipework, reconfiguring back to 40mm and fitting the new trap and waste (full day LAB-ENG-D if not)",
    "Confirm whether a second visit is needed after the dehumidifier drying and worktop replacement, which are not included",
    "Whether any in-hours or out-of-hours access is required (the form does not require nights)"
   ]
  },
  {
   "item": "J0496",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 520,
     "total": 1040.0,
     "rule": "4.11"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3846.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 only asks for the frame to be secured, not a new cover. Confirm whether it needs a new cover (priced here as a second cover) or only a rebed.",
    "Form 1 is 785 x 635 mm, B125, on grass or footpath. No light-duty cover fits that size, so CVR-750-H was used (nearest band above). Confirm the size and the grade.",
    "Form 2 is 700 x 550 mm at the drive-thru entrance, where vehicles run. Confirm the size and that heavy duty (H) is right.",
    "Form 1 surface type is 'Other'. Tarmac reinstatement is priced for the drive-thru cover only. Confirm the surface at the rear unit.",
    "Confirm the two manholes are at different locations. They are priced as two covers."
   ]
  },
  {
   "item": "J0499",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2886.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Forms 1 and 2 may be the same location (back service yard). They are priced as two separate 1 m channel replacements because the lengths differ (0.5 m vs 0.47 m). If they are one item, the channel run drops to 1 m, which the 2 m minimum would lift back to 2 m.",
    "Form 3 asks only for a replacement grid and says the channel is undamaged. It is priced as 2 CHN-GRATE only, with no CHN-RUN. Confirm the number of grids (form 1 mentions 2 grids).",
    "Whether a single full day with the civils gang covers three locations",
    "Whether the surface is concrete throughout, and whether any of the service yard areas count as a car park or road (this would change the surface lines)"
   ]
  },
  {
   "item": "J0501",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "Form grade is A15 but 'heavier grade required' is Yes; heavy duty was priced on the heavier-grade answer. Confirm the grade needed."
   ]
  },
  {
   "item": "J0502",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4666.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Four chambers in total (two at the side, two at the rear): confirm the count and whether 3 days of civils is enough",
    "Existing lids are reused and no new cover and frame is needed",
    "How many chamber rings need cutting down, and to what height",
    "Concrete surround quantity (taken as the standard concrete reinstatement)",
    "Whether fencing is needed on the estate"
   ]
  },
  {
   "item": "J0503",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2068.0,
   "confidence": "green",
   "estimator_checks": [
    "Part required says only 'Concrete', so confirm a new cover and frame is wanted rather than just a rebed or surround repair"
   ]
  },
  {
   "item": "J0504",
   "is_manhole_job": true,
   "job_type": "manhole: rebed / reset existing cover and frame (no new cover)",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.8"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 10.0,
     "unit_price": 68,
     "total": 680.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "6.4"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 1666.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm the lid is only being re-set (reconcreted) and no new cover and frame is needed",
    "size and surface of the manhole are not given",
    "confirm the quantity of concrete needed, as the part required lists concrete",
    "one 110 mm cap is assumed; confirm which pipe is capped and how many caps are needed",
    "form is a general Other / Reactive form, so the work was not clearly described"
   ]
  },
  {
   "item": "J0505",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm a sealed chequer plate is acceptable for this basement car park cover, since the form grade is C250 and vehicles use the area",
    "Confirm the 470 x 470 mm opening measurement"
   ]
  },
  {
   "item": "J0506",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.8+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the cover is in an open basement courtyard, not inside the building. If it is sealed or indoors, use CVR-PLATE under 4.1.",
    "Confirm the courtyard is pedestrian-only. The form grade is C250, so if vehicles can reach it, use CVR-600-H."
   ]
  },
  {
   "item": "J0507",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    },
    {
     "code": "HIR-BA",
     "description": "Breathing apparatus set (confined space)",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 180,
     "total": 180.0,
     "rule": "P2 confined space entry named in forms"
    }
   ],
   "quote_total": 2660.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether a CCTV crew (LAB-CCTV-D) should replace the drainage crew for the camera survey",
    "Whether breathing apparatus is needed or the confined space entry team brings its own",
    "Whether liquid waste disposal (WST-LIQ) and a waste consignment note are needed for the tanker",
    "Location of the two retention manholes, which are not fully described",
    "Whether the work must be done out of hours"
   ]
  },
  {
   "item": "J0508",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form is labelled Other / PPM / P0 Danger but orders a new cover, so it was priced as a cover job (1.1).",
    "The 500 mm round opening was treated as square, 500-720 mm band (4.5). Confirm the size, because small sizes are often mis-measured.",
    "No grade is given, so heavy duty (H) was used by default (4.13). Confirm the grade needed for the grass location.",
    "Confirm the existing cover is plastic and a cast-iron cover and frame is acceptable.",
    "The surface is grass, so no surface reinstatement lines were added.",
    "The form says same day / P0 danger but does not require out-of-hours work, so in-hours rates were used."
   ]
  },
  {
   "item": "J0509",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening measured at 470 x 470 mm (under 500 mm) in a parking bay; confirm the actual cover size, as small sizes are often mis-measured",
    "the cover is round (circle lid); confirm the frame is a standard 600 size",
    "the plastic frame is broken, so check the surrounding concrete for damage",
    "a same-day P0 job was requested, but out-of-hours work was not required, so the quote uses in-hours labour"
   ]
  },
  {
   "item": "J0510",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 3345.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease/fat waste to be removed",
    "whether jetting/clearing of the blocked line is needed alongside the tanker (drainage crew line included)",
    "exact location and access (fire exit to the unit) and which chamber or line is blocked",
    "whether the work must be out of hours (not stated, priced in hours)"
   ]
  },
  {
   "item": "J0512",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 330,
     "total": 990.0,
     "rule": "1.5+3.2+4.5+4.13+4.12"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3544.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm how many covers are to be replaced. Priced 3: Form 1 (in front of units 4/5, 600x600 measured), Form 2 (between units 2/7) and Forms 3/4 (first parking spot, same location, counted once). Only Form 1 has a measured size, so Forms 2 and 3/4 are assumed to match it at 600x600 heavy duty.",
    "The forms do not say whether the Form 2 and Form 3/4 manholes need new covers. Their stated problems are different: set concrete or cement in the line, and a partly collapsed chamber side.",
    "Not priced: jetting or removal of the cement-type blockage (Forms 2 and 3, 6in clay, about 20 m), repair of the collapsed chamber siding (Form 4), and the possible collapsed 100 mm clay drain over 15 m at unit 1 (Form 5). A dig on Form 5 may be needed once the excavation by others is finished.",
    "Form 1 grade is E600 forklift yard, heavier grade not required. Heavy duty has been used. Check that a C250/D400 cover is acceptable for forklift loading.",
    "Surface is concrete, so no surfacing lines were added. Confirm whether any concrete repair is needed round the frames."
   ]
  },
  {
   "item": "J0513",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2408.0,
   "confidence": "yellow",
   "estimator_checks": [
    "750 x 600 opening is rectangular and fits no standard band, so the next size up (750 x 750 D400) was used. Confirm the frame size.",
    "The existing grade is E600 (forklift yard), above D400. Confirm that a D400 cover is acceptable.",
    "Confirm the replacement is the lid only or the lid and frame (Part required says 'lid')."
   ]
  },
  {
   "item": "J0514",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2153.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0515",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 330,
     "total": 1650.0,
     "rule": "3.3+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 10.0,
     "unit_price": 260,
     "total": 2600.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 10285.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0516",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": [
    "Cover size is estimated by the engineer (no tape measure, opening not measured). Confirm 600 x 600 before ordering."
   ]
  },
  {
   "item": "J0517",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3+3.2"
    },
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13+3.2"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 4176.0,
   "confidence": "green",
   "estimator_checks": [
    "parking bays in the work area are kept empty by the site (arranged with the site)"
   ]
  },
  {
   "item": "J0518",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "tables over the cover must be moved before work starts",
    "confined space with no ventilation in the coal cellar: confirm access and safety arrangements"
   ]
  },
  {
   "item": "J0519",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the channel is in a road or vehicle area (tarmac surface, D400 HGV grade), which is why the tarmac reinstatement lines were added",
    "confirm 3 x 500 mm pieces = 1.5 m, priced as 2 x 1 m sections"
   ]
  },
  {
   "item": "J0521",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 520,
     "total": 1040.0,
     "rule": "3.3+4.11+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 4366.0,
   "confidence": "yellow",
   "estimator_checks": [
    "770 x 570 mm is a non-standard rectangle, so it was priced at the next band up (750 or larger, D400). Confirm that cover size fits the opening and frame.",
    "Confirm that both covers are the same size, as the notes say 'exactly the same size'.",
    "The form gives one opening measurement for two covers. Confirm the second cover has the same dimensions and sits in the same tarmac surface."
   ]
  },
  {
   "item": "J0523",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether a separate plumber or engineer is needed to remove the 2 floating pedestals and the boxing-in (not priced)",
    "whether the crew's own camera covers the CCTV or a crawler camera hire is needed",
    "whether the PPM works (trap cleaning and descaling) are in this quote or on a separate PPM contract",
    "whether boxing reinstatement is required after the holesaw access"
   ]
  },
  {
   "item": "J0524",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "1.5+4.11+4.14"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.1+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1998.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Manhole opening size: the 140 x 730 mm was measured over the top because the lid could not be lifted, and 140 mm is implausible. Confirm the real size and whether CVR-750-H is right.",
    "Grade: E600 forklift loading bay is above D400, so confirm that heavy duty (D400) is acceptable.",
    "Saturday working was required by the engineer (built-up area, no nights), so the weekend half-day crew is priced.",
    "The job also has a gully form and a collapsed brick channel form. Only the cover is priced (rule 1.5), so confirm whether the gully and channel need separate quotes.",
    "Confirm that the cover is to be replaced, as Form 2 gives no part required."
   ]
  },
  {
   "item": "J0526",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 410.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the Ideal Standard 1.5 pneumatic single flush valve 180 is the correct part for the auto pump system, as the engineer is unsure",
    "Cost of the flush valve is not on the rate card, so it is allowed under MSC-01 (other materials); confirm the supplier price",
    "Confirm the access panel gives access to the cistern, so the job is 1 man for 1 hour (half day in hours)"
   ]
  },
  {
   "item": "J0528",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The job has both a channel form and a gully form, and only the gully is priced (rule 1.5). Confirm whether the 4.5 m block-paving channel repair needs a separate quote.",
    "Confirm the gully pot is not broken (GUL-POT is not included).",
    "Confirm the seized frame can be replaced with a heavy-duty hinged grate."
   ]
  },
  {
   "item": "J0529",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 520,
     "total": 1040.0,
     "rule": "4.11 (SW21, 730x580) + 4.3 (SW26, 970x830) + 4.14/4.13 D400"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 4366.0,
   "confidence": "yellow",
   "estimator_checks": [
    "SW21 (730x580): confirm the cover size. It is a non-square rectangle over 720 mm, so it was priced at the nearest band above (CVR-750-H).",
    "SW21: confirm the surface, which is half concrete and half tarmac. Tarmac reinstatement was priced.",
    "SW21: the lid is seized. Confirm a new lid and frame is wanted rather than just freeing the lid.",
    "SW26: confirm the 970x830 size. The old cover is a heavy concrete lid, so check the D400 grade and whether lifting gear is needed.",
    "SW39 (cement benching around the frame on the grass verge) is a benching-only manhole form, so it was not priced as a cover. Confirm whether to add a small repair (e.g. MSC-01 or mortar).",
    "Check whether traffic management is needed for SW26 on the road. Access to the locked compound at SW21 must be arranged with the business."
   ]
  },
  {
   "item": "J0530",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.16+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "green",
   "estimator_checks": [
    "Defective length is only 0.24 m, but the engineer orders 2 x 1 m sections. Quoted as 2 m, as ordered.",
    "Engineer wrote '2 men 1 shift'. Quoted as a half-day gang under 5.6, so confirm a half day is enough.",
    "Access and timing need to be agreed with site, as the work is in the middle of the service exit."
   ]
  },
  {
   "item": "J0531",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 2715.0,
   "confidence": "yellow",
   "estimator_checks": [
    "what '2 x so1' in Part required means (whether a sump or trash box unit is needed; priced as no sump, 2 m run)",
    "black dye: confirm the dye is wanted (the forms list it, the surface is tarmac in a car park)"
   ]
  },
  {
   "item": "J0532",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 410.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Neither form orders a new cover or frame, so this is not priced as a cover replacement (1.4). Confirm that securing the cover only needs fixings.",
    "Confirm what fixings or brackets are needed to attach the pump guide rails at the top. No part is named, so one allowance line is used.",
    "Confirm both forms are for the same chamber (the pump station by the substation). If the cover is a separate chamber, a second visit may be needed.",
    "Confirm half a day is enough for both tasks."
   ]
  },
  {
   "item": "J0533",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 290,
     "total": 290.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1380.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm one radial patch at 2.2 m, positioned so it does not cover the connection at 2.5 m",
    "Confirm whether the burns plate in the loading bay manhole is part of this line; if so, the downstream survey and cleaning would be extra",
    "Confirm whether the Picote cutter or the midi cleaner and mini miller need a separate item or are covered by the drainage crew",
    "Confirm that the locator (Vivax) is covered by the drainage crew and needs no extra line",
    "Confirm the key box access arrangements"
   ]
  },
  {
   "item": "J0534",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "the gully is under a skip, so confirm the skip can be moved for access"
   ]
  },
  {
   "item": "J0535",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-H",
     "description": "Drainage gang (2 operatives + jetter van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 610,
     "total": 610.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 610.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form is Other / PPM and gives no 'Part required', length, size or surface, so confirm what work is needed. This is priced as a drainage crew visit, with no parts.",
    "Confirm whether the 'channel' is an ACO-type channel drain (front of unit 5) or a pipe or chamber channel.",
    "If it is an ACO channel drain, confirm the length, grade, surface and whether a sump is needed, then re-quote as a channel job.",
    "Confirm the cause of the blockages (jetting or CCTV may be needed)."
   ]
  },
  {
   "item": "J0536",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "red",
   "estimator_checks": [
    "gully frame depth of 5500 mm is impossible, so confirm the real frame dimensions",
    "confirm one gully grate only",
    "confirm the gully pot is not broken, since no GUL-POT is priced"
   ]
  },
  {
   "item": "J0537",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2741.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the 600x450 cover at unit B1 sees vehicle traffic (heavy duty assumed from the C250 grade on the form)"
   ]
  },
  {
   "item": "J0538",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-ND",
     "description": "Vacuum tanker + crew, nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1890,
     "total": 1890.0,
     "rule": "7.1+5.9"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2755.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm the work must be done out of hours (the form only says 'ooh' under access issues)",
    "tonnes of grease waste from the 2 external grease traps"
   ]
  },
  {
   "item": "J0541",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4299.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type over the dig (for reinstatement materials)",
    "whether a pipe section needs replacing after the root is removed (parts unknown, so only one fitting is priced)",
    "whether temporary fencing is needed (the area is next to a car park and may be public)"
   ]
  },
  {
   "item": "J0542",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2073.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0544",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 7.0,
     "unit_price": 330,
     "total": 2310.0,
     "rule": "3.3+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 4.0,
     "unit_price": 1150,
     "total": 4600.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 42.0,
     "unit_price": 68,
     "total": 2856.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 10171.0,
   "confidence": "green",
   "estimator_checks": [
    "Cover count: 7 (1 + 3 + 1 + 2), taken from the x-counts in the notes. Form 2 has no location, so confirm its 3 covers are not the same ones as sw 6, sw 11 or the road covers.",
    "Block paving reinstatement: the rules give no surface line for it. Confirm the paving is reused or add paving separately if it needs replacing."
   ]
  },
  {
   "item": "J0545",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "channel size (appears to be 150mm but not confirmed because of the depth of the manhole)",
    "depth of the manhole and whether man-entry or breathing apparatus is needed",
    "whether the end of the incoming lateral needs extra fittings or materials (the form says it needs attention)",
    "quantities of building sand and rapid-hardening cement, which the form mentions but does not quantify",
    "access: the tenant wants Thursdays from 10am, so confirm the work stays in hours"
   ]
  },
  {
   "item": "J0546",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 (buried 3-stage interceptor under a concrete slab) is not priced. Per 1.5 only the gully grate replacement is priced, so confirm whether the client wants a separate quote for exposing and reinstating the interceptor covers (slab breakout, number and size of covers).",
    "Gully is a 160x160 mm A15 square grate in concrete. Confirm the replacement grate is the hinged heavy-duty type on the rate card, and that the gully pot is not broken."
   ]
  },
  {
   "item": "J0547",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3514.0,
   "confidence": "red",
   "estimator_checks": [
    "Defective length is 3 m but the notes say the total aco run is 26 m. Confirm that only the 3 m at the start of the line is to be replaced.",
    "Part required says to fit s100 channel at the start of the line and then change to C250. Confirm the grade and the channel type to be supplied.",
    "Confirm there is no sump or trash box to be replaced.",
    "Confirm car park traffic management is not needed."
   ]
  },
  {
   "item": "J0548",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 382.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the boss fitting and 1.5 inch pipework: the rate card only has 110 mm pipe and fittings, so confirm how much pipe and how many fittings are needed",
    "Confirm whether a half day is enough for the pump discharge pipework change",
    "Confirm that the backflow is caused by the pump discharge connection at the float, and whether a non-return valve is also needed"
   ]
  },
  {
   "item": "J0549",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 19.0,
     "unit_price": 38,
     "total": 722.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4948.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether 3 days of labour is enough for a 55 m run, since the standard dig pattern was used",
    "whether temporary fencing or traffic management is needed for the verge beside the road",
    "surface to reinstate over the run (verge or grass assumed, so no surface lines)",
    "exact run length (approx 55 m, rounded up to 19 x 3 m lengths) and the number of fittings"
   ]
  },
  {
   "item": "J0550",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "green",
   "estimator_checks": [
    "Form 1 (missing grate, part unknown) and Form 2 (1 m channel, aco grates ordered) are assumed to be the same channel, so they are priced as one location",
    "Form 1 gives a grate width of 130 mm and Form 2 gives a channel width of 155 mm; confirm they are the same channel"
   ]
  },
  {
   "item": "J0551",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3986.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0552",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 330,
     "total": 1320.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 24.0,
     "unit_price": 68,
     "total": 1632.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 5432.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm there are 4 separate manholes. Form 2 has no location, and forms 3, 4 and 5 give different car park locations, all 700x700.",
    "The gully form (Form 1, collapsed surround in the car park) is not priced under 1.5. Confirm whether a separate gully visit is needed.",
    "Covers are seized and could not be lifted, so they are priced as replacements (2.4). Confirm the frames need replacing.",
    "Openings could not be measured; the 700x700 size comes from the cover dimensions.",
    "Block paving reinstatement around the covers is not priced (no rule line). Confirm no extra paving is needed."
   ]
  },
  {
   "item": "J0553",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2258.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm 'BOH' is an outdoor or vehicle-trafficked area. If the chamber is inside the building and sealed, 4.1 would apply and the cover would be CVR-PLATE instead of CVR-750-H."
   ]
  },
  {
   "item": "J0554",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 8.0,
     "unit_price": 22,
     "total": 176.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 586.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Fitting count: assumed 4 repair couplings + 2 soil-to-drain + 2 flexible = 8; confirm whether the 'full length' coupling is extra to the 4",
    "Access equipment: the form text is garbled ('mi [place] required to access'); confirm whether an access tower or similar is needed (HIR-TOWER not priced)",
    "Whether a half day is enough, given that the ceiling has to be cut out and studding cut back, or whether a full day is needed",
    "Whether ceiling and studding making-good is in scope (not priced)",
    "Same-day P0 attendance: the form does not require out-of-hours work, so in-hours rates were used"
   ]
  },
  {
   "item": "J0555",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "7.4+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 2068.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether night work is required or only an access preference (if not required, use LAB-CIV-D instead of LAB-CIV-ND)",
    "whether a drainage crew is needed to clear the blockage and jet the line",
    "extent of the benching repair and whether man entry is needed",
    "whether the chamber is foul or surface water"
   ]
  },
  {
   "item": "J0556",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0557",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0558",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Exploratory dig is ordered (rule 2.1), so this is priced as a dig. The D400 frame and lid upgrade for the 650x650 chamber and the repointing of bricks are not priced. Confirm whether to add a cover (CVR-675-H) and bricks.",
    "Part required says 'see remedial form', but that form was not supplied. Pipe or parts needed are unknown, so only one PIP-FIT is allowed.",
    "Tarmac reinstatement is not covered by the dig rules. Confirm whether to add asphalt repair materials.",
    "Cables are buried close to the excavation, so extra hand-digging time is requested. Confirm whether 3 days is enough.",
    "Access restriction: no work on Thursday or Friday because of deliveries. Check whether temporary fencing is needed, since the site is behind a business at the rear of a place."
   ]
  },
  {
   "item": "J0559",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 290,
     "total": 580.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1720.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 asks for a liner and Form 2 names no part. Confirm that a patch liner is wanted at both locations (unit 7 and unit 8), not one.",
    "Form 2 has a 15 m run between assets. Confirm that patch lining is enough, or whether a dig or relay is needed instead (rule 7.2).",
    "The collapse is only 'possible' and the cause is unknown. Confirm whether a CCTV survey is needed first.",
    "Confirm the number of patches needed on each run."
   ]
  },
  {
   "item": "J0561",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0562",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": [
    "Location text mentions both unit H3 and unit H4, but there is one form and one frame size, so one gully is priced. Confirm there is only one gully needing a grate.",
    "Confirm the gully pot is not damaged (GUL-POT is not included)."
   ]
  },
  {
   "item": "J0563",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The job mixes gully and channel forms; per 1.5 only the gully is priced. Confirm the channel work (1 m aco in the car park, and the possible collapsed 17 m channel in the rear yard) is quoted separately or after CCTV.",
    "Confirm the gully pot is intact (only the frame is reported broken), so no GUL-POT is included."
   ]
  },
  {
   "item": "J0564",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0565",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening measured at 470x470 mm (under 500 mm), so confirm the real size, as small sizes are often mis-measured",
    "confirm the location is a footpath with no vehicle traffic, since the plate was chosen on that basis",
    "surface type given only as 'Other', so confirm no tarmac reinstatement is needed",
    "the ring frame is missing, so confirm the chamber ring is sound to take the new frame",
    "P1 urgent (1-3 days), but out-of-hours work is not required, so priced in hours"
   ]
  },
  {
   "item": "J0567",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1602.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm that no new frame or cover is needed. The form only asks for re-cementing bricks and benching around the existing frame, so this is not priced as a cover job.",
    "Confirm whether a full day is needed or a half day (LAB-CIV-H) would do. Only a few bricks are involved.",
    "PIP-CHAN (half-round channel) left out because no channel work in the chamber base is described. Confirm none is needed.",
    "Confirm the number of bricks and the mortar quantity. No new bricks are priced, on the assumption the existing ones are reused.",
    "Check the marked-up site plan photo for location and ground type (grass verge, so no surfacing lines are added)."
   ]
  },
  {
   "item": "J0568",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 3345.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form describes the problem but does not say what work is required. Confirm that tanker emptying of the petrol interceptor and manholes plus jetting of the whole surface water line is wanted.",
    "Tonnes of silt and contaminated waste to remove, including the interceptor contents.",
    "Whether the high level in the balancing pond or the outfall needs separate attention. The cause is not addressed by cleaning.",
    "The extent of the highlighted surface line on the map, to confirm that one day for each crew is enough."
   ]
  },
  {
   "item": "J0569",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 8.0,
     "unit_price": 95,
     "total": 760.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 16.0,
     "unit_price": 55,
     "total": 880.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 64.0,
     "unit_price": 6,
     "total": 384.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 6404.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the 2 m and 6 m runs are separate sections (total 8 m) or the same run",
    "whether the sump next to the 2 m section is being replaced (would add CHN-SUMP and change the run and grate counts)",
    "what 'collapsed' channel in Form 1 means: if a buried pipe has collapsed, a dig (7.2) may be needed",
    "whether the entrance location needs dye (MAT-DYE)"
   ]
  },
  {
   "item": "J0570",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 2845.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type is not stated; if it is tarmac in the car park add MAT-ASPH 4, MAT-BAND 2, SUN-CARR 1 (6.11), if concrete add MAT-CREP 4 (6.9)",
    "confirm the channel is one run of 5 m and that Forms 1 and 2 are the same location",
    "site access only Tue/Thu 9am-3pm, so confirm a full day's work fits the window",
    "no sump unit is mentioned, so none is priced"
   ]
  },
  {
   "item": "J0571",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0572",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-D",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 620,
     "total": 620.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 22,
     "total": 110.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 818.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Pipe length needed for the re-pipe: 4 inch pipe is quoted as one 3 m length of PIP-110 and may need more",
    "Fittings quoted as 2 tees, 2 straight couplings and 1 bend (5 in total) at PIP-FIT; the push-fit air admittance valve is not on the rate card, so it is allowed within the MSC-01 line together with clips, supports and threaded bar",
    "The form says a return visit is needed to remove the toilets and re-pipe the line. This is quoted as a full day for one engineer (LAB-ENG-D); the form does not name a full day, so confirm the half day or full day split",
    "Confirm whether a second operative is needed to lift the toilets",
    "Confirm that the work is in hours"
   ]
  },
  {
   "item": "J0573",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.1+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1743.0,
   "confidence": "green",
   "estimator_checks": [
    "Form asks for a double seal cover but the rate card has no such line, so a standard 600x450 D400 cover is priced",
    "Chamber is described as circular but measured 600x450 from the existing cover/frame, so the cover shape should be confirmed",
    "OOH (nights/weekends) work is required by the forms, so the night half-day crew is used",
    "Traffic management is not priced, so confirm whether it is needed on the busy estate entrance road"
   ]
  },
  {
   "item": "J0574",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0575",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required only says 'blown concrete around the edges, office to review'. Confirm a new cover and frame is wanted and not just a rebed or concrete repair.",
    "Opening is 620 x 470 mm, which fits no standard band. Confirm the size and the cover chosen (CVR-600-L, the next size up).",
    "Grade is light (B125), based on grass and footpath use at the picnic area. Confirm no vehicles reach it.",
    "No surface reinstatement lines are included because the surface is grass."
   ]
  },
  {
   "item": "J0576",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 265,
     "total": 530.0,
     "rule": "4.10+4.14+3.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3856.0,
   "confidence": "yellow",
   "estimator_checks": [
    "actual cover size: 270 x 200 mm is under 500 mm and may be mis-measured, and the opening could not be measured",
    "PI3 already has a separate remedial form, so confirm the 2 covers are not a duplicate of that form",
    "confirm the covers are in a trafficked road/estate area (heavy duty C250 assumed)"
   ]
  },
  {
   "item": "J0577",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.19"
    },
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 55,
     "total": 275.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 6,
     "total": 168.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3628.0,
   "confidence": "red",
   "estimator_checks": [
    "Defective run is 12 m, over the 10 m limit (4.18), so only 2 m is priced with the catchpit. Confirm the actual extent of the repair needed.",
    "Confirm the catchpit is meant to replace part of the existing run.",
    "Engineer advises working after 8pm and before 7am because of traffic, but this is not required, so priced in hours. Confirm whether night work or traffic management is needed.",
    "Channel width of 55 mm looks wrong. Confirm the size of the channel.",
    "Confirm the surface is tarmac in the road, and whether the entrance needs a dye or colour match."
   ]
  },
  {
   "item": "J0579",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2294.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface around the gullies (tarmac or concrete/block paving) is not stated, so no surface reinstatement lines were added",
    "location is only given as a site map photo",
    "confirm the frames are also missing or damaged (the form says lids only) and that a standard hinged heavy-duty grate and frame fits L490 x W315",
    "confirm both gullies are in the same area, so one gang day covers them"
   ]
  },
  {
   "item": "J0580",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the work is breaking out concrete inside the chamber (man entry, hand tools) and that no new cover is wanted",
    "Confirm whether a breathing apparatus set (HIR-BA) is needed for the confined space",
    "Confirm whether the base channel needs replacing (PIP-CHAN) and how much concrete there is",
    "The 150 x 150 mm cover size was not measured and looks wrong"
   ]
  },
  {
   "item": "J0581",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 330,
     "total": 1650.0,
     "rule": "4.10+4.13+3.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 10.0,
     "unit_price": 260,
     "total": 2600.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 10285.0,
   "confidence": "yellow",
   "estimator_checks": [
    "actual cover size: 270x270 mm is likely mis-measured (opening was not measurable), see photos",
    "confirm the five covers are all the same size and type",
    "confirm lanes 2 and 3 are trafficked, so a standard 600x600 cover applies rather than a plate",
    "confirm C250 grade is right for the lanes",
    "whether traffic management is needed (not added, nothing in the forms asks for it)"
   ]
  },
  {
   "item": "J0582",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 3345.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease (FOG) waste to be removed",
    "whether the entry team needs a drainage crew (LAB-DRN-D) for breaking up FOG and cleaning the pump station chamber",
    "whether breathing apparatus is needed for confined space entry",
    "whether traffic management or ramp closure is needed if the tanker parks at the exit ramp",
    "tanker type (standard or Ford Ranger relay) and 240 m hose run"
   ]
  },
  {
   "item": "J0583",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": [
    "Gully pot is only being cleaned, not replaced (no GUL-POT priced)"
   ]
  },
  {
   "item": "J0585",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 10.0,
     "unit_price": 95,
     "total": 950.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 20.0,
     "unit_price": 55,
     "total": 1100.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 80.0,
     "unit_price": 6,
     "total": 480.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 20.0,
     "unit_price": 19,
     "total": 380.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 20.0,
     "unit_price": 6,
     "total": 120.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 7010.0,
   "confidence": "green",
   "estimator_checks": [
    "Run is exactly 10 m, so it is priced in full (rule 4.18 applies only above 10 m)",
    "Surface is given as concrete but the location is a car park, so the car park surface lines (6.11) were used; confirm the reinstatement material",
    "Notes mention cutting the old grates to fill gaps in other channels; no extra line added, confirm no further work is needed"
   ]
  },
  {
   "item": "J0586",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the pipe needs relaying (add PIP-110 per 3 m and a second PIP-FIT) once the spot dig shows the extent of the collapse",
    "whether the grass verge is public or busy enough to need HIR-FENCE",
    "whether the tap root removal needs extra work",
    "whether grass reinstatement is needed, as the rate card has no grass line"
   ]
  },
  {
   "item": "J0587",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0588",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether tracing the internal pipework needs a CCTV or camera crew rather than the drainage gang",
    "whether the blocked gullies need further jetting or any other work once traced",
    "access into the buildings for the daytime visit"
   ]
  },
  {
   "item": "J0589",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the 90 degree sweeping bend should be priced as PIP-CHAN or as a PIP-FIT",
    "generator, breaker and grinder have no matching hire line on the rate card, so confirm whether they are needed and whether to allow for them",
    "number of mortar bags and whether the standard MAT-MORT 4 covers the 2 x 25 kg requested",
    "confirm man entry and confined-space needs (breathing apparatus) for the chamber",
    "confirm traffic or pedestrian management is not needed in front of the shutter and entrance"
   ]
  },
  {
   "item": "J0591",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2+6.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2 (parts unknown)"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2 (busy loading bay)"
    }
   ],
   "quote_total": 4299.0,
   "confidence": "yellow",
   "estimator_checks": [
    "exact location of the burst and the pipe size/material to be repaired",
    "surface type (concrete, tarmac or block paving) for reinstatement; none priced yet",
    "whether the water main is the client's or the water company's responsibility",
    "whether traffic management or out-of-hours working is needed for the loading bay",
    "fittings and pipe lengths required once the burst is exposed"
   ]
  },
  {
   "item": "J0592",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 4.0,
     "unit_price": 38,
     "total": 152.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "GUL-POT",
     "description": "Gully pot / gully assembly (new)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 185,
     "total": 370.0,
     "rule": "forms order new gully pots"
    },
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "forms order corresponding covers"
    }
   ],
   "quote_total": 5168.0,
   "confidence": "yellow",
   "estimator_checks": [
    "number of gully pots and covers (text says 'gullies', assumed 2)",
    "pipe length: Part required says 10 m, but the description adds up to about 19.4 m (10 m relay + 7 m + 2.4 m)",
    "number of fittings once excavated",
    "reinstatement material around the kerb and soakaway area (none specified)",
    "whether temporary fencing is needed (service road)",
    "cost of drilling through the brick catchpit shaft"
   ]
  },
  {
   "item": "J0593",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the 470x470 opening size, as small sizes are often mis-measured",
    "Confirm whether the cover is in the carriageway (mini roundabout) or on a footpath/grass area; the B125 grade note says grass/footpaths, which may mean CVR-PLATE instead",
    "Confirm the grade, since vehicles may run over it and a heavier grade could be needed",
    "Confirm whether traffic management is needed at the mini roundabout (not added by default)"
   ]
  },
  {
   "item": "J0594",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3211.0,
   "confidence": "red",
   "estimator_checks": [
    "Form 1 is a 12 m run in the service yard. It is over 10 m, so it is not priced in full. Confirm how the estimator wants to handle it, e.g. a separate quote or survey.",
    "The remaining two car-park locations (1 m and 0.5 m) are each rounded up to 1 m, giving 2 m. This is the same 2 m as the rule 4.18 fallback.",
    "The car-park surface is given as concrete, but rule 6.11 (car park channel) was applied, which adds asphalt and overbanding. Confirm whether the surface is really tarmac or concrete (MAT-CREP 4 instead).",
    "Form 3 has no 'Part required' entry and says the channel has collapsed, with inverts 2.4 m deep. Confirm whether a dig or shoring is needed.",
    "Confirm whether the work should be priced in hours or out of hours. The forms do not require out-of-hours work."
   ]
  },
  {
   "item": "J0595",
   "is_manhole_job": true,
   "job_type": "manhole: rebed / reset existing cover and frame (no new cover)",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.8"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 10.0,
     "unit_price": 68,
     "total": 680.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1644.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm the work is only re-cementing or repointing the cover surround and no new cover or frame is needed",
    "cover size, grade and surface not given",
    "number of covers (assumed one)",
    "security access arrangements"
   ]
  },
  {
   "item": "J0596",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the buried manhole's exact location (the forms say it is in or by the ladies or disabled toilet, but not which) and whether it is under a floor or outside",
    "Confirm that sonde locating plus uncovering the manhole is a dig. 3 days of civils is the standard exploratory-dig pattern and may be too much for simply uncovering one chamber",
    "Surface type over the buried manhole, to price reinstatement in kind",
    "Whether a new cover and frame is needed once the chamber is uncovered. The forms do not order one, so none is priced",
    "Whether a separate drainage or CCTV crew is needed for the sonde locating",
    "Whether fencing is needed (small building, probably not public)"
   ]
  },
  {
   "item": "J0597",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3514.0,
   "confidence": "green",
   "estimator_checks": [
    "Whether 'before store opens' means out-of-hours working is required (quoted in hours, so no nights code was used)",
    "Confirm 2.4 m length and that the drive-through is a vehicle area (tarmac reinstatement priced as car park or road)"
   ]
  },
  {
   "item": "J0598",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Forms 1 and 2 are treated as one manhole (same size 580x580, same area, Form 2 orders the new cover and frame). Confirm they are not two separate manholes, which would mean 2 covers and a full day of civils labour.",
    "The root ingress form (Form 3, SW line next to the cottage) is not priced, because one main repair is priced per visit. Confirm whether a separate drainage visit for root cutting is needed.",
    "The surface is shingle or a plant bed, not tarmac, so no asphalt lines are included."
   ]
  },
  {
   "item": "J0599",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4120.0,
   "confidence": "red",
   "estimator_checks": [
    "Forms conflict on scope: the length field and the recommendation say 5 m, but the notes say only about 1 m is defective. I priced the full 5 m run; confirm whether 1 m (minimum 2 m) is enough.",
    "Grade is given as A15 but heavier grade is required (Yes), and the notes ask for a higher-grade metal channel; confirm the grade and product.",
    "Confirm traffic management or out-of-hours working is not needed: the site is busy in the day and the channel is in parking spaces."
   ]
  },
  {
   "item": "J0600",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "1.5+3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Mixed job: priced as the cover job only (rule 1.5). The 4 channel sump cover forms are not priced, so confirm whether they need a separate visit or quote.",
    "Confirm the two manholes (side of business, foul MH3, and opposite business) are separate items, not one repeated.",
    "Block paving surround: no surface lines added per rules, so confirm no paving reinstatement is needed."
   ]
  },
  {
   "item": "J0601",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 265,
     "total": 795.0,
     "rule": "4.7+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3349.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 3 size '69x53' is assumed to be 690x530, which is the same size band as the other two",
    "confirm there are three separate covers: the locations differ and the sizes are 670x520, 670x530 and 690x530",
    "no grade given: heavy duty assumed, because the covers are at a unit and a site entrance where vehicles can run",
    "surface not stated: no tarmac reinstatement lines included, so confirm whether the covers are in tarmac"
   ]
  },
  {
   "item": "J0602",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4783.0,
   "confidence": "yellow",
   "estimator_checks": [
    "exact location in the car park (the form says the engineer will show the area)",
    "length and size of cast pipework to be replaced (PIP-FIT 1 used because the parts are unknown)",
    "extent of concrete breakout and reinstatement",
    "whether the yellow metal barrier needs to be removed and refitted",
    "whether fencing is needed (busy car park area)"
   ]
  },
  {
   "item": "J0603",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm scope of work in the chamber: break out the concrete divider and re-form the coarse channels",
    "whether breathing apparatus (HIR-BA) or other confined-space safety kit is needed for man entry, as 'safety gear' is mentioned",
    "whether the work is in hours or out of hours, as the forms do not say",
    "access and permit requirements at the cleaners room by screen 4 (P3 Limited)"
   ]
  },
  {
   "item": "J0605",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1090.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form asks only for a jetvac and CCTV survey now; the additional slot drainage and gullies are a later install and are not priced here. Confirm this.",
    "Whether a separate CCTV crew or camera hire is needed alongside the drainage jetter crew.",
    "Disposal of the gully contents from the 6 gullies (liquid waste).",
    "Car park is full in school hours; confirm whether the work must be out of hours, which would use the night/weekend crew code."
   ]
  },
  {
   "item": "J0606",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 330,
     "total": 1320.0,
     "rule": "3.3+4.5+4.13"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1590,
     "total": 3180.0,
     "rule": "5.4+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 24.0,
     "unit_price": 68,
     "total": 1632.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 8.0,
     "unit_price": 260,
     "total": 2080.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 8532.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Out-of-hours (nights) working is required for the busy car park: confirm, otherwise LAB-CIV-D x2 in hours",
    "Confirm all 4 covers are the same size, 650x650 D400, as the form says they are all the same style",
    "The covers are seized and cannot be lifted, so they were priced as replacements",
    "The mixed job was priced as the cover job only (Step 1.5). The channel catchpit bolts, the gully tarmac breakout and the CCTV survey of the delivery yard line are not in this quote and need separate quotes or visits",
    "Traffic management for the car park is not included; confirm whether it is needed"
   ]
  },
  {
   "item": "J0607",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.8+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": [
    "Part required mentions concrete for the missing surround. No quantity is given and no rule adds it, so it is not priced. Confirm whether any MAT-CONC is needed.",
    "Confirm the area is footpath/grass only with no vehicle traffic (light-duty B125 chosen)."
   ]
  },
  {
   "item": "J0608",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening measured at 260 x 200 mm is under 500 mm and may be mis-measured: confirm the real cover size",
    "grass verge by the site entrance: confirm no vehicles run over it, as a road or car park would need CVR-600-H",
    "heavier grade is required but the old cover is A15: confirm the grade needed"
   ]
  },
  {
   "item": "J0609",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "P2"
    }
   ],
   "quote_total": 410.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The waste strainer kit is not on the rate card, so it is allowed for as MSC-01. Confirm the kit price and the supplier.",
    "Confirm that a half day is enough to fit the kit.",
    "Confirm whether any pipe fittings are needed to connect the kit."
   ]
  },
  {
   "item": "J0610",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "2.4+4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1388.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening length is typed as '60o'; assumed 600 mm, so confirm the size is 600 x 450",
    "no 'Part required' given; replacement assumed by default (rule 2.4)",
    "confirm the location is pedestrian-only (outside a fire door at the rear) with no vehicle access, so light duty A15 is right"
   ]
  },
  {
   "item": "J0611",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.2 (kerbs not on rate card)"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2 reinstate in concrete"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2 reinstate in concrete"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2 road, public area"
    }
   ],
   "quote_total": 4811.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Kerbs are not on the rate card (MSC-01 allowed): confirm the supply cost of 6 concrete kerbs",
    "Confirm the concrete bedding and haunching quantities",
    "Confirm whether traffic management is needed, as the work is in a road",
    "Confirm that this is a kerb dig-out and replacement and not an ACO channel job, since the form is labelled Channel Drainage",
    "Confirm the extent of the damaged channel, as it could not be jetted"
   ]
  },
  {
   "item": "J0612",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1+7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 3.0,
     "unit_price": 38,
     "total": 114.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4919.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The collapsed clay pipe needs a dig (rule 2.1), so the dig is priced and the two gully replacements (bay 16 and bay 2) are not. Confirm whether they should be quoted separately.",
    "Pipe run length: 8 m between assets gives 3 x 3 m lengths.",
    "Whether temporary fencing is needed at the loading bay.",
    "Bay 2 gully frame could not be lifted and has fresh concrete around it.",
    "Depth of the downstream asset (0.66 m) and the extent of the collapse once the dig is open."
   ]
  },
  {
   "item": "J0613",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether CCTV confirms concrete inside the 150 mm line",
    "whether robotic cutting is needed, and if so its cost, which is not on the rate card",
    "whether a second visit is needed if cutting is not done on the same day",
    "gates open at 0630 and the manhole is in front of a disabled space, so confirm access and that the work can run in hours"
   ]
  },
  {
   "item": "J0614",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The forms give no part required and no order for a dig. Confirm whether a CCTV/jetting survey is enough or a dig (7.2) is needed if a collapse is found.",
    "Confirm the location, because only a what3words placeholder is given.",
    "Confirm whether the end of the run is uncapped and needs a cap fitting.",
    "Confirm the source of the shingle."
   ]
  },
  {
   "item": "J0615",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening 620 x 460 mm fits no standard band exactly, so the next size up (600x600) was used; confirm the measurement and size",
    "light duty chosen because the cover is on grass by the building wall near the staff entrance (footpath use, B125); confirm no vehicles run over it",
    "no Part required field on the form; replacement assumed as the default",
    "weed removal around the area is not priced separately"
   ]
  },
  {
   "item": "J0617",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm Form 2 is the same gully as Form 1 (Form 2 notes give the grate as 305 x 455 x 50, matching Form 1, so one grate is priced; the two forms give different frame sizes, 305x455 and 590x480)",
    "Confirm there is only one gully grate to replace",
    "Confirm the gully pot is not broken (none priced)",
    "Confirm the extent of the collapsed concrete surround (2 concrete repair kits allowed)"
   ]
  },
  {
   "item": "J0618",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4299.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether a separate leak detection crew is needed before the dig (LAB-DRN-D) or the pinpointing is done by the civils team",
    "Pipe type, size and what parts are needed (only 1 fitting allowed as parts are unknown)",
    "Car park surface (tarmac, concrete or block paving) and the reinstatement needed",
    "Whether it is a water main or a drain",
    "Whether the dig will take 3 days"
   ]
  },
  {
   "item": "J0620",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2918.0,
   "confidence": "green",
   "estimator_checks": [
    "the 1220 x 680 size was taken from another storm manhole on site, because this opening could not be measured",
    "whether the foundation reinstatement needs extra concrete, as no rule covers it"
   ]
  },
  {
   "item": "J0621",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 265,
     "total": 795.0,
     "rule": "4.6+4.11+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 6.0,
     "unit_price": 260,
     "total": 1560.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 5049.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Forms 2 and 3 measure 450 x 570 mm, just under the 575 mm band, so they were priced as 600 x 450 (rule 4.11). Confirm the size.",
    "Three separate covers were priced because the locations differ: 2nd lid, 3rd lid and the car park corner. Confirm none is a duplicate.",
    "Form 4 (6 of 8 broken pot gullies plus rodding eyes) was not priced, because only one main repair per visit is quoted (rule 1.5). Confirm whether it needs a separate quote.",
    "Forms 2 and 3 are C250 and form 1 is D400. All three were priced heavy duty because they are in a car park or entrance."
   ]
  },
  {
   "item": "J0622",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 22,
     "total": 66.0,
     "rule": "7.4 (named fittings: 2x90 + 1x45)"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2 (1.5 m pipe, one 3 m length)"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 290,
     "total": 290.0,
     "rule": "7.3 (one 0.5 m patch)"
    }
   ],
   "quote_total": 2022.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm whether the backdrop-to-channel work is inside a chamber (man entry) or needs a dig in the grass area",
    "Confirm whether a drainage crew (LAB-DRN-D) is needed for the patch liner as well as the civils gang",
    "Confirm the pipe and fitting quantities (3 fittings, 1.5 m of 110 mm pipe)",
    "Other work, so no standard pattern fully fits"
   ]
  },
  {
   "item": "J0623",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.5+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2734.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Surface type is 'Other', so no surface reinstatement lines were added. Confirm the surface (tarmac, concrete or block paving) and add the matching lines.",
    "Access is only from 7pm, so the nights/weekends gang rate was used. Confirm that out-of-hours work is required.",
    "Confirm there are exactly 2 gullies and that the pots are not broken (no GUL-POT priced)."
   ]
  },
  {
   "item": "J0626",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the chamber is inside a building (location says 'far left shutter, inside'). If it is outside, the 625 x 470 opening would fall under 4.11 and need CVR-600-H instead."
   ]
  },
  {
   "item": "J0628",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.10+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening size 660 x 400 mm is non-standard and the 400 mm width may be mis-measured; confirm the actual size and cover choice",
    "confirm heavy duty is needed (form grade A15 but vehicles drive over it and heavier grade is required)",
    "concrete surround: no surface reinstatement line was added; confirm whether any repair is needed"
   ]
  },
  {
   "item": "J0629",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0630",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 5933.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 digs down through the floor to replace the cast stack, so it is priced as a dig (Step 2.1). Confirm the 3-day duration and the concrete reinstatement quantities.",
    "Form 2 only recommends a camera survey of the ACO channels above the switch room. Confirm the client wants it; if not, remove LAB-DRN-D 1.",
    "Form 2 is a separate problem (water ingress at the switch room), so confirm whether it belongs in this quote.",
    "Confirm the fencing is needed for the busy car park bay and the ramp to floor 4, and that security keys are arranged for the switch room."
   ]
  },
  {
   "item": "J0631",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "red",
   "estimator_checks": [
    "The defective run is 21 m, over the 10 m limit, so only 2 m is priced. Confirm the actual extent of the defect and whether a full-length replacement needs a separate quote.",
    "Grade F900 (aircraft) is not on the rate card, so confirm the channel and grate specification (heelguard, 130 mm wide) and whether D400 grates are acceptable.",
    "No 'Part required' is stated on the form, so confirm that replacement is the intended work.",
    "Confirm there is no sump or trash box to replace, and that the service yard is not a vehicle road or car park surface."
   ]
  },
  {
   "item": "J0632",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 2859.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0633",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the work is a new frame and cover or only a rebed or re-set (the form orders no part)",
    "Cover size, since none is given (defaulted to 600x600)",
    "Cover grade, since none is given (defaulted to heavy duty)",
    "Surface type around the frame, which decides whether the tarmac lines are needed",
    "Whether vehicles use the area, which affects the grade and the size choice"
   ]
  },
  {
   "item": "J0634",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form describes a concrete split channel (Charcon Safeticurb) rather than an ACO-type grated channel. Confirm the rate-card channel lines are the right substitute.",
    "Confirm whether 1850 mm is the length of each section or the total. This quote assumes about 1.85 m in total, which rounds up to 2 m and matches the 2 sections ordered. If each section is 1850 mm, the run is about 3.7 m and quantities rise.",
    "Confirm the location is not a car park or road, as the surface is concrete and this quote uses MAT-CREP 4.",
    "Confirm whether the metal edge protectors need separate allowance."
   ]
  },
  {
   "item": "J0635",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Measured size 630 x 480 mm is taken with lid and frame as one, and it fits no standard band. Confirm the true opening size, and that CVR-600-L (the next size up) fits.",
    "Confirm light duty (B125) is right for a grass area behind the shed with pedestrian access only."
   ]
  },
  {
   "item": "J0636",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-H",
     "description": "Drainage gang (2 operatives + jetter van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 610,
     "total": 610.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 610.0,
   "confidence": "red",
   "estimator_checks": [
    "The form only flags an issue and says no parts or work are required, so confirm whether any work should be quoted at all",
    "SW 31 is a drain run leaving site, not a cover or frame order, so confirm what kind of asset it is and whether a visit or investigation is wanted",
    "The drainage crew visit is a placeholder (half day) and should be removed if the client wants no work"
   ]
  },
  {
   "item": "J0637",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2918.0,
   "confidence": "yellow",
   "estimator_checks": [
    "load grade of the existing cover (not given; heavy duty assumed). If it is A15/B125, the 900 mm opening would take CVR-PLATE instead of CVR-750-H",
    "whether vehicles run over the cover (outside the front door of unit 4)",
    "the 600 x 900 size, since no depth could be taken because the cover is cracked and cannot be lifted"
   ]
  },
  {
   "item": "J0638",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2153.0,
   "confidence": "yellow",
   "estimator_checks": [
    "form grade is A15 but the location is a car park (vehicle traffic): confirm light or heavy duty cover"
   ]
  },
  {
   "item": "J0640",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0641",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 1440.0,
   "confidence": "red",
   "estimator_checks": [
    "Run is 10.52 m (over 10 m), so it was not priced in full and 2 m was priced instead. Confirm the real extent of replacement with the client.",
    "The forms also ask for 20 sets of bolts and clasps, and brick removal plus a tapered concrete finish along about 100 m. These are not in the rate card rules and are not priced. Confirm whether to quote them separately.",
    "Confirm the surface lines. The entrance is in block paving, so MAT-DYE 1 was added under rule 6.10 for an entrance. Remove it if the surface is not coloured or no dye is wanted.",
    "Traffic management: the engineer says cones only, so none was priced."
   ]
  },
  {
   "item": "J0642",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of contaminated waste to be removed",
    "whether the forms describe one site or several, since the locations are anonymised and may be the same yard",
    "interceptor type is not known",
    "whether the SW drainage clean needs jetting or investigation, which would add a drainage crew"
   ]
  },
  {
   "item": "J0643",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 360,
     "total": 1800.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 7695.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Cover count: 5 priced (lift 750x750 and 1200x750, staff room 1200x750, sliders 750x750 and 1200x750); the lift location is described as a 'double cover', so confirm whether the lift forms are two openings or one",
    "The benching and channel rework in the chamber (Forms 1 and 5) is not priced, because one main repair is priced per visit; confirm whether it should be quoted separately",
    "Access to the basement and lifting the wooden flooring, to be arranged with the client"
   ]
  },
  {
   "item": "J0644",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 360,
     "total": 1080.0,
     "rule": "3.2+4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3634.0,
   "confidence": "green",
   "estimator_checks": [
    "out of hours is only suggested, not required, so quoted in hours; confirm with the client",
    "the cage over the manhole in form 3 must be removed before work starts",
    "the grade is uncertain on all three forms (staff move stock and bins over them), but it does not change the sealed plate covers",
    "the three forms have different locations and sizes, so they are treated as 3 separate covers"
   ]
  },
  {
   "item": "J0645",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Only the gully form (Form 3) is priced, as the one main repair per visit (rule 1.5). Confirm that the other forms are handled separately or are not wanted in this quote: the sump pit access blocked by downpipes, the recurring foul water blockage from solid debris, and the foul manhole hidden by overgrown vegetation (needs a trimmer, no cover ordered).",
    "Confirm only the grate and frame are broken and the gully pot is intact, since no GUL-POT is included.",
    "Confirm the 290 x 290 mm frame size, as the heavy-duty GUL-GRATE is the only grate on the rate card."
   ]
  },
  {
   "item": "J0646",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0647",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1748.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm the opening size (790 x 640 mm; the form gives no clear width or length)",
    "confirm the grade and whether vehicles can drive over it (it is by a bin; no grade is given)",
    "confirm the surface type (none given, so no asphalt or banding lines were added)",
    "confirm it is a manhole or inspection chamber cover and frame, not just a drain cover"
   ]
  },
  {
   "item": "J0648",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the extent of the dig and what is blocking or collapsed at the outlet (pipe parts unknown, so only 1 fitting allowed)",
    "Confirm the surface to be reinstated (none stated, so no reinstatement materials added)",
    "Confirm whether fencing is needed (public or busy area not stated)",
    "Confirm whether plant is needed for the steep access (no excavator or dumper added)"
   ]
  },
  {
   "item": "J0649",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "627 x 627 mm is the cover size, as the opening could not be measured. Confirm it fits a 600 x 600 frame.",
    "The surface is concrete, so no asphalt lines are included. Confirm no surface repair is needed round the frame."
   ]
  },
  {
   "item": "J0651",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.19"
    },
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 55,
     "total": 275.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 6,
     "total": 168.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 2578.0,
   "confidence": "red",
   "estimator_checks": [
    "Defective run is 30 m, over the 10 m limit, so only 2 m is priced. Confirm the real scope and whether the whole run needs a separate quote.",
    "Confirm that one sump is being replaced, as listed under Part required.",
    "Tiled floor in a car workshop: confirm who reinstates the tiling (the notes say a tiling contractor is needed) and whether a dust extraction unit (HIR-DUST) is needed for cutting.",
    "Confirm the C250 grade (the form says heavier grade required: Yes) and the scheduling around other trades in the workshop.",
    "Confirm that a skip is wanted, as listed in Part required, rather than a WST-GEN load."
   ]
  },
  {
   "item": "J0652",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate / 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3871.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The 500x500 size comes from photos, not a site measurement",
    "Whether the rodding eye (180x275) is on a pavement (CVR-PLATE) or in a road where vehicles run (a standard cover). The form says 'on the street'",
    "Whether the rodding eye counts as a second cover, which sets a full-day crew",
    "Whether OFH means out-of-hours work is required. It is quoted in hours for now"
   ]
  },
  {
   "item": "J0653",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0654",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether a single engineer (LAB-ENG-H, rule 7.5) would do instead of the 2-man drainage gang. The form asks for '2x men', but it is a small descale job on one urinal.",
    "Whether a half-day drainage gang (LAB-DRN-H) is enough instead of a full day",
    "Descale and silicone materials allowance (MSC-01)",
    "Site contact for access arrangements"
   ]
  },
  {
   "item": "J0655",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2068.0,
   "confidence": "green",
   "estimator_checks": [
    "access issue: form says 'no access', so confirm how the crew gets to the chamber"
   ]
  },
  {
   "item": "J0656",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "what part is actually required (Part required is unknown)",
    "whether the cover needs replacing, and if so confirm size 690x690 and D400 grade",
    "access via rear gate of stores"
   ]
  },
  {
   "item": "J0657",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2918.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0658",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1+7.3"
    }
   ],
   "quote_total": 2480.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the work is a vac tanker plus camera survey, or a CCTV crew (LAB-CCTV-D) instead of the drainage gang",
    "Whether liquid waste disposal (WST-LIQ) and a waste consignment note are needed, and the tonnage",
    "What the object is: chamber, gully or outlet. The form does not say, so it is priced as a survey, not a cover job",
    "Whether the loading bay needs traffic management or fencing",
    "Whether the work has to be done out of hours. The form does not say it is required"
   ]
  },
  {
   "item": "J0660",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "4.15+3.2"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2294.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type is not stated (likely concrete in a multi-storey car park); add MAT-CREP 2 if concrete or MAT-ASPH 2 + MAT-BAND 1 if tarmac",
    "confirm the two forms are two separate gullies (bay 45 and top of entrance ramp)",
    "confirm the pots are intact, so GUL-POT is not needed",
    "Form 1 says 150 x 150 mm and Form 2 says round, so confirm grate sizes and shapes against the heavy-duty hinged GUL-GRATE"
   ]
  },
  {
   "item": "J0661",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening 620 x 460 fits no standard band, so the next size up (600 x 600) was used; confirm the size",
    "light duty chosen because the cover is on grass where only people walk; confirm no vehicle traffic",
    "Part required only says rapid-set mortar and does not order a new cover; confirm replacement rather than a rebed"
   ]
  },
  {
   "item": "J0662",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 290,
     "total": 290.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1430.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm one 4 inch (110 mm) 500 mm patch liner is the only part needed",
    "confirm whether the pan connector must be removed and refitted for camera access",
    "confirm the exact patch location just after the named point and that the CCTV equipment is on the drainage gang's van",
    "work may be done at any time, so in-hours rates were used"
   ]
  },
  {
   "item": "J0663",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "Forms 1 and 3 describe repairs to the blown concrete and worn tarmac around the channel drain. They are not priced, because rule 1.5 prices only the cover. Confirm whether they need a separate quote."
   ]
  },
  {
   "item": "J0664",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Vegetation clearance only. Confirm no new cover or frame is needed once the manhole (SW8) is uncovered.",
    "The placeholders in the forms hide what covers the manhole and what kind of trimmer is needed. Confirm both.",
    "Confirm the manhole is accessible and its condition once cleared. A separate repair quote may follow."
   ]
  },
  {
   "item": "J0665",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-H",
     "description": "Drainage gang (2 operatives + jetter van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 610,
     "total": 610.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 660.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Crew type: the form says 2 men for half a shift; priced as a drainage crew half day (LAB-DRN-H) rather than a single plumbing engineer (LAB-ENG-H)",
    "Half a shift is enough to remove the urinals and descale the pipes and traps",
    "Access is Monday to Friday only and must be arranged with the site contact",
    "Descaling chemicals and small materials are covered by the MSC-01 allowance"
   ]
  },
  {
   "item": "J0667",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The job also has a FOG contamination form (FW manhole 32) needing a tanker. Under 1.2 and 1.5 only the gully was priced, so confirm whether the tanker work (LAB-TNK-D, WST-GRS, WST-NOTE) should be quoted separately.",
    "Whether the gully pot is broken. Only the grate and frame were priced.",
    "Possible parked car at the gully, which may affect access."
   ]
  },
  {
   "item": "J0669",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "red",
   "estimator_checks": [
    "The recorded size of 12300 x 7000 mm is impossible and the opening was not measured, so confirm the real opening size. If it is about 1230 x 700 mm, the main line would be CVR-750-H and labour would be a full day (LAB-CIV-D).",
    "Confirm whether 'double manhole cover' means one double-leaf cover and frame or two separate covers. Two covers would mean LAB-CIV-D 1, MAT-MORT 12 and MAT-ASPH 4, with two cover lines.",
    "Confirm the grade is C250 (heavy duty)."
   ]
  },
  {
   "item": "J0670",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The note asks for the manhole to be lowered flush with the floor, which could be a rebed rather than a new cover. Confirm a replacement is wanted.",
    "Confirm the cover should be a sealed chequer plate, since it is in a basement stock room.",
    "The B125 'Grass/Footpaths' grade looks odd for a basement. Confirm the grade.",
    "Check the 830 x 530 mm opening size."
   ]
  },
  {
   "item": "J0672",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 1390.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Both forms recommend a combi tanker to clear the root-blocked channel and catchment pit. Confirm whether a separate drainage/jetting crew (LAB-DRN-D) is also needed or the combi tanker covers it.",
    "Confirm whether any liquid or root waste disposal (WST-LIQ) and a waste consignment note should be charged.",
    "Remedial work (channel grates, sump or run replacement) is not ordered yet, so none is priced. It would need a follow-up quote after the clear-out.",
    "Forms 1 and 2 look like the same job (channel and catchment pit full of root). Confirm they are one location and not two."
   ]
  },
  {
   "item": "J0673",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2153.0,
   "confidence": "green",
   "estimator_checks": [
    "traffic type at wing C MH1 (the form does not say whether vehicles run there; heavy duty chosen from the C250 grade)",
    "site access restrictions (prisoner movements) may affect working times"
   ]
  },
  {
   "item": "J0674",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0675",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 4579.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0676",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2+6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2 (parts unknown)"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "7.2 reinstate tarmac in kind"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 1.0,
     "unit_price": 68,
     "total": 68.0,
     "rule": "forms name rapid-set mortar"
    },
    {
     "code": "LAB-CCTV-H",
     "description": "CCTV survey / jetting crew, in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 700,
     "total": 700.0,
     "rule": "CCTV look-see asked for"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2 busy area, parking bays"
    }
   ],
   "quote_total": 5587.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the double 45-degree bends and any pipe length need replacing (PIP-FIT / PIP-110 quantity)",
    "whether a 3-day dig is right for a single downpipe base",
    "extent of tarmac reinstatement and whether the mortar is needed",
    "whether the CCTV look-see needs its own crew or can be done by the civils crew"
   ]
  },
  {
   "item": "J0678",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.7+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0679",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "cover grade (none given, heavy duty assumed)",
    "surface type (not stated, so no surface reinstatement lines added)"
   ]
  },
  {
   "item": "J0680",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 2.0,
     "unit_price": 360,
     "total": 720.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.5"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 814.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form asks for 2 engineers; priced as 2 x LAB-ENG-H (half day). Confirm the number of engineers and whether the ceiling access work (removing cable trays and ceiling tiles) needs a full day.",
    "Confirm whether the 2 pressure-rated 4 inch seals are covered by MSC-01 or need pricing separately.",
    "Confirm that the 2 x 45\u00b0 pressure-rated bends are priced correctly as PIP-FIT.",
    "Confirm the work is in hours; the form is P2 (1 week) and does not require out-of-hours.",
    "Security office access: desks and equipment need moving before work starts."
   ]
  },
  {
   "item": "J0681",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1426.0,
   "confidence": "red",
   "estimator_checks": [
    "Roughly 35 m of channel across two runs (x2) is over 10 m per run, so it is not priced in full. Only 2 m is quoted, and the real length and scope need agreeing with the client",
    "This is a PPM / potential additional drainage request, not a defect. Confirm what work is actually wanted",
    "Surface type in service yard B is not given, so no surface reinstatement lines are included",
    "Confirm whether a sump is needed, and the tie-in to surface water lines at or upstream of PI",
    "Out-of-hours work is not stated, so in-hours labour is assumed"
   ],
   "possible_duplicate_of": [
    {
     "item": "J0818",
     "labelled": false
    }
   ]
  },
  {
   "item": "J0682",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0683",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 9.0,
     "unit_price": 210,
     "total": 1890.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 36.0,
     "unit_price": 68,
     "total": 2448.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 6283.0,
   "confidence": "green",
   "estimator_checks": [
    "Nine separate gullies, because each form has a different location (forms 5 and 6 are both unit 35 but described differently). Confirm there are no duplicates.",
    "Whether one civils day is enough for 9 grates"
   ]
  },
  {
   "item": "J0685",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CONC",
     "description": "Rapid flowable concrete, 25 kg bag",
     "unit": "bag",
     "qty": 3.0,
     "unit_price": 24,
     "total": 72.0,
     "rule": "P2 (flowable concrete x3 ordered in Part required)"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2225.0,
   "confidence": "green",
   "estimator_checks": [
    "Form says rapid-set mortar x2 but the standard is 6 tubs; confirm the mortar quantity",
    "Form grade is B125 but C250 is ordered and heavier grade is required, so the heavy-duty cover was priced",
    "Vehicles were assumed to use the area, because a camper is parked there; confirm",
    "Confirm the tenant moves the camper before the works"
   ]
  },
  {
   "item": "J0686",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2258.0,
   "confidence": "yellow",
   "estimator_checks": [
    "load grade of the cover (not stated; heavy duty D400 assumed, which gives CVR-750-H rather than CVR-PLATE)",
    "surface around the cover (tarmac would add MAT-ASPH 2, MAT-BAND 1, SUN-CARR 1)",
    "form is labelled Other and has no Part required; confirm the cover is to be replaced rather than repaired",
    "860 x 710 mm: confirm this is the opening size rather than the cover size"
   ]
  },
  {
   "item": "J0687",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4359.0,
   "confidence": "yellow",
   "estimator_checks": [
    "length of 100mm clay pipe to be replaced on branch 1 and branch 2 (PIP-110 quantity is a minimum)",
    "surface type in the disabled bay, for reinstatement in kind (none priced)",
    "confirm pipe is to be dug and relaid rather than patch lined",
    "the 2-piece heavy lid and access arrangements",
    "disabled bay closure and fencing"
   ]
  },
  {
   "item": "J0690",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm the chamber is actually a petrol/grease interceptor (engineer says it may not be one)",
    "tonnes of grease/contaminated waste to be removed",
    "whether investigation or jetting is also needed (none requested, so not priced)"
   ]
  },
  {
   "item": "J0691",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "rodding eye so no usable size (180x140 mm): CVR-PLATE chosen under 4.10; confirm it is on a path or footway and not in a vehicle area (if vehicles run there, use a standard 600 cover)",
    "surface type is not given: if tarmac, add MAT-ASPH 2, MAT-BAND 1, SUN-CARR 1",
    "confirm the frame is damaged and the cover missing so a full cover and frame is needed"
   ]
  },
  {
   "item": "J0692",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": [
    "note says 'civil technological manager to review', so confirm the replacement scope with them"
   ]
  },
  {
   "item": "J0693",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, other / non-standard size",
   "quote_lines": [
    {
     "code": "CVR-OTHER",
     "description": "Cover & frame, other / non-standard size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 350,
     "total": 350.0,
     "rule": "4.9"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1578.0,
   "confidence": "green",
   "estimator_checks": [
    "Existing grade is E600 (forklift yard). Confirm that a non-standard cover from CVR-OTHER meets this loading.",
    "Confirm the 600 x 400 opening size. It is smaller than the standard 600 x 450."
   ]
  },
  {
   "item": "J0694",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening is 600 x 500 mm, which is not a standard size. It is priced as the next band up (600 x 600), so confirm the cover size.",
    "Confirm the C250 heavy-duty grade, as the cover sits on a grass verge in a car park area.",
    "Confirm the surface is grass, so no asphalt reinstatement is included."
   ]
  },
  {
   "item": "J0696",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CONC",
     "description": "Rapid flowable concrete, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 24,
     "total": 144.0,
     "rule": "P2 (ordered in Part required: 6 bags concrete)"
    },
    {
     "code": "HIR-BRK",
     "description": "Hydraulic breaker attachment hire, per day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 75,
     "total": 75.0,
     "rule": "P2 (ordered in Part required: concrete cutter and breaker)"
    }
   ],
   "quote_total": 1777.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the breaker hire is wanted (the form says 'concrete cutter and breaker')",
    "confirm the ramp closure is arranged by the client (no traffic management ordered)"
   ]
  },
  {
   "item": "J0697",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "HIR-DUST",
     "description": "Cut-off saw dust extraction unit hire",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 60,
     "total": 60.0,
     "rule": "P2 (cutting equipment named in forms)"
    }
   ],
   "quote_total": 1618.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether a replacement cover and frame is wanted after cutting out (the form does not order one)",
    "cover size and grade (none given, so the default CVR-600-H was used)",
    "surface around the cover (not given, so no surface reinstatement lines)",
    "whether the cover is inside a building or in a vehicle area"
   ]
  },
  {
   "item": "J0698",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening width is 480 mm (under 500), so rule 4.10 applies. Confirm the cover is on a path or grass verge and not in a vehicle area. If vehicles can run over it, use CVR-600x450-L.",
    "Confirm the 630 x 480 measurement, as small sizes are often mis-measured.",
    "Brambles and soil need clearing for access; this is included in the half-day crew and general waste line."
   ]
  },
  {
   "item": "J0699",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 7.0,
     "unit_price": 290,
     "total": 2030.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 3170.0,
   "confidence": "yellow",
   "estimator_checks": [
    "number of patches (7 stated)",
    "pipe diameter: 6\" at the MH, but 4\" patches are also recommended",
    "whether Picote (cutter/transition) is needed, as it is not on the rate card",
    "access to the cupboard at the back of the basement",
    "whether a rest bend repair is needed beyond patching"
   ]
  },
  {
   "item": "J0700",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 7.0,
     "unit_price": 95,
     "total": 665.0,
     "rule": "4.17+4.18"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 14.0,
     "unit_price": 55,
     "total": 770.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 56.0,
     "unit_price": 6,
     "total": 336.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 14.0,
     "unit_price": 19,
     "total": 266.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 14.0,
     "unit_price": 6,
     "total": 84.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4726.0,
   "confidence": "red",
   "estimator_checks": [
    "Form 3 run of 25 m is over 10 m, so it is not priced (4.18). Confirm how to handle it: partial replacement, survey, or a separate quote",
    "Form 3 notes say the channel cannot be jetted because grates are held up every 1 m. Confirm whether this is a blockage or a grate defect rather than a replacement",
    "Form 2 'Part required' holds only a what3words reference, so the work is not stated. Priced as a default replacement of 3 m",
    "Quote covers Form 1 (4 m) and Form 2 (3 m), 7 m in total. Confirm the lengths and the tarmac surface at both locations"
   ]
  },
  {
   "item": "J0701",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease/contaminated waste to remove from the interceptor",
    "whether any investigation or jetting of the drainage is also required (not requested in the form)",
    "no 'Part required' given, so confirm the scope of work is tanker emptying only"
   ]
  },
  {
   "item": "J0702",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 55,
     "total": 165.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 6,
     "total": 168.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 2162.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the whole sump unit is to be replaced. The form is Other/PPM and no part is ordered.",
    "Channel run length. Only the sump size (500 x 150 x 500 mm) is given, so the minimum of 1 m was used.",
    "Surface type at the main entrance. It is not stated, so no surface repair line was added, apart from dye for the entrance.",
    "Whether the grates and locking bolts also need replacing."
   ]
  },
  {
   "item": "J0703",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 520,
     "total": 2080.0,
     "rule": "4.3 (1000x850 x1, 850x700 x3)"
    },
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 330,
     "total": 990.0,
     "rule": "4.5+4.13 (700x600 counts as square, C250)"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 4.0,
     "unit_price": 1150,
     "total": 4600.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 42.0,
     "unit_price": 68,
     "total": 2856.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 10931.0,
   "confidence": "red",
   "estimator_checks": [
    "Total number of covers: 7 priced (form 2 x1, form 3 x3, form 4 x3). Form 3's '3 lids in total' may include form 2's B4 cover, and form 1 lists about 4 defective manholes.",
    "Form 1 sizes (e.g. 840x690 at B4, 870x690, 580x740) conflict with form 2 (1000x850 at B4). Confirm which is the real opening size for each cover.",
    "Form 4 covers are 700x600 opening (850x700 outer frame). Priced as square CVR-600-H, but confirm whether CVR-600x450-H or another size is needed.",
    "The form 1 channel grating seized issues are not priced, since the cover is the main repair. Confirm whether a separate channel quote is needed.",
    "Form 4 asks for 9 rapid-set mortar (3 per cover) but the standard 6 per cover is used. Confirm.",
    "Confirm access to the underground car park (access card, barriering off the area, working hours)."
   ]
  },
  {
   "item": "J0704",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Cover size: 630 x 475 mm fits no standard band, so the next size up (600 x 600) was used. The opening could not be measured.",
    "Grade: the form says A15 and no heavier grade, but the notes say cars drive over it in a car park. Heavy duty was priced under rule 4.14 (vehicles win). Confirm the grade.",
    "Surface is concrete, so no surface reinstatement lines were added. Confirm."
   ]
  },
  {
   "item": "J0706",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "cover size (none given, defaulted to 600x600)",
    "cover grade / traffic loading (none given, defaulted to heavy duty)",
    "surface type (not stated, so no surface reinstatement lines; add asphalt lines if tarmac)",
    "whether work must be done outside retail park foot-traffic hours (till 8pm); quoted in hours",
    "confirm it is a manhole/inspection chamber cover rather than another type of cover"
   ]
  },
  {
   "item": "J0707",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": [
    "The two manholes only need bedding in place. This is not priced, because one main repair is priced per visit (1.5); confirm whether to add a rebed.",
    "Confirm the channel area counts as a car park or road (trolley return by the car wash). If not, the tarmac surface lines change.",
    "The 900 mm section was rounded up to 1 m and then to the 2 m minimum run."
   ]
  },
  {
   "item": "J0708",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0709",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 55,
     "total": 165.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 6,
     "total": 168.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2988.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0710",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Cover size: 700 x 550 mm is not a standard band and the opening was not measured. Confirm the size and whether 600x600 is the right frame.",
    "Traffic: the location is a public footpath at a site entrance. Grade is D400 (HGVs), so heavy duty was assumed. Confirm vehicles use it."
   ]
  },
  {
   "item": "J0711",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 4.0,
     "unit_price": 95,
     "total": 380.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 9.0,
     "unit_price": 55,
     "total": 495.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 44.0,
     "unit_price": 6,
     "total": 264.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 3813.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the 0.5 m sump is part of the 4.5 m run (not additional to it), so the run is 4 m plus the sump unit rather than 5 m of channel",
    "Confirm the surface is plain concrete at the back entrance (dye line is included for the entrance)"
   ]
  },
  {
   "item": "J0712",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "7.6"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.6"
    }
   ],
   "quote_total": 690.0,
   "confidence": "red",
   "estimator_checks": [
    "The form is labelled Defective Manhole, but the notes say this is a water stopcock cover and not a manhole. Confirm that this is the work wanted.",
    "Confirm the cover size and type for the stopcock. The 220x220 opening and the B125 grade with 'heavier grade required: Yes' conflict with each other and with the car park location.",
    "Confirm whether a cover and frame should be supplied. The form orders a new cover, but 7.6 prices only the crew and a materials allowance.",
    "Confirm the tarmac levelling extent and materials for the car park bay. The 7.6 pattern has no asphalt line."
   ]
  },
  {
   "item": "J0714",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0715",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 1440.0,
   "confidence": "red",
   "estimator_checks": [
    "Run is about 10.5 m (11 units ordered), which is over 10 m, so only 2 m is priced. Confirm the real scope and price.",
    "The form is labelled 'Other' but the work is a channel drain extension. Confirm it should be quoted as a channel job.",
    "The channel is at a shop front in block paving. Confirm whether the dye line is needed and what surface reinstatement is required.",
    "Confirm whether a skip is needed instead of a waste load for a run this long.",
    "Confirm the existing channel is B125, 120 mm wide x 75 mm deep, and whether the new run matches it."
   ]
  },
  {
   "item": "J0716",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Length of defective channel is garbled ('0.40.5'): is it 0.4 m and 0.5 m at two locations, or one run? Priced at the 2 m minimum either way",
    "'nights' is listed under access issues but not clearly required. Priced in hours; confirm whether night/weekend working (LAB-CIV-NH) is needed",
    "Part required says only 'new aco grate'. Confirm whether the channel sections are being replaced or only the grates"
   ]
  },
  {
   "item": "J0717",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0718",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": [
    "whether the gully pot itself is broken (GUL-POT is only added if it is)"
   ]
  },
  {
   "item": "J0719",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "P2 (110mm push fit access cap named in Part required)"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "P2 (110mm AAV named in Part required, not on rate card)"
    }
   ],
   "quote_total": 1660.0,
   "confidence": "yellow",
   "estimator_checks": [
    "470 x 470 mm opening is under 500 mm and may be mis-measured; confirm real size",
    "Confirm the cover type: plate chosen because it is on a public footpath",
    "Confirm whether the 110mm AAV and access cap are really needed, and the AAV price",
    "Frame and lid are both missing, so check the chamber for debris or damage",
    "Surface is grass, so no tarmac reinstatement lines are included"
   ]
  },
  {
   "item": "J0720",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4688.0,
   "confidence": "yellow",
   "estimator_checks": [
    "exact location and length of the collapsed pipe section (whether a spot repair or a relay of the full 8 m run is needed)",
    "pipe fittings and lengths needed (PIP-FIT 1 used because parts are unknown)",
    "whether the area is public or busy enough to need temporary fencing (HIR-FENCE)",
    "depth of the dig (1.2 m downstream) and whether shoring is needed"
   ]
  },
  {
   "item": "J0721",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": [
    "500 x 500 is the cover size, as the chamber opening could not be measured. Confirm it, since small sizes are often mis-measured",
    "The cover is described as circular but the form gives a square size. A 500 mm circular cover is assumed to take a 600 x 600 D400 replacement",
    "The cover is completely seized. Confirm it can be removed and replaced as the default assumes",
    "The location is an underpass. Confirm whether traffic management is needed (none is priced)"
   ]
  },
  {
   "item": "J0724",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.8+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "red",
   "estimator_checks": [
    "The measured opening is 500 x 400 mm but the part required is 500 x 650 mm. I priced the ordered part under P3 (4.8, next size up, CVR-600). Confirm the size.",
    "If the 500 x 400 opening is right, 4.10 would give CVR-PLATE for a footpath. Confirm which applies.",
    "Light duty (B125) is assumed because the location is grass or footpath beside the A42 and only people walk there. Confirm no vehicles can reach it.",
    "Grass surface, so no tarmac reinstatement lines."
   ]
  },
  {
   "item": "J0725",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0727",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2538.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm out-of-hours access times (OOH required)",
    "confirm 680 x 680 mm size, as the form says the opening could not be measured"
   ]
  },
  {
   "item": "J0728",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The Part required text ends with '1 day budget dig'. Confirm whether an actual dig is ordered. If it is, re-price as a dig under 2.1 and 7.2. Otherwise this is a standard gully frame replacement.",
    "Confirm the extra materials listed in the form (ballast, cement, mortar, asphalt kit). They were not added because the rules only add them with a reason.",
    "Confirm that a gully pot is not broken, since no GUL-POT is priced."
   ]
  },
  {
   "item": "J0729",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": [
    "length entered as 500 treated as 500 mm (0.5 m), rounded up to 1 m then minimum 2 m applied; confirm it is not 500 m",
    "confirm 'frame and aco slot' means replacing the channel run and grates"
   ]
  },
  {
   "item": "J0730",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 395,
     "total": 395.0,
     "rule": "4.11"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1623.0,
   "confidence": "yellow",
   "estimator_checks": [
    "700 x 560 is a non-standard rectangle, so the cover size is the next band up (675 H). Confirm the size against the existing frame, since the opening could not be measured.",
    "The cover is seized and the engineer says it needs digging out. Confirm this is only freeing and replacing the frame and not a wider dig. If it is a wider dig, re-quote as pipe_dig.",
    "Surface is cobble/brick (not tarmac), so no surfacing lines are included. Confirm whether the surface needs reinstating.",
    "The cover is a key-style manhole cover, so confirm the replacement type."
   ]
  },
  {
   "item": "J0731",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "Surface is block paving, so no surface lines were added. The Part required text also mentions an asphalt repair kit, red dye and flowable concrete; confirm none of these are needed."
   ]
  },
  {
   "item": "J0732",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-NH",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 830,
     "total": 830.0,
     "rule": "7.3+5.9"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 290,
     "total": 290.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1170.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the repair will be a patch liner or a new section of 4in clay, as the clay option may need a dig or a pipe and fitting",
    "Half shift out of hours is enough for the work, given the chamber is just under 1 m deep",
    "Whether the metal separation bar in the chamber opening restricts access",
    "Whether the seating area needs any protection or fencing, since the work is out of hours"
   ]
  },
  {
   "item": "J0733",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 360,
     "total": 1080.0,
     "rule": "3.3+4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3634.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form says the opening cannot be measured, yet 740 x 740 mm is given. Confirm the size.",
    "Only one size is given for three covers (one in the plant room, two in the changing room). Confirm the two changing-room covers are the same size.",
    "Confirm the changing-room covers are accessible, since the notes say they are not currently accessible.",
    "Confirm sealed chequer plate covers are wanted for all three, as they are inside the building."
   ]
  },
  {
   "item": "J0734",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.6+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2951.0,
   "confidence": "red",
   "estimator_checks": [
    "The channel run is 48 m, over the 10 m limit, so only 2 m is priced. Confirm the scope and price of the full renewal separately.",
    "This is a mixed job. Form 1 (possible collapsed clay lateral at SW14, camera survey), Form 3 (damaged FW5 lateral) and Form 4 (confined space entry to remove concrete) are not priced. Confirm whether they need separate quotes.",
    "Out-of-hours working is required for the channel (Form 2), so the nights/weekends crew rate is used.",
    "Confirm the surface is a car park (tarmac) for the asphalt reinstatement lines."
   ]
  },
  {
   "item": "J0735",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0736",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0738",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, other / non-standard size",
   "quote_lines": [
    {
     "code": "CVR-OTHER",
     "description": "Cover & frame, other / non-standard size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 350,
     "total": 350.0,
     "rule": "4.9"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1578.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Mixed job: gully form and manhole form, so only the cover is priced (1.5). The gully has a suspected collapsed outlet and may need a dig and pipework, which is not priced here.",
    "Opening is 590 x 440 mm, slightly under the standard 600 x 450, so CVR-OTHER was used. Confirm the size.",
    "The form mentions a generator breaker but the rules do not add breaker hire. Confirm whether HIR-BRK is needed.",
    "Grass surface, so no asphalt or overbanding lines. B125 grade with grass or footpath use."
   ]
  },
  {
   "item": "J0739",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1490,
     "total": 1490.0,
     "rule": "7.3+5.9"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1540.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the out-of-hours (nights/weekend) drainage crew is required, as the form lists OOH attendance under part required",
    "Priced as the 2-man drainage crew with root cutting and camera. The alternative of a tanker with a survey team is not priced, so the cost difference for the client needs confirming",
    "Line may have collapsed (broken clay seen at 0.50 m). If the camera confirms this, a dig (rule 7.2) will need a separate quote",
    "Gully is not on the site plan, so confirm the drain route and whether it is foul or surface water",
    "Pipe length affected is unsure"
   ]
  },
  {
   "item": "J0740",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0741",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "3.2+4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3514.0,
   "confidence": "yellow",
   "estimator_checks": [
    "actual locations of the three 1 m defective sections (forms only say 'see photos'), and whether they are separate runs",
    "whether the channel is in a car park or road (HGV grade, tarmac) so the tarmac reinstatement lines apply",
    "what 'base' means as the part required on forms 1 and 2 (assumed replacement of 1 m channel with grates)",
    "whether a sump unit is needed"
   ]
  },
  {
   "item": "J0743",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 395,
     "total": 395.0,
     "rule": "4.4+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3531.0,
   "confidence": "green",
   "estimator_checks": [
    "Form 2 (SW 13) 'Part required: Concrete' with a loose frame may mean a rebed rather than a new cover; priced as a replacement by default (2.4)",
    "Form 2 sits on grass, so no asphalt or overbanding is priced for it",
    "Form 1 (510 x 510, C250) is a pavement location; confirm it is not a vehicle area"
   ]
  },
  {
   "item": "J0744",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form orders no cover, frame or dig, only a civils team with a recip saw and chain saw. Confirm the intended work (locate and expose the buried foul chamber, cut back vegetation or roots, or a dig).",
    "Confirm whether a new cover and frame is needed once the chamber is exposed.",
    "If a dig is needed, re-quote it as pipe_dig (7.2).",
    "Confirm the surface and the chamber size and grade. None are given."
   ]
  },
  {
   "item": "J0745",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm a sealed chequer plate cover is wanted (the notes ask for a more sealed cover to stop smells) rather than a standard 600x600 D400 cover, since the chamber is in a car park outside a building"
   ]
  },
  {
   "item": "J0746",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2153.0,
   "confidence": "green",
   "estimator_checks": [
    "Cover size is the old cover size because the opening was not measured",
    "Frame may disturb the surrounding tarmac, so confirm the reinstatement extent"
   ]
  },
  {
   "item": "J0747",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is 'unknown': confirm what replacement cover/frame is needed (size and grade) on a site visit",
    "Manufacturer grade is F900 (aircraft) on a 640 x 640 opening in a live estate road with constant lorry traffic: confirm the correct grade",
    "Traffic management may be needed for a live road: confirm before quoting a replacement"
   ]
  },
  {
   "item": "J0748",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 290,
     "total": 290.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1430.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the patching team confirms a patch liner is feasible on the collapsed 68 mm vertical down pipe",
    "number of patches needed (one assumed, about 3 ft of collapsed pipe)",
    "whether a 68 mm patch kit is available, or the standard kit fits",
    "whether any digging or brickwork repair is needed (none priced)"
   ]
  },
  {
   "item": "J0749",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0750",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Size is 25 x 19 inch (about 635 x 483 mm), which fits no standard band exactly, so priced as 600 x 600 (the nearest band above)",
    "No grade given and the verge traffic is unclear, so heavy duty was used by default; confirm whether it is light duty (pedestrian only) or heavy duty (vehicles can overrun the verge)",
    "The form says rebuild the surrounds with bricks and cement, but gives no quantities, so no MAT-BRICK or cement lines were added; confirm whether the chamber needs rebuilding",
    "Form is labelled Other / PPM, but the work is a new surface water manhole cover and frame"
   ]
  },
  {
   "item": "J0751",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Surface type is not given. If the covers are in tarmac, add MAT-ASPH 4, MAT-BAND 1 and SUN-CARR 1 (rule 6.6).",
    "Duty grade is not given. H was used as the default. Confirm whether vehicles use the area outside units 3 and 4; if only pedestrians, use CVR-600-L.",
    "Size 640 x 480 fits no standard band exactly. CVR-600 was used as the nearest band above (rule 4.11).",
    "Units 3 and 4 are at different locations, so they are two separate covers. Confirm no duplicate.",
    "Form 3 (seized gully in the car park) is not priced. Only the main repair, the covers, is priced (rule 1.5). Confirm whether a separate gully visit is wanted."
   ]
  },
  {
   "item": "J0752",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "yellow",
   "estimator_checks": [
    "opening measured at 320 x 320 mm, which is under 500 mm and is often mis-measured; confirm the real cover size",
    "confirm the new cover is C250 heavy duty, as the notes say, since the old cover grade is A15",
    "notes say the whole chamber is to be redone; confirm whether this means a dig or chamber rebuild, which would be priced as other work"
   ]
  },
  {
   "item": "J0755",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 360,
     "total": 1080.0,
     "rule": "4.1+4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3634.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0756",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0757",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 330,
     "total": 990.0,
     "rule": "3.3+4.5+4.13"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.3+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 6.0,
     "unit_price": 260,
     "total": 1560.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 5684.0,
   "confidence": "green",
   "estimator_checks": [
    "out-of-hours working is required on the access road, so confirm the night rate",
    "exact location (only a what3words reference was given)"
   ]
  },
  {
   "item": "J0758",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "Form says the opening could not be measured, yet gives 670 x 520 mm. This does not change the line, because a cover inside a building is a sealed chequer plate whatever its size."
   ]
  },
  {
   "item": "J0759",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.1+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1838.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Both forms are one basement cover (same location). Sizes differ slightly (700x550 on form 1, 670x530 on form 2), so confirm the size and that it is one cover.",
    "Confirm the out-of-hours slot and the coordination with pest control (form 2 says out of hours is required).",
    "The sealed chequer plate is priced for the basement. The separate 650x500 seal and the 12mm screws are not on the rate card and were not added. Confirm whether a MSC-01 allowance is needed.",
    "The third-party rubber edging is also damaged. Confirm whether it is in scope."
   ]
  },
  {
   "item": "J0761",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1590,
     "total": 4770.0,
     "rule": "7.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 5619.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the dig to locate the two hidden chambers needs 3 days, as the exploratory-dig pattern assumes",
    "Out-of-hours (nights) working is required at the car park entrance, so labour is priced at the nights rate",
    "Whether traffic management or an excavator and locator camera hire is needed (not in the standard dig pattern)",
    "Tarmac reinstatement is not in the dig pattern, so confirm whether it should be added",
    "Exact chamber positions: one 2-3 m upstream and one 4.24 m downstream of FW1"
   ]
  },
  {
   "item": "J0762",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The engineer is unsure of the fix: cutting back the slipper or reshaping the benching (priced here) versus digging out a section of line (not priced; it would need the dig pattern 7.2)",
    "Confirm the chamber and line location, as the form only says 'just before yard entrance'",
    "Confirm whether a half-round channel section is needed in the chamber base",
    "Confirm whether man entry or breathing apparatus is needed"
   ]
  },
  {
   "item": "J0763",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.7+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "green",
   "estimator_checks": [
    "E600 forklift-grade cover is specified, but the heaviest rate card option is D400; confirm D400 is acceptable"
   ]
  },
  {
   "item": "J0764",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is 'unknown', so this is priced as a crew visit only",
    "Confirm what is needed at the roundabout gullies: grates and frames, or kerb repair as well, since the kerb is collapsing",
    "Confirm whether traffic management is needed for a roundabout, which would be a separate quote",
    "Confirm whether the gully work counts as civils (LAB-CIV-H used) or drainage (LAB-DRN-H)"
   ]
  },
  {
   "item": "J0765",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Two chambers (F23 and F24) are involved: confirm whether one day is enough and whether PIP-CHAN is needed per chamber (1.2 m and 1.4 m channels)",
    "Extent of benching break-out and removal of the poorly installed material",
    "Confirm whether F23 needs the fall corrected",
    "Confirm whether confined space or man entry kit is needed (chamber depths 1.28 m and 1.3 m)"
   ]
  },
  {
   "item": "J0767",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 15.0,
     "unit_price": 95,
     "total": 1425.0,
     "rule": "4.17+4.18"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 30.0,
     "unit_price": 55,
     "total": 1650.0,
     "rule": "4.21"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 2.0,
     "unit_price": 38,
     "total": 76.0,
     "rule": "P2 (ordered in Part required)"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 22,
     "total": 110.0,
     "rule": "P2 (ordered in Part required)"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 120.0,
     "unit_price": 6,
     "total": 720.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 30.0,
     "unit_price": 19,
     "total": 570.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 30.0,
     "unit_price": 6,
     "total": 180.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 8711.0,
   "confidence": "red",
   "estimator_checks": [
    "Area 1 run is 15 m (over 10 m), so it was left out under 4.18; the quote prices only areas 2-4 (3 x 5 m = 15 m), while the form orders 30 m in total. Confirm how to price area 1.",
    "Surface is permeable block paving in a car park. The asphalt and overband lines follow the car park rule 6.11; confirm the correct reinstatement.",
    "Confirm whether the soil pipe (2 x 3 m) and 5 bends are needed, and whether the 90\u00b0 bends should be PIP-FIT.",
    "Confirm that the catchpits 1 m away are existing and need no replacement sump.",
    "Confirm the traffic management and cordoning arrangements with tenants, and the duration of the work."
   ]
  },
  {
   "item": "J0768",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-ENG-D",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 620,
     "total": 620.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2010.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the drainage visit needs an engineer (LAB-ENG-D) or a drainage gang with jetter and camera (LAB-DRN-D).",
    "Type of liquid in the pit (foul or contaminated), and so whether WST-GRS and WST-NOTE are needed.",
    "Whether the pipework will have to be cut and a coupling or fitting supplied.",
    "Whether the non-return valve needs replacing."
   ]
  },
  {
   "item": "J0769",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-H",
     "description": "Single engineer + van (drainage/plumbing/pumps), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "7.5"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.5"
    }
   ],
   "quote_total": 382.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the 50mm access cap fits the existing gully bypass (a 110mm-range fitting is priced as the nearest rate card line)",
    "Confirm whether confined space entry in the lift shaft needs breathing apparatus (HIR-BA) or a second operative",
    "Confirm the lift shaft can be accessed in hours",
    "Confirm this is a cap fit only and not a gully grate or pot replacement"
   ]
  },
  {
   "item": "J0770",
   "is_manhole_job": true,
   "job_type": "manhole: rebed / reset existing cover and frame (no new cover)",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.8"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 10.0,
     "unit_price": 68,
     "total": 680.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1644.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the job is a rebed only (the form asks for rebedding and mortar, no new cover or frame ordered) and that the existing frame and cover are reusable",
    "Confirm access: height barriers must be opened by the client using the padlock code, which is not given in the form",
    "Confirm the concrete surround reinstatement needs no extra repair material"
   ]
  },
  {
   "item": "J0771",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 360,
     "total": 1800.0,
     "rule": "3.3+4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 7695.0,
   "confidence": "green",
   "estimator_checks": [
    "Form 1 gives 700x795 and Form 2 gives 700x780. The difference does not change the sealed plate cover line, but the exact size is needed when ordering.",
    "Two covers have a wall built over them. Confirm they can be reached and replaced.",
    "Access is by fob and keys, and the toilets must be closed during the work."
   ]
  },
  {
   "item": "J0772",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the 385 mm size, which is under 500 mm and may be mis-measured",
    "confirm the floor finish in the x-ray room"
   ]
  },
  {
   "item": "J0773",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0774",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1490,
     "total": 1490.0,
     "rule": "7.3+5.9"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1540.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether 'digging out' means clearing silt and debris from the channel (priced as a drainage crew) or an actual excavation or dig (7.2)",
    "channel length, grate condition and whether any channel or grates need replacing",
    "out-of-hours working is required (form says 'ooh req'), so nights/weekends rate used",
    "whether waste removal or a tanker is needed for the debris"
   ]
  },
  {
   "item": "J0776",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 210,
     "total": 630.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 3196.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the three forms are three separate gullies (locations differ: rear of 3700 on the corner, rear of 3700 in front of the business, rear corner of unit 3800)"
   ]
  },
  {
   "item": "J0777",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-ND",
     "description": "Vacuum tanker + crew, nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1890,
     "total": 1890.0,
     "rule": "7.1+5.9"
    },
    {
     "code": "HIR-BA",
     "description": "Breathing apparatus set (confined space)",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 180,
     "total": 180.0,
     "rule": "7.1 (entry equipment)"
    },
    {
     "code": "WST-LIQ",
     "description": "Liquid waste disposal (gully / interceptor / septic), per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 120,
     "total": 480.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2575.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of silt and liquid waste to remove",
    "whether a second crew (drainage or civils) is needed for the confined-space entry",
    "soakaway depth and entry kit needed beyond breathing apparatus",
    "out-of-hours window and access at the front of the hair and beauty unit"
   ]
  },
  {
   "item": "J0778",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1388.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the cover is on gravel by the building wall with no vehicle access (light duty chosen)",
    "Notes mention entry equipment to clear the chamber, which is not priced; confirm none is needed"
   ]
  },
  {
   "item": "J0779",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the opening is outdoors under the stairway and not sealed inside a building",
    "Rat and pigeon droppings: PPE (masks) is not priced"
   ]
  },
  {
   "item": "J0780",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1+7.3"
    }
   ],
   "quote_total": 3345.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease waste to remove from FW 30",
    "whether the entry crew needs breathing apparatus (HIR-BA) for man entry at FW 30",
    "whether a separate drainage crew visit is needed for root cutting at SW 36, or whether it can be done on the same day as the tanker job",
    "whether traffic management or pavement protection is needed at FW 30"
   ]
  },
  {
   "item": "J0781",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2480.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether a tanker is needed to pump out the line holding water, or only root cutting and jetting (LAB-DRN-D alone)",
    "whether confined space entry (CSE) is needed, which would need breathing apparatus and a man-entry crew",
    "whether any liquid waste disposal is needed and the tonnage",
    "no jetting or root-cutting task is named in the form; the drainage crew is assumed for the root ingress"
   ]
  },
  {
   "item": "J0782",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2030.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the interceptor needs emptying and how much waste would come out, since no waste line is priced yet",
    "Whether the civils/landscaping crew is needed to uncover the sunk first stage and the buried surface water manhole, and for how long",
    "Whether the dig needs buried utility plans and spoil removal",
    "Whether the surface water manhole needs any repair once uncovered"
   ]
  },
  {
   "item": "J0783",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4120.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the 3 m run (form 1) and the 1.2 m run (form 3) are separate locations. They were priced as separate runs: 3 m + 1.2 m rounded up to 3 + 2 = 5 m.",
    "Whether the silt trap (form 2) is to be replaced. No replacement was ordered, so no CHN-SUMP is included. If it is replaced, add CHN-SUMP 1, reduce CHN-RUN to 4, and use CHN-GRATE 9.",
    "Whether the 'aco wall collapsed, reinstatement' on form 3 means extra structural or dig work beyond replacing the channel and lids.",
    "Surface type in the underground car park (assumed to be a car park surface, so asphalt reinstatement lines were added).",
    "Whether the grade (D400 or other) matches the loading from vehicles. No grade is given.",
    "Access and traffic management in the underground car park."
   ]
  },
  {
   "item": "J0784",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.8+4.11+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm whether the two forms are two separate covers or one cover measured twice. The location text matches but the sizes (500x700 and 660x500) and surfaces (grass and concrete) differ, so I priced two.",
    "Form 1 (500x700) is not a standard size and was priced up to CVR-600 by rule 4.11. Confirm the size.",
    "Confirm the traffic loading. D400 is given on the form and there is no rectangular-cover traffic detail, so heavy duty was used.",
    "The forms do not state a 'Part required'. Confirm a new cover and frame is wanted.",
    "Neither surface is tarmac, so no asphalt, overbanding or carriage lines were added."
   ]
  },
  {
   "item": "J0785",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0786",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 2.0,
     "unit_price": 6,
     "total": 12.0,
     "rule": "forms: part required"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 1.0,
     "unit_price": 19,
     "total": 19.0,
     "rule": "forms: part required"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "forms: grano"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 22,
     "total": 88.0,
     "rule": "forms: 2x45\u00b0 and 2x30\u00b0 bends"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 1.0,
     "unit_price": 38,
     "total": 38.0,
     "rule": "forms: short straight length of 4in clay"
    }
   ],
   "quote_total": 1835.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Night shift: the form says 'probably' and 'to sort with site', so it is quoted in hours. If nights are confirmed, change to LAB-CIV-ND 1.",
    "Whether the CCTV of the two upstream branches needs a separate crew (LAB-CCTV-H 1) or is covered by the civils gang",
    "Whether the engineer's 'grano' is one small item (priced as MSC-01) or more",
    "Whether the 4in clay pipe and fittings should be priced as 110 mm",
    "Access arrangements with site for the staff cafe"
   ]
  },
  {
   "item": "J0787",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-CCTV-D",
     "description": "CCTV survey / jetting crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1240,
     "total": 1240.0,
     "rule": "7.1"
    },
    {
     "code": "HIR-BA",
     "description": "Breathing apparatus set (confined space)",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 180,
     "total": 180.0,
     "rule": "7.1"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2860.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the tanker waste is liquid or contaminated, and the tonnage, as WST-LIQ/WST-GRS and WST-NOTE are not included",
    "whether MSC-01 is the right allowance for the ladders, or whether HIR-TOWER is wanted instead",
    "whether the work needs one confined space (BA) set or more",
    "the cause and exact position of the obstruction, as a dig or jetting crew may be needed after the CCTV",
    "what the 'x1' in Part required refers to"
   ]
  },
  {
   "item": "J0788",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0790",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "4.7+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1388.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the cover is on a pavement used only by pedestrians. The old cover is graded C250, so if vehicles can run over it, swap to CVR-600x450-H.",
    "Confirm the 670 x 530 mm size, which is the cover size because the chamber opening could not be measured."
   ]
  },
  {
   "item": "J0792",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the gully pot is broken and needs replacing (Part required says 'Road gully', notes say new cover and frame only)",
    "Whether the gully clean-out is wanted. Cleaning is not priced and would need a separate tanker or drainage visit",
    "Surface is concrete in a service yard road, so confirm the reinstatement materials"
   ]
  },
  {
   "item": "J0793",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, recessed (paving infill)",
   "quote_lines": [
    {
     "code": "CVR-REC",
     "description": "Cover & frame, recessed (takes paving/tile infill), any size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 410,
     "total": 410.0,
     "rule": "4.2"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1638.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the existing cover is a recessed tray with brick/paving infill. If it is a standard solid-top cover, the 600 x 400 opening would be CVR-OTHER under 4.9.",
    "Confirm the job is a new cover and frame and not just a rebed or re-lay of the lifted brick infill (the form has no 'Part required' entry).",
    "Block paving surround may need re-laying to match; no paving or jointing sand has been included."
   ]
  },
  {
   "item": "J0794",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-LIQ",
     "description": "Liquid waste disposal (gully / interceptor / septic), per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 120,
     "total": 480.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 1895.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of silt/liquid waste from the 16 gullies (WST-LIQ quantity is an estimate)",
    "access times and whether the work needs to be out of hours, since the car park is in use",
    "height restriction of 2.25m: confirm the tanker can get in, using the opening restriction",
    "whether any gullies or manholes are covered by parked cars",
    "whether a follow-up investigation is needed for the flooding"
   ]
  },
  {
   "item": "J0797",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-CCTV-D",
     "description": "CCTV survey / jetting crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1240,
     "total": 1240.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2630.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the CCTV crew (LAB-CCTV-D) is wanted instead of the standard drainage gang (LAB-DRN-D), and whether the crawler camera hire (HIR-CAM) is separate or included",
    "Confirm the tanker is needed to pump out the upstream chamber, and whether liquid waste disposal (WST-LIQ / WST-NOTE) should be added",
    "A pipe collapse is suspected: a dig and relay will probably follow once the survey locates it, but no dig is ordered, so none is priced",
    "Confirm the work is in hours (the form says so)"
   ]
  },
  {
   "item": "J0798",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Picote (descaling/milling) machine is not on the rate card, so confirm how it is to be charged or supplied",
    "duration: one full day assumed for descaling the above-ground stack",
    "access from WC2 via the fitted access cap, and whether it is workable out of hours given the first floor gents location"
   ]
  },
  {
   "item": "J0799",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 2.0,
     "unit_price": 38,
     "total": 76.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4302.0,
   "confidence": "yellow",
   "estimator_checks": [
    "pipe run length from the channel to the surface water chamber; the rate card only has 110 mm pipe, and the forms ask for 150 mm",
    "whether the 5 m aco channel and sump are also to be replaced (CHN-RUN, CHN-GRATE, CHN-SUMP would be added), or only re-plumbed to the new outlet",
    "surface type to reinstate (tarmac, concrete or block paving)",
    "whether temporary fencing is needed (private site, access past the gates)",
    "whether traffic management is needed (the form mentions MOT)",
    "whether the work needs to be done out of hours"
   ]
  },
  {
   "item": "J0800",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 3345.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of oil/contaminated waste to be removed",
    "whether a drainage crew is needed to clear and jet the lines between interceptors 1 and 2",
    "whether the interceptors were actually cleared last Friday as the site believes",
    "site must be notified so the area can be cleared"
   ]
  },
  {
   "item": "J0801",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "size of the rodding eye cover (no size given)",
    "surface type around the cover (no surface given, so no tarmac reinstatement lines added)",
    "whether it is in a vehicle area (loading or delivery), in which case a standard CVR-600 cover would be used instead of the plate"
   ]
  },
  {
   "item": "J0803",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1490,
     "total": 1490.0,
     "rule": "7.3+5.9"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1540.0,
   "confidence": "yellow",
   "estimator_checks": [
    "confirm out-of-hours window and access (building open to the public)",
    "whether tracing out of the main line is needed, and by whom",
    "whether HPWJ back-jetting of the scale is needed in addition to Picote chains",
    "whether scale collected at the downstream manhole needs a tanker or waste removal"
   ]
  },
  {
   "item": "J0805",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0806",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3986.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0807",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4783.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the scope of the dig and pipe relay, as 'civils manager to review' is the only part entry",
    "Length of clay pipe to replace and which fittings are needed (only 1 fitting allowed for now)",
    "Whether temporary fencing is needed beside the footpath",
    "Whether the concrete reinstatement area matches the allowance"
   ]
  },
  {
   "item": "J0808",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, recessed (paving infill)",
   "quote_lines": [
    {
     "code": "CVR-REC",
     "description": "Cover & frame, recessed (takes paving/tile infill), any size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 410,
     "total": 410.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2148.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the existing cover is a recessed tray infilled with floor tiles (notes say 'tiled over top'), which is why CVR-REC was chosen over CVR-PLATE",
    "Surface type is given as concrete but the notes say tiled; confirm the finish and whether tile reinstatement is needed (no tile line on the rate card)",
    "Opening is 970 x 670 mm and the engineer chose a light-duty A15 grade; confirm the size and that the recessed cover fits"
   ]
  },
  {
   "item": "J0809",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The notes say the existing cover is in good condition and the sunken block paving is the fault, and 'Part required' lists only mortar and sand. Confirm whether a new cover is wanted or only a rebed and re-lay of the paving. Rebed would be MAT-MORT 10, MAT-SAND 15, MAT-PSAND 6 with no new cover.",
    "The chamber opening was not measured. The 660 x 660 size is the cover size, so confirm it.",
    "Confirm the D400 grade for the car park."
   ]
  },
  {
   "item": "J0810",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1388.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0811",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm a sealed chequer plate cover is wanted rather than a standard CVR-600-H (opening is 635 x 635 mm, C250). The form asks for a double-sealed, screw-down cover, which is why 4.1 was applied."
   ]
  },
  {
   "item": "J0812",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "cover size (no measurement given)",
    "duty grade (no grade given)",
    "surface type around the cover (tarmac would add asphalt, overbanding tape and carriage)",
    "whether the foul station cover is inside a building or sealed (would need CVR-PLATE)"
   ]
  },
  {
   "item": "J0813",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 395,
     "total": 395.0,
     "rule": "4.4+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2871.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 (foul water manhole permanently holding sewage, downstream line poorly installed) is not priced because only the cover work is quoted; confirm whether a separate investigation or tanker visit is needed",
    "Form 1 is the second-stage cover of a petrol interceptor, seized and on hinges; confirm a standard solid cover and frame is suitable and whether it needs breaking out",
    "Form 3 cover is 720 x 720 mm, on the boundary between the 675 and 600 bands; 4.4 was applied, so confirm the size and the existing cover size",
    "Chamber openings could not be measured on either form, so the sizes may be unreliable",
    "Both covers are in concrete and no surface reinstatement lines are included; confirm the finish"
   ]
  },
  {
   "item": "J0814",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Form 1 lid is stuck, so confirm the frame needs replacing once the lid is lifted",
    "Form 2 is graded A15 but 'heavier grade required: Yes'; priced as heavy duty (H)",
    "Car park access at the JD entrance"
   ]
  },
  {
   "item": "J0816",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4120.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the two forms are separate runs (3 m and 2 m, 5 m total) and not a repeat of the same channel",
    "Confirm the surface is a road, yard or car park (tarmac reinstatement priced)",
    "Engineer advises jetting and cleaning the water-filled channel before civils work; not priced, as only one labour line applies. Confirm whether a drainage crew is needed"
   ]
  },
  {
   "item": "J0817",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the concrete has to be broken out of the inlet, rather than only jetted or cleared",
    "Confirm the manhole location, as it is not on the map (next to PI3)",
    "Confirm whether the benching or channel in the chamber base is damaged (PIP-CHAN) and whether man entry is needed",
    "Confirm whether a drainage crew with a jetter is needed after the concrete is removed"
   ]
  },
  {
   "item": "J0818",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 330,
     "total": 1650.0,
     "rule": "3.2+3.3+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 8205.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Cover count: forms 1, 3 and 4 are one cover each and form 2 says 2 manholes, giving 5. Confirm form 1 is not one of the 2 at the warehouse front (sizes differ slightly: 670x675 vs 670x670).",
    "Form 4 (tarmac) notes a blocked chamber, CCTV on all lines and possible collapsed pipes. This is not priced; confirm whether a CCTV or dig visit is needed.",
    "Form 5 (about 35 m of new aco channel in service yard B) is not priced. The estimator prices one main repair per visit, and a run over 10 m is never priced in full. Confirm whether it needs a separate quote.",
    "Block paving reinstatement around the 4 covers in block paving: no surface line was added, so confirm none is needed.",
    "Cover grades: forms 1-3 are C250 and form 4 is D400, all priced as heavy duty."
   ],
   "possible_duplicate_of": [
    {
     "item": "J0681",
     "labelled": false
    }
   ]
  },
  {
   "item": "J0820",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "red",
   "estimator_checks": [
    "Surface conflict: the form says concrete but the notes say the cover is buried under tarmac to be broken out and reinstated. Tarmac was priced, so confirm the surface.",
    "Cover size: not measured, so 600x600 was assumed. Confirm the actual size and shape.",
    "Confirm the cover is covered over and that the work is a replacement. No part was ordered, so the default replace was used.",
    "Confirm the D400 heavy-duty grade (road location)."
   ]
  },
  {
   "item": "J0821",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "7.4+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "P2 (150 clay pipe has no rate card line)"
    }
   ],
   "quote_total": 2118.0,
   "confidence": "yellow",
   "estimator_checks": [
    "150 mm clay pipe and the 225 packer are not on the rate card; MSC-01 is an allowance, so confirm the cost",
    "Confirm whether the man-entry kit is the crew's own or needs breathing apparatus hire (HIR-BA)",
    "Confirm the ooh shift is required (the form says 1 shift ooh), so the nights/weekends gang rate is used",
    "Confirm whether car park bay closure or traffic management is needed",
    "Other work, not a cover replacement"
   ]
  },
  {
   "item": "J0822",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1748.0,
   "confidence": "yellow",
   "estimator_checks": [
    "770 x 440 rectangular opening falls outside the standard bands, so the nearest band above was used; confirm the size",
    "confirm traffic at the site entrance: the form says B125 grass/footpath, but the entrance suggests vehicles, so heavy duty was chosen under 4.14"
   ]
  },
  {
   "item": "J0823",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2 (parts unknown)"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2 (busy shop delivery area)"
    }
   ],
   "quote_total": 4299.0,
   "confidence": "yellow",
   "estimator_checks": [
    "length and diameter of collapsed line to replace (the line is 150mm and the rate card only has 110mm pipe, so pipe lengths are not priced)",
    "whether gullies 1 and 2 need new gully pots (GUL-POT) or only re-jointing",
    "surface type and reinstatement needed (not stated)",
    "whether traffic management is needed because the area is used for shop deliveries"
   ]
  },
  {
   "item": "J0824",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease/contaminated waste to be removed from the interceptor",
    "whether investigation or jetting of the nearby channel and kerb (suspected source) is also required",
    "whether the work is in hours or out of hours (P1 urgent, 1-3 days)"
   ]
  },
  {
   "item": "J0825",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0826",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2258.0,
   "confidence": "green",
   "estimator_checks": [
    "cover is seized and could not be lifted, so confirm the size once it is open (form says the opening could not be measured)"
   ]
  },
  {
   "item": "J0827",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Mixed job (gully form and manhole form): priced one main repair, the cover, under 1.5. The gully form is not priced.",
    "Confirm whether the 550x550 D400 'gully lid' in the road is really a gully or a second manhole cover. If it is a cover, the job becomes 2 covers: LAB-CIV-D 1 and MAT-MORT 12, plus a second cover and tarmac lines.",
    "Cover size 690x690 was recorded although the form says the opening could not be measured. Confirm the size and the B125 grade, since the entrance may take vehicles.",
    "Seized or broken lifting handles: a dig-out or breaker may be needed to get the old cover out."
   ]
  },
  {
   "item": "J0828",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "GUL-POT",
     "description": "Gully pot / gully assembly (new)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.15 (new pot ordered in Part required)"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1907.0,
   "confidence": "green",
   "estimator_checks": [
    "Pipework to existing is not priced: confirm whether any pipe or fittings are needed",
    "Confirm the gully pot really needs replacing, as the form orders a complete new pot",
    "Concrete is possibly reinforced, so confirm whether reinforcement is needed"
   ]
  },
  {
   "item": "J0830",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.11+4.14+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2153.0,
   "confidence": "yellow",
   "estimator_checks": [
    "570 x 460 opening does not fit a standard band exactly; rounded up to 600 x 450 and the width is 10 mm over, so confirm the size",
    "Form grade is A15 but heavier grade is marked required, so H was used; confirm the grade",
    "Alley way behind the business: confirm whether vehicles (deliveries, bins) use it, which decides light or heavy duty"
   ]
  },
  {
   "item": "J0831",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-ENG-ND",
     "description": "Single engineer + van, nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 860,
     "total": 860.0,
     "rule": "7.5+5.9"
    }
   ],
   "quote_total": 860.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the Saturday is a firm requirement. If it is not, quote LAB-ENG-H 1 in hours instead.",
    "The rate card has no half-day weekend engineer code, so a full day (LAB-ENG-ND) is used.",
    "Confirm whether descaling chemicals or other small materials need to be allowed for.",
    "Confirm whether the sensor flush adjustment and the removal and refit of the urinals fit in one visit."
   ]
  },
  {
   "item": "J0832",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0833",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is unknown: confirm on site whether a new cover and frame is needed (key holes broken)",
    "Cover is 660 x 660 mm, D400, in block paving; confirm size and grade if a replacement follows"
   ]
  },
  {
   "item": "J0834",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-ND",
     "description": "Drainage gang (2 operatives + jetter van), nights/weekends, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1490,
     "total": 4470.0,
     "rule": "7.3+5.9"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 4520.0,
   "confidence": "yellow",
   "estimator_checks": [
    "number of out-of-hours shifts (engineer says 3, could be more or fewer depending on how the blockage clears)",
    "whether breathing apparatus is needed for the confined space man entry (HIR-BA not included)",
    "picote hire or subcontract cost is not on the rate card; MSC-01 is only an allowance",
    "whether waste removal is needed for the concrete debris"
   ]
  },
  {
   "item": "J0835",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "yellow",
   "estimator_checks": [
    "location is only a what3words reference: confirm the channel is in a road or car park (HGV grade and tarmac suggest it is), which drives the tarmac reinstatement lines",
    "1 m defective length was priced at the 2 m minimum for a channel with no sump",
    "confirm no sump or trash box needs replacing",
    "confirm the new 1 m section lines up with the adjacent 1 m already repaired"
   ]
  },
  {
   "item": "J0838",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-LIQ",
     "description": "Liquid waste disposal (gully / interceptor / septic), per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 120,
     "total": 480.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 1895.0,
   "confidence": "red",
   "estimator_checks": [
    "The form conflicts: it says '2 shifts' and '2/3 shifts' with gully grabs and bags, but also 'mini tanker to suck out in 1'. Confirm whether the work is one tanker day or several manual shifts.",
    "Confirm that the work is clearing silt from the 17 road gullies, with no new gully grates or pots and no dig.",
    "Confirm the tonnes of liquid and silt waste to be disposed of. The 4 tonnes is an estimate.",
    "Check access for a tanker in the underground car park (mini tanker or open-back vehicle).",
    "Confirm whether out-of-hours working is required. Nothing in the form requires it, so the quote is in hours."
   ]
  },
  {
   "item": "J0839",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required text does not order a new cover. It says the manhole was unable to be lifted (sunk), so replacement is assumed by default (rule 2.4).",
    "Text says both 'unable to locate manhole' and 'manhole which has been located'. Confirm the cover has been found and is the one to replace.",
    "Chamber opening was not measured. The 600x600 size is taken from the cover length and width fields.",
    "Confirm it is a foul line and is the right cover grade (C250, heavier grade required: Yes)."
   ]
  },
  {
   "item": "J0840",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.1+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1838.0,
   "confidence": "green",
   "estimator_checks": [
    "Part required text is cut off. Confirm a new frame and cover is being installed.",
    "Confirm the lino floor finish is not a recessed tray taking tile infill. If it is, use CVR-REC.",
    "Out of hours work was required by the form, so the nights half-day crew is priced."
   ]
  },
  {
   "item": "J0841",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is 'unknown', so priced as a crew visit to find out what is needed",
    "Cover size is an estimate (700 x 600, not measured); confirm the actual size",
    "Confirm the replacement cover and frame needed (broken corner, frame missing near the corner), and the grade (C250 with heavier grade required: Yes)",
    "Main road location: confirm whether traffic management is needed"
   ]
  },
  {
   "item": "J0843",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600x450-H",
     "description": "Cover & frame, solid top, 600 x 450, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 265,
     "total": 265.0,
     "rule": "4.6+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1493.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0844",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2248.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening is under 500 mm (260 x 260), so the size may be mis-measured. Confirm the real cover size.",
    "Confirm the cover is on a path or footway (B125 grass/footpath grade suggests it is). If it is in a road or car park, use CVR-600-L instead.",
    "The two forms have the same size and grade, but the location text differs slightly. I treated them as one repeated form and priced one cover. Confirm it is not two separate covers, because two would need LAB-CIV-D 1 and double the cover, mortar and asphalt lines."
   ]
  },
  {
   "item": "J0845",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.6+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2951.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the channel is in a car park (access note mentions car park spaces), which sets the tarmac reinstatement lines",
    "confirm out-of-hours working is required, which sets the night-rate crew"
   ]
  },
  {
   "item": "J0846",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0848",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1302.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type around the gully (tarmac, concrete or block paving) is not given, so no surface reinstatement lines were added",
    "confirm the 17 x 17 cm grate can be matched by the heavy duty hinged gully grate",
    "confirm the gully pot is intact (only the grate is missing)",
    "the form is labelled Other / PPM, but the work is a gully grate replacement"
   ]
  },
  {
   "item": "J0849",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 395,
     "total": 1580.0,
     "rule": "4.11+4.12+4.14 (form 1 x3 at 700x550 D400; form 5 has no size, so it takes the size of the other covers)"
    },
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.10+4.13 (form 2, 470x470 opening, C250)"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4 (5 covers -> 3 days)"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1+6.3"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2 (3 days of civils work, instead of WST-GEN)"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4 (6 per cover x 5)"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6 (tarmac cover, form 5)"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 8465.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1: confirm the 700x550 size and which band to use. It is a non-square rectangle, so the nearest band above was chosen (CVR-675-H); CVR-750-H is the alternative",
    "Form 2: the 470x470 opening is under 500 mm and on grass by a tyre bay. Confirm whether vehicles run there (CVR-600-H) or it is a footway (CVR-PLATE)",
    "Form 5: no size was given, so the other covers' size was used. The form says the frame and cover is OK and only needs fixing back down, which could be a rebed rather than a replacement",
    "Cover count: 5 covers assumed (form 1 x3, form 2, form 5)",
    "Forms 3 (blocked line / Picote, petrol interceptor) and 4 (root ingress, man entry) are not priced, because only one main repair is quoted per visit. They need a separate quote",
    "Form 2: the plan marks the manhole as SW but the engineer says it is foul water"
   ]
  },
  {
   "item": "J0850",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "7.4+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 2068.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Saturday morning only: confirm whether a full-day weekend gang (LAB-CIV-ND) or a half-day (LAB-CIV-NH) is needed",
    "Confirm the extent of the rebenching (middle section and section under the chamber wall)",
    "Confirm whether more than one channel section or extra benching mix is needed",
    "Confirm out-of-hours access and security arrangements for the lower ground floor"
   ]
  },
  {
   "item": "J0851",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "None of the forms orders a new cover or frame (Part required is N/A or blank), so this is priced as a crew visit. Confirm whether the work is only clearing the tarmac from the keyholes and lifting the covers, or whether replacement covers are needed.",
    "Confirm the number of covers: 3 forms, with different locations (end of car park, middle car park, block paving by main building).",
    "Form 3 needs a special lifting key. Confirm the key type and that the crew will carry it.",
    "Confirm access: Form 2 says cars may be parked in the bay if the work is done in the day."
   ]
  },
  {
   "item": "J0852",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    },
    {
     "code": "MAT-REBAR",
     "description": "Steel reinforcement (bar or mesh)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 28,
     "total": 28.0,
     "rule": "P2 (reinforcing named in Part required)"
    }
   ],
   "quote_total": 2294.0,
   "confidence": "yellow",
   "estimator_checks": [
    "'so20 grates' is unclear: does it mean 20 grates? The quote uses the standard 4 grates for 2 m",
    "grade F900 (aircraft) is unusual for a service yard: confirm the grade and whether the channel is in a vehicle area, as that would change the surface lines",
    "confirm the reinforcing is needed",
    "confirm the 1 m defective length against the 2 m minimum run"
   ]
  },
  {
   "item": "J0853",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1426.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 (service yard manhole cover won't lift) does not order a new cover, so it is not priced; confirm whether a cover replacement or lifting work is needed",
    "Grade: form says C250 with heavier grade required, notes say the adjacent length was already replaced with D400; confirm the grade of the grates",
    "Surface is block paving on one side and tarmac on the other; confirm whether any tarmac reinstatement is needed",
    "Notes mention multiple jumps in the channel with different lengths; confirm the defective length of 0.5 m and whether it is one location"
   ]
  },
  {
   "item": "J0854",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "PIP-LINER",
     "description": "Patch liner / no-dig repair kit",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 290,
     "total": 870.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 2010.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the patch count: 2x 600 mm patches plus 1 rest bend patch is priced as 3 liners",
    "Confirm the rest bend patch is a liner and not a replacement fitting",
    "Confirm the work is no-dig lining only, with no excavation to reach the pipework at the concrete"
   ]
  },
  {
   "item": "J0855",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 9.0,
     "unit_price": 95,
     "total": 855.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 18.0,
     "unit_price": 55,
     "total": 990.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 72.0,
     "unit_price": 6,
     "total": 432.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 18.0,
     "unit_price": 19,
     "total": 342.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 18.0,
     "unit_price": 6,
     "total": 108.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 6707.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the channel is in a car park or road (tarmac with HGV traffic assumed, so 6.11 surface lines were added)",
    "Out-of-hours working is only a possibility ('3x night shift', to be confirmed with client), so it is quoted in hours; switch to night rates if the client requires it",
    "Confirm the 9 m total covers the L-shaped runs; if they are separate locations, round each up separately"
   ]
  },
  {
   "item": "J0856",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 3345.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease/contaminated waste to remove",
    "whether jetting of the downstream line is needed after the tanker clears the manhole",
    "exact location and access for tanker and jetter"
   ]
  },
  {
   "item": "J0857",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.16+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.6+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2516.0,
   "confidence": "red",
   "estimator_checks": [
    "Facts conflict: the form gives the overall length as 905 mm, but the part required is two sections of 905x300x3000 mm (up to 6 m). Confirm the actual channel length. I priced the ordered 2 units (2 m), and a run over 10 m would not be priced in full.",
    "Confirm the work must be out of hours. The access note says ooh because the channel is in front of the doors, so I priced the nights/weekends crew.",
    "Confirm whether the area is a car park or road, or an entrance needing colour dye. I treated it as a concrete surface with no dye.",
    "The part required also lists a concrete cutter and breaker and 4 bags of fast concrete. These are not priced separately (no breaker hire line added)."
   ]
  },
  {
   "item": "J0858",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.8+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "whether vehicles can drive over the cover at the side of unit C1 (light vs heavy duty was taken from the C250 grade on the form)",
    "cover size 640 x 490 mm, since the chamber opening could not be measured"
   ]
  },
  {
   "item": "J0859",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.1+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2468.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm out-of-hours working is required, as the access issues field says 'Out of hours'. If it is not, use LAB-CIV-H instead of LAB-CIV-NH."
   ]
  },
  {
   "item": "J0860",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening measures 450x450 but the part required says a 500x500 outer frame. Confirm the actual cover size.",
    "Confirm the cover is in an open underground car park with vehicle traffic and not a sealed area, which would need CVR-PLATE.",
    "Confirm the C250 grade, since the form says no heavier grade is needed."
   ]
  },
  {
   "item": "J0861",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 55,
     "total": 165.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 28.0,
     "unit_price": 6,
     "total": 168.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3423.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 has no 'Part required': confirm the catchpit/sump unit is to be replaced (priced as CHN-SUMP 1 because the channel form defaults to replace)",
    "Confirm whether both forms are the same car park/run (priced as one sump plus 1 m of channel)",
    "Grade conflict on form 1: D400 in the grade field vs manufacturer 'C250'; form 2 is C250. Confirm the grade and that the replacement channel suits it",
    "Form 1 notes mention a '100m deep' section against a 250 mm invert depth: confirm the actual depth to be replaced",
    "Car park work: confirm whether bays are coned off in hours or work is out of hours. Out-of-hours is not ordered, so priced in hours, with no traffic management line"
   ]
  },
  {
   "item": "J0862",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "700 x 550 is a rectangle that fits no standard band, so CVR-600-H is the next size up. Confirm the size, since the opening could not be measured.",
    "Confirm the cover is replaced, since it is seized and cannot be lifted.",
    "Confirm the concrete reinstatement. The form lists concrete as a part, but no surface line was added under 6.6."
   ]
  },
  {
   "item": "J0863",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4299.0,
   "confidence": "yellow",
   "estimator_checks": [
    "pipe size and length of burst main to be replaced (parts unknown, so only 1 fitting priced)",
    "surface type of the parking bay for reinstatement (not stated)",
    "whether a mini excavator (HIR-EXC) is needed, as 'Digger' is named in the forms",
    "water supplier isolation of the main",
    "traffic management or fencing needs in the busy parking area"
   ]
  },
  {
   "item": "J0864",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0865",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 3329.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is only 'bolt removal' (no new grate ordered), so replacement follows the default rule 2.4 for seized grates; confirm replacement is wanted rather than just freeing the bolts",
    "Number of grates: the two forms are at different locations, so 2 are priced; Form 1 says 'both lids', so check whether it has 2 grates, which would make 3 in total",
    "Form 2 notes talk about a 'channel' and bowls concreted over, which does not match a gully form; confirm what object is there and whether the grates can be reached",
    "Surface: Form 1 is tarmac and Form 2 is concrete, so both reinstatement lines are included; confirm"
   ]
  },
  {
   "item": "J0866",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Opening is 600 x 500, which is not square and fits no standard band, so the nearest band above (600 x 600) was used. This matches the 600x600x40 part the engineer asked for.",
    "Confirm whether vehicles use this entrance next to the security hut. The form grade is B125 (footpath), so light duty was used. If it is a vehicle entrance, switch to CVR-600-H.",
    "Engineer's note lists 3 pots of mortar and 4 bags of shingle. The standard 6 tubs of mortar were quoted and no shingle was added. Confirm whether the shingle surface needs reinstating (MAT-SHGL)."
   ]
  },
  {
   "item": "J0871",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.6+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2951.0,
   "confidence": "red",
   "estimator_checks": [
    "The defective run is 15 m, over the 10 m limit, so only 2 m is priced. Confirm the scope and whether the full 15 m C250 replacement is wanted.",
    "Form grade is B125 (grass/footpath) but the text asks for C250 metal channel in a vehicle car park. Confirm the grade.",
    "Weekend attendance is required because the centre is closed, so the night/weekend half-day crew rate is used. Confirm the crew duration for a 15 m run.",
    "Surface is recorded as concrete but the channel is in a car park. Confirm whether tarmac or concrete reinstatement is needed, and whether a colour dye is needed at the entrance.",
    "Traffic management may be needed in the car park."
   ]
  },
  {
   "item": "J0872",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type around the cover (tarmac would add MAT-ASPH 2, MAT-BAND 1, SUN-CARR 1)",
    "interceptor cleaning is not included; confirm whether a separate tanker quote is needed after the cover is replaced",
    "traffic management or a working window with the yard man for the lorry park exit",
    "site induction and pass for access"
   ]
  },
  {
   "item": "J0874",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "No replacement part is ordered and the cover is concreted in, so the visit is to find out what is needed (free the cover, inspect, then decide whether to replace)",
    "Cover size, grade and surface are not given",
    "Confirm the shed is a building interior (sealed plate cover) or an open structure",
    "Check whether a repeat visit or a replacement quote is needed once the cover is freed"
   ]
  },
  {
   "item": "J0876",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 6.0,
     "unit_price": 95,
     "total": 570.0,
     "rule": "4.17+4.19"
    },
    {
     "code": "CHN-SUMP",
     "description": "Channel drain sump / trash box unit",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 240,
     "total": 240.0,
     "rule": "4.19"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 13.0,
     "unit_price": 55,
     "total": 715.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 60.0,
     "unit_price": 6,
     "total": 360.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 14.0,
     "unit_price": 19,
     "total": 266.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 14.0,
     "unit_price": 6,
     "total": 84.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 4840.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm whether the 6 m defective length includes the catchpit"
   ]
  },
  {
   "item": "J0877",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-NH",
     "description": "Civils gang (2 operatives + van), nights/weekends, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 890,
     "total": 890.0,
     "rule": "5.5+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1972.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm out-of-hours working is required. The access note says 'ooh 1 shift if replaced full gully frame and lid', so it may be conditional. If it is not required, swap LAB-CIV-NH for LAB-CIV-H.",
    "Confirm the full frame and grate is being replaced, as Part required only says 'round gully lid'."
   ]
  },
  {
   "item": "J0878",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "The form gives no 'Part required' and no work order, so confirm what repair the pond headwall needs (repair, replace or rebuild)",
    "Size and construction of the headwall",
    "Access beside the car park, and whether traffic management is needed",
    "Whether this is a drainage or civils job; a civils crew is assumed"
   ]
  },
  {
   "item": "J0881",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, recessed (paving infill)",
   "quote_lines": [
    {
     "code": "CVR-REC",
     "description": "Cover & frame, recessed (takes paving/tile infill), any size",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 410,
     "total": 410.0,
     "rule": "4.2"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1638.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 describes a block-inlay (recessed) frame at 668x668 mm in the road: confirm that a recessed cover is wanted and not a standard CVR-600-H, and confirm the load grade (none given)",
    "Replacement was chosen over grinding out the old frame because the form says 'or replace'",
    "Form 1 (man entry to break out type 1/concrete in a chamber, BA, tanker) and Form 3 (CCTV for roots) are separate jobs and are not priced here: confirm whether they need separate quotes",
    "No block paving reinstatement is included: confirm whether the inlay needs paving or sand"
   ]
  },
  {
   "item": "J0882",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Two separate covers priced: the locations differ (entrance unit vs middle of site), even though size and grade are the same. Confirm Form 2 is not a repeat of Form 1.",
    "Chamber opening was not measured; sizes are of the existing covers (650 x 650)."
   ]
  },
  {
   "item": "J0883",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm whether man entry or breathing apparatus is needed in the chamber",
    "Confirm the number of half-channel sections and the benching quantity (150 mm clay channel in mainline and branches 1 and 2)",
    "Confirm whether a new cover and frame is needed (none ordered, so not priced)",
    "Confirm whether traffic management or fencing is needed in the car park"
   ]
  },
  {
   "item": "J0884",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 330,
     "total": 1650.0,
     "rule": "3.3+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 30.0,
     "unit_price": 68,
     "total": 2040.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 7545.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm all 5 covers are 715 x 715 C250, as the form gives only one size",
    "Chamber depth unknown (assumed deep); key holes broken and covers cannot be lifted",
    "Block paving surround: no surface line added, as the rules give none for covers"
   ]
  },
  {
   "item": "J0885",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 2.0,
     "unit_price": 38,
     "total": 76.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 20.0,
     "unit_price": 6,
     "total": 120.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4476.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the collapse is confirmed and how much pipe needs relaying (3.7 m between assets assumed, rounded up to 2 lengths)",
    "pipe is 225 mm clay but the rate card only has 110 mm pipe, so confirm the pipe and fittings needed",
    "whether temporary fencing is needed (front of property, public access not stated)",
    "depth of 1.59 m may need shoring"
   ]
  },
  {
   "item": "J0886",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 360,
     "total": 720.0,
     "rule": "4.1+3.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2866.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the corridor is inside the building, so a sealed chequer plate cover applies. If it is external, a 600x450 or 600x600 light-duty cover would be priced instead."
   ]
  },
  {
   "item": "J0887",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0888",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 (possible collapsed SW drain between SW2 and SW3, surcharging, aco connected) is not priced: under 1.5 only the cover is priced, so confirm whether a separate dig or jetting/CCTV quote is needed",
    "450x450 opening is under 500 mm, so the size may be mis-measured: confirm the actual opening and existing cover size",
    "Drive-thru order station is treated as a vehicle area (standard 600x600 light-duty cover): confirm traffic and grade, as the form says B125 grass/footpath",
    "Form 1 has no Part required entry: confirm a new cover and frame is wanted",
    "Block paving surround: confirm whether any reinstatement is needed (none priced)"
   ]
  },
  {
   "item": "J0889",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Grade is given only as 'grade A, BS497', not A15/B125 or C250/D400. BS 497 grade A is heavy duty and the location is a delivery yard, so heavy duty was used. Confirm the grade; if A15 light duty is wanted, use CVR-600-L.",
    "Surface around the cover is not stated. No tarmac reinstatement lines were added; confirm the surface.",
    "The form is labelled 'Other / PPM' but orders a new cover and frame, so it is priced as a cover job."
   ]
  },
  {
   "item": "J0890",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3514.0,
   "confidence": "green",
   "estimator_checks": [
    "Surface is concrete but the channel is in a car park, so rule 6.11 (asphalt) was applied rather than 6.9 (concrete repair kit). Confirm the reinstatement material."
   ]
  },
  {
   "item": "J0891",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Notes say the gully is in good condition and only a 'gully hopper' is needed, but the form is a Defective Gully with grate and frame sizes. Confirm whether a new grate and frame (priced here) or a gully pot/assembly (GUL-POT) is wanted.",
    "Confirm the number of grates (one assumed).",
    "Confirm the exact location, which is vague (rear of the premises, ask the manager)."
   ]
  },
  {
   "item": "J0893",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "3.1+4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "red",
   "estimator_checks": [
    "Confirm that Form 1 (640 x 640 cover, left side of unit 60) and Form 2 (580 x 580 opening, by the side of unit 60) are the same chamber and so one cover. If they are two chambers, quote 2 covers and LAB-CIV-D 1, with MAT-MORT 12.",
    "The cover and opening sizes differ (640 vs 580), but both fall in the 600 x 600 band, so the cover code is the same either way.",
    "Form 1 says the chamber opening cannot be measured and the manhole is not accessible, while Form 2 gives an opening size. Confirm the size.",
    "The forms mention a foul smell investigation. Confirm no jetting or CCTV is wanted as well.",
    "Concrete surround: no surface repair line has been added."
   ]
  },
  {
   "item": "J0894",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1672.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the two 4 inch (110 mm) branches are replaced inside the chamber, with no excavation, and that 2 PIP-FIT is enough",
    "Confirm the extent of the missing benching, and whether extra benching mix is needed beyond the standard mortar",
    "Confirm man entry or breathing apparatus is not needed for a chamber 600 mm deep",
    "Confirm the exact location and the surface around the manhole"
   ]
  },
  {
   "item": "J0896",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "yellow",
   "estimator_checks": [
    "300 x 300 mm opening is under 500 mm and may be mis-measured: confirm the actual size",
    "confirm the site entrance is trafficked by vehicles (600 x 600 standard cover used rather than a plate)",
    "no 'Part required' stated: replacement assumed as the default for a Defective Manhole form"
   ]
  },
  {
   "item": "J0897",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 3685.0,
   "confidence": "green",
   "estimator_checks": [
    "Part required mentions only grids and frame; confirm the full 4.5 m run is being replaced rather than just the grates",
    "confirm no traffic management or fencing is needed on the busy public footpath"
   ]
  },
  {
   "item": "J0898",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1426.0,
   "confidence": "green",
   "estimator_checks": [
    "surface is block paving in a car park: 6.11 (asphalt) was not applied because the surface is reinstated in the same material (6.12), so confirm no surface lines are needed",
    "engineer notes the channel is also a public footpath: confirm whether any fencing or traffic management is needed"
   ]
  },
  {
   "item": "J0899",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 3.0,
     "unit_price": 330,
     "total": 990.0,
     "rule": "1.5+3.3+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 18.0,
     "unit_price": 68,
     "total": 1224.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3544.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Mixed job: only the covers are priced (rule 1.5). The three channel forms (including the catchpit replacement) are not priced and may need a separate quote.",
    "Cover count: 'new mh x2' on form 3 plus the separate rear-of-unit-A5 cover on form 5 gives 3 covers.",
    "Form 3 says the opening cannot be measured but gives 660 x 660 mm; confirm the size.",
    "Form 5 is on grass with no vehicle access, and the form says 'new lid and frame or freeup lid'; confirm a replacement is wanted and that the D400 grade is right for a grass location."
   ]
  },
  {
   "item": "J0901",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2728.0,
   "confidence": "green",
   "estimator_checks": [
    "Weekend working was only a preference ('would be ideal') and the forms say out-of-hours is not possible, so this is quoted in hours. Confirm with the client.",
    "Chamber opening was not measured. The 700x700 size comes from the cover measurement, so confirm it.",
    "The 'black dye' and the m60/qc10 materials in 'Part required' are not priced, as the rules add no line for them. Confirm whether dye is wanted.",
    "Busy car park: confirm whether traffic management or fencing is needed."
   ]
  },
  {
   "item": "J0902",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is 'unknown', so this is priced as a crew visit only. Confirm what is needed on site: the gully pot is missing, so it will probably need a new gully pot and grate.",
    "Confirm whether a civils crew (LAB-CIV-H) or a drainage crew (LAB-DRN-H) should attend. I used civils because the work looks like a gully pot replacement, not a blockage or jetting job.",
    "Confirm the surface type and whether the parking bays need cordoning off."
   ]
  },
  {
   "item": "J0904",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.12+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "yellow",
   "estimator_checks": [
    "no cover sizes measured on either defective manhole form, so CVR-600-H is a default; confirm size",
    "forms 1, 2 and 3 are assumed to be the same manhole (car park entrance, no distinct location given), with form 4 (near stairs) the second cover; confirm the count",
    "confirm whether the form 4 cover is inside a building, which would make it a sealed chequer plate (CVR-PLATE)",
    "form 4 has concrete poured over the manhole, so a breaker and extra waste may be needed; not priced as the rules give no line for it",
    "clearing the stones, rock and mud from the manhole is assumed to be covered by the gang time; confirm no tanker or extra work is needed"
   ]
  },
  {
   "item": "J0905",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "E600 grade is above the D400 maximum on the rate card, so CVR-600-H is the closest match; confirm it is acceptable",
    "the location is described as a cess pit; confirm a cover and frame replacement is what is wanted"
   ]
  },
  {
   "item": "J0906",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 450, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600x450-L",
     "description": "Cover & frame, solid top, 600 x 450, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 160,
     "total": 160.0,
     "rule": "4.7+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1388.0,
   "confidence": "green",
   "estimator_checks": [
    "Whether the manhole is off-demise (client to confirm responsibility before the work goes ahead)",
    "Whether vehicles run over the grass verge at the entrance; if so, change to CVR-600x450-H"
   ]
  },
  {
   "item": "J0907",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "GUL-POT",
     "description": "Gully pot / gully assembly (new)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "7.2 (new gully pot ordered in Part required)"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2 (fittings as required, parts unknown)"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1/7.3 (jetter and HPWJ to clear downstream asked for)"
    }
   ],
   "quote_total": 5479.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the dig depth and length of pipe affected once excavated, as fittings are 'as required'",
    "Confirm whether a drainage jetting crew is needed in addition to the civils gang (jetter and HPWJ downstream)",
    "Tarmac reinstatement after the dig is not covered by the dig rule; confirm whether asphalt repair is needed",
    "Confirm whether fencing is needed (the gully is by the main building and boiler room doors)",
    "Form grade (A15) conflicts with 'heavier grade required: Yes'; no grate is being replaced, so this is not priced"
   ]
  },
  {
   "item": "J0908",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1+7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 2530.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the crawler camera should be priced as the drainage crew (LAB-DRN-D) or as a separate CCTV crew or HIR-CAM hire",
    "whether the chamber benching rebuild needs a civils gang (7.4) or is covered by the small-materials allowance for rapid seal grout",
    "evening or night working: the engineer only suggested it ('may be best'), so it is quoted in hours",
    "liner scope: no PIP-LINER is priced because patch positions and lengths depend on the CCTV survey",
    "tanker waste tonnage and disposal, because the forms give no volume",
    "access to the other manhole near the MOT bay, which has not been found yet"
   ]
  },
  {
   "item": "J0909",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3/crew visit"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1: no replacement cover or frame is ordered, only manhole keys, a shovel and shears, so this is priced as a visit to re-seat the lid and cut back the bush. Confirm whether a rebed or a new cover is needed.",
    "Form 2: the canopy glazing sheet is not drainage or manhole work and has no line in the rate card. Confirm whether it should be quoted separately or left out.",
    "Confirm the manhole size, grade and surface in case the lid needs replacing."
   ]
  },
  {
   "item": "J0910",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 3079.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type is not stated; the concrete repair kit (MAT-CREP) is assumed from the concrete kerb material, so confirm the yard surface (concrete vs tarmac)",
    "form says 2 kerbs required but the text and part required say 2.5 m; priced as 3 m (2.5 m rounded up)",
    "confirm whether the HGV yard counts as a road or car park, which would mean asphalt lines instead of the concrete repair kit"
   ]
  },
  {
   "item": "J0911",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-CCTV-D",
     "description": "CCTV survey / jetting crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1240,
     "total": 1240.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2630.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether silt and concrete waste needs disposal (WST-GRS or WST-LIQ tonnage and a consignment note) as the forms don't say",
    "whether one full shift is enough, as the engineer says a full shift is still required after today's progress",
    "whether the CCTV crew is needed all day or only after the jetting is complete",
    "the line is only 'suspected' to be 12 inch surface water, so confirm the line and extent",
    "access to be arranged with the unit manager"
   ]
  },
  {
   "item": "J0912",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 55,
     "total": 275.0,
     "rule": "4.16+4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    }
   ],
   "quote_total": 1605.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Only the top grates are being replaced and the channel run is undamaged, so no CHN-RUN sections, bedding materials or surface reinstatement are priced. Confirm this.",
    "The 5 grates are in 3 locations (1 + 2 + 2), so a full civils day is priced rather than a half day. Confirm the labour.",
    "The form is labelled Other / Reactive but the work is on channel grates, so it is priced as a channel job.",
    "Confirm the grate spec (poly heel guard, C250, 120 x 500 mm) matches the CHN-GRATE rate-card item.",
    "Confirm whether SRV-UTIL and WST-GEN are needed if no ground is broken."
   ]
  },
  {
   "item": "J0913",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.5+4.13+3.2"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.3+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 3246.0,
   "confidence": "red",
   "estimator_checks": [
    "Form 1 only asks for re-benching of the chamber, not a new cover. Confirm whether a cover is needed there or whether it should be priced as chamber repair (7.4).",
    "Form 2 says the lid is seized and 'possible break out'. No new cover is explicitly ordered, so confirm replacement is needed (default 2.4 applied).",
    "Form 2 says the opening cannot be measured but gives 635 x 635. It also describes a footpath but is graded D400. Confirm size, grade and location.",
    "Confirm Form 1 and Form 2 are two separate manholes (locations differ, same 635 x 635 size).",
    "Out-of-hours work is required, so the night/weekend civils day rate is used.",
    "Block paving surface: no reinstatement line is added by the rules. Confirm whether paving to match is needed."
   ]
  },
  {
   "item": "J0914",
   "is_manhole_job": true,
   "job_type": "manhole: rebed / reset existing cover and frame (no new cover)",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.8"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 10.0,
     "unit_price": 68,
     "total": 680.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 15.0,
     "unit_price": 6,
     "total": 90.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-PSAND",
     "description": "Kiln-dried jointing sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 9,
     "total": 54.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2154.0,
   "confidence": "yellow",
   "estimator_checks": [
    "number of manholes (the form says 'manholes' but gives no count)",
    "cover sizes and grades",
    "whether the work is a rebed only or new covers and frames are needed",
    "surface type (tarmac or other) and whether reinstatement is needed",
    "whether traffic management is needed at the main entrance road"
   ]
  },
  {
   "item": "J0915",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 55,
     "total": 55.0,
     "rule": "1.3+2.2+4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    }
   ],
   "quote_total": 695.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form is labelled 'Other / PPM' and gives no channel length or sump details. I treated it as a grate-only replacement on a Birco channel drain/catch-pit (C250, 500 x 150).",
    "Confirm whether only the missing grate is needed (1 grate, or 2 if the grate is split in half) or whether the channel run or catch-pit unit also needs replacing.",
    "I left out the standard dig and surface lines (utility plans, waste, mortar, asphalt) because a grate swap does not break ground. Confirm no reinstatement is needed in the car park tarmac.",
    "Confirm the grate part and size match the existing Birco product."
   ]
  },
  {
   "item": "J0916",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1923.0,
   "confidence": "green",
   "estimator_checks": [
    "Out of hours was only suggested because of the business entrance, so the quote is priced in hours. Confirm whether nights or weekends are needed.",
    "Block paving is not tarmac, so there are no surface reinstatement lines. Confirm whether any paving needs relaying."
   ]
  },
  {
   "item": "J0917",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.3"
    }
   ],
   "quote_total": 1140.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether descaling plus CCTV look-see fits in one day with the drainage gang",
    "whether a separate CCTV crew or crawler camera is needed",
    "location and access to the 4 inch float line and stack",
    "whether the mini cleaner 30 m is part of the drainage gang's kit or needs hiring in"
   ]
  },
  {
   "item": "J0918",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "red",
   "estimator_checks": [
    "Length '70.' is ambiguous: 70 m (over 10 m, so not priced in full, 2 m priced) or 70 mm (rounds up to 1 m, minimum 2 m). Both give 2 m, but confirm the real length and whether the whole run needs replacing.",
    "'Complete channel' conflicts with a possible local defect. Confirm the scope and quote the full run separately if needed.",
    "Grade E600 (forklift yard) is higher than the D400 on the rate card. Confirm the channel grade is suitable."
   ]
  },
  {
   "item": "J0920",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "3.1+4.12+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Actual cover size: 102 x 72 mm is implausible, and the forms say the opening could not be measured",
    "Location and traffic type (path or vehicle area), which decides between a plate and a standard cover",
    "Grade: A15 was taken from the form, so confirm light duty is right",
    "Whether the two forms are the same cover; they have identical sizes and no location, so one cover was priced"
   ]
  },
  {
   "item": "J0922",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 395,
     "total": 395.0,
     "rule": "4.4+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2133.0,
   "confidence": "green",
   "estimator_checks": [
    "Cover is seized and could not be lifted, so it is priced as a replacement (rule 2.4). Confirm the replacement is needed once it is open.",
    "Size comes from the 780 x 780 cover measurement, because the chamber opening could not be measured. Confirm it on site."
   ]
  },
  {
   "item": "J0924",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 7.0,
     "unit_price": 95,
     "total": 665.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 14.0,
     "unit_price": 55,
     "total": 770.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 56.0,
     "unit_price": 6,
     "total": 336.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 14.0,
     "unit_price": 19,
     "total": 266.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 14.0,
     "unit_price": 6,
     "total": 84.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 3465.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the dye line: the channel is at a car park entrance in block paving, and no asphalt or concrete repair line was added."
   ]
  },
  {
   "item": "J0925",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm Form 2 (car park space by the cafe, concrete reinstatement around the gully) is the same gully as Form 1 (service yard next to parking bays); it was priced as one gully",
    "Saw, breaker and generator hire are mentioned in the forms but not priced, as the rules add no hire line for a gully",
    "Confirm that the gully pot itself is not broken"
   ]
  },
  {
   "item": "J0926",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 3079.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0927",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.10"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm Forms 1 and 2 describe the same chamber (same location under caravan 3 decking, each ordering x1) and that only one cover is needed. If there are two covers, the quote needs 2 covers, LAB-CIV-D 1 and 12 MAT-MORT.",
    "Confirm the opening size. Form 1 says 450x450 and Form 2 says 480x480; both are under 500 mm, so the cover line comes from rule 4.10.",
    "Confirm the cover type. The opening is under 500 mm and sits on a pedestrian path under decking, so I used CVR-PLATE. If vehicles run over it, use CVR-600-H instead.",
    "The forms say the chamber is circular with plastic sections and holds the fresh water supply tap. Confirm a standard slide-out cover and frame fits, and that the water supply can be worked around.",
    "Confirm site will remove the decking boards before the crew attends."
   ]
  },
  {
   "item": "J0930",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "4.16"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 55,
     "total": 110.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2061.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Surface is given as 'Other', with notes saying concrete slabs 600x600 and concrete. Confirm whether the surface is concrete (MAT-CREP 4) or slabs only (no surface line, rule 6.12).",
    "'Part required' orders 1x 1.0m unit, so CHN-RUN is 1 under 4.16. Confirm this rather than the 2 m minimum from 4.20.",
    "The blue catch pit and SW manhole nearby are not part of the order. Confirm no sump unit is to be replaced."
   ]
  },
  {
   "item": "J0931",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "HIR-BA",
     "description": "Breathing apparatus set (confined space)",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 180,
     "total": 180.0,
     "rule": "7.4 (entry equipment named in Part required)"
    }
   ],
   "quote_total": 1510.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Where the tarmac is blocking the line (chamber or pipe) and how deep it is",
    "Whether the work is man entry or a dig, which would use the 7.2 pattern instead",
    "Whether breathing apparatus and confined space kit are needed, or only standard entry equipment",
    "Whether a drainage crew is needed to jet and clear after the tarmac is removed",
    "Whether chamber base repair materials (MAT-MORT, PIP-CHAN) are needed after the tarmac is removed",
    "Whether the tarmac surface needs reinstating"
   ]
  },
  {
   "item": "J0932",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-CCTV-D",
     "description": "CCTV survey / jetting crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1240,
     "total": 1240.0,
     "rule": "7.1"
    },
    {
     "code": "WST-LIQ",
     "description": "Liquid waste disposal (gully / interceptor / septic), per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 120,
     "total": 480.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 3135.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of liquid waste to be removed (estimated at 4)",
    "the notes say the root-blocked gully will need dug out by hand, but 'Part required' only orders a tanker and CCTV. Confirm whether a dig is wanted (it would be priced as a dig under 7.2)",
    "pipe diameter and material are recorded as 'Other', and the line length is unknown",
    "the downstream asset is a soakaway, so confirm the tanker can empty it and that the CCTV crew can access the line"
   ]
  },
  {
   "item": "J0933",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "7.6"
    },
    {
     "code": "MSC-01",
     "description": "Other materials (allow)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 50,
     "total": 50.0,
     "rule": "7.6"
    }
   ],
   "quote_total": 690.0,
   "confidence": "yellow",
   "estimator_checks": [
    "size and shape of the brickwork to be covered",
    "material choice (metal sheet or plastic) and how it will be fixed",
    "exact location (left side, walking down from the car park)",
    "whether the gully grates also need clearing or work"
   ]
  },
  {
   "item": "J0934",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": [
    "Work is on a gully grate and frame (the form is labelled Defective Manhole), so it is priced as a gully, not a cover",
    "Frame is a 100 mm deep type; confirm the replacement heavy-duty hinged grate fits it, since the opening could not be measured"
   ]
  },
  {
   "item": "J0935",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-ND",
     "description": "Vacuum tanker + crew, nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1890,
     "total": 1890.0,
     "rule": "7.1+5.9"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2755.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of grease/fat waste to be removed",
    "whether jetting is also required (the form mentions a jetter but only orders a tanker unit); if so add a nights drainage crew (LAB-DRN-ND 1)",
    "water supply on site: no tap, so the tanker must bring water",
    "the form says access is after 8pm only, so nights rate applied",
    "manholes over 2 m deep: confirm whether man entry or breathing apparatus is needed"
   ]
  },
  {
   "item": "J0937",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 4.0,
     "unit_price": 95,
     "total": 380.0,
     "rule": "4.17"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 8.0,
     "unit_price": 55,
     "total": 440.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 32.0,
     "unit_price": 6,
     "total": 192.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 19,
     "total": 152.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 8.0,
     "unit_price": 6,
     "total": 48.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 2542.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0938",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.11+4.14"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Two covers priced: the forms give different locations (unit 70 and unit 421) and slightly different sizes (600x460 and 620x460).",
    "Both sizes fall just outside the 600x450 band, so the next size up (600x600) was used. Confirm the frame size on site.",
    "Light or heavy duty is unclear: the grade is C250 for light goods vehicles, but the surface is grass. Heavy duty (H) was used following the form grade. Confirm whether vehicles can reach either cover.",
    "The openings may be mis-measured, since both widths are 460."
   ]
  },
  {
   "item": "J0939",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2480.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Whether the tanker is needed for pumping out only (no grease or contaminated waste, so no WST-GRS or WST-NOTE priced)",
    "Whether the CCTV and root cutting can be done in one day with the drainage crew",
    "Whether the root-blocked gully (form 1) and the surcharged FW line (form 2) are the same drain run, and whether a dig will be needed afterwards",
    "Upstream and downstream asset depths on form 1 are unknown"
   ]
  },
  {
   "item": "J0940",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    },
    {
     "code": "WST-GRS",
     "description": "Grease / contaminated waste disposal, per tonne, minimum applies",
     "unit": "tonne",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "7.1"
    },
    {
     "code": "WST-NOTE",
     "description": "Waste consignment note",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 25,
     "total": 25.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 2255.0,
   "confidence": "yellow",
   "estimator_checks": [
    "tonnes of contaminated waste from the interceptor and silt trap",
    "whether one tanker day covers both locations (front of reception and service yard exit)",
    "interceptor type (not known)"
   ]
  },
  {
   "item": "J0941",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "green",
   "estimator_checks": [
    "The job has gully and channel forms, so only the gully (the main repair) is priced under 1.5. The channel form (1 m, new base) is not priced; confirm whether it needs a separate quote."
   ]
  },
  {
   "item": "J0942",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Both forms give 'Part required: unknown', so this is priced as a crew visit to find out what is needed.",
    "Confirm whether the channel (8 sections, about 7.2 m, concrete split type) needs replacing, and what is needed.",
    "Confirm whether the gully (500 x 400 frame, C250) needs a new grate or frame.",
    "Confirm whether a drainage crew (LAB-DRN-H) would suit this visit better than a civils crew."
   ]
  },
  {
   "item": "J0943",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1426.0,
   "confidence": "red",
   "estimator_checks": [
    "The defective run is 15 m, over the 10 m limit, so it is not priced in full. Only 2 m is quoted; confirm the real extent of the defect and the scope.",
    "The location text is unclear ('across the really building'). Confirm whether it is an entrance or shop front, which would add MAT-DYE.",
    "Confirm the surface is block paving (no surface line added) and that there is no sump unit."
   ]
  },
  {
   "item": "J0944",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-110",
     "description": "110 mm drainage pipe, per 3 m length",
     "unit": "length",
     "qty": 2.0,
     "unit_price": 38,
     "total": 76.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 22,
     "total": 44.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4302.0,
   "confidence": "yellow",
   "estimator_checks": [
    "depth of downstream asset (unknown)",
    "extent and cause of collapse, and the plastic obstruction in the pipework",
    "length of pipe to be replaced (6 m between assets assumed)",
    "whether the area is public or busy enough to need temporary fencing"
   ]
  },
  {
   "item": "J0945",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1302.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface around the gully (tarmac, concrete or block paving) is not stated, so no surface reinstatement lines are included",
    "form is labelled Other / Quoted Works, so confirm the work is only a replacement grate and frame (the engineer asks for a 305 mm circular grid, but the rate card has only a heavy-duty hinged grate)"
   ]
  },
  {
   "item": "J0946",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "3.2+4.15"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 8.0,
     "unit_price": 68,
     "total": 544.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 2909.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 notes the chamber is full of concrete and the locking part of the lid is split. Confirm whether the concrete needs breaking out or clearing, and whether the gully pot is damaged (GUL-POT not included).",
    "Confirm the two gullies are separate items, since the locations differ (2nd from far end of access road vs one of the double set outside the service yard)."
   ]
  },
  {
   "item": "J0947",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 10.0,
     "unit_price": 95,
     "total": 950.0,
     "rule": "4.17 (10 sections x 0.91 m = 9.1 m, rounded up)"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 20.0,
     "unit_price": 55,
     "total": 1100.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 2.0,
     "unit_price": 1150,
     "total": 2300.0,
     "rule": "5.7 (run 8 m or more)"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2 (replaces WST-GEN, run 8 m or more)"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 80.0,
     "unit_price": 6,
     "total": 480.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 20.0,
     "unit_price": 19,
     "total": 380.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 20.0,
     "unit_price": 6,
     "total": 120.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 6575.0,
   "confidence": "red",
   "estimator_checks": [
    "The notes mention about 20 m of channel that could not be jetted, but the form orders 10 sections (about 9.1 m). Confirm the actual length to replace and whether a run over 10 m is involved (rule 4.18).",
    "Confirm the section length of 910 mm, so that 10 sections is about 9.1 m.",
    "This is a concrete split channel (Safeticurb) with metal edge protectors, not a grated ACO. Confirm whether the CHN-GRATE lines (2 per metre) are needed.",
    "Confirm that the 'replacement channel' part is to be priced as the rate-card channel run.",
    "Confirm whether a second civils gang day is needed for a run of about 10 m."
   ]
  },
  {
   "item": "J0948",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "4.17+4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 6.0,
     "unit_price": 55,
     "total": 330.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 24.0,
     "unit_price": 6,
     "total": 144.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 19,
     "total": 114.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 6,
     "total": 36.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 3514.0,
   "confidence": "red",
   "estimator_checks": [
    "The 15 m run beside the building is over 10 m and has not been priced (rule 4.18). Confirm how it should be quoted, for example as a separate survey or quote, or whether only a local repair is needed.",
    "Car park run: the form says A15 (pedestrian) with 'heavier grade required: Yes' in a car park. Confirm the grade needed (D400 is likely).",
    "Car park run: the note '1m completely concreted kn change 3m 1 either side' conflicts with the 3 m length and the tarmac surface. Confirm the length and the surface.",
    "Forms 1 and 2 (Other, part unknown) were treated as duplicates of the channel forms 3 and 4 (same locations). Confirm.",
    "Confirm that the sump on the building run is in good condition and not being replaced (no CHN-SUMP priced)."
   ]
  },
  {
   "item": "J0949",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is blank (\".\"), so no replacement was ordered. Confirm whether a new cover and frame is needed once the lid is lifted.",
    "Confirm the location: the form only says \"sea last picture\".",
    "Confirm how many manholes have lids that cannot be lifted.",
    "Confirm the size, grade and surface of each cover."
   ]
  },
  {
   "item": "J0950",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0951",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0952",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2258.0,
   "confidence": "green",
   "estimator_checks": [
    "Confirm the two-part cover is replaced by a single large D400/C250 cover and frame"
   ]
  },
  {
   "item": "J0953",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Job has mixed forms (gully plus two root ingress forms). Only the gully was priced under rule 1.5. Confirm whether the root cutting/jetting on SW6 and SW7 and the tanker to empty SW5 should be quoted separately (rules 7.1 and 7.3).",
    "Confirm that the gully grate is 350 x 350 mm in a concrete surface and that a single grate is being replaced. The pot is not reported as broken, so no gully pot is priced."
   ]
  },
  {
   "item": "J0956",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    }
   ],
   "quote_total": 2266.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0957",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0958",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 750 x 750 or larger, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-750-H",
     "description": "Cover & frame, solid top, 750 x 750 or larger, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 520,
     "total": 520.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-ND",
     "description": "Civils gang (2 operatives + van), nights/weekends, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1590,
     "total": 1590.0,
     "rule": "5.2+5.9"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 3358.0,
   "confidence": "green",
   "estimator_checks": [
    "Form says new biscuits or brickwork may be needed below the frame; no quantity is given, so no MAT-BRICK line was added. Confirm whether to allow for it.",
    "Night working is stated as required in the access notes, so the nights/weekends civils gang rate is used. Confirm the time window."
   ]
  },
  {
   "item": "J0959",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-TNK-D",
     "description": "Vacuum tanker + crew, in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1390,
     "total": 1390.0,
     "rule": "7.1"
    }
   ],
   "quote_total": 1390.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Debris and stones are not grease or contaminated waste, so no WST-GRS or WST-NOTE line was added. Confirm whether waste disposal or a consignment note is needed.",
    "Confirm whether jetting or CCTV is also wanted after the tanker clears the manhole. The form asks only for the tanker.",
    "Confirm the exact location ('don't tell dad cafe') and which foul water manhole it is."
   ]
  },
  {
   "item": "J0960",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.8+4.14"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "cover grade not given (heavy duty assumed because the cover is at the front of the unit with parked cars)",
    "surface type not given (if tarmac, add MAT-ASPH 2, MAT-BAND 1, SUN-CARR 1)",
    "measurements of 660 x 510 mm are for the opening or old cover (4.8 gives the next size up, 600 x 600)"
   ]
  },
  {
   "item": "J0961",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the work is concreting or benching the base of fmh 29 so it lines up with the outlet",
    "Confirm whether a half-round channel section is needed",
    "Confirm access and whether traffic management is needed (drive-thru business)",
    "Confirm man entry or confined-space requirements"
   ]
  },
  {
   "item": "J0962",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2098.0,
   "confidence": "green",
   "estimator_checks": [
    "The note 'OOHS' only describes access (loading bay closes at 7pm). It does not clearly require out-of-hours work, so the quote uses in-hours labour. Confirm whether nights/weekends are needed."
   ]
  },
  {
   "item": "J0963",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "3.2+4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2806.0,
   "confidence": "green",
   "estimator_checks": [
    "Opening could not be measured, so the 700 x 700 mm size is taken from the old cover; confirm it",
    "Two covers (unit 10 and unit 9) priced as separate items, as the locations differ"
   ]
  },
  {
   "item": "J0964",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 5.0,
     "unit_price": 95,
     "total": 475.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 10.0,
     "unit_price": 55,
     "total": 550.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.7"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 40.0,
     "unit_price": 6,
     "total": 240.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 19,
     "total": 190.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 10.0,
     "unit_price": 6,
     "total": 60.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 210,
     "total": 840.0,
     "rule": "6.9"
    },
    {
     "code": "MAT-DYE",
     "description": "Coloured concrete dye",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 14,
     "total": 14.0,
     "rule": "6.10"
    }
   ],
   "quote_total": 3699.0,
   "confidence": "green",
   "estimator_checks": [
    "confirm the two forms are separate channel runs (3 m and 1.5 m, different widths) and not a repeated form for the same run",
    "confirm the location is a shop front or entrance (colour dye line)"
   ]
  },
  {
   "item": "J0965",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.7"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.7"
    }
   ],
   "quote_total": 1917.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required text mentions 4 asphalt repair kits and 2 mortar, which differs from the standard 2 asphalt kits and 4 mortar; confirm quantities",
    "Gully is sunk significantly, so confirm the extent of surfacing repair needed around it",
    "Confirm whether the gully pot is broken and needs replacing (GUL-POT not included)",
    "No location description given"
   ]
  },
  {
   "item": "J0966",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "what the broken 'biscuit' and the holes at the side of the cone are (cover, gully or other)",
    "what part is actually required",
    "whether the work is civils or drainage"
   ]
  },
  {
   "item": "J0968",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "red",
   "estimator_checks": [
    "The recorded size of 6300 x 4800 mm is impossible, and the form says the opening could not be measured. Confirm the real cover size; it could be 630 x 480 mm, but that is a guess. CVR-600-H is the default.",
    "The grade conflicts: the old cover is A15 but the form says a heavier grade is required (Yes). H was chosen per 4.13. Confirm the grade.",
    "Confirm whether the area is a footpath or vehicle area, because that affects the cover choice if the size turns out to be small or rectangular."
   ]
  },
  {
   "item": "J0969",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 1628.0,
   "confidence": "yellow",
   "estimator_checks": [
    "number of chambers/benchings affected (description says multiple, no count given)",
    "whether one day is enough for the work on clay pipework",
    "whether any pipe fittings or channel sections beyond one are needed",
    "access inside the ground floor ladies toilets and whether work can be done in hours"
   ]
  },
  {
   "item": "J0970",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / chequer plate",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.3"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 12.0,
     "unit_price": 68,
     "total": 816.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2836.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 2 (Other form) does not order a new cover. Confirm the seized 850x850 cover in the underground car park should be replaced rather than freed.",
    "Form 2 says most assets in the car park have the same fault, but gives no number. Priced as 1 cover; confirm how many.",
    "Confirm the grade of the 850x850 cover. 'Grade a' is read as A15, so CVR-PLATE is used.",
    "Confirm the 650x650 cover at the main road entrance should be heavy duty. The old cover is A15 but heavier grade is marked Yes.",
    "Confirm the surface around the underground car park cover, as no surface was given."
   ]
  },
  {
   "item": "J0971",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    }
   ],
   "quote_total": 1426.0,
   "confidence": "red",
   "estimator_checks": [
    "Defective length is 1 m, but the notes say the whole run is about 12 m if all is removed. Confirm the scope is only the 1 m local repair, priced at the 2 m minimum.",
    "Confirm whether the fallen walls mean more of the run needs replacing.",
    "No 'Part required' is given, so replacement was assumed from the Defective Channel form.",
    "Block paving: no surface line added (rule 6.12). Confirm whether paving reinstatement is needed.",
    "Grade is E600 forklift yard. Confirm the channel grate rating matches."
   ]
  },
  {
   "item": "J0973",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "green",
   "estimator_checks": [
    "Whether the client requires out-of-hours working or it is only a preference. It is priced in hours; if required, switch to LAB-CIV-NH.",
    "The 2.35 m height restriction at the car park for van access"
   ]
  },
  {
   "item": "J0974",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "rodding eye cover size (none given; priced as a standard 600x600 because it is in a parking bay)",
    "grade (none given; defaulted to heavy duty)",
    "surface type: if tarmac, add MAT-ASPH 2, MAT-BAND 1, SUN-CARR 1",
    "whether the frame is still in place or only the lid is missing"
   ]
  },
  {
   "item": "J0975",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.17+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "green",
   "estimator_checks": [
    "channel width of 1000 mm looks unusual for ACO channel, confirm it does not affect the part chosen",
    "no 'Part required' given, replacement assumed as default (2.4)",
    "confirm there is no sump or trash box to replace"
   ]
  },
  {
   "item": "J0976",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0977",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0978",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "2.3"
    }
   ],
   "quote_total": 640.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Part required is 'unknown' on both forms, so this is priced as a crew visit only. Confirm what needs replacing: the concrete channel cover or the channel itself.",
    "Confirm whether the two forms describe the same item (about 910 x 230 mm and 240 x 900 mm) or two separate items.",
    "Confirm whether the work is on a catchpit or sump unit, and the surface and location, before any replacement is priced."
   ]
  },
  {
   "item": "J0979",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400) / 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 5.0,
     "unit_price": 395,
     "total": 1975.0,
     "rule": "3.1+3.3+4.4+4.13"
    },
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 2.0,
     "unit_price": 330,
     "total": 660.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 4.0,
     "unit_price": 1150,
     "total": 4600.0,
     "rule": "5.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "6.2"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 42.0,
     "unit_price": 68,
     "total": 2856.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 10496.0,
   "confidence": "green",
   "estimator_checks": [
    "7 covers in total: bay 34, bay 36, bay 13, bay 14, 2 at bay 19, bay 20",
    "the 720 x 720 covers priced as CVR-675-H under rule 4.4; no existing cover size is given in the text",
    "the surface is concrete, so no tarmac surface lines are added"
   ]
  },
  {
   "item": "J0981",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 675 x 675, heavy duty (D400)",
   "quote_lines": [
    {
     "code": "CVR-675-H",
     "description": "Cover & frame, solid top, 675 x 675, heavy duty (D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 395,
     "total": 395.0,
     "rule": "4.4+4.13"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2133.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0982",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.12+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1558.0,
   "confidence": "yellow",
   "estimator_checks": [
    "cover and frame size (none given, defaulted to 600x600)",
    "load grade (none given, defaulted to heavy duty)",
    "whether vehicles can reach the grass verge, which would change the grade",
    "surface is grass verge, so no tarmac reinstatement lines were added"
   ]
  },
  {
   "item": "J0983",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2 (parts unknown)"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2 (concrete reinstatement)"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2 (concrete reinstatement)"
    }
   ],
   "quote_total": 4688.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Confirm the collapsed clay pipe is to be dug and relaid (the form gives no part required). The pipe length and fittings are unknown, so only 1 fitting is allowed.",
    "Confirm whether the two gully grates (Forms 2 and 3) are priced separately. Only one main repair is priced per visit, so the gully work is not in this quote.",
    "Confirm whether temporary fencing is needed in the service yard."
   ]
  },
  {
   "item": "J0984",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "5.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 2098.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0985",
   "is_manhole_job": false,
   "job_type": "not manhole: channel drain (ACO-type) repair or replacement",
   "quote_lines": [
    {
     "code": "CHN-RUN",
     "description": "Channel drain, per 1 m length incl. grate",
     "unit": "m",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "4.18+4.20"
    },
    {
     "code": "CHN-GRATE",
     "description": "Channel drain replacement grates & locking bolts",
     "unit": "each",
     "qty": 4.0,
     "unit_price": 55,
     "total": 220.0,
     "rule": "4.21"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.6"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-BAL",
     "description": "Ballast, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 6,
     "total": 96.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 19,
     "total": 76.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-SAND",
     "description": "Sharp sand, 25 kg bag",
     "unit": "bag",
     "qty": 4.0,
     "unit_price": 6,
     "total": 24.0,
     "rule": "6.5"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 4.0,
     "unit_price": 260,
     "total": 1040.0,
     "rule": "6.11"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 2.0,
     "unit_price": 95,
     "total": 190.0,
     "rule": "6.11"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.11"
    }
   ],
   "quote_total": 2701.0,
   "confidence": "red",
   "estimator_checks": [
    "Defective run is 15 m, over the 10 m limit (4.18), so only 2 m is priced. Confirm the actual extent of the defect and whether the full run needs replacing, which would need a separate quote.",
    "Form says 'small sections of aco 3 meters section' across levels 5, 4 and 3, which conflicts with the 15 m length. Confirm the number of locations and the length at each.",
    "Access issue just says 'ohh'. Confirm whether out-of-hours working is required. If so, change the labour to LAB-CIV-NH.",
    "Part required is only 'breaking out equipment'. Confirm that replacing the channel is intended, and whether a breaker (HIR-BRK) or excavator is needed.",
    "Grade is E600 (forklift yard) but 'heavier grade required' is No. Confirm the grade of replacement channel and grates.",
    "Confirm the surface is a car park or road (tarmac reinstatement priced under 6.11), and that the channel includes no sump.",
    "Channel could not be lifted and may need breaking up, with risk of floor damage."
   ]
  },
  {
   "item": "J0986",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4299.0,
   "confidence": "yellow",
   "estimator_checks": [
    "whether the collapse is confirmed and a dig is wanted (the form says 'possible')",
    "pipe length and parts needed: 3.5 m between assets, but notes say blockage 8.5 m from caravan, so PIP-110 and extra fittings are not priced",
    "whether the chamber infiltration on Form 1 is part of this dig or needs separate work",
    "whether fencing is needed (caravan park, public area)",
    "grass surface: reinstatement priced as none"
   ]
  },
  {
   "item": "J0987",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-DRN-D",
     "description": "Drainage gang (2 operatives + jetter van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1090,
     "total": 1090.0,
     "rule": "7.3"
    },
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 1.0,
     "unit_price": 1150,
     "total": 1150.0,
     "rule": "7.4"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.4"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.4"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "7.4"
    },
    {
     "code": "PIP-CHAN",
     "description": "Half-round channel section for chamber base",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 26,
     "total": 26.0,
     "rule": "7.4"
    }
   ],
   "quote_total": 2718.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Form 1 has Part required 'unk', which could mean a crew visit only (rule 2.3). I priced the work described instead: jetting and CCTV plus re-benching. Confirm which is wanted.",
    "Whether the blocked 150mm VC pipe needs a dig or a patch liner once the CCTV result is known",
    "Whether a second crew (drainage plus civils) is justified for the two chambers at unit 3",
    "Whether the benching repair needs a full day"
   ]
  },
  {
   "item": "J0988",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0990",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-RCEM",
     "description": "Rapid-hardening cement, 25 kg bag",
     "unit": "bag",
     "qty": 16.0,
     "unit_price": 19,
     "total": 304.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-BALB",
     "description": "Ballast, bulk bag",
     "unit": "bulk bag",
     "qty": 2.0,
     "unit_price": 90,
     "total": 180.0,
     "rule": "7.2"
    },
    {
     "code": "HIR-FENCE",
     "description": "Temporary fencing, 10 panels",
     "unit": "set",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4783.0,
   "confidence": "yellow",
   "estimator_checks": [
    "floor surface is concrete, so reinstate in concrete",
    "pipe parts needed are unknown, so only 1 fitting is allowed",
    "extent of break-out and whether the 6 inch pipe needs relaying",
    "whether a camera survey is wanted as a separate item",
    "car park is public or busy, so fencing is included",
    "whether rodent damage needs a rodent barrier"
   ]
  },
  {
   "item": "J0993",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.10+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "yellow",
   "estimator_checks": [
    "actual opening size, as 150x150 mm is probably mis-measured and the chamber was not measured",
    "whether the area by the delivery doors takes vehicles (standard cover used) or is footpath only (CVR-PLATE)",
    "grade: B125 on the form, but vehicles may use the area",
    "engineer says the frame is still okay and only the surrounding concrete has broken away, so confirm that a new cover and frame is needed rather than a rebed or concrete repair"
   ]
  },
  {
   "item": "J0994",
   "is_manhole_job": false,
   "job_type": "not manhole: other civils or drainage work",
   "quote_lines": [
    {
     "code": "LAB-CIV-D",
     "description": "Civils gang (2 operatives + van), in hours, full day",
     "unit": "day",
     "qty": 3.0,
     "unit_price": 1150,
     "total": 3450.0,
     "rule": "7.2"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "7.2"
    },
    {
     "code": "WST-SKIP",
     "description": "Skip hire incl. disposal",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 320,
     "total": 320.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SHGL",
     "description": "Pea shingle, 25 kg bag",
     "unit": "bag",
     "qty": 6.0,
     "unit_price": 7,
     "total": 42.0,
     "rule": "7.2"
    },
    {
     "code": "MAT-SUB",
     "description": "Type 1 sub-base, bulk bag",
     "unit": "bulk bag",
     "qty": 3.0,
     "unit_price": 95,
     "total": 285.0,
     "rule": "7.2"
    },
    {
     "code": "PIP-FIT",
     "description": "110 mm pipe fitting (bend, junction, coupling, cap)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 22,
     "total": 22.0,
     "rule": "7.2"
    }
   ],
   "quote_total": 4204.0,
   "confidence": "yellow",
   "estimator_checks": [
    "surface type to reinstate (none stated, so no surface materials added)",
    "pipe parts needed once the burst is found (only 1 fitting allowed)",
    "whether temporary fencing is needed (public or busy area?)",
    "where the leaking water meter and burst pipe actually are"
   ]
  },
  {
   "item": "J0995",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, chequer plate",
   "quote_lines": [
    {
     "code": "CVR-PLATE",
     "description": "Cover & frame, chequer plate, sealed",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 360,
     "total": 360.0,
     "rule": "4.1"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1588.0,
   "confidence": "green",
   "estimator_checks": [
    "The form asks for 2 tubes of black sealant and a 100mm pipe section. These are not priced because the default rules do not include them. Confirm whether to add MSC-01 for the sealant or PIP-110 for the pipe section."
   ]
  },
  {
   "item": "J0996",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, light duty (A15/B125)",
   "quote_lines": [
    {
     "code": "CVR-600-L",
     "description": "Cover & frame, solid top, 600 x 600, light duty (A15/B125)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 185,
     "total": 185.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    }
   ],
   "quote_total": 1413.0,
   "confidence": "green",
   "estimator_checks": []
  },
  {
   "item": "J0997",
   "is_manhole_job": false,
   "job_type": "not manhole: gully grate / gully repair",
   "quote_lines": [
    {
     "code": "GUL-GRATE",
     "description": "Gully grate & frame, hinged, heavy duty",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 210,
     "total": 210.0,
     "rule": "4.15"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.5"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 4.0,
     "unit_price": 68,
     "total": 272.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-CREP",
     "description": "Rapid concrete repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 210,
     "total": 420.0,
     "rule": "6.8"
    }
   ],
   "quote_total": 1722.0,
   "confidence": "yellow",
   "estimator_checks": [
    "Job mixes one gully form with channel, catchpit and rodding point forms. Only the gully is priced (rule 1.5). Confirm whether the channel re-levelling, catchpit re-seating and block paving repairs need a separate quote.",
    "Gully grate count is taken as 1 from the single gully form.",
    "Gully pot condition is not stated, so no GUL-POT is included.",
    "Surface is block paving, but the gully sits where concrete changes to block paving, so confirm the reinstatement material."
   ]
  },
  {
   "item": "J0999",
   "is_manhole_job": true,
   "job_type": "manhole: cover and frame replacement, 600 x 600, medium/heavy duty (C250/D400)",
   "quote_lines": [
    {
     "code": "CVR-600-H",
     "description": "Cover & frame, solid top, 600 x 600, medium/heavy duty (C250/D400)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 330,
     "total": 330.0,
     "rule": "4.5+4.13"
    },
    {
     "code": "LAB-CIV-H",
     "description": "Civils gang (2 operatives + van), in hours, half day",
     "unit": "half day",
     "qty": 1.0,
     "unit_price": 640,
     "total": 640.0,
     "rule": "5.1"
    },
    {
     "code": "SRV-UTIL",
     "description": "Buried utility plans (search before breaking ground)",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 85,
     "total": 85.0,
     "rule": "6.1"
    },
    {
     "code": "WST-GEN",
     "description": "Waste removal from site (spoil, broken frames, packaging)",
     "unit": "load",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.1"
    },
    {
     "code": "MAT-MORT",
     "description": "Rapid-set bedding mortar, tub",
     "unit": "tub",
     "qty": 6.0,
     "unit_price": 68,
     "total": 408.0,
     "rule": "6.4"
    },
    {
     "code": "MAT-ASPH",
     "description": "Cold-lay rapid asphalt repair kit",
     "unit": "kit",
     "qty": 2.0,
     "unit_price": 260,
     "total": 520.0,
     "rule": "6.6"
    },
    {
     "code": "MAT-BAND",
     "description": "Thermoplastic overbanding tape (seals joint round frame)",
     "unit": "roll",
     "qty": 1.0,
     "unit_price": 95,
     "total": 95.0,
     "rule": "6.6"
    },
    {
     "code": "SUN-CARR",
     "description": "Carriage / delivery of materials or plant",
     "unit": "each",
     "qty": 1.0,
     "unit_price": 45,
     "total": 45.0,
     "rule": "6.6"
    }
   ],
   "quote_total": 2218.0,
   "confidence": "green",
   "estimator_checks": [
    "The notes say the cover is fine and only the foundations and tarmac around it are poor, so confirm whether a new cover and frame is wanted or only a rebed of the existing frame. The form gives no 'Part required', so the default of replace (2.4) was used."
   ]
  }
 ]
}