Skip to main content

Store Operations (Daily Ops)

Often forgotten. Includes Shift control Shift control is one of the most critical POS operational features — and one of the most underestimated. It affects: cash accuracy fraud prevention auditability daily reporting (X/Z) employee accountability Without shift control, financial data cannot be trusted. Here’s what to add for Store Operations → Shift control. What “Shift control” means (business meaning) A shift represents the period where a cashier (or team) operates a register. Typical lifecycle: Open shift (declare starting cash) Operate (sales, refunds, cash movements) Close shift (count cash, reconcile) Review differences Shift is the container for all register activity. Core concept (very important) Shift = time window + register + cashier + money Everything that touches cash must reference a shift. Meaning: sales refunds cash movements payouts adjustments must be linked to shift. What you must track (minimum data) Shift header location register / device cashier / owner opened_at closed_at status Financial snapshots opening cash amount expected cash amount (computed) counted cash amount (entered at closing) difference Activity counts number of sales refunds count payments by method (computed) Database additions (recommended)

  1. cash_shift (core table) Fields: id business_id location_id register_id (or device_id) opened_by opened_at opening_cash_amount closed_by closed_at closing_counted_cash closing_expected_cash (snapshot) difference_amount status (open | closed | reviewed) This is one of the most important operational tables.
  2. Link shift to transactions (critical) Your sale table must include: cash_shift_id Your payment table must include: cash_shift_id (or derive via sale) Cash movement table must also reference shift. This enables reconciliation.
  3. Cash movement table (very important) You need a way to track: cash in (float add) cash out (expenses) safe drop adjustment cash_movement id cash_shift_id type (cash_in | cash_out | safe_drop | adjustment) amount reason created_by created_at Without this, reconciliation breaks. Backend functionality you need Core shift flow open shift validate no other open shift (configurable) attach shift to POS session close shift (compute expected) reconcile difference Computations (important) Expected cash = opening_cash cash sales cash_in movements refunds (cash) cash_out movements safe drops Must be deterministic. Frontend screens (PWA) Open shift screen (MVP) show last shift info enter opening cash confirm Must be very fast. Shift dashboard (during shift) Show: current cash expected sales count payment breakdown quick cash movement button This reduces closing surprises. Close shift screen (critical UX) show expected cash enter counted cash show difference require note if difference exists confirm This is daily ritual in retail. Reports (Metabase — extremely important) shift summary cash differences by employee payment mix per shift average shift revenue refund activity per shift suspicious shifts (differences) cash movement audit This is core operational analytics. Retail vs Restaurant differences Retail: more returns more cash differences risk strong audit requirement Restaurant: higher volume tips handling (important later) multiple simultaneous cashiers Same shift model works. MVP vs Phase 2 ✅ MVP shift control cash_shift table open/close workflow opening cash expected vs counted link sale/payment to shift cash_movement table shift summary screen 🚀 Phase 2 multi-cashier per shift shift handover blind closing approval workflow tip tracking (restaurant) safe management anomaly detection offline reconciliation Biggest edge cases (important) POS offline during shift shift left open overnight multiple devices per register refunds after shift closed cross-location shift misuse safe drops partial shift closing currency rounding differences These need clear rules. Strategic insight for FlowPOS (important) Shift control connects: payments sales refunds store credit usage loyalty redemptions cash movements reporting It is the backbone of daily operations. If you design shift correctly → financial trust is high. If you want, next I can give you: Minimal Kysely schema for shift control ⭐ recommended Payment architecture (ties everything together) ⭐ very important X/Z report design (directly after shift) Register vs shift architecture (often confusing) Multi-cashier model (restaurant pattern) Cash reconciliation algorithm (practical implementation)