Supplies

Consumption-model categories

Every supply belongs to one of 4 consumption-model categories (gh#736). The category drives per-supply spend config, stale-stock warnings, and how the supply surfaces in checklists.

The 4 categories

1. Guest Consumables

Things the guest USES UP (coffee capsules, toilet paper, sugar packets, shower gel).

Behavior:

  • Per-stay consumption baseline (e.g. expected 2 capsules/day/guest).
  • Stale-stock warning if stock doesn't deplete over N stays (configurable).
  • Checklist "Add supply" widget surfaces by this category first.

2. Cleaning Supplies

Things the CLEANER uses (mop heads, all-purpose cleaner, scouring pads).

Behavior:

  • Per-cleaning consumption baseline.
  • Stale-stock warning if N cleanings happen without using the supply.
  • Operator can configure: should this supply spawn a per-cleaning use_supplies checklist item?

3. Stay Essentials

Things the GUEST EXPECTS to find but doesn't necessarily consume (towels, sheets, soap, kitchen utensils — operator-managed; not single-use).

Behavior:

  • No per-stay depletion expected.
  • Stale-stock warning suppressed (it's normal that towels don't deplete).
  • "Missing supply" tasks fire if cleaner reports a missing essential.

4. Reusables

Long-life items (vacuum, iron, mattress protector covers).

Behavior:

  • No depletion tracking.
  • Maintenance schedule per item (e.g. mattress protector replace every 12 months).

Per-supply spend config (gh#736)

Each supply row carries:

  • Expected consumption rate (per stay / per cleaning / per day / N/A) — drives the stale-stock warning.
  • Average unit cost — drives the cost breakdown in Accounting.
  • Vendor preference — last-seen receipt vendor for re-orders.

Stale-stock mis-config warning

When a supply's stock hasn't moved in N stays AND the consumption rate predicts it should have:

  • The Supplies row carries a ⚠ stale-stock chip.
  • Tooltip: "Coffee Capsules: 12 stays since last consumption. Expected 240 capsules used. Stock is the same. Probably missed checklist use_supplies action OR mis-configured."

Operator clicks to investigate — usually the fix is to add the missing use_supplies action to the cleaning checklist.

"Not depleting" filter (gh#826)

The Supplies list has a Not depleting filter — shows supplies that haven't been referenced by any checklist use_supplies action. Useful for catching the stale-stock mis-config above.

Earlier gh#826 fixed the filter that showed none when many should have appeared.

Group + filter checklist "Add supply" dropdown (gh#788)

When editing a checklist item that uses supplies, the Add supply dropdown groups + filters by consumption category. Operator can scope to "show only Cleaning Supplies for this cleaning checklist" instead of scrolling all 50+ supplies.


Implements: gh#736 (consumption-model categories + per-supply spend config + stale-stock warning), gh#788 (group + filter Add supply by category), gh#826 (Not depleting filter fix). Related: 4-level model, Stock tracking.

Source: the FlatsBratislava operator manual.