Sweets Tracker UPDATES — not live data

Inventory, batches & sales — backed by your Google Sheet

Couldn't load your saved data.
Adding sweets, tiers, batches or recording a sale is disabled until this is fixed, so nothing gets written over stale data. Tap Refresh to retry — check your connection if it keeps failing.

Record a sale

Items in this sale 0 items added

Selling 2+ different sweets in one transaction? Pick each one above with its own quantity and tap "Add to sale" for each one, then hit Record sale once the cart is right. A cart spanning 2 different price tiers gets a flat £0.50 off automatically. A single sweet doesn't need this panel at all — just pick it above and record the sale as usual.

£0.00
Total revenue
£0.00
Total Cost per Sweet
£0.00
Sales profit

All-time, across every sale. Sales profit charges each £0 reward redemption its real, stored COGS.

Live stock

SweetTierPriceStock remaining

Recent sales

DateSweetQtyPrice chargedRevenueCOGSProfitStock afterCustomerActions

Sweets

Stock pools

A stock pool lets two or more sweets share the same physical delivery of stock (e.g. sold under two interchangeable names at the same price) — selling ANY sweet in a pool draws down the shared total. Assign a sweet to a pool from its Edit form above. Most sweets have no pool — leave "Shares stock with" set to none.

Price tiers

A sweet's sale price is always whatever its assigned tier currently says here — editing a tier's price only affects sales recorded from now on; past sales keep the price they were sold at.

Record a batch (bulk reorder)

Batch history

Order dateSweetQty orderedRemainingCost/unitSupplier

Couriers

Each courier gets a short access code, generated here, that they enter once into courier.html. It's a real credential — checked server-side against this list on every single sale they record, not just at login. Flip a courier to Inactive to revoke their access immediately; their very next sale attempt will be rejected, even if they never reload the page.

NameAccess codeStatusAdded

Hand stock to a courier

A REAL physical stock draw — this decrements the chosen batch's remaining stock immediately, same as any other draw. The courier then owes you the sale-price revenue for whatever they sell from it; unsold stock just stays outstanding (no "return to batch" — a future manual fix if it's ever needed). Since this shipped, a courier can ONLY sell stock they currently have an open handout for on courier.html — this replaces free selling from the whole warehouse.

Choose a courier and a batch.

Handouts

Open and settled handouts both stay visible here, tagged — audit-trail style, same as voided sales. Outstanding/revenue owed are always computed fresh from the Sales log (excluding voided sales), never a stored counter.

CourierSweet / PoolBatch dateHandout dateHanded outSoldOutstandingRevenue owedStatus
sweets-tracker · build 2026-09-18b