One catalog for every chemical you use
The Chemicals page (Chemicals in the sidebar) is your company-wide chemical catalog. Every chemical you add here is available to technicians when they complete a visit — the quantities they record drive customer billing, your stock counts, and profitability.
Parts work almost the same way, with a few important differences — see Parts inventory for the parts side.
Add and edit a chemical
Click Add Chemical on the Chemicals page and fill in:
- Chemical Name and Unit — the unit is free text (e.g., Gallon, Pound, Ounce). Technicians record usage in this unit.
- Customer Price per Unit ($) — what you charge the customer per unit.
- Your Cost per Unit ($) — what you pay for it, used for profitability tracking.
- Quantity — how many units you have on hand right now.
- Low Stock Alert — an optional threshold that flags the chemical when stock runs low.
- Always Charge — a billing override explained below.
- Photos — optional product photos.
If you enter both a starting quantity and a cost, that starting stock is recorded as the first entry in the chemical's Purchase History.
When you edit a chemical later, you can change the name, unit, customer price, low stock alert, Always Charge, and photos. Quantity and cost are not directly editable after creation — they're managed through restocks and removals, so the numbers always trace back to real purchase entries.
Chemicals are never deleted — Archive removes one from active use (with a confirmation), and the Show Archived checkbox on the Chemicals page lets you find and Restore it later.
Customer Price vs. Your Cost
Each chemical tracks two numbers, and the detail page shows the margin between them:
- Customer Price per Unit — the amount billed to customers when the chemical is charged. You can edit it any time.
- Your Cost per Unit (Avg Cost) — a weighted average of what you actually paid across your restock entries. It updates automatically as you record purchases; it can't be typed over directly.
To change a chemical's cost, record a restock at the new price — the weighted average recalculates automatically. You can also edit or delete a past purchase entry, which recalculates both stock and average cost.
Stock and low-stock alerts
Chemical stock is calculated for you: total purchased (restocks minus removals) minus total used on job completions. When a technician records 2 gallons of chlorine on a visit, your chlorine stock drops by 2 — and if a completion is edited later, stock is recalculated to match.
- Set an optional Low Stock Alert threshold on each chemical.
- When stock is at or below the threshold, a red Low badge appears next to the stock count in the Chemicals table and on the chemical's page.
- The chemical's page also shows a Low Stock Alert banner with the current stock and threshold, plus an Inventory Value (Cost) figure (stock × average cost).
The Always Charge toggle
Whether a chemical appears on the customer's invoice normally depends on the job's chemical billing settings — on a job where all chemicals are included in the rate, individual chemicals aren't billed. Always Charge overrides that for one specific chemical: it's billed at its Customer Price even when the job includes all chemicals in pricing.
Use it for expensive or occasional chemicals (salt, specialty treatments) that you don't want absorbed into a flat all-inclusive rate. Chemicals with the toggle on show an amber Always Charge badge in the table, and the chemical's page shows its billing as either "Always Charge — billed even when job includes all chemicals" or "Standard — follows job billing settings".
Billing uses the chemical's current Always Charge setting at the time the invoice is generated — so flipping the toggle affects visits that haven't been billed yet.
Restock and remove stock
On a chemical's page, the Inventory card has Add and Remove buttons:
- Add (restock) — enter the Quantity Purchased and the Purchase Cost per Unit ($) (required), plus optional notes (supplier, PO number) and photos — handy for attaching the receipt or a photo of the delivered stock. A live preview shows the total purchase cost, the new stock total, and the new average cost per unit before you save.
- Remove — enter the Quantity to Remove and an optional reason (expired, waste, damaged, correction). Removals reduce stock but don't change the average cost — that's calculated from restocks only.
Purchase History: edit or delete an entry
Every restock and removal is listed in the chemical's Purchase History, with quantity, cost per unit, total, date, notes, and photos. Click any entry to edit it — change the quantity, cost per unit, notes, or photos, and the chemical's stock and average cost are recalculated.
If you change a restock's quantity or cost, a checkbox appears: "Also update past job completions that used this chemical and recalculate profitability". Check it to apply the corrected cost to visits that already recorded this chemical, so your profitability numbers reflect what you really paid.
You can also Delete an entry (with a confirmation) — the stock quantity and average cost are recalculated, and the deletion can't be undone.
Usage History
Below Purchase History, the Usage History card lists every job completion where technicians recorded this chemical — the quantity used, the customer, the job, the technician, and the date. Click an entry to jump to that job.
QuickBooks
- With QuickBooks connected, an Import from QuickBooks button on the Chemicals page opens the items importer so you can bring your existing QuickBooks products in as chemicals.
- Each chemical's page shows a QuickBooks card with its sync status and a Sync to QB (or Re-sync) button.
- Stock and cost changes from restocks sync to QuickBooks automatically while connected.
See QuickBooks sync for connection setup and the product sync settings.
Job Chemical Inventory vs. the Chemicals catalog
Don't confuse the company-wide Chemicals catalog with Job Chemical Inventory, which only applies to maintenance jobs using the job inventory chemical billing mode. In that mode, you log chemical purchases against one specific job: the customer is invoiced for the chemicals at purchase time, and the quantities technicians record on visits draw down that job's own purchased stock instead of generating per-visit chemical charges.
- Chemicals catalog (this page) — your company's stock and pricing, shared across all jobs.
- Job Chemical Inventory — a per-job ledger of chemicals a specific customer has already paid for, used only on jobs set to the job inventory billing mode.
For the full picture of chemical billing modes, see maintenance billing modes.
Frequently asked questions
How do I change a chemical's cost?
Record a restock with the new purchase cost — the average cost is a weighted average of your restock entries and recalculates automatically. You can also edit or delete a past purchase entry, and optionally apply a corrected cost to past job completions.
Does chemical stock go down automatically when technicians use chemicals?
Yes. Chemical stock is calculated as total purchased minus total used across job completions, and it recalculates when completions are added or edited.
Why is a chemical being billed on a job that includes all chemicals?
That chemical has the Always Charge toggle turned on, which bills it at its Customer Price even on jobs where chemicals are included in the rate. Turn the toggle off on the chemical to stop that.