---
title: LFCS Letter of Offer + BOQ — Structure Spec
created: 2026-05-06
created_by: cowork-lfcs
status: live
source_fixture: "[[letter-of-offer-template]] (Hammond Canal Bridge LFCS submission, May 2026, $434,462 ex GST) + [[boq-pricing-schedule-pattern]]"
related:
  - "[[standard-exclusions-boilerplate]]"
  - "[[../folder-spec]]"
  - "[[../pricing-checklist]]"
  - "[[../element-taxonomy]]"
  - "[[../../skills/lfcs-incl-excl-draft/SKILL]]"
  - "[[../../skills/lfcs-bid-prep-doc/SKILL]]"
  - "[[../../skills/lfcs-letter-of-offer-draft/SKILL]]"
---

# LFCS Letter of Offer + BOQ — Structure Spec

The load-bearing blueprint for what a competent LFCS bid submission looks like. Every output of `lfcs-incl-excl-draft`, `lfcs-bid-prep-doc`, and `lfcs-letter-of-offer-draft` is measured against this spec.

Source fixture: Liam Fitzgerald's Letter of Offer + priced BOQ for Hammond Canal Bridge (P424-HCB) to The Civil Experts, May 2026. $434,462 ex GST. The third canonical reference fixture alongside 2602 Munmorah and 2626 Mack Civil.

---

## Letter of Offer — Structure

The LoO must contain the following sections, in this order. Headings in **bold caps** in the actual document; this spec uses sentence case for readability.

### 1. Header block

- Date (DD MMM YYYY)
- Recipient: Head Contractor legal name + address
- "RE: {Project name} — {Package name}"
- Salutation ("Dear,")

### 2. Submission paragraph

One sentence: "LF Construction Services is pleased to submit our tender offer of the above-mentioned project. For a detailed breakdown of our offer please see the submission schedule attached."

### 3. Lump sum statement

**Spelled out in words AND figures.** Belt and braces.

> Four Hundred Thirty-Four Thousand Four Hundred Sixty-Two Dollars and Zero cents excluding GST ($434,462.00 ex GST)

Exact wording: `{words} excluding GST (${figures} ex GST)`. No "approximately", no ranges, no GST inclusive — submission price is always ex GST.

### 4. Standard Exclusions

Pulled **verbatim** from `[[standard-exclusions-boilerplate]]`. Bullet list. Never modified per-bid; project-specific exclusions go in section 6.

### 5. Preliminaries assumptions

Pulled **verbatim** from `[[standard-exclusions-boilerplate]]` (Standard Preliminaries Assumptions section). What the HC must provide. Bullet list.

### 6. Detailed Exclusions & Assumptions

Three sub-headings, in this order:

- **Exclusions** — project-specific items LFCS is NOT pricing (e.g. earthworks, concrete supply, reo supply, cranage, demolition). Bullet list.
- **Assumptions** — what LFCS has assumed in pricing (e.g. "Assumes both abutments can be poured at the same time"). Bullet list. Critical: any assumption that, if wrong, would trigger a variation belongs here.
- **Inclusions** — what LFCS IS pricing (e.g. supply/erect/strip formwork, place concrete, install reo, Class 2 finish, install precast parapet barriers). Bullet list. Each item must trace to a BOQ line.

### 7. Validity + sign-off

- "This quotation is valid for 30 days from the date of submission."
- Closing paragraph offering further discussion
- Signature block: Liam Fitzgerald, Managing Director, LF Construction Services Pty Ltd, P: 0404 996 250, E: liam.fitzgerald@lfcs.com.au

---

## Letter of Offer — Mandatory clauses to include

These are the project-protection clauses Liam built into the Hammond Canal Bridge LoO. They must appear in every LoO where applicable:

### Discrepancy callout

When LFCS take-off quantities differ from the HC's pricing schedule:

> We have noted discrepancy in quantities from our take off and the pricing schedule. We have updated the submission schedule and highlighted our changes in quantities.

Goes in the Assumptions section. Protects LFCS from being bound to wrong quantities.

### Scope-gap callout

When LFCS notices scope missing from the HC's BOQ:

> We have added {item} at the {location}, which is missing from the pricing schedule.

Goes in the Assumptions section. Tells the HC's QS we're alert AND adding scope they missed.

### Cranage delineation

For any job involving lifts (Super-T, precast, scaffolding):

> Assumes cranage will be provided by the client for installation and removal of {scope}.

Goes in the Assumptions section. **Cranage is the #1 source of bridge-job disputes — never leave it ambiguous.**

### Hire duration assumption

For temporary works (scaffolding, edge protection, temp walkways):

> Allows for {N} week hire of {item}. We have provided rates for weekly hire of {item}, if hire period of over {N} weeks is required.

Combined Assumption + Rate Only line. Protects LFCS if HC programme slips.

### Optional / sacrificial items

Items the client can choose to include or omit:

