Skip to content

Building a bid

The bid builder is where you turn a scoped job into a priced bid. You add task lines from your catalog, adjust quantities, and Flow prices each line from your labor rates and material costs as you go. 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 screen is a three-panel workspace, built for a desktop or a wide laptop:

  • Left — task library. A searchable list of every task code in your catalog.
  • Middle — the bid lines. The tasks you've added, with quantity and price.
  • Right — live totals. Labor, materials, premiums, markup, total, margin.

The left and right panels only show on large screens. On a narrow window you'll see the middle column of bid lines but lose the task search and the totals rail, so build bids on a real screen, not your phone.

Add a task line

  1. In the left panel, type in the search box to filter your catalog by task label or code. Press ⌘K (or Ctrl+K) from anywhere to jump straight to that box.
  2. Click a task. It's added to the bid as a new line with a quantity of 1.

At the moment you add a line, Flow takes a snapshot of everything it needs to price it:

  • the task's unit time (how many minutes the task takes per unit),
  • the labor role the task requires and that role's current labor rate,
  • a materials subtotal, built up from the task's bill-of-materials template times the current supplier prices,
  • a markup percentage (25% in v1 — see the limits below).

These snapshots are frozen onto the line. Changing a labor rate or a supplier price later will not rewrite a line you've already added — the same stability guarantee described in Setting your labor rates.

Change quantity or remove a line

Each line shows its label, its catalog code, a Qty box, and the line's dollar total.

  • Change the quantity by typing a new number in the Qty box (minimum 1). Flow recomputes that line's total from the frozen snapshot — the unit time, labor rate, materials, and markup don't change, only the quantity does.
  • Remove a line with the × button on the right of the row.

The dollar figure on each line is labor + materials + markup for that line. Any premium on the line is shown separately, just below it, and is not folded into that line number.

How the price is figured

For each line, Flow computes:

  • Labor = (unit time in minutes ÷ 60) × quantity × the role's hourly rate
  • Materials = the line's materials subtotal × quantity
  • Markup = (labor + materials) × the markup percentage

The right panel rolls those up across every line:

Row What it is
Labor Every line's labor added up
Materials Every line's materials added up
Premiums Every premium added up (only shown when there's at least one)
Markup Every line's markup added up
Total Labor + Materials + Premiums + Markup
Margin Markup as a percentage of the Total

A note on margin: it's the share of the total that is markup. Premiums are counted on the cost side of that math, so adding a premium raises the total but does not raise the margin percentage.

What updates live vs. on save. The Total and the Premiums row track your edits as you make them. The Labor, Materials, Markup, and Margin figures are the values from when the page last loaded and settle to the exact numbers when the page refreshes. Treat the Total as your live number and reload if you want the full breakdown to catch up. This is rough in v1.

Premiums

A premium is an extra charge on a line for a condition that makes the work harder or riskier than the base task price assumes — a retrofit into finished walls, an old panel, an accelerated schedule. Premiums are the money that's easy to forget and easy to lose.

In the builder, premiums surface as an inline amber prompt attached to a line, not as a separate button you go hunting for. When a line trips a flag that calls for a premium, the prompt appears under that line and you either:

  • Apply a premium — type an amount, choose $ (a flat dollar amount) or % (a percentage of that line's labor + materials), and click Apply. A reason code is recorded with it. Or
  • Dismiss it — click Dismiss or press Esc when no premium applies. The dismissal is recorded to the audit log, so there's a trail of the ones you deliberately waved off.

Applied premiums are then listed under the line with their reason code and amount, and roll into the Premiums row on the right.

Honest v1 note. The premium prompt only appears when a line carries a pending flag, and the current builder does not yet generate those flags when you add a line — the flag-evaluation step isn't wired into this screen. In practice that means you may build a whole bid and never see a premium prompt. There is also no way to add a premium by hand in v1; the inline prompt is the only path. If your work has premiums, this is the thinnest part of the tool right now.

Compatibility hints

If two tasks on the bid are ones your catalog has flagged as worth a second look when they appear together, an amber hint shows under the affected lines with a short message, and the right panel shows a count of open hints. Hints are advisory — they don't block anything and there's nothing to acknowledge. They just surface a note you configured in the catalog.

Send the bid to the customer

When the bid is ready, click Send to customer in the header. The button is disabled until the bid has at least one line.

Sending finalizes the draft: Flow snapshots the bid's total and margin, moves the bid out of draft, advances the job to its next state, and takes you to the job view. Once a bid has been signed, it's locked — it can't be edited, and the builder will refuse changes to it.

The header also shows a Preview link (it currently returns you to the job's intake screen) and the draft's version, e.g. v1 draft, along with a "saved" timestamp after each change.

What's not in v1 yet

Being straight with you about the current limits:

  • Desktop-only layout. The task library and totals rail are hidden on narrow screens. Build bids on a wide window.
  • Markup is fixed at 25%. It's applied automatically and there's no field to change it per line or per bid in this screen.
  • Premium prompts rarely fire. Flag generation isn't wired into the builder yet, and there's no manual "add premium" control. See the note above.
  • No manual price overrides. You can't type a custom labor rate, material cost, or line total — those come from the catalog snapshot. Adjust quantity or edit the underlying catalog instead.
  • No line notes, reordering, or drag-and-drop in the builder UI.
  • The totals breakdown lags your edits. Only the Total and Premiums figures are live; the rest settle on refresh.
  • Setting your labor rates — where the labor cost on every bid line comes from
  • Sending a bid and getting it signed (coming soon) — what the customer sees after you hit Send to customer