Pool Runs Docs
BillingQuotes

Creating a Quote

Step-by-step walkthrough of the Pool Runs quote builder — customer, line items, parts catalog, taxes, discounts, deposit, and live preview.

Creating a Quote

The quote builder is a two-pane editor: a form on the left, a live PDF preview on the right that updates as you type. Most quotes — even complex equipment installs — take less than five minutes to draft once you know the layout.

Quote builder with form on left, live PDF preview on right

Opening the Builder

  1. Click Billing → Quotes in the sidebar
  2. Click Create Quote in the top-right of the quote list

You can also start a quote from a customer profile (which pre-fills the customer for you) or from the dashboard quick actions.

Access: Your role must allow quote creation to access this page. If the button is missing, ask an admin to update your role under Settings → Team & Permissions.

Step 1 — Choose the Customer (and optional Property)

The first card on the form is Customer Information.

  • Customer (required). Type to search by name, company, or email. The dropdown respects the customer's "Display by company" setting — commercial accounts show the company name, residential shows the person.
  • Property (optional). Once you pick a customer, the property dropdown loads only the properties that belong to that customer. If the work is at a specific service address, attach it. Leave blank for "we'll figure out where" jobs (rare).

Tip: No property at this stage is fine, but if you intend to Create Work Order from the approved quote later, the system will prompt you to attach a property at conversion time. Saves a click to do it now.

Step 2 — Quote Details

FieldNotes
Quote DateDefaults to today. The date the quote was prepared.
Valid UntilDefaults to 30 days from today. Customers cannot approve after this date. Leave blank for "no expiration".
Down PaymentNone, Flat amount ($), or Percentage (%). Drives the deposit invoice when the quote is approved.
Customer MessageFree-text shown on the quote PDF and approval page. Pre-fills from your org's default in Quote Settings.
Terms & ConditionsSame — free-text on the customer-facing document. Use this for warranty language, payment terms, scope exclusions.
Internal NotesNever shown to the customer. Use for "remind ourselves to bring the long pole vacuum" or "this customer always pays slow".

Industry tip: 30 days is the standard quote validity in pool service because parts pricing and supplier availability shift quickly. If you're quoting a salt cell where wholesale prices change weekly, 14 days is more honest.

Step 3 — Line Items

This is the meat of the quote. Each line is one part, chemical, service, or fee.

For each line:

  1. Pick a product from the catalog dropdown. The picker pulls from your Parts, Chemicals, Work Order Types (services), and Fee Types catalogs and color-codes the type with a badge:
    • 🟦 Part (pumps, salt cells, filter cartridges)
    • 🟩 Chemical (chlorine, shock, acid)
    • 🟪 Service (labor, diagnostic, install)
    • 🟧 Fee (trip charge, after-hours surcharge)
  2. Description auto-fills from the catalog item but you can edit it for the customer.
  3. Quantity — typically 1 for a part install, 2 for a 2-hour service.
  4. Unit Price — auto-fills from your catalog. Override per quote if you're discounting or marking up.
  5. Taxable checkbox — most parts and chemicals are taxable; labor varies by state. Defaults to taxable.
  6. Total — calculated automatically from quantity and unit price.

Click Add Line Item to add another row, the trash-can to remove one. Order doesn't affect math but it does affect what the customer sees on the PDF.

Validation rule: Every line item must reference a product (part / chemical / service / fee). The system blocks save with "Every line item must have a product selected." This keeps your sales reports clean — you can see how often you're quoting "Salt Cell Replacement" vs. "Pump Motor Repair".

Common quote items in pool service

ItemTypical RangeTax?
Salt cell replacement (T-cell-15 or equivalent)$600 – $1,200Yes
Pump motor (1HP, single-speed) + labor$300 – $800Parts yes / labor varies
Filter cartridge clean & inspect$150 – $250Mostly labor — varies
Green pool shock + balance$300 – $500Chemicals yes
Spring opening (residential 20K gal pool)$250 – $500Mixed
Heater igniter / control board$400 – $1,500Yes
Multiport valve gasket replacement$80 – $200Yes

