ADR-001: Cost visibility
Status: accepted, 6 September 2026 (D2). Extended to procurement prices on 7 September 2026.
Context
Section titled “Context”Purchase cost, bouquet margin, supply delivery price and batch unit cost are procurement data. Before stabilization, every member saw them, and the public storefront payload included Flower.cost.
Decision
Section titled “Decision”Cost and procurement prices require the inventory.manage permission, which managers, admins and owners hold. Sensitive attributes are hidden on the model and revealed explicitly by the controller through revealCost() and revealSupplyCost() when the view-cost gate passes. The front end reads can.viewCost to hide cost columns and cards.
Consequences
Section titled “Consequences”- A new endpoint cannot leak cost by accident; it has to opt in.
- Staff and viewers see quantities and expiry but never prices on supplies.
- Stage 2 costing and margin views (BRV-10) inherit the same gate.