Estimate lifecycle — full cycle (takeoff → bid)
Product context: Estym8 is built from scratch as an AI-first construction preconstruction platform—not a legacy takeoff stack with AI bolted on. AI runs across the product: bid-package ingestion and classification, multi-model takeoff and vision, plan intelligence, cross-file synthesis, Estee, estimate-to-submittal draft review, and optimization recommendations. Canonical framing: AI-first positioning.
Who does what, how change orders fit, and how GCs view without logging in.
1. Who the user is
Our user is the estimator or preconstruction lead on commercial-style pursuits—often MEP-first (electrical, mechanical, plumbing), but the same folder pipeline serves civil, architectural, structural, and adjacent trades where drawings support them (richest automation remains MEP-forward today). They submit bids to GCs (general contractors) or owners. Estym8 turns plan PDFs and bid-package folders (drawings plus spreadsheets and supporting files) into bid-ready takeoffs (and optional submittal packages) they can export or share.
2. Full workflow: project → bid
- 1. Create project — User creates a project in Estym8 (name, client, location).
- 2. Upload plans — Upload plan PDF: one drawing file → one processing job → one estimate when complete. Upload folder (plans & docs): many files (PDFs, Excel/CSV, text, images within supported types); each is classified. Non-drawing files inform the AI project overview; drawing PDFs follow the folder run plan (skip, single, or bundled discipline jobs). Several estimates may be created from one folder run.
- 3. Takeoff + estimate(s) created — When a job completes, we store one estimate for that run: legends, symbol/device counts, raceway & wire, materials (BOM), concerns, RFI suggestions, and summary totals. That whole package is what we call the estimate in the app—the takeoff is the counted/plan-intelligence part; the estimate adds BOM and rolled-up totals (and your edits). Folder runs may produce multiple such estimates (one per executed plan action).
- 4. Review & edit — User opens the project or estimate detail page, reviews counts, and edits any line items inline. Edits are saved on that estimate and exports use edited values.
- 5. Handoff to GC — User exports PDF/Excel/CSV or emails the takeoff summary. Email now includes a read-only link (
/view/...) so the GC does not need an Estym8 account. User can also Copy GC link from Export & share to paste into their own email or bid portal. - 5b. Submittal & bid documentation (optional) — On a completed estimate, the team can build submittal packages from the catalog (products + PDFs), link lines to BOM / workbook quantities, generate Markdown register and compliance matrix, export a merged PDF, and run draft spec AI review—moving from counted/priced toward GC-facing documentation without retyping in a separate silo.
- 6. “Submit bid” — There is no separate “Submit to GC” button inside Estym8—submission is whatever channel the sub already uses (email, GC portal, etc.). Estym8’s job is to produce the numbers and files they attach or upload there.
Draft RFIs: When the app suggests an RFI, the user copies or exports the draft and sends it through the project’s RFI process (often via the GC to the architect/engineer). Responses are not tracked in Estym8 today. When revised drawings arrive, upload the new PDF (or a refreshed bid-package folder) to the same project for a fresh run.
3. What differentiates one estimate from another?
- New upload / new run → new estimate row (new snapshot).
- Rebid → new estimate (version/revision). Target design: same PDF hash → reuse takeoff, new estimate only (saves cost/time).
- Change order → not a full second takeoff by default—see below.
4. Change orders — what they are and how they fit
In MEP bidding, change orders are written changes to scope after the base bid (adds, deletes, modifications). They’re often separate documents from the original plan set.
In Estym8 today:
- API —
GET/POST/PATCH /api/estimates/[estimateId]/change-orders— list/create/update ChangeOrder records (number, description, type ADD/REMOVE/MODIFY, optional scope JSON, cost impact, status). - UI — Change orders card on estimate detail (list + add CO). Exports: Excel “all reports” includes a Change orders sheet; PDF/email append COs when present.
- Mental model — Base estimate = takeoff from plans. Change orders = deltas tracked on that estimate (CO-001, CO-002…) so the sub can show GC base + changes without re-running the whole PDF every time.
So: change orders close the loop with how MEP bidding actually works once they’re visible in the UI and in exports.
4b. Internal note — why no “PDF-less” estimate (product scope)
Not shown in the app; for team/docs only.
A takeoff without drawing PDFs would be manual entry only and would not use the plan-reading pipeline (counts, RFIs, legend linkage to sheets). If we ever need that, it should be a dedicated “manual BOM” (or similar) flow—not the same object as a plan-backed run. Every symbol takeoff remains tied to drawing PDFs (single upload or folder run) so counts and RFIs stay traceable to sheets; non-PDF files in a folder support classification and AI project overview, not a substitute for sheet-based counts.
Project menu copy: The ⋮ menu links to /estimates/new?projectId=… with the label “New PDF or change order” so the two paths are obvious at a glance. No sticky bar on project detail—actions stay in the header dropdown with Upload plan PDF and Upload folder (plans & docs).
5. Takeoff vs estimate (short)
| Term | Meaning |
|---|---|
| Takeoff | What we extract from the PDF: legends, counts, raceway & wire (conduit, wire, supports, boxes), concerns, RFI, etc. |
| Estimate (in app) | That plus material shopping list (BOM) and summary totals—and your edits. That’s the bid-ready package. |
6. GC read-only link (no login)
- URL pattern:
https://estym8.ai/view/<token>(token is opaque, unguessable). - Created when: User clicks Copy GC link (Export & share), or when email summary is sent (link is created automatically).
- Expires: Default 90 days (configurable later).
- Shows: Read-only takeoff summary table (same rows as email). No edit, no chat—GC just sees totals. Full PDF/Excel still comes from the estimator.
7. Related docs
- Folder workflow — bid-package folder ingest
- Pricing strategy — what we charge for
- Product roadmap — trade depth and packaging
- Estym8 for new readers — if the reader is not from construction, read this first
8. Standalone copy — pricing strategy (text-friendly, with context)
Use as one long message or split into 2–3 texts. Each block stands alone so someone who doesn’t know Estym8 still gets the picture.
Block A — What Estym8 is
Estym8 is software for construction estimators and preconstruction teams—often MEP-heavy (electrical, mechanical, plumbing), with the same pipeline covering civil, architectural, structural, and more when the drawings support it. They upload a job’s plan PDFs or a whole bid-package folder; we classify, plan, and run AI on eligible sheets and return bid-ready takeoffs plus plan intelligence: device counts, conduit/wire, material lists, conflict/RFI surfacing, and summary totals—what they need to submit a bid to a GC. Optional submittal packages help turn those lines into GC-facing documentation. Think “days of manual counting and doc prep compressed into much less time,” with exports they can attach to their bid.
Block B — Why not charge per page
We could bill per page like some tools, but “per page” is fuzzy—legend pages vs plan sheets vs schedules aren’t equal, and subs hate surprise bills. So we sell simple monthly plans (e.g. a bucket of takeoffs per month) instead of counting pages. The customer gets predictable cost; we absorb the fact that a 200-page hospital set costs us more AI than a 30-page tenant fit-out.
Block C — What costs us money
Each run uses cloud AI (our biggest variable cost—more pages and more symbols generally mean more tokens). We also pay for hosting, database, file storage for PDFs, email delivery, optional SMS for “your estimate is ready,” and support. Subscription price is set so one day of estimator time saved on a single job usually pays for the month; we track cost per takeoff internally to protect margin and to decide overage/limits.
Block D — One-liner
Subs pay a flat-style monthly fee for a bundle of takeoffs instead of per-page math; our costs scale with AI usage per job, so we watch that behind the scenes.
9. “Send to GC” on estimate detail — email vs text
Today
- Export & share on the estimate (and project) already includes:
- Email takeoff summary — sends an email that includes the read-only GC link (
/view/...) automatically (no login for the GC). - Copy GC link — copies that same URL so the estimator can paste it into their own email, GC portal, or text from their phone (we don’t send the SMS from Estym8 to the GC unless they’ve opted in—see below).
- Email takeoff summary — sends an email that includes the read-only GC link (
Should we add a dedicated “Send to GC” button?
Yes, as a single action that:
- Creates/refreshes the GC link (same as today).
- Opens “email to GC” — either call the existing email API with the GC address the user types, or open a mailto: with subject/body prefilled including the link.
SMS to the GC from Estym8?
Not without opt-in. 10DLC rules mean we only text people who consented to receive messages from Estym8. A GC who never signed up can’t get an automated SMS from our number without compliance risk. So:
- Email = primary “send to GC” channel from the app.
- SMS = estimator copies the GC link and texts from their phone if they want—or we could add “Copy link + short message” to clipboard for paste into their SMS app.
Summary for product
| Channel | From Estym8 app | Notes |
|---|---|---|
| Email to GC | ✅ Already (takeoff summary + link); can wrap as “Send to GC” | Best default. |
| Copy link | ✅ Already | Paste into GC portal / your own SMS. |
| SMS from our number to GC | ❌ Not recommended | No opt-in = compliance issue. |
Implemented: Under Export & share → Send to GC… opens a dialog (GC email → POST export/email, includes read-only link). If sending fails, mailto: opens with the share link in the body.
Last updated: May 2026