Step 4 — Discounts (Optional)

The Discounts card lets you knock dollars or a percent off the subtotal.

  • Label — what the customer will see (e.g., "Volume discount", "Loyalty 10%", "Spring promo").
  • Mode — Flat ($) or Percent (%).
  • Value — the dollar amount or 0–100 percent.
  • Applies to — Subtotal, Labor, Parts, Chemicals, or Services. Today the most-used option is Subtotal.

Discounts reduce the taxable base proportionally — if half your line items are taxable and you discount the subtotal, half the discount comes out of the taxable amount. (See the math example in Quotes Overview.)

Industry tip: Avoid stacking promotional discounts on top of large jobs unless your margin can absorb it. A 10% discount on a $1,500 salt-cell job is $150 — sometimes that's your entire labor profit.

Step 5 — Deposit (When You Need One)

If you set a down payment in Step 2, the live preview shows a "Down Payment Required" callout the customer will see.

  • Use percent for big jobs (50% deposit on equipment installs is industry standard).
  • Use flat amount when you want the deposit to cover specifically the parts cost ("$650 deposit covers the salt cell; balance due upon install").

When the customer approves the quote, the system surfaces a Generate Invoice action and the modal lets you choose:

  1. Deposit invoice only — for the deposit amount; balance later.
  2. Final invoice only — for the full amount (no deposit).
  3. Final invoice with deposit credit — automatically nets the previously-paid deposit out.

See Converting a Quote for the full flow.

Step 6 — Live Preview

The right pane is exactly what the customer will see on the approval page and the emailed PDF — your logo, address, line items, totals, deposit callout, terms.

Toggle the preview off with the Hide Preview button if you need more screen real estate on a small monitor. Re-open with Show Preview in the floating top-right button.

Step 7 — Save and (Optional) Send

You have two save buttons:

ButtonWhat it does
Save as DraftCreates the quote in Draft status. You can keep editing or send later. Nothing is sent to the customer.
Save & SendCreates the quote in Sent status and emails it to the customer immediately with the secure approval link.

Tip: A common pattern is Save as Draft → review with the technician (or owner) → Send. The draft state lets a senior estimator double-check pricing before it goes to the customer.

If a customer doesn't have an email on file, the email send will fail gracefully — the quote will be marked Sent but the activity log will note the email failure. Add an email to the customer record and click Resend from the quote detail page.

Validation & Common Errors

ErrorCauseFix
"Please select a customer"No customer chosenPick from the customer dropdown
"Please add at least one line item"Empty line items listAdd a row with a product, qty, price
"Every line item must have a product selected"Free-text-only linePick a part / chemical / service / fee from the catalog
"Down payment percentage cannot exceed 100%"Entered > 100 in percent modeCap at 100 or switch to flat mode
"Please enter a valid down payment amount"Mode set but value 0Enter the deposit amount or set mode to None

FAQ

Q: Can I duplicate an existing quote to skip retyping line items? A: Not as a one-click "Duplicate" action today. The closest workflow is Void & Recreate — even on a Sent or Approved quote, the void & recreate action creates a new draft pre-filled with the same customer, property, line items, adjustments, message, and terms. See Editing & Versioning Quotes below.

Q: My products catalog is empty — what do I do? A: You'll need to seed it before you can save line items. Go to Settings → Catalogs and add a few Parts (e.g., "Salt Cell - T-cell-15"), Chemicals (e.g., "Liquid Chlorine 12.5%"), Work Order Types for services (e.g., "Equipment Installation - Hourly"), and Fee Types (e.g., "Trip Charge"). The picker will populate immediately.

Q: How does tax work if I serve customers in two states? A: Pool Runs supports an org-level default tax rate plus optional ZIP-mapped tax zones (Settings → Tax Zones / Settings → Invoicing). For per-quote control, toggle the Taxable flag on individual line items. See Tax Zones & Tax Management for the full picture.

