Quotes
Quotes are pricing agreements you send to customers. They define the scope and cost of work before you begin.
Overview
A quote is a formal pricing proposal sent to a customer. It describes the work to be done, the price, and any terms like deposits or validity dates. You can also add terms and conditions to each quote, which appear on the PDF and public page.
Default terms can be configured in your quote settings (Settings → Quotes). These are pre-filled on every new quote and can be edited per-quote.
Every quote moves through a lifecycle:
- Draft - You are building the quote. It can be freely edited. Only you can see it.
- Sent - The quote has been emailed to the customer and is available via a public link. It cannot be edited.
- Accepted - The customer has accepted. You can now create invoices and jobs from this quote.
- Declined - The customer declined. You can duplicate the quote to create a revised version.
Billing Modes
Workcanon supports two billing modes for quotes:
Fixed Price
The quote has a set total based on line items. The customer knows exactly what they will pay upfront. Use this when the scope is well-defined.
Time & Materials
The quote defines rates (hourly rate, callout charge, materials, etc.) but the final cost depends on actual work performed. Use this when scope is uncertain.
Time & materials quotes have some restrictions: they cannot require deposits, cannot have optional line items, and line item quantities are always 1 (since they represent rate types, not quantities of work). You can set a default hourly rate in your quote settings (Settings → Quotes) which is used when creating time & materials quotes.
Example: Time & materials rate types
| Rate Type | Unit Price | VAT |
|---|---|---|
| Hourly rate | €65.00 | 23% |
| Callout charge | €40.00 | 23% |
| Materials | €0.00 | 23% |
Time & materials quotes define rates upfront. The final invoice amount is calculated based on actual work performed.
Line Items
Line items are the individual charges on a quote. Each line item has:
- Description - What the charge is for (e.g., "Kitchen rewire", "Labour")
- Quantity - How many units (e.g., 2 rooms, 5 hours)
- Unit Price - The price per unit
- VAT Rate - The tax rate applied (see VAT Rates)
- Discount - An optional percentage discount (see Discounts)
The total for each line item is calculated as:
VAT = Net x VAT Rate
Line Total = Net + VAT
The quote total is the sum of all line item totals. For time & materials quotes, line items represent rate types (Hourly rate, Callout charge, Materials, Minimum charge, Miscellaneous extra) rather than specific work items.
Example: Fixed-price quote line items
| Description | Qty | Total |
|---|---|---|
| Full house rewire - labour | 1 | €3,444.00 |
| Consumer unit upgrade | 1 | €553.50 |
| Smoke alarm installation | 6 | €306.45 |
Discounts
Discounts are applied per line item as a percentage. When a discount is set, it reduces the net amount before VAT is calculated.
For example, a line item with a unit price of €100, quantity of 2, and a 10% discount:
Discount = €200 x 10% = €20
Net = €200 - €20 = €180
VAT (23%) = €180 x 23% = €41.40
Line Total = €180 + €41.40 = €221.40
Discounts are only available on fixed-price quotes. Time & materials quotes do not support discounts.
Example: Line item with 10% discount
| Description | Qty | Discount | Total |
|---|---|---|---|
| Kitchen extension wiring | 2 | 10% | €221.40 |
VAT Rates
Each line item can have its own VAT (tax) rate assigned via a tax code. Tax codes are configured in your account settings and represent the tax rates applicable to your business (e.g., Standard 23%, Reduced 13.5%, Zero-rated 0%).
When creating a quote, each new line item is automatically assigned your default tax code. You can change it per line item if different items have different tax rates.
Prices Include VAT
Your account can be configured so that prices entered on quotes are VAT-inclusive. When this setting is enabled, the unit prices you enter already include VAT, and the system calculates the net amount by working backwards from the gross price. This setting is configured in your account quote settings and applies to all new quotes.
Optional Line Items
Optional line items let you present extras or alternatives to your customer. They are not included in the quote total, but the customer can choose to add them when accepting the quote.
Optional items are organized into groups. Each group has a name (e.g., "Extended Warranty Options", "Flooring Choices") and configuration options:
| Setting | What it means |
|---|---|
| Selection required | The customer must select at least one item from this group to accept the quote |
| Allow multiple selections | The customer can select more than one item. When off, the group is mutually exclusive (radio button behavior) |
When a customer accepts a quote, selected optional items are converted into regular line items and included in the quote total. Unselected items are removed. A snapshot of the original optional items is preserved for your records.
Example: Customer view of optional line items
Deposits
You can require a deposit payment before a customer can accept a quote. Deposits are processed through Stripe, so you must have Stripe connected to your account to use this feature.
There are two deposit modes:
- Fixed amount - A specific amount (e.g., €500 deposit)
- Percentage - A percentage of the quote total (e.g., 25% deposit)
When a customer views a sent quote with a deposit requirement, they must pay the deposit before they can accept. The deposit is collected via Stripe Checkout.
Deposit Credits
After acceptance, the deposit amount becomes a credit on the quote. When you later create invoices from this quote, the deposit credit is automatically applied to reduce the amount owed. The available credit balance is shown on the quote detail page.
You can set a default deposit mode in your quote settings (Settings → Quotes). This pre-fills the deposit configuration when creating new quotes, saving you from setting it each time.
Deposits are only available on fixed-price quotes. Time & materials quotes cannot require deposits.
Example: Deposit configuration
Validity Periods
You can set an optional "valid until" date on a quote. This tells the customer how long the quoted price is valid for.
When a quote passes its validity date:
- An Expired badge is shown on the quote
- The customer can still view the quote via the public link
- The quote remains in its current status (it does not automatically decline)
Once a quote has expired, the customer can no longer accept it. The accept and decline buttons are hidden, and an error message is shown explaining that the quote has expired.
Sending & Public Links
When you send a quote, two things happen:
- An email is sent to the customer with a link to view the quote
- The quote status changes from Draft to Sent
Each quote has a unique public link (using a secure token) that anyone with the link can access. You can toggle public access on or off from the quote detail page - useful if you want to temporarily disable access.
You can also resend a quote at any time, which sends a fresh email to the customer.
Example: Public access settings on a sent quote
Public Access
Anyone with the link can view this quote
Accepting & Declining
When a customer views a sent quote via the public link, they can accept or decline it.
Accepting
The acceptance flow depends on the quote configuration:
- No optional items, no deposit - The customer clicks "Accept" and the quote is immediately accepted
- With optional items - The customer selects which optional items they want, then accepts. Selected items become regular line items.
- With deposit - After accepting (and selecting optional items if applicable), the customer is redirected to Stripe Checkout to pay the deposit. The quote is accepted once payment succeeds.
Declining
If a customer declines, the quote moves to the Declined status. You can duplicate a declined quote to create a revised version with updated pricing or terms.
Billing Stages
Billing stages let you break an accepted fixed-price quote into phases and invoice each phase separately.
Every fixed-price quote starts with a single default billing stage. If you don't need to bill in phases, you can ignore staging entirely and simply invoice the full quote amount at once using the default stage.
To bill in phases, add more billing stages from the quote detail page after the quote is accepted. Each billing stage has:
- A name (e.g., "Phase 1 - Foundation", "Phase 2 - Build")
- An optional description
- A status: Planned, Ready, or Invoiced
When a billing stage is marked as "Ready", you can create an invoice for it. Each billing stage invoice contains the line items allocated to that stage. Deposit credits from the quote are automatically applied to billing stage invoices.
Billing stages are only available on fixed-price quotes. Time & materials quotes do not use billing stages.
Search & Filtering
The quote list can be filtered and searched to help you find specific quotes:
- By status — filter by Draft, Sent, Accepted, or Declined
- By customer — show only quotes for a specific customer
- By search — search by quote title or document number
Filters can be combined. Results are paginated.
Duplicating Quotes
You can duplicate any quote to quickly create a new one with the same details. The copy includes the customer, title, description, line items, deposit settings, validity period, and currency — but resets to Draft status.
The duplicated quote's title is set to "Copy of [original title]". If you duplicate a copy, it becomes "Copy (2) of [original title]", and so on.
This is useful for creating revised versions of declined quotes, or for reusing a quote as a template for similar work with the same or different customer.