> We have provided optional rate for {item}.

Goes in the Assumptions section + corresponding BOQ row marked `OPTION`.

---

## BOQ — Pricing Schedule Hygiene

Seven hygiene patterns, all mandatory:

### 1. ADDED rows for missing scope

When LFCS notices scope missing from the HC's pricing schedule, add it as a new line tagged `ADDED` in the Bill Ref column. Examples from Hammond Canal Bridge:

- `ADDED — PRELIMINARIES` (Project Mob/Demob, Supervision, Inductions, Telehandler, LAFHA, Inclement Weather, Temporary Works Design)
- `ADDED — Diaphragm Beams at Abutments` (formwork, reo, concrete)
- `ADDED — ADDITIONAL ITEMS` (bridge edge protection hire, access scaffolding hire)

The `ADDED` marker keeps these visually distinct from the HC's numbered Bill Refs and signals to the QS reviewer that these are LFCS additions.

### 2. "Included in Item X.X.X" cross-references

For items where work is captured in another line (e.g. formwork strip is captured in the formwork erect rate), use the cross-reference text in the Rate column:

- `Strip formwork to abutments — included in Item 6.2.1`
- `Strip bridge deck formwork — Included in Item 7.2.1.1`
- `Install expansion joints to bridge approach slabs — Included in Item 7.2.3.2`

Prevents double-counting AND signals professionalism to the QS.

### 3. Rate Only items

Items LFCS will price as a unit rate but not commit to a quantity (typically hire items, weather standby, day labour). In the Rate column:

- `Hire bridge edge protection — Rate Only`
- `Hire access scaffolding — Rate Only`
- `Install sacrificial ply sheets for super T — Rate Only`

These items don't contribute to the lump sum but give the HC a fallback.

### 4. OPTION rows

Distinct from Rate Only — these are items the client can elect to include or omit. Tagged `OPTION` in the Bill Ref column. Hammond Canal Bridge example: sacrificial ply sheets for the Super-T girders.

### 5. EXCLUDED rows kept visible

When the HC's schedule includes scope LFCS is NOT pricing, do NOT delete the row — keep it visible with `EXCLUDED` in the Rate column. Hammond Canal Bridge example:

- `6.1.1 — Cut and remove section of southern wall of Hammond Canal — EXCLUDED`

Tells the QS exactly what was carved out and why nothing was rated.

### 6. Consistent units

- Area: `m2` (no superscript, no `sq.m`)
- Volume: `m3`
- Mass: `Tonne` (capital T)
- Length: `m`
- Time: `week`, `day`, `hr`
- Lump: `Item` (capital I)
- Quantity: bare number (e.g. `1` not `1 No.`)

Match Liam's BOQ verbatim. Skill-generated BOQs that drift get flagged in regression test.

### 7. Formula-driven section totals

Section totals (e.g. row 21 `=G22+G23+G26+G29+G32+G35+G37`) and the Construction Sub-total / Contract Sum at the bottom must be **live formulas**, not pasted values. When the QS counter-prices and changes a unit rate, the totals must reflect.

Generated BOQs from `lfcs-bid-prep-doc` and pricing builds must preserve this — never flatten formulas.

---

## How the skills consume this spec

| Skill | Reads from this spec | Produces |
|---|---|---|
| `lfcs-incl-excl-draft` | LoO sections 4, 5, 6; Standard Exclusions boilerplate | `Inclusions-Exclusions.md` matching the three-tier structure |
| `lfcs-bid-prep-doc` | BOQ hygiene patterns 1–7; LoO mandatory clauses (discrepancy, scope-gap, cranage) | `00-Bid-Prep.md` flagging missing BOQ scope as `ADDED` candidates + cross-ref candidates + cranage-assumption row |
| `lfcs-letter-of-offer-draft` | LoO sections 1–7 in full | `Letter-of-Offer-{job}-{date}.docx` ready for Liam's signature |

---

## Regression test — what "good" looks like

When `lfcs-letter-of-offer-draft v1` runs against the Hammond Canal Bridge inputs (BOQ + bid-prep + incl-excl), the output must reproduce or improve on `letter-of-offer-template.docx`. Specifically:

- All seven LoO structure sections present and in order.
- Standard Exclusions match `standard-exclusions-boilerplate.md` verbatim.
- Lump sum spelled out in words AND figures.
- All five mandatory clauses included (discrepancy / scope-gap / cranage / hire-duration / optional).
- Detailed Exclusions / Assumptions / Inclusions split into three sub-headings.
- Validity period stated (30 days default).
- Signature block matches Liam's standing block.

Any regression — missing clause, drifted wording, flattened structure — blocks deployment.

---

## Maintenance

Append-only with backlinks (see `[[standard-exclusions-boilerplate#Maintenance rules]]`). Major structural changes to the LoO format require a Rocky-approved revision and a new fixture in `templates/`.
