Building a bid
The bid builder is where you turn a scoped job into a priced bid. You price the labor phase by phase — name a phase, pick who works it, enter the hours — and take off the materials part by part. Flow prices the labor from your fully-loaded rates and the materials from your catalog, applies your overhead & profit and markup, and shows a live total the whole time. When the numbers look right, you send the bid to the customer.
You reach the builder from a job that's in bidding (a job still in intake
or ready-to-bid sends you back to the intake screen first). Flow opens — or
creates — a draft bid for that job automatically. You never make a blank
bid by hand; there's always exactly one draft waiting for you. The header shows
the job, the draft's version (Bid v1), and the running Bid total.
On a desktop the screen is three columns: the build controls on the left (what the site visit found, then the Add a phase and Add a material forms), the bid itself in the middle (the Work phases and Materials tables), and the live Bid summary on the right. On a tablet or a phone the same panels stack top to bottom — everything is reachable at any width, though the builder is still most comfortable on a big screen.
The bid opens with your scope already in it
You don't start from a blank page. When the bid is created, Flow reads the scope items picked at intake, looks up which work phases each one runs through and who does that work, and seeds one line per phase-and-role combination — with the hours left blank (shown as —). Your job is to fill in the hours, not to remember that a service upgrade means rough-in, wire pull, and trim.
If a scope item calls for a role you haven't configured, Flow can't price it and says so: an amber notice above the table names the item and the missing role, and points you to Settings → Roles & burden to add it.
Add a phase line
- In Add a phase, type the work phase —
Rough-In — Conduit,Trim, whatever your shop calls it. Phases already on the bid are offered as you type, so adding a second role to a phase doesn't create a near-duplicate spelling. - Pick the role doing the work.
- Enter the straight-time hours and click Add phase.
Overtime and double-time stay out of the way until you need them. Click Add overtime or Add double-time on the Work phases card to reveal those columns and hour boxes. Each band bills at its own loaded rate — OT and DT are multiples of the loaded rate, not the bare wage, because burden doesn't stop accruing after eight hours.
Edit hours in the table
The Work phases table groups lines by phase, with a subtotal per phase — the number you sanity-check — and the roles that work it beneath.
- Tap a figure to change it. The number becomes a box; Enter saves, Escape cancels, and on a phone there's a Done button.
- The Cost column is that line's labor. Point at it (or tap it) to see the math behind it — the hours and the loaded rate per band.
- Remove takes a line off the bid.
Add a material
- In Add a material, pick the part. Parts your scope items call for are grouped at the top ("For this job's scope"); the rest of the catalog is one scroll below — suggestions, not a filter.
- Enter the quantity, in the part's own unit (the label tells you which).
- The Waste % box comes pre-filled with that part's usual waste from your catalog. Change it if this job is different; a blank box means no waste figure has ever been set for the part.
- Click Add material.
Waste covers what you buy but don't install — offcuts, bends, the tail of a spool. It's folded into the line total so the buy matches the bid.
You can add a part with a quantity of zero as a placeholder — "the job needs this, nobody has traced the run yet." It shows a Quantity needed badge, and the bid can't be sent until every part has a real quantity.
Optional lines — let the customer decide
Any labor or material line can be marked Optional with the Optional? button on its row. Optional lines are left out of the base total, and when the customer opens the bid they choose Include or Skip for each one before signing — the price they sign for reflects their choices. Use it for the "while we're there" work: the extra circuit, the EV rough-in.
How the price is figured
- Labor, per line: hours × the role's fully-loaded rate for each band (ST/OT/DT). Loaded rates come from Roles & burden — base wage plus your payroll burden.
- Overhead & profit is applied to labor; materials markup is applied to materials, separately. Both percentages come from Settings → Business.
- Materials, per line: unit cost × quantity, plus waste.
The Bid summary on the right rolls it up live as you work:
| Row | What it is |
|---|---|
| Straight-time hours (and OT / DT when used) | Total hours across every phase line |
| Labor cost (fully loaded) | What the labor costs you |
| Overhead & profit | Your O&P percentage applied to labor |
| Total bid labor | Labor cost + O&P |
| Materials | The takeoff subtotal, waste included |
| Materials markup | Your markup percentage applied to materials |
| Total bid materials | Materials + markup |
| Bid total | Total bid labor + total bid materials — what the customer sees |
Prices are frozen onto each line the moment you add it. A line snapshots the loaded rates and the O&P or markup percentage in force right then. Raising a wage, editing a burden line, or changing your markup later affects only lines added afterward — it never rewrites work already on a bid. If a bid ends up spanning a settings change, the summary labels the percentage blended rather than printing a single number that would be wrong.
Preview, then send
Preview shows the bid exactly as the customer will see it — same layout, same wording, with a PREVIEW banner and the signing controls disabled. Worth a look before anything goes out.
When the bid is ready, click Send bid. The button stays disabled until the bid has at least one line and every material has a quantity. Sending:
- Freezes the total. A sent bid keeps the price it was sent with — no later settings change can move it.
- Generates the bid PDF and emails it to the customer, with their private bid link, using the email address on the job. (No email on file, or a delivery failure? The next screen tells you and gives you the link to send yourself.)
- Advances the job to Stage 3 and takes you there.
Once a bid has been signed, it's locked — it can't be edited, and the builder will refuse changes to it.
What's not in v1 yet
Being straight with you about the current limits:
- No premium engine. The site condition flags captured at intake (finished surfaces, pre-1980 panel, insulated ceiling) don't raise the price by themselves, and there's no separate "premium" line type. Price a hard condition into the hours or add a phase line for it.
- Best on a desktop or tablet. Everything works at phone width, but a table this dense is slow going on a small screen.
- Every add and edit is a round trip. Each change saves to the server before it appears, so on a slow connection the builder can feel a beat behind you.
- No manual price override on a line. Rates come from your roles, part costs from your catalog. Adjust hours and quantities here; adjust the underlying numbers in Settings.
- No line notes or reordering. Phases appear in the order their lines were added — seeded scope phases arrive in work order, and anything you add lands at the end.
- No deleting a bid. Once a draft exists it stays with the job.
Related
- Labor roles and payroll burden — where the loaded rate on every phase line comes from
- The customer bid link — what the customer sees after you hit Send bid, and how they sign
- Approvals, deposits, and pre-lien — the Stage 3 gates the signed bid feeds