Organisation & locations
Tenant
A single business (restaurant group) on Maska. All data — items, vendors,
stock, documents — is scoped to one tenant and never visible across tenants.
Location
Any physical place that holds stock. One of three types:
warehouse, central_kitchen, or outlet.Outlet
A customer-facing branch (a restaurant or store). Outlets requisition stock,
receive transfers, and run stock takes. Staff are scoped to their outlet.
Warehouse
A central stock-holding location that receives purchase orders from vendors
and supplies outlets via transfers.
Central Kitchen (CK)
A prep location that produces stock and dispatches it to the warehouse (a
ck_dispatch). Outlets never receive directly from the kitchen — the warehouse
receives the kitchen’s goods and then forwards them to the requesting outlet via
a transfer.Department
A section within the business (e.g. Bar, Kitchen, Housekeeping) used to scope
which items and staff belong together. Enabling a department on an
outlet seeds that department’s items there at zero stock so staff can count them.
Catalog
Item
A stock-keeping product. Each item has a type —
raw_material,
consumable, or finished_good — a base unit (UOM), and an auto-minted SKU.SKU
The item’s stock-keeping code, auto-minted as
ITM-00001. Unique per tenant.UOM (Unit of Measure)
The base unit an item is counted and valued in (kg, g, L, ml, pcs, …). All
stock quantities are stored in the base unit.
Pack / Pack size / Purchase unit
Items may be purchased in packs —
packSize base units per pack, labelled
by a purchaseUnit (BOX, TRAY, PACK…). Ordering happens in whole packs, but
quantities are always stored in base units (a pack of 1 is just the base unit).Par level / Reorder point
The per-location stock threshold below which an item is considered
low stock and should be reordered. Set per item per location.
Vendor (Supplier)
A business you buy from. Carries contact details and payment terms
(
net_7, net_15, net_30, advance, cod).Vendor catalog
A vendor’s price list: per item, a
unitPrice, optional minimum order
quantity, and a preferred-vendor flag (one preferred vendor per item).GST rate
The statutory Indian tax slab on an item — one of
0, 5, 12, 18, 28
percent. Input is constrained to these five.Procurement documents
Every document gets an auto-minted doc number and moves through a defined state lifecycle.Purchase Request (PR) / Requisition
A request to procure items, typically raised by an outlet or department. An
approved PR is converted into a Purchase Order.
| PR state | Meaning |
|---|---|
draft | Being prepared, not yet submitted. |
submitted | Sent for manager approval. |
approved | Approved, ready to convert to a PO. |
rejected | Declined by the approver. |
converted | Turned into a Purchase Order. |
fulfilled | The resulting goods have been received. |
Purchase Order (PO)
An order placed with a vendor for items at agreed prices. Receiving against a
PO is done with a GRN.
| PO state | Meaning |
|---|---|
draft | Being prepared. |
pending_owner_approval | Awaiting owner sign-off (when no auto-approval threshold is set). |
sent | Issued to the vendor (in transit). |
partially_received | Some — not all — lines received. |
received | Every line fully received. |
closed | Settled / archived. |
Goods Received Note (GRN)
Records the receipt of goods. Posting a GRN writes the stock ledger,
updates balances (via WMA), and advances the
source PO/transfer. A GRN’s source is a
purchase_order or a transfer
(central-kitchen dispatches are received through a separate dispatch-receive
flow, not as a GRN). States: draft → posted (or cancelled).Transfer
A stock movement between locations (e.g. warehouse → outlet, or outlet →
outlet). States:
draft → dispatched → received (or cancelled). The
receiving side records it as a transfer-sourced GRN.Adjustment
A manual change to stock outside the normal purchase/transfer flow. Types:
opening_balance, variance. A write-off (wastage/spoilage) posts as a
variance adjustment carrying a reason (wastage, spoilage,
count_variance, damage, expiry, other). States: draft → posted
(or cancelled).Opening balance
The initial stock seeded at a location when it is first set up — an adjustment
of type
opening_balance. Priced from the vendor catalog when available.Stock & costing
Stock balance
The current on-hand quantity and average cost of one item at one location.
This is the live “how much do we have, and what is it worth” record.
Stock ledger
The append-only history of every stock movement (GRN, adjustment, transfer,
wastage, …), each row carrying the running quantity and running average cost
after the movement. The ledger is the source of truth; the balance is its tip.
WMA (Weighted Moving Average)
The costing method. On a receipt, the existing on-hand value is blended with
the incoming value to recompute a new average cost:
newAvg = (qtyOnHand × avgCost + qtyIn × unitCost) / (qtyOnHand + qtyIn).Average cost (avgCost)
The per-unit cost used to value stock, maintained by WMA.
Stock value
quantity × average cost — the monetary value of on-hand stock.Low stock
An item whose on-hand quantity is at or below its
par level / reorder point (when that point is > 0).
Stock take
A physical count to reconcile recorded stock against reality. Differences
surface as variances and post correcting adjustments.
Variance
A difference between two quantities — counted vs recorded (stock take), or
received vs ordered (GRN). Small differences within tolerance are treated as
exact matches, not variances.
Wastage
Stock written off as a loss. It posts as a
variance Adjustment (above)
whose reason is one of wastage, spoilage, count_variance, damage,
expiry, other. Logged against an item, quantity, and reason.People & access
Role
An authorization role on the procurement module:
admin, manager,
procurement_manager, warehouse_manager, outlet_staff, kitchen_staff
(central-kitchen head chef), and viewer (read-only). A user may hold more
than one.Permission
A specific capability a role grants, e.g.
items:write, prs:approve,
grns:manage, stock:read. Effective permissions are the union of the user’s
roles. Managers/owners are unscoped; outlet staff are department-scoped.System
Doc number
An auto-minted, per-tenant document identifier, e.g.
PO-2026-000001,
GRN-2026-000001, ADJ-2026-000001, ITM-00001. Minted transactionally so
numbers never collide or skip.Audit log
A field-level change history (old value → new value, who, when) recorded for
items and other entities, surfaced as History in the UI.