Owner view · reports
What every report tells you.
Fifteen reports across five groups — daily operations, sales & customers, inventory, financial, and strategic. Each refreshes live from the same data the counter sees, and every metric below shows the exact formula behind it.
Where to find them
Sidebar → Reports lands on the index, which is just a grid of cards. The pages live under /reports/<name>. Most are role-gated — org owner, regional manager, and accountant see everything; branch manager sees their branch only; auditor reads everything but can't click anything that changes state.
How to read the formulas
We'd rather show the math than ask you to trust a black box. A few conventions hold across every report below:
- Money is exact. Every amount is stored in paise (whole numbers — no floating-point drift) and shown in ₹.
- Quotes never count as sales. Revenue reports exclude estimates (
is_quote = false) and anything soft-deleted or cancelled. - Dates have a defined basis. Sales are counted on their confirmed date; cash on the payment date; expenses on the date incurred (the DSR additionally shows a cash-date view).
- COGS is locked at sale time. Cost of goods uses the weighted-average cost captured the moment each item is sold — never a later re-price — so historical margins don't move under you.
- GST is shown, not buried. “Revenue” means net of discount and excludes GST; tax is always a separate line.
Daily operations
DSR — Daily Sales Report
/reports/dsr. The single most-used report. Pick a date (defaults to today). For that day at the picked branch: every sale, every payment by method (cash / UPI / card / bank / cheque), every expense, day-end cash count, net-of-day. It carries two parallel axes — an accrual view (what was sold) and a cash view (what actually hit the drawer).
Formula
Cash discrepancies surface in red at the top — “System says ₹12,450 cash collected, you entered ₹12,200 in the drawer”. Investigate before closing.
Reorder list
/reports/reorder. Inventory rows that fell below their reorder threshold, plus lost-revenue-at-risk and a 30-day sales velocity per SKU. Sort by “most-urgent” or “capital-locked”.
Formula
Reorder thresholds are per-SKU-per-branch and can be set in bulk on /inventory/search (filter to a branch, edit the thresholds column).
Sales & customers
Sales
/reports/sales. Revenue rollup for the picked date window (defaults last 30 days), counted on each order's confirmed date. Three views:
- By branch — orders, net revenue, GST, average order value
- By day — daily totals as a sparkline + table
- Gross profit — revenue minus COGS, per branch. Visible to owner / accountant only (cost-protected).
Formula
Customers
/reports/customers. For the picked window: customers served (new vs returning split), repeat rate, average order value, and the top 25 customers by lifetime value across all history. Pairs with /customers/insights for cohort segmentation and AI message drafts.
Formula
Staff efficiency
/reports/staff-efficiency. How fast the counter moves. Built from anonymised sale-session timings (start → customer → prescription → first item → estimate → submit), over the last 30 days. Three views: median sale time per salesperson, the slowest stage org-wide, and abandonment rate per branch.
Formula
Inventory
Inventory snapshot
/reports/inventory. Live snapshot — total units, total catalog SKUs, low-stock lines, plus a per-branch table. Reads current stock; no time-travel.
Formula
Turnover
/reports/turnover. Two ratios that nobody on a retail floor knows off-hand but every investor asks for. Shown org-wide and per-branch, 30-day default window.
Formula
Optical typically lands around 2–4× ITR. In the alpha the opening snapshot is approximated by the closing one where a sealed month-start figure isn't yet available — noted on the page so you know when it's an estimate.
Transfers
/reports/transfers. Suggested rebalancing moves — SKUs sitting dead at branch A while branch B has been stocked out for 7+ days.
Formula
Single-branch chains see “Inventory is balanced” — no action needed.
Financial
P&L
/reports/pnl. The owner's end-of-month view, per-branch and org-total. Operating expenses are split into a donut by category. Cost-protected — branch staff don't see this page at all.
Formula
Expenses
/reports/expenses. Three breakdowns for the picked window: by branch, by category, by month. Categories are configurable in /settings/expenses. Click any total to drill into the underlying rows.
Formula
Finance (royalty + inter-org)
/reports/finance. Brand view (royalties owed to you by franchisees) and investor view (returns owed to capital providers). Lists every active inter-org agreement in the window with computed amounts. Empty until you onboard your first franchisee or co-investor.
Formula
Royalty
/reports/royalty. Redirects to /reports/finance — royalty is one of several inter-org flows and lives there.
Strategic
Trends
/reports/trends. Sealed monthly snapshots, captured by cron on the 1st of each month plus at every branch add/remove. Never rewritten — even if you fix bad data later, last month's snapshot stays as-recorded for trend integrity.
Formula
New orgs see an empty state with a one-click Run backfill → button that walks from your earliest sale forward, sealing one snapshot per month.
Analytics
/analytics. The owner's 30-second snapshot — network branches, catalog SKUs, total stock, low-stock lines, sales velocity, top branches. Live counts and sums over current data (no period window); the same definitions as Inventory and Sales above.
AI Insights
/reports/ai-insights. Once a day (and once a week with a deeper read), Claude reads the last 24h / 7d of operations data and writes a 2-3 paragraph plain- English summary of what changed and why it matters. This is the one report with no fixed formula — it's a generated narrative over the live numbers, not a computed metric. Examples:
- “Sales at Tri Nagar are up 18% week-on-week. The biggest mover is the new Vincent Chase reading collection — 14 units sold versus 4 the week prior.”
- “Three SKUs hit their reorder threshold today. Bausch & Lomb SofLens Monthly is the most urgent: zero on hand at Tri Nagar with 5 units sold this week.”
- “Anjali Mehta (₹12,846 last visit) is due for her annual recall in 11 days. Worth a personal call before sending the automated message.”
Empty until you click Regenerate for the first time. After that the cron runs daily + weekly automatically.
Who sees which report
| Report | Owner | Reg. Mgr | Branch Mgr | Acc. | Staff | Lab | Aud. |
|---|---|---|---|---|---|---|---|
| DSR | ✓ all | ✓ cluster | ✓ own | ✓ all | — | — | ✓ all |
| Sales | ✓ all | ✓ cluster | ✓ own | ✓ all | — | — | ✓ all |
| Customers | ✓ all | ✓ cluster | ✓ own | ✓ all | — | — | ✓ all |
| Staff efficiency | ✓ all | ✓ cluster | — | ✓ all | — | — | ✓ all |
| Inventory | ✓ all | ✓ cluster | ✓ own | ✓ all | — | — | ✓ all |
| Reorder | ✓ all | ✓ cluster | ✓ own | — | — | — | ✓ all |
| Turnover | ✓ all | ✓ cluster | — | ✓ all | — | — | ✓ all |
| P&L | ✓ all | ✓ cluster | — | ✓ all | — | — | ✓ all |
| Expenses | ✓ all | ✓ cluster | ✓ own | ✓ all | — | — | ✓ all |
| Finance | ✓ all | — | — | ✓ all | — | — | ✓ all |
| Trends | ✓ all | — | — | ✓ all | — | — | ✓ all |
| AI Insights | ✓ all | ✓ cluster | ✓ own | — | — | — | — |
Next up
AI features →A summary of every place Claude touches the product, with the safety boundaries that come with it.