Skip to content

Quoting C6 hygiene services

C6 services are for hygiene replenishments — soap refills, urinal screens, hand-towel restocking, sanitary disposal services, and similar. They're priced and quoted differently from every other service type: instead of estimating cleaner time and multiplying by an hourly rate, you list the products being replenished, set a quantity and a frequency per product, and the BMS works out the annual value from there.

This page covers how to quote a C6 service end to end.

1. What's different about C6

For shift-based services (C5, C11, the rest), Tom estimates cleaner time per area, per task, per item or for the whole shift; pricing then multiplies that time by an hourly rate.

For C6 hygiene services, none of that applies:

  • There are no shifts. The "scope" is just the list of replenishment tasks.
  • There are no areas, no tasks, no items.
  • There is no hourly rate, no AI quoting. Pricing comes straight from the products' unit prices, the quantities, and the frequencies.

The opportunity, the service, and the site are all still created the same way. What changes is the Scope section on the service edit page and the formula on the Pricing card.

2. Creating a C6 service

  1. On the opportunity, click + Add service as usual.
  2. On the service edit page, set Service type to C6 (the dropdown shows C-codes; C6 is "Hygiene").
  3. The BMS does two things automatically:
  4. The Quote by field is set to "replenishment" and hidden on the edit page (you can't change the quoting method for a C6 service without changing the service type).
  5. The Scope section switches from the usual shifts/areas tables to a single Replenishment tasks table.

That's it — the service is now ready to have replenishment tasks added.

Changing service type to or from C6

The service-type field has two special behaviours around C6 because the scope shape is so different from every other service type:

  • Changing AWAY from C6 with replenishment tasks present — the BMS opens a confirm dialog: "This service has N replenishment tasks. Changing away from C6 will permanently delete them. Continue?" Cancel keeps the tasks and reverts the service-type field. Confirm deletes the tasks and resets the Quote by field to blank, so you explicitly pick the new quoting method.

  • Changing TO C6 from another service type — if the service has shifts, a similar dialog warns about deleting them. If it doesn't, the change is silent.

The dialog ignores Escape and outside-clicks on purpose — for destructive actions it forces an explicit Cancel or Delete-and-continue choice. Click one of the two buttons to proceed.

3. Adding replenishment tasks

On the C6 service edit page, the Scope section shows a Replenishment tasks table. Click Add task to open the product picker.

Which products appear in the picker? Only products that are: - marked Available as a C6 replenishment task on the product's edit page in Settings → Products, AND - active (not archived).

If the product you need isn't in the picker, go to Settings → Products, open or create the product, tick the "Available as a C6 replenishment task" toggle, and fill in the Replenishment task description (e.g. "Refill soap dispenser") and Replenishment price (ex GST) for that product. Save, then come back to the service.

Picking a product from the picker adds a new row to the table with three things filled in automatically:

  • Product — the product's name.
  • Task — the replenishment task description from the product (read-only on the row).
  • Unit price (ex GST) — the replenishment price from the product (read-only on the row).

The Unit price and Task are snapshots taken at the moment you add the task to the service. If the product is later renamed or repriced in Settings, this row keeps the original values — your existing quotes don't drift retroactively.

One column on the row is blank and editable — you fill it in:

  • Quantity — how many of this product are replenished each time the task happens (e.g. "1 soap dispenser refill", "3 urinal screens").

Frequency is fixed at every 4 weeks for all C6 replenishment tasks. It is not user-editable — the row shows "every 4 weeks" as a read-only label.

Until Quantity is set, the row contributes $0 to the pricing — it shows on the table but doesn't add to the totals. The Send proposal button on the opportunity also stays disabled until every replenishment task on every C6 service has Quantity set. That's the cue to come back and fill it in.

4. Bulk-deleting tasks

To remove multiple tasks at once, tick the checkbox on each row you want to remove. The header row swaps the Add task button for a selection toolbar with Select all and Delete buttons. Delete removes the selected rows immediately (no undo).

Single-row removal is also available via the same toolbar — tick one row, click Delete.

5. What "Replenishments per year" means

The Pricing card on the service edit page shows a row labelled Replenishments per year (instead of the "Shifts per year" row you see on shift-based services).

This is the total number of individual replenishment actions across the year — summed across all tasks. For each task, it's quantity × periods per year (13 periods per year, since frequency is fixed at every 4 weeks).

Worked example. A C6 service with two replenishment tasks:

Task Quantity Frequency Periods/year Replenishments/year
Soap refill 1 every 4 weeks 13 1 × 13 = 13
Urinal screen 3 every 4 weeks 13 3 × 13 = 39

Total Replenishments per year: 13 + 39 = 52.

(Not 13 + 13 = 26. Quantity matters — a replenishment is a per-unit action, so quantity 3 every 4 weeks is 39 individual replenishments per year, not 13.)

The Annual value (ex GST) on the same Pricing card is calculated the same way, multiplied by unit price per task: sum of (quantity × unit price × periods per year) across the rows.

6. How C6 pricing shows up on the opportunity

The opportunity-level Pricing card sums every service's Annual value (Ex GST). C6 services contribute their service-level annual to that total, alongside any shift-based services on the same opportunity.

One thing the opportunity Pricing card does NOT show is a combined "Visits per year" — mixing shift visits (e.g. 52 weekly cleans) with replenishment counts (e.g. 130 per-unit replenishment actions) in one number has no useful meaning, so the BMS doesn't display it. Per-service "Replenishments per year" remains visible on each C6 service's own Pricing card if you click into the service.


If you need the calculation details for any of the above, the developer reference is docs/live/bms-pricing-model.md §7.