Disposal fees and environmental levies
Summary
Section titled “Summary”Disposal fees (also known as environmental levies) are extra charges added to invoices for waste handling — tyres, oil, batteries, coolant, refrigerant, and so on. Torqueflow lets you configure these once in Settings, optionally tie them to a part category so they apply automatically when an invoice is generated, and add them manually on standalone invoices.
Each fee can have its own customer-facing description, tax rate, and nominal code. Disposal lines appear on the invoice and PDF alongside parts and labour.
Prerequisites
Section titled “Prerequisites”- You have the
finance.settings.managepermission to configure disposal fees. Owner has this by default. - You have the
finance.sales.editpermission to add a fee manually to a standalone invoice. - For automatic application, parts must be tagged with the part categories you choose as triggers.
- For Xero sync, each disposal fee that you want to push must have a nominal code set. Otherwise the line fails to push with an “unmapped nominal code” error.
Configure a disposal fee
Section titled “Configure a disposal fee”- Go to Settings → Finance → Disposal Fees.
- Click Add Disposal Fee.
- Fill in the form:
- Label (required) - e.g. “Tyre disposal fee”.
- Customer-facing description (optional) - shown as a smaller sub-line under the line on the invoice PDF, e.g. “Statutory tyre disposal levy — applied per environmental regulation”.
- Default amount - the fee per unit.
- Tax rate % - 0 to 100. Numeric, not a named code.
- Tax category (optional) - reporting tag only, defaults to
DISPOSAL_FEE. Does not affect the rate. - Nominal code (optional, recommended) - required if you want this fee to sync to Xero.
- Active - on by default.
- Sort order - lower numbers appear earlier on the invoice.
- Optionally add Auto-apply rules:
- Trigger - locked to “Part Category” in this version.
- Part Category - pick one of your configured part categories.
- Quantity source - “Match triggering part quantity” (e.g. 4 tyres → fee × 4) or “Fixed 1 per invoice”.
- Enabled - toggle.
- Save.
A live preview at the top of the form shows what the line will look like on the invoice PDF.
Edit a disposal fee
Section titled “Edit a disposal fee”Open the fee from Settings → Finance → Disposal Fees. Edit any field. Save.
Changing the default amount or tax rate does not retro-apply to existing draft invoice lines that were generated from this fee. Lines are snapshotted at generation time. Click Regenerate on an open invoice to refresh, or edit the line directly.
Archive a disposal fee
Section titled “Archive a disposal fee”Click Archive on a fee you no longer use. Archived fees:
- Are hidden from the manual-add picker.
- Are skipped by auto-apply rules.
- Still resolve correctly on historical invoices that already have the fee as a line.
To bring an archived fee back, toggle Show archived at the top of the list and re-activate it.
Add a disposal fee manually on an invoice
Section titled “Add a disposal fee manually on an invoice”- Open or create a standalone invoice (or edit an existing one).
- In the line editor header, click Add disposal fee (next to Add Line).
- Pick the fee from the dropdown. The line is inserted with the configured amount, tax rate, and description.
- Edit the line if needed - quantity, price, tax, description are all freely editable after insertion.
- Save the invoice.
If the picker is empty, you have not configured any disposal fees. Click the link to Settings → Finance → Disposal Fees to add one.
The manual picker is currently available on Standalone Invoice create and Edit Invoice dialogs. The “Generate Invoice from Work Order” dialog uses a different editor that does not yet expose the manual picker. Auto-apply rules cover the work-order invoice flow.
Expected Outcome
Section titled “Expected Outcome”- Disposal fee lines appear after labour on the invoice and PDF, with the optional customer description shown as a smaller sub-line.
- Where auto-apply rules match (a triggering part category is on the work order), the fee appears automatically when you generate the invoice.
- Lines flow through to Xero (if connected) provided the fee has a nominal code mapped to a Xero account code.
How auto-apply works
Section titled “How auto-apply works”Auto-apply runs at invoice generation time — not at the point you add a part to a work order, and not at quote time.
When you generate a sales invoice from a work order:
- Torqueflow scans the work order’s parts.
- For each disposal fee with auto-apply enabled, it checks whether any part matches the triggering part category.
- Matching parts have their quantities summed (or the fee is applied as quantity 1 if “Fixed 1 per invoice” is set).
- One aggregated line is appended to the invoice for that fee.
- You can edit or remove the line in the invoice review step before saving.
If you regenerate an invoice (delete and recreate), the auto-apply runs again from current config — so changing a fee amount and regenerating gets you the new amount.
Quote-vs-invoice trade-off
Section titled “Quote-vs-invoice trade-off”Disposal fees do not appear on quotes generated before the invoice is created. The final invoice can therefore exceed the quoted total by the disposal fees. This is a known trade-off in the current version.
Workarounds:
- Manually add disposal fees on the quote at preparation time so the customer sees them up front.
- Tell the customer in advance that statutory disposal levies will be added at invoicing.
A future release will add a “this part will trigger a £X disposal fee” preview on the quote.
Standalone quotes (from Finance → Quotes) do not have a work order context and do not auto-apply disposal fees.
- Torqueflow does not ship with default disposal fees. Configure your own based on your region and supplier costs (UK garages typically charge £2-£3 per tyre, for example).
- There is no retroactive application. Only invoices generated after this feature shipped pick up disposal fees. Old invoices stay as they were.
- Multi-site garages can have several fees with the same label - e.g. “Tyre disposal — Birmingham (20%)” alongside “Tyre disposal — Cardiff (0%)”. Saving a duplicate label triggers a soft warning, not a hard block.
- There is no per-customer opt-out in this version.
- Credit notes do not have special disposal-fee logic. Crediting a line that was a disposal fee just credits the gross like any other line.
Troubleshooting
Section titled “Troubleshooting”Problem: I added a fee but it never appears on the invoice automatically. Cause: Either the fee is archived, the auto-apply rule is disabled, the part category does not match any part on the work order, or you generated the invoice before configuring the fee. Fix: Check the fee is Active. Check the auto-apply rule is Enabled and uses the right part category. Confirm the part on the work order is tagged with that category. Click Regenerate on the invoice if it was generated before configuration.
Problem: A fee with no nominal code triggers a Xero sync error. Cause: Disposal fee lines are pushed to Xero through the same flow as parts and labour. Each line needs a nominal code that maps to a Xero account code. Fix: Open the fee in Settings, set a nominal code, then sync the invoice again. The settings page warns you if a fee has no nominal code while a Xero connection is active.
Problem: Auto-applied fee has the wrong quantity. Cause: The “Quantity source” setting controls whether the fee scales with the triggering part quantity or stays at 1. Fix: Open the rule. Pick Match triggering part quantity (e.g. 4 tyres → fee × 4) or Fixed 1 per invoice as appropriate.
Problem: I cannot find the manual Add disposal fee dropdown when generating an invoice from a work order. Cause: The work-order invoice generator uses a different editor that does not yet expose the manual picker. Fix: Use auto-apply rules to trigger the fee from a part category, or edit the invoice afterwards in the standard line editor where the picker is available.
Permissions
Section titled “Permissions”finance.settings.manageto create, edit, archive, or restore disposal fees.finance.sales.editto add a fee manually to an invoice.