At a Glance
Module purpose: Scheduled full count of every item at a location, with recount workflow and variance posting via inventory adjustments · Audience: Inventory Controller (count lead), Counter / Store Keeper, Finance Reviewer, Auditor · Key entities/tables:tb_physical_count_period,tb_physical_count,tb_physical_count_detail, three comment tables, fourenum_physical_count_*enums · Sub-pages: 10


A Physical Count is a scheduled, end-to-end count of every item held at a location, performed to reconcile the system's book balance against what is actually on the shelf. The process is document-driven: a count sheet (or count list) is generated from the current on-hand snapshot for the target location, counters walk the floor and record physical quantities line by line, and the system computes a per-line variance — physical minus book. Discrepant lines are flagged for a recount before any variance is accepted as final.
Physical counts are typically run in one of two operating modes. A frozen-stock count locks all inbound and outbound movements at the count location for the duration of the exercise, so the book balance does not drift while counters are working; this gives the cleanest variance but requires downtime. A live-count mode permits operations to continue, with the system snapshotting the book quantity at count time and reconciling subsequent movements against that snapshot — faster for the business but harder to audit. The choice is driven by the value of the location, audit policy, and how long the count is expected to take.
Cadence varies by operation and risk profile. High-value or high-velocity stock (spirits, premium proteins, controlled drugs) is often counted monthly; bulk dry goods quarterly; full-house wall-to-wall counts typically run at fiscal period-end (annual or semi-annual) for audit sign-off. Once recounts are complete and variances are accepted, the physical count posts: book balances are reset to the counted quantities and the variance lines are written out as inventory adjustments through the normal posting workflow, so every count correction lands in the same audit trail as any other stock movement.
TODO: Source content from
../carmen-inventory-frontend/(UI flow) and../carmen-inventory-frontend-e2e/(test scenarios). No carmen/docs source folder exists for this module.
Physical count is a regulatory and audit baseline, not a discretionary task. External auditors require a documented count at period-end to certify the inventory line on the balance sheet, and most hospitality groups have internal policy mandating cycle counts on high-risk categories at higher frequency. A complete, signed-off count is the evidence that the inventory value carried on the books is real — without it, the closing valuation is unsupported and the audit opinion is at risk.
The financial accuracy stakes are immediate. Hospitality operations run on thin food and beverage margins, and uncounted shrinkage compounds quickly: theft, spoilage, miss-pours, transfer errors, and miscategorised consumption all erode book accuracy between counts. Period-end physical count is where that drift is detected, quantified, and posted as cost-of-goods variance — making the count the single largest correcting entry against COGS in many operations. A late or incomplete count means a misstated COGS, a misstated gross margin, and downstream errors in menu engineering and procurement forecasting.
Variance = Physical Count − Book Quantity. Positive variance is found stock (write-on); negative is shortage (write-off). Variance is also expressed in value terms using the item's current unit cost, and as a percentage of book quantity to flag outliers. Tolerance thresholds (absolute and percentage) drive which lines trigger recount and which can auto-accept.| Role | Responsibility |
|---|---|
| Inventory Controller / Inventory Manager | Leads the count: schedules the exercise, configures scope (location, categories, mode), assigns counters and zones, generates and distributes count sheets, monitors progress, resolves discrepancies, approves recounts, and triggers posting. |
| Counter / Store Keeper | Performs the physical count on assigned zones, records quantities on the count sheet, flags items that are damaged, unlabelled, or unfamiliar, and signs off completed sheets. |
| Approver / Finance Reviewer | Reviews completed counts and recount results, validates variance reasonableness against historical patterns, approves the variance adjustment document, and signs off on the financial impact at period close. |
| Auditor | Observes a sample of the count in progress, inspects the full chain — count sheets, recount records, approvals, posted adjustments, journal entries — for compliance, segregation-of-duties, and policy adherence. |
Cross-module flow:
Master configuration:
../carmen-inventory-frontend/../carmen-turborepo-backend-v2/../carmen-turborepo-backend-bruno/../carmen-inventory-frontend-e2e/tb_physical_count_period, tb_physical_count, tb_physical_count_detail plus three comment tables; four enums).PHC_VAL_* / PHC_CALC_* / PHC_AUTH_* / PHC_POST_* / PHC_XMOD_*).Status: all sub-pages are skeleton-level (~50-100 lines each). Each carries explicit TODO callouts pointing at the upstream sources to use when filling in (
../carmen-inventory-frontend/for UI flow;../carmen-inventory-frontend-e2e/tests/for E2E specs — no physical-count spec exists yet). Data-model section is grounded in the Prisma schema and is the most-developed page; business-rules introduces a proposedPHC_*rule-ID catalogue that needs carmen/docs confirmation; user-flow and test-scenarios are structural placeholders.