Skip to content

AXITRAQ Quotes and Estimations — User Manual

Platform: AXITRAQ (axitraq.app) Module: Quotes and Estimations Last Updated: October 2026 (Grok Bot quotes)


Table of Contents

  1. Overview
  2. Access and Permissions
  3. Finding the Quotes Area
  4. Creating a Quote
  5. Quote Header Details
  6. Stages
  7. Line Items — Labour, Assets and Materials
  8. Per-Line Notes
  9. Stage-Level Notes
  10. Live Summary
  11. Refresh Prices
  12. Templates
  13. Duplicate a Quote
  14. Start From a Past Job
  15. Schedule and Clash Check
  16. Preview PDF
  17. Detailed Summary Tab
  18. Finalise and Re-issue
  19. Download the Quote PDF
  20. Convert Quote to Job
  21. Vendor Quotes
  22. Quote Settings
  23. Tips and Best Practices
  24. Grok Bot

1. Overview

The Quotes and Estimations module lets you build professional, staged quotes for clients — labour, machines/assets and parts/materials — with live pricing pulled from your existing catalogues, a scheduling clash check, a branded PDF that uses your own letterhead, and a one-click Convert to Job when the quote is accepted.

Quotes are snapshot-priced: the rate that applies to each line at the moment you add it is stored on the quote, so an issued quote never changes its numbers if your catalogue is updated later. When you want the latest rates you can pull them in explicitly with Refresh Prices.

Every quote lives entirely inside your own company — quotes are never visible to other tenants, and importing from a past job takes a snapshot copy only (the original job is never modified).


2. Access and Permissions

Access to Quotes is the Quotes & Estimations permission (manage.quotes). Set it for one person under Manage → Access → Permissions (the Web Access tab). Set the starting rights for a role under Settings → User Types. There is no Access Roles page under People.

Capability What it allows
View Open the Quotes list, view any quote, download an existing PDF
Create / Edit Create, edit, duplicate, finalise, and convert quotes
Delete Remove the quote from the list. The row is kept. A quote that is already a job cannot be deleted

Account owners and platform administrators see Quotes automatically. Everyone else needs the capability granted.


3. Finding the Quotes Area

Quotes appears as a top-level nav item once you have the permission. Its three pages are:

  • Quotes — the quote register (active quotes, drafts, finalised, converted, expired).
  • Templates — quotes marked as re-usable templates.
  • Quote Settings — numbering, default terms, letterhead branding, categories and quote types (admin).

4. Creating a Quote

From the Quotes page:

  1. Click + New Quote, or use one of the fast-start options:
  2. From Template — pick a template and turn it into a fresh draft.
  3. From Past Job — snapshot a completed job's people, assets and materials as a starting point (see section 14).
  4. Fill in the quote header (client, category, description, validity, schedule, etc.).
  5. Add stages (see section 6).
  6. Inside each stage, add labour, asset/machine and parts/material lines (see section 7).
  7. Review the live summary on the right (see section 10).
  8. When you're happy, Preview PDF to check formatting, then Finalise to issue the quote (see section 18).

5. Quote Header Details

The Details tab captures everything about the quote that isn't a line item:

Field Description
Client Click the field (or start typing) to open a searchable client list. Matches name, trading name and ABN. Click a row to select. Use + New Client to quick-create without leaving the quote.
Category Groups quotes for reporting (e.g. Civil, Plumbing, Maintenance). Managed in Quote Settings.
Type Free-form quote type (e.g. Fixed Price, Schedule of Rates, Time and Materials).
Description Short summary displayed at the top of the printed quote.
Valid Until Expiry date shown on the printed quote.
Schedule Window Proposed start and finish dates, used by the clash check.
Tax Tax rate applied to the quote total (defaults from company settings).
Discount Optional whole-of-quote discount (percentage or fixed).

6. Stages

Every quote is broken into one or more stages — logical sections that you can rearrange, price, and comment on independently. Typical uses:

  • Mobilisation / Site prep / Main works / Demobilisation
  • Concrete / Formwork / Reinforcement
  • Kitchen / Bathroom / Laundry

