Blind cycle counts
Govern recurring count policies or one-time location snapshots, execute blind first counts and independent recounts, then adjudicate any remaining variance without inventing a physical quantity.
Screen orientation
Eligible Stores and Tenant Admin roles access the screen with cycle_counts:read. Planning, counting and approval require cycle_counts:plan, cycle_counts:count and cycle_counts:approve respectively, plus site and clearance. cycle_counts:review separately permits phase-dependent count evidence visibility. Recurring plans enforce their assigned roles; the first counter cannot recount, and neither counter can approve the variance.
Header actions open recurring policy or one-time plan forms. The page contains a local count-intent panel, count-plan search/status/sort controls, recurring policies, active blind tasks and completed verification history. Policy decisions, blind counts and variance adjudication use separate dialogs.
Field reference
The entries below describe the current screen controls and read-only values. They do not relax server-side validation, site scope, classification handling or required independence in a governed decision.
| Field or value | Control | Required or shown when | How to use or read it | Result |
|---|---|---|---|---|
| Policy name | Text | Required for a recurring policy; 3–160 characters. | Name the recurring verification scope. | Identifies a draft policy without creating a count or freeze. |
| Site | Select | Required for policies and one-time plans. | Select an assigned site before choosing its location or location-type group. | Scopes the controlled verification area. |
| Scope / Controlled location / Location-type group | Conditional selects | A policy requires exactly one location or one location-type group. | Choose the relevant site scope; switching scope clears the previous selection. | Defines which locations can receive scheduled count plans. |
| ABC class | Select | Required; A, B or C. | Choose the risk class for either the recurring policy or one-time plan. | Retains the verification risk context. |
| Classification ceiling | Select | Required for recurring policies. | Choose the policy ceiling within the available authority; it must cover the scheduled stock. | Prevents scheduling above the policy's classification authority. |
| Cadence (days) / Reminder lead (days) / Escalate after (days) | Whole numbers | Cadence 1–3650; reminder and escalation 0–365. | Set review frequency and notification timing separately. | Controls future due dates and reminder/escalation timing, not stock adjustments. |
| Effective from / Effective to (optional) | Dates | Start required; optional end cannot precede start. | Bound when the recurring policy may schedule work. | Retains the scheduling validity period. |
| Blind first-count role / Independent recount role / Variance approval role | Selects | Three distinct eligible roles with active user coverage. | Choose roles offered by the server; users must cover the site's classification and remain independently eligible. | Pins the independent count, recount and approval responsibilities. |
| Risk rationale and controlled scope | Text | Required for a policy; at least three characters. | Explain the risk basis and custody exposure. | Retains policy planning evidence. |
| Governance rationale | Text in policy decision dialog | Required; at least three characters. | Explain activation, pause, resume or retirement. A different authorised planner must activate the draft. | Records a future-scheduling decision without changing existing plans. |
| Count location / Due date / Count reason and scope | Select, date and text | Required for a one-time plan; reason at least three characters. | Select the location to snapshot. Creating the plan freezes it immediately, even if its due date is later. | Creates the controlled blind snapshot and active movement freeze. |
| Scanned count-plan reference / Scanned location | Scanners or text | Both required for each first count or recount. | Reconcile the physical plan and location; both must match the selected task. | Binds observations to the frozen location. |
| Physical quantity counted | Decimal per line | Every line required; non-negative with up to six decimal places; serial count cannot exceed one. | Enter the observed quantity, including zero where appropriate. Operators without review authority receive no system or prior-count values; counter identities are withheld for all users. | Records first-count or independent-recount evidence without directly adjusting stock. |
| Count condition and observation notes | Text | Required; at least three characters. | Record seal condition, access and anomalies observed while counting. | Retains physical verification context. |
| System / First count / Recount | Read-only review values | Requires cycle_counts:review; visibility depends on plan phase. | First count is available from RECOUNT_REQUIRED; system and recount values from PENDING_APPROVAL or COMPLETED. The blind entry dialog does not render these comparison fields, but a review-authorised user can see phase-eligible evidence in the register or adjudication view. Counter identities remain withheld. | Provides scoped evidence for variance adjudication. |
| Accepted quantity | Decimal per variance line | Every line required for approval; must match either its first count or recount. | Choose one independently recorded quantity. Do not type a third estimated quantity; reject for another recount if neither is supported. | Determines the adjustment relative to the frozen system quantity. |
| Variance adjudication rationale | Text | Required for approve or reject; at least three characters. | Explain the evidence behind acceptance or the need for another recount. | Retains the independent variance decision. |
Actions and effects
When to use: When recurring scope, timing and three-role coverage are ready.
What it does: Saves a draft only; creates no count plan, balance disclosure or stock freeze.
When to use: With planning authority and a governance rationale; activation requires a different planner.
What it does: Changes future scheduling. A due active policy creates plans through the scheduler; existing plans and freezes remain governed independently.
When to use: For an assigned location with accountable stock and no overlapping active freeze.
What it does: Snapshots balances and immediately freezes location movements until the plan completes.
When to use: When the server marks the operator eligible for the next count phase.
What it does: Opens the observation-entry dialog without rendered comparison quantities or counter identities; review-authorised register visibility remains a separate permission.
When to use: After all physical quantities, scans and notes are complete.
What it does: Server-confirmed matching counts complete the plan without adjustment; first-count variance requires recount, and remaining recount variance requires approval. Offline submission remains a local intent until validated.
When to use: By an eligible approver who is neither counter, using recorded quantities for every line.
What it does: Posts only accepted-minus-system differences, reconciles container content where applicable and completes the plan.
When to use: When the pending variance cannot be accepted.
What it does: Clears the current recount and returns the plan to RECOUNT_REQUIRED; retains the movement freeze and posts no adjustment.
Lists and states
- Recurring policies: due state, ABC class, ceiling, site/scope, cadence, next due, reminders, escalation, plan counts, roles and creator/activator show scheduling authority.
- Active verification queue: plan, phase/status, policy or one-time origin, location, due date and blind-line count identify the next eligible operator. Register filters affect count plans, not policy definitions.
- Completed register shows matched lines or recorded adjustments; local handheld count intents remain visually separate from confirmed results.
Authority boundary
A policy draft does not freeze stock; a created plan does. Blind observations never directly adjust stock. An unresolved variance requires independent recount and approval, with accepted quantity matching a recorded count. Pausing a policy does not release an existing freeze.