Q: Can I attach a photo of the broken equipment to the quote? A: Not in the current version. The workaround is to include a paragraph in the customer message ("Photo of cracked salt cell attached separately") and send the photo over your normal email/SMS to the customer.

Q: My customer wants to see two pricing options. Can I put both in one quote? A: One approach is two line items with Option A: / Option B: prefixes in the description and a customer message that says "select your preferred option and reply". A cleaner approach is to send two separate quotes and let the customer approve the one they want — the activity log will tell you which.

Q: Can technicians create quotes from the field? A: Yes. In the mobile app, open More → Quotes and tap +. Staff whose role allows quote creation can build the quote natively on iPhone, including the customer, property, line items, tax, deposit, message, terms, and internal notes.

Troubleshooting

  • The Customer dropdown is empty. You haven't added any customers yet. Start at Add, Edit, or Delete a Customer (Web).
  • Live preview shows wrong totals. Refresh the page. If totals don't recalculate when you change a value, you may have entered a non-numeric character (a comma, $, etc.) — those fields accept digits and decimals only.
  • Preview shows "$0.00" but I entered prices. Make sure each line has both a quantity AND a unit price. If quantity is left blank, the row total stays $0.

Editing & Versioning Quotes

A quote's editability changes the moment the customer sees it. Drafts are wide open — you can change anything. Once a quote is sent, it's locked from line-item edits because changing what the customer was looking at would break the audit trail. Pool Runs handles "I need to revise this" with a workflow called Void & Recreate.

Quote void and recreate dialog

What's Editable When

Quote statusEditable fieldsHow
DraftEverything — customer, property, line items, prices, tax, deposit, message, terms, internal notesClick Edit on the quote detail
SentInternal notes and the property used for work-order conversionUse the available quote actions, or revise into a new draft for pricing changes
ApprovedInternal notes and property assignment (same as Sent)Same
Rejected / Expired / VoidRead-onlyn/a

Trying to edit anything else on a non-draft quote returns: "Only draft quotes can be edited. Approved quotes are locked." Once a customer has seen a price, that price IS the quote.

Editing a Draft

  1. Open the quote detail page
  2. Click Edit in the action bar. It appears only for drafts and users allowed to update quotes.
  3. The quote builder opens in edit mode with all fields populated
  4. Change whatever you need
  5. Click Save Changes (stays as draft) or Save & Send (saves and emails)

Editing a draft saves the line items and adjustments as one updated version. This is safe because the customer has not received it yet.

Deleting a Draft

You can fully delete a draft quote (no audit trail kept). From the quote list or detail page, use the dropdown action and pick Void Quote.

Caution: A deleted draft is gone — no recovery. Use this only on truly garbage drafts. For anything that has even minimal value as a record, void it instead.

Expiration Dates

Every quote can have an expiration date (defaults to 30 days from quote date). The expiration affects two things:

  • Customer approval is blocked after the expiration date. The public approval page shows: "This quote has expired and cannot be approved."
  • The dashboard does not auto-flip the status to Expired the moment midnight passes. The quote stays Sent until either the customer attempts to approve and gets the expired error, or you manually act on it.

This is a deliberate UX choice — it gives you the chance to handle the expiration gracefully (call the customer, refresh the quote) rather than the quote silently aging out.

Tip: Filter your quote list by Sent weekly. Sort by quote date ascending — anything older than 25-28 days is approaching expiration.

The quote detail page shows an amber "Expiring Soon" badge when the expiration is within 7 days.

Void & Recreate — The Safe Way to Revise

For any change to a Sent or Approved quote (price went up, customer wants to add a chemical clean, you spotted a typo), the right tool is Void & Recreate. It:

  1. Voids the original quote with a reason you provide
  2. Closes the original customer link immediately
  3. Creates a new draft pre-filled with the same customer, property, all line items, all adjustments / discounts, down payment configuration, customer message, and terms & conditions
  4. Links the new draft back to the original for a clear history
  5. Logs activity on both the original (voided) and the new draft (created from quote)

You're then dropped into the new draft so you can edit it before sending. The original quote stays as a permanent record.

When to use Void & Recreate

  • Customer requested a scope change ("can you also clean the filter while you're there?")
  • Pricing changed (your wholesale cost on the salt cell went up)
  • Customer pointed out an error (you forgot the trip charge)
  • Reissuing an expired or rejected quote with updated terms

When NOT to use Void & Recreate

  • The quote is still in Draft — just edit it directly. The system blocks Void & Recreate on drafts.
  • The quote is already Void — just create a new quote.
  • You want to "amend" an approved quote while keeping the original alive. There's no amendment flow; void & recreate kills the original.

Voiding a Quote (Without Recreating)

If the deal is dead and there's no version 2, just Void the quote.

  • For Draft quotes: the destructive action is labeled Void and effectively deletes the quote.
  • For Sent and Approved quotes: the destructive action is Void & Recreate (cancel out of the new draft to void without recreating).

Voiding always:

  • Changes the quote status to Void
  • Records the required void reason and timestamp
  • Closes any active customer approval link
  • Keeps the quote record forever as part of your audit trail

Industry tip: Void with descriptive reasons. "Customer chose competitor", "Job no longer needed — they sold the house". Six months later, when you're trying to figure out close rates, those reasons are gold.

Only users allowed to manage quote statuses can void a quote. Office staff and managers typically have this access; field technicians typically do not.

The "Approval Lock"

Once a quote is Approved, the line items, prices, taxes, and totals are committed. This applies even to admin users with full permissions. Exceptions: Internal notes (private to your team) and Property assignment (for work order conversion).

This lock is what makes the approval evidentiary. If you need to change anything material on an approved quote, you must void & recreate (and ideally have the customer re-approve the new version).

Versioning vs. Audit Trail

Pool Runs does NOT support multiple "versions" of the same quote in the v1 / v2 / v3 sense. Each quote is its own record. What you DO get:

  • Activity Log on every quote — who created, sent, viewed, approved, modified
  • Links between voided originals and their recreated replacements
  • Unchangeable PDF copies — you can always pull up exactly what the customer saw

Editing FAQ

Q: I voided a quote by accident. Can I un-void it? A: No — voiding is one-way. Your options: (1) Void & Recreate the voided quote (yes, you can recreate from a void); (2) Send the new draft to re-approve.

Q: Customer says "actually let's add the filter clean" — quote is approved, deposit invoice paid. What's the cleanest path? A: Two choices: (1) Just add the work as a separate quote (or skip quoting and bill via invoice add-on) — simpler if it's small. (2) Void & Recreate the original quote with the added scope, have the customer re-approve, then void the original deposit invoice and reissue. Recommend option 1 for additions under ~$200.

Q: How long does Pool Runs keep voided/expired/rejected quotes? A: Indefinitely. They're never deleted (only drafts can be hard-deleted).

Q: I want to extend an expiration on a sent quote. How? A: There's no "extend expiration" action. The fix is Void & Recreate — the new draft inherits everything, you adjust the expiration date, then send.

Q: Where do I see "outstanding quotes" reporting (won/lost/open)? A: Today, the closest equivalents are: the quote list filtered by Sent (open quotes), Approved (won), or Rejected + Void + Expired (lost). A dedicated Quote Reports view is on the roadmap.

Editing Troubleshooting

  • Edit button is missing on a draft quote. Ask an admin to confirm your role can edit quotes. Also verify the status is Draft. Once it changes to Sent, the edit button is replaced by Resend and Void & Recreate.
  • Void & Recreate creates a draft but the line items aren't pre-filled. Refresh the new draft page. If items are still missing, contact support.
  • The customer sees an expired-link message on a recently sent quote. If you used Void & Recreate, the original secure link stopped working when you voided the quote. Send the customer the new quote email.

On this page