Each stage has:

  • A name.
  • Optional stage note (see section 9).
  • Three line groups: Labour, Assets / Machines, Parts / Materials. Each group has a Subtotal row (hours/units and totals follow the Ex / Inc GST radio). Parts & Materials also shows the blended MU % or GP % for that group (profit on total buy vs total sell).
  • Optional Summarise on PDF per group (see below).
  • A running stage subtotal.
  • Optional stage-level discount applied only to that stage's totals.

Summarise a section on the client PDF

Each group (Labour, Assets & Machines, Parts & Materials) can appear on the branded PDF in two ways:

  • Itemised (default) — every line prints, the same as today.
  • Summarised — tick Summarise on PDF and enter a short comment. The client PDF then shows one row for that group (your comment, or a default label such as “Parts & materials”) plus that group’s subtotal. Qty and unit are blank so it does not look like a single catalogue item.

You can mix modes on the same stage (for example itemised labour and summarised parts). The Stages & Costing tables stay fully itemised so your costing does not change. Line notes on a summarised group are not printed (they remain working comments). Stage notes still follow Show on quote/PDF.

Existing quotes stay itemised until you tick a box. Duplicating a quote or using a template copies the ticks and comments. Convert to Job still copies every line — summary is display-only.

At the top of Stages & Costing (not on Details) are two radio groups that apply to the whole quote:

  • Ex GST/TAX (default) or Inc GST/TAX — how you type and see Unit sell / Rate, plus a GST column between sell and Total. Line prices are always stored exclusive. The PDF still prints Subtotal (ex tax), Tax, Total inc.
  • Markup % (default) or Gross profit % — the materials column next to Unit sell. Markup = profit ÷ cost. Gross profit = profit ÷ sell. Example: buy $100, sell $130 → MU 30%, GP 23.1%.

These radios are saved on the quote. New quotes pick up the company defaults from Quote Settings.

When a quote has more than one stage, every line has a Move to stage list on the right (fixed width so long stage names do not stretch the table). Use it after Load items (which always lands in the first stage) or whenever a line belongs on a later window.

Drag the ⋮⋮ handle on the left of a labour, asset, or materials line to reorder it within that list.


7. Line Items — Labour, Assets and Materials

Each stage supports three line types. All three use type-to-search pickers — click the field to open a scrollable list, or start typing to filter. Keyboard up/down/enter is supported, and every picker has a — free text — option so you can add off-catalogue items without polluting your master lists.

Parts & Materials search uses the same any-words matching as the Parts register: each word must appear somewhere in the part number, name, category or sub-category (order-independent). Example: 150mm SOC or 150 FLG finds Connector DI NC SOC/FLG 150mm. The results panel expands over the table and scrolls when there are many matches.

Labour lines

Pick an employee (or free-text position), enter hours, and the rate resolves automatically from your existing labour rate cascade:

  1. Employee rate card (the person's rate card for that day)
  2. Client rate card for that employee type
  3. Company rate for that employee type

The Hourly Rate on the employee record is pay, not this charge-out rate. A rate typed on the line replaces the cascade. On a job, a rate typed on the job is used before this same cascade. Quotes do not use that job override.

You can override the rate on any line.

Asset / Machine lines

Pick an asset (or free-text machine name), choose the charge period (hourly / daily / weekly) and enter quantity. The rate resolves from:

  1. Client-specific asset rate override
  2. The asset's own charge rate for the selected period

Parts / Materials lines

The Part column stays narrow and shows the item code / SKU / part number from your catalogue, or from the vendor quote when the item is new. Hover the code to see the full line (for example 014738 — Adaptor Male Viega Water 40mm x 40MI).

Description is the catalogue name or the vendor-quote wording. You can rewrite it for this quote. The ↺ button reloads the original description.

Pick a part (or free-text material). The sell price is set from the usual pricing chain (client-specific pricing → catalogue sell price → cost + markup). If a client- or category-specific markup applies it is included automatically.

Buy is editable so you can snapshot a special without changing the catalogue. The i button next to Buy still opens supplier variations (base cost, group cost, linked suppliers).

A MU % or GP % column (from the toolbar radio) sits next to Unit sell. Editing the % recalculates sell from the current buy. Editing sell refreshes the %. Editing buy leaves sell alone and refreshes the %.

A GST / TAX column sits between Unit sell and Total on labour, assets and materials. Totals follow the Ex / Inc radio.

Each group ends with a Subtotal row. On Parts & Materials the Buy cell is total buy (qty × unit buy) and the MU/GP cell is the blended % on that section (same MU vs GP mode as the toolbar).

Lines loaded from a vendor quote are highlighted in light yellow. Refresh Prices does not overwrite those buys. The legend under Parts & Materials explains the highlight.


8. Per-Line Notes

Every labour / asset / material line has a pencil icon that expands a Note / description field. Each note has a Show on quote/PDF tick:

  • On — the note is printed under the line item on the branded PDF, so your client sees the detail (inclusions, exclusions, assumptions).
  • Off — the note is a private working comment for your team.

Notes are preserved when a quote is duplicated or used as a template.


9. Stage-Level Notes

Each stage has its own description / scope note, again with a Show on quote/PDF toggle. Use stage notes to describe the whole section (scope, assumptions, what's included/excluded) and per-line notes for detail on individual items.


10. Live Summary

The right-hand summary panel updates as you edit:

  • Per-stage totals for labour, assets and materials
  • Stage subtotal with any stage-level discount applied
  • Overall subtotal across all stages
  • Whole-of-quote discount (if set)
  • Tax and grand total

The Detailed Summary tab (section 17) gives a much richer version of the same data laid out for review before finalising.


11. Refresh Prices

If your catalogue moves (parts price updated, new labour rate, seasonal asset rates), open an existing draft and click Refresh Prices. Every catalogue-linked line re-resolves against the current rates. Free-text lines, manually edited lines, and material lines priced from a vendor quote (cost_source = vendor_quote) stay untouched.

Snapshots are the default. Refresh Prices is opt-in. It only ever touches an editable draft — a finalised quote's numbers never change unless you explicitly re-issue it.


12. Templates

Any quote can be marked as a Template. Templates:

  • Appear on the Templates tab of the Quotes page.
  • Are never issued or numbered themselves.
  • Can be turned into a fresh, non-template draft via New → From template (or the From Template button on the register).

Templates are a great way to standardise quotes you write regularly (recurring inspection package, standard trench-and-lay, standard SWMS site pack). All stages, line items and notes come across.


13. Duplicate a Quote

Every row in the Quotes register has a Duplicate button. Duplicating:

  • Copies the header, all stages, and every line (with its snapshot price preserved verbatim).
  • Copies all per-line and per-stage notes.
  • Resets the new quote to a draft: no quote number, no revision, no PDF, no linked converted job.

Use it whenever you want a fresh quote based on an existing one without mutating the original.


14. Start From a Past Job

From Past Job lets you build a quote by snapshotting a historical job's real numbers. Pick a job and the platform pre-fills a new draft with:

  • Employees who worked the job, with their total submitted/approved hours.
  • Assets used on the job, each priced for the charge-rate period used at the time.
  • Materials used on the job, at the client's current material pricing.

The new quote is completely isolated — it records the source job for your reference only. Editing or issuing the quote does not change the original job in any way. From past job on this screen and quote_from_job in a Grok Bot are the same action.

This is ideal for producing a variation or a "same again next year" quote.


15. Schedule and Clash Check

On the Schedule tab, set the quote's proposed start and finish dates, then click Run clash check. The check compares the quote's proposed employees and assets against your active and pending jobs whose dates overlap the quote window. Results list:

  • The resource (employee or asset) that clashes
  • The conflicting job (linked so you can open it)
  • The other job's dates and status

The clash check is advisory only. It never blocks you from issuing or converting a quote — it's there so you can spot capacity problems early and either reschedule or replace a resource. If no schedule window is set, the check gives you a friendly prompt to set the dates first.


16. Preview PDF

The Preview PDF tab always renders the quote live from the current editor (letterhead, line items, and any Summarise on PDF ticks):

  • Draft / Template previews carry a faint diagonal PREVIEW watermark and no quote number. This makes it obvious the document isn't the issued version.
  • Issued quotes also preview live — so you can check a change before you re-issue. The file behind Download PDF is still the last issued snapshot until you Re-issue.
  • If your company has no letterhead uploaded, the preview uses a clean built-in header so you can still show the client what they'll receive while branding is being finalised.

Use Refresh to re-render after edits, or Open in new tab to view full-size.


17. Detailed Summary Tab

The Detailed Summary tab is the review view before finalising. It shows:

  • Quote header (client, category, type, validity, schedule).
  • Per-stage breakdown listing every line item — labour, asset and material — with quantity, unit, amount, visible notes and stage subtotal. Sections ticked Summarise on PDF stay expanded here and show a 1 line badge so you can see what the client PDF will collapse.
  • Whole-of-quote totals (subtotal, discount, tax, grand total).

Read it top-to-bottom before issuing to catch missing items and formatting slips. Use Preview PDF to see the collapsed client layout.


18. Finalise and Re-issue

When the draft is ready:

  1. Click Finalise.
  2. AXITRAQ assigns the next quote number (using the prefix and sequence configured in Quote Settings — e.g. QUO-0001).
  3. The branded PDF is generated and stored against the quote.
  4. The quote's status moves from Draft to Issued.

A finalised quote that has not been converted stays editable on this screen. If a client asks for a change, or you tick Summarise on PDF after issuing:

  1. Edit the quote.
  2. Click Re-issue.
  3. The revision number increments (e.g. Rev A → Rev B), the PDF is regenerated, and the new revision replaces the previous one on the record.

Preview already shows the new layout; Download PDF only updates after Re-issue. The client's copy of a previous revision is unaffected — only newly downloaded copies use the new revision.


19. Download the Quote PDF

Once a quote has been finalised, Download PDF appears on the editor. The PDF is served securely and is only downloadable by users in your company who have the Quotes permission — it is never public and cannot be accessed by another tenant. The quote screen does not email the PDF to the client. Download it and send it from your own mail.


20. Convert Quote to Job

Accept, reject, and expiry

The editor shows a status badge: Draft, Issued, Accepted, Rejected, Expired, or Converted. Finalise & PDF assigns the quote number and moves a draft to Issued (an already accepted quote stays accepted). Valid Until is the date printed on the PDF. It does not change the status by itself, and the screen has no Accept, Reject, or Expire buttons.

A company that is not using a Grok Bot cannot move that badge to Accepted, Rejected, or Expired. Record the client's answer in your own notes, or in the quote description. Convert to Job still works from Draft or Issued and does not need the badge to say Accepted. Only a Grok Bot can change the badge, with set_quote_status.

A Grok Bot can move the status with set_quote_status:

  • Draft can be marked rejected.
  • Issued can be marked accepted, rejected, expired, or returned to draft.
  • Accepted can be marked expired or returned to draft.
  • Rejected or expired goes back to draft before it can be issued again.
  • Issued itself comes only from finalising. Accepted needs a quote number.

On this screen, Convert to Job does not require the badge to say Accepted. In a Grok Bot, convert_quote does: the quote must be accepted, finalised (it has a number), and have a client.

What convert does

  1. Open the quote and click Convert to Job. A preview lists every stage (there is no stage-count limit) with dates and quoted totals.
  2. AXITRAQ creates one new job in Pending status with:
  3. A job description built from a per-stage cost breakdown of the quote.
  4. A note recording the quote number, revision and total.
  5. The quoted total stored as the job budget.
  6. One schedule window per quote stage (name, dates, and a snapshot of labour / asset / material lines). Summarise on PDF does not change this — the job always gets every line. The calendar shows one event per stage — not a single bar from first to last date.
  7. The distinct employees from the quote linked as job employees.
  8. The distinct assets from the quote linked as job assets.
  9. Every part-backed material line converted to an estimated job material (aggregated per part), using vendor-quote buy costs where you applied them.
  10. Any vendor quotes attached to this quote copied onto the job (and linked to the job+vendor purchase order when one exists).
  11. The quote's status moves to Converted. On this screen the quote can still be changed and duplicated. Delete is refused, and Finalise is refused while the status is Converted. Pressing Convert to Job again opens the existing job. A Grok Bot cannot edit or delete a converted quote.

Free-text material lines (items that aren't linked to a catalogue part) are noted in the job description but not added as estimated materials — because there's no catalogue part to attach them to.

Idempotent. If you press Convert to Job again on a quote that's already converted, you get a link to the existing job — no duplicate job is ever created.

The new job then follows the normal Jobs workflow: schedule each stage, assign crew, capture timesheets, and invoice. See Invoicing a Job for manager approval, Standard actuals invoices, and Advanced progress / stage claims.


21. Vendor Quotes

On the quote Details tab, upload a trade vendor quote (for example an Example Supplies Pty Ltd specials PDF). AXITRAQ stores the file and reads the line items (SKU, description, qty, buy). Click the vendor quote in the list to open a review window: the file on the left, captured items on the right.

  1. Choose the vendor, an optional reference, and the file, then Upload & read quote. Reading can take up to a minute. If a line was missed, add it in the review window. Read quote runs capture again (already-loaded lines are kept).
  2. Matching uses supplier item codes first, then part number, then an exact catalogue name. Invoice OCR uses the other order on purpose: part number, then supplier item code, then an exact name when the line has no part number. Unmatched lines still load as free-text materials — they do not create new catalogue parts or vendors.
  3. Load to my Quote on a line adds it to the first stage as Parts & Materials: item, description, qty, vendor buy, and a sell from buy × markup (client category / part MU, else system / company default). Catalogue sell is not used. Already-loaded lines show Loaded. Use Move to stage on the Stages tab if the sheet covers more than one window. Load all remaining does every unused line in one go.
  4. Tick Set as our new expected buy price on a line that matched a catalogue part. That remembers the expected buy so a later vendor invoice for that item can alert if the price differs. It still does not change the catalogue. The tick is disabled until the line matches a part.
  5. Apply buy to existing lines (in the review window) is the overlay path: it writes vendor buy onto material lines that already share the same catalogue part. It does not add new lines.

Hard rule: a vendor quote never writes catalogue buy or sell. Catalogue buy changes only when someone edits the part, or when a confirmed vendor invoice is processed — and for job-only specials that invoice confirm leaves the catalogue alone unless you tick Also update catalogue buy prices.


22. Quote Settings

Manage → Quotes → Quote Settings (admin only) covers:

Stages & Costing defaults

Default Ex / Inc GST and Markup % / Gross profit % for new quotes. Each quote can still change the radios; line prices stay stored exclusive.

Numbering

  • Prefix for quote numbers (e.g. QUO-).
  • Next number — the sequence AXITRAQ will use for the next issued quote. You can pre-set this to align with an existing numbering scheme when you first switch to the platform.

Default Terms

  • Paragraph of default terms and conditions that appear on the printed quote when the quote is not ending with a brand terms PDF. A brand terms PDF replaces this text on that quote, because the page is already full.

Branding — Letterhead and Continuation

Upload two PDF backgrounds that AXITRAQ overlays quote content onto:

  • Letterhead — used as the background of page 1 only.
  • Continuation — used as the background of pages 2+ (optional).

The letterhead is your existing designed A4 stationery in PDF form — you keep full control of the visual design. AXITRAQ places quote content inside a configurable safe-area so it never overlaps your letterhead's logo, address block, or footer.

Adjust the safe-area margins to match your letterhead layout (top/right/bottom/left). Upload size limit is 15 MB and files must be valid PDF.

If either background is missing, the printed quote still renders using a clean built-in header — so a new customer can start issuing quotes immediately while designed letterhead is prepared.

Quotes that do not pick a brand keep using this account letterhead. Nothing about an existing quote changes until a brand is chosen on that quote.

PDF brands

Use PDF brands when one account quotes under more than one trading name and the legal entity is the same. Smith Plumbing and Example Supplies Pty Ltd are one example: one ABN, one quote-number sequence, a different letterhead for each name. A separate number series means a separate AXITRAQ account.

Each brand has:

  • Letterhead — page 1 of the quote body.
  • Continuation — later pages of the quote body. If you leave this empty, the letterhead is used again.
  • Terms — a finished PDF added as the last page. Nothing is drawn on it: no quote lines, no page number, no letterhead.
  • Safe-area margins for that artwork.
  • An optional lead letter and closing, with tokens such as {client_name}, {quote_number}, {quote_date}, {total_ex} and {total_inc}. Bold, italic, underline, lists, and left, centre or right alignment are kept.

You can upload those as three files, or as one PDF. In a single file, page 1 is the letterhead. If the file has three or more pages, page 2 is the continuation and every page after that is the terms sheet. A two-page file uses page 2 as the terms sheet.

On the quote, PDF brand defaults to Account letterhead, which is the PDF this account already had. Choosing a brand does three things:

  • The company name, address, phone and ABN are not printed on the quote. They belong on the letterhead.
  • Lead letter is off unless you turn it on. Off, the quote starts on page 1 the way it does today: who the customer is, the quote number, date and validity, then the items. On, the letter is page 1 and the quote starts on the next page.
  • Append the brand terms page adds that terms PDF at the end. It is separate from the lead letter, so a short quote can still end with the terms page.

Each stage has a PDF choice. Itemised is the quantity and price table. Lump sum lists the line descriptions with no prices and one total for that stage. Costing on the Stages tab does not change, and the quote still converts to a job either way.

Labour, asset and parts lines print in normal weight. The B button on a line makes that line’s wording bold on the PDF. Stage names, column headings and totals stay bold.

Categories and Quote Types

Manage the pick-lists that appear on the quote header:

  • Categories — e.g. Civil, Plumbing, Fitout, Maintenance.
  • Types — e.g. Fixed Price, Schedule of Rates, Time and Materials.

Both are per-company and only used inside your account.


23. Tips and Best Practices

  • Build a template library. Most trades quote a handful of jobs repeatedly. Turn your first good quote of each shape into a template and start every subsequent one from it.
  • Use stages liberally. Two or three well-named stages make a printed quote instantly easier for a client to read (and reduces scope disputes).
  • Turn per-line notes on selectively. Client-facing detail should be Show on quote; internal margin comments should be hidden.
  • Set the schedule window early so the clash check is meaningful.
  • Preview before finalising. The Preview PDF tab is exactly what your client sees — one glance often catches a wrong quantity, a missing note, or a stage in the wrong order.
  • Re-issue for changes, don't create a new quote. Re-issuing keeps the same quote number with a revision letter, which is much cleaner for your client to reconcile.
  • Refresh Prices sparingly. On a long-running draft, remember that a refresh will pull today's rates onto every catalogue-linked line — it can move totals. Use it deliberately.
  • Convert only when the client has confirmed. Once a quote is converted, the job appears in scheduling and dashboards.

24. Grok Bot

A person with Quotes access can build a quote from their own Grok Bot. The bot uses that person's Quotes permission. View can read a quote, its settings, and the PDF layout. Create or edit can start a quote, copy one, start from a template, or start from a job. Edit can change stages, lines, vendor quotes, terms, categories, types, margins, and PDF brands. Delete removes the quote from the list and keeps the row. A converted quote cannot be deleted, and the bot will not edit one.

Search quotes lists quotes. template true lists templates. status can be draft, issued, accepted, rejected, expired, or converted. Get a quote, or call get_quote, for every field: header, stages, labour, assets, parts, notes, whether each note prints, totals, and vendor quotes.

note_visible true shows that note on the quote. False keeps it off the PDF. A new line shows the note when the field is left out.

Parts come from search parts. A new part must be active. The price stored on the line is a snapshot. A vendor quote does not change the parts catalogue. scope job_only keeps the vendor quote on this quote. scope ongoing marks it as pricing that stays with the vendor. Upload sends the file as base64, up to 6 MB, then the bot reads the items.

Add a client with create_client, then put that client on the quote. Categories and types are added from quote settings.

quote_preview describes the PDF: seller, bill-to, the lines that print, totals, margins, and whether letterhead, continuation, and terms artwork are attached. The layout is marked PREVIEW, including a quote that already has a number. include_pdf true also returns the file when it is 6 MB or smaller, with PREVIEW on the pages. Leave stored out for that live preview. stored true returns the finalised PDF.

A percent discount cannot be more than 100. A discount value is refused when the type is none. A schedule or stage finish before its start is refused, and a finish needs a start. Hours, units, and quantity must be greater than 0. Cost and markup work out the sell price. Changing the part on a line takes that part's name unless a description is sent with it. A hand-entered rate is left alone when prices are refreshed. Copying a quote or starting from a template keeps the stages and the prices. A quote that is not a template cannot be used as one. A template has no status.

finalise_quote assigns the next free number and stores the PDF. A number already used, including on a deleted quote, is refused in settings and skipped when the next quote is issued. The quote needs a client. Finalising an accepted quote leaves it accepted. A template is not issued. set_quote_status cannot mark a quote issued. Issued comes from finalise_quote, and a quote needs that number before it can be accepted or converted. Inclusive tax prints the inc-GST amounts on the preview. The stored totals stay ex tax, and the PDF total is not taxed twice. On a tax-inclusive quote, the stage amounts add up to the payable total, including when there is a header discount and when lump-sum stages are mixed with itemised stages. A printed line matches its category row. A stage subtotal is that stage's lines less the discount printed in the stage. An empty stage does not print a zero subtotal. A typed material sell price with no cost stays when only the description, quantity, unit, or note changes. A sell price below the cost is refused. Moving a line recalculates the totals, and a move that would pass the quote total cap is refused. to_stage_id is the destination stage. stage_id means the same destination. Send only one. Issuing a quote that does not fit is refused and no number is taken. A category or type name with a double space is the same name. Wide amounts, including a 12-digit figure, fit in the PDF columns. A line total that does not fit is refused. Several lines that each fit, but together pass the quote total cap, are refused and nothing is saved. Tax is not reduced to make that total fit. A category or type name that already exists is refused. An existing line with a zero price can be renamed without sending the price again. A supplier line uses the part, client, category, or company default markup. A default of 0 means sell equals buy. A new quote takes the account default brand, including its lead letter and closing. Letterhead prints on the first page. Later pages use the continuation sheet when one is uploaded. A line of $0.00 is left off the PDF. A decommissioned asset cannot be added to a quote, and it is not linked when a quote becomes a job. A category or type that a quote still uses cannot be deleted. Saving a stage from the quote screen keeps a stage discount that is already on the stage. convert_quote accepts only an accepted quote that has been finalised. It creates a job on the quote schedule, from the company work start to the company work end, so the last day stays on the job. The client's default address is copied as the street and suburb. It refuses a stage whose finish is before its start. convert_quote_preview shows that job first and does not create it. The bot cannot edit or delete a converted quote, so the job can still open it. The quote screen can still change that quote, and it also refuses delete. When stages have their own discounts, the PDF totals include a Stage discounts line before the quote discount. A lump-sum stage total is already after its own discount. On a mix of lump-sum and detailed stages, that discount stays out of the Stage discounts line, and the lump-sum total is added as Lump sums. When every stage is a lump sum, the preview leaves the category totals and stage discounts at zero, the same as the PDF. A category total of zero is left off. Status moves follow the quote: a converted quote stays converted, and an expired quote goes back to draft before it can be issued again.