--- name: sitesai-estimate description: Measure and price construction drawings with the connected SitesAI Estimate workspace, using THIS company's rates, bulking factors, stage names and reporting rules (the "Your company rules" section). Use for plan measurement, cut and fill, earthworks takeoff and priced estimates from drawings. Do not use for scheduling, CRM, accounting, or quantities not supported by drawing evidence. --- # SitesAI Estimate — your company's estimating skill This file does two jobs. The first section is **yours**: rates, factors, stages and how you want things reported. Fill it in once and the assistant prices every job your way through the SitesAI Estimate connector (`https://takeoff.sitesai.net/api/mcp`). The rest is the operating discipline that keeps a takeoff auditable. Keep a signed-in SitesAI Estimate tab open while the assistant works. Read [`references/tool-map.md`](references/tool-map.md) when choosing between vector, image, earthworks, lifecycle and pricing tools. ## Your company rules (edit this section) ### Your rates Price each line on the volume named in "priced on" — never on a different one. `POA` means "ask me"; the assistant must not invent a number. | # | Line | Unit | Rate | Priced on | |---|---|---|---|---| | 1 | Site establishment and set-out | item | POA | lump sum | | 2 | Topsoil strip and stockpile | m³ | POA | bank volume (area × depth) | | 3 | Bulk excavation (cut) | m³ | POA | bank volume | | 4 | Load and haul on site | m³ | POA | loose volume (bank × swell) | | 5 | Place and compact fill | m³ | POA | compacted volume | | 6 | Cart away surplus / import shortfall | m³ or t | POA | loose volume (tip fees often by tonne) | | 7 | Trim subgrade | m² | POA | area | | 8 | Respread topsoil | m² or m³ | POA | area × depth | | 9 | Testing (density, proof roll) | item | POA | number of tests | Rock, dewatering and unsuitable material are separate lines with their own rates — never a bigger factor on line 3. ### Your factors Swell = loose ÷ bank (always above 1). Shrink = compacted ÷ bank (below 1 for soils, above 1 for rock). Replace the typical ranges with the numbers you actually use; split the cut by material when the geotech report shows layers. | Material | Swell (bank → loose) | Shrink (bank → compacted) | |---|---|---| | Topsoil | 1.25 – 1.45 | 0.75 – 0.90 | | Clay, natural | 1.25 – 1.40 | 0.85 – 0.95 | | Clay with gravel | 1.20 – 1.35 | 0.88 – 0.95 | | Common earth / loam | 1.20 – 1.30 | 0.85 – 0.95 | | Sand, dry to moist | 1.10 – 1.15 | 0.88 – 0.95 | | Gravel, sandy | 1.12 – 1.18 | 0.90 – 0.97 | | Weathered / rippable rock | 1.30 – 1.45 | 1.05 – 1.20 | | Blasted rock | 1.50 – 1.65 | 1.15 – 1.35 | ### Your stages and sheet names - Sheet 1 is always `Existing` (existing ground only). - Then one sheet per stage, named as you quote them, e.g. `01 · Bulk earthworks`, `02 · Pad preparation`, `03 · Finished levels`. - Takeoff groups are named ` — `, e.g. `01 — Bulk cut`. ### Inclusions, allowances, exclusions - Volumes are neat quantities; state swell, compaction, disposal and import separately. - Always report bank cut, compacted fill, bank needed for fill (fill ÷ shrink), surplus or shortfall in bank, and surplus or shortfall in loose. - Exclusions by default: rock, dewatering, contaminated or unsuitable material, imported fill, traffic management, permits. Say so in the summary. ### How to report - Metric; m³ to the nearest 10 for volumes over 1,000, otherwise to the nearest 1; m² to the nearest 10. - Round money to the nearest dollar; show GST separately or not at all — never mixed. - Flag anything assumed (scale, levels, material) in one short list at the top of the summary. ## Operating loop 1. Establish the requested scope, drawing or layer, measurement type, required units and output. Distinguish distance, area, count and 3D cut/fill work. 2. Call `get_project_summary`, `list_layers` and `list_sheets` to understand the current project. 3. Work on the open project (a live SitesAI Estimate tab) so every change renders for the user. Use `new_project` or `open_project` only when the user has clearly chosen the project. 4. Load only the plan needed for the requested scope. Never publish a private plan or create a public share link without the user's explicit permission. 5. Confirm the relevant layer is calibrated before measuring (`calibrate_layer_scale` from a scale bar or dimensioned line, verified against a second known dimension). If verification is not possible, disclose the uncertainty rather than presenting the quantity as exact. 6. Measure with the least speculative method available, dry-run where supported, and inspect the result at useful zoom before accepting it. 7. Verify with `list_takeoffs`, `list_elements` or `get_estimate` independently of the drawing action. Correct errors before pricing or saving. 8. Price ONLY with the rates and factors in "Your company rules" or already in the project. A `POA` rate means ask — never invent a commercial value. 9. `save_project` after a coherent batch of verified changes. ## Plan and sheet discipline - Keep each takeoff on the layer that shows that scope so a reviewer can inspect it. - Reserve the `Existing` sheet for existing-ground information; put design work on later sheets named per "Your stages". - Use `align_layer` only with two reliable common control points; verify the overlay first. - Never reuse coordinates from another layer or render. ## Measurement methods - **Vector distances and counts** (CAD layers present): `list_cad_layers` → map scope to layer names (don't guess from abbreviations) → `run_vector_takeoff` with `dry_run: true` → review → run → check with `list_takeoffs` and a magnified `get_page_image` region. Count only symbols visible on the plan; never pad a count to match a schedule. - **Areas and authored geometry**: `get_ai_authoring_context` → `get_page_image` in `grid` mode → smallest valid `_3dx_ai_delta` → `apply_delta` with `dry_run: true` → fix → apply once → confirm in `plain` mode regions. Trace the actual boundary, not a loose envelope. - **AI vision takeoff** (`run_auto_takeoff`): only when the above are unsuitable; it uses the account's AI credits — say so first; small regions on dense plans; verify each visually. - **Earthworks and cut/fill**: existing ground on `Existing` from the best survey evidence; explicit evidence-backed surface boundaries; design layers aligned onto the existing reference; a `platform` only for a genuinely flat level; no invented levels; `list_elements` with `exact: true` for final volumes, reported as neat quantities before swell, compaction, disposal or import. ## Pricing and change safety - Read `get_estimate` before `update_estimate`; preview affected line keys and operations. - Confirm before `remove_line` and `delete_takeoff` (irreversible). Confirm before `new_project` or `open_project` when unsaved work may exist. - After an uncertain write result, read back state before retrying. ## Completion standard Report: the source drawing, page/layer, sheet, scale basis and method; each quantity with unit and any uncertainty or exclusion; the checks performed; cut/fill assumptions (boundaries, levels, offsets, batters, exact/draft); rates and total only when grounded in "Your company rules" or project data; the save result. Never expose authentication tokens, private file bytes or data from another account. Your rates and factors live in this file on your machine or in your assistant's project — SitesAI never receives them unless you price a line with them.