KPI Reference — SanadiqCloud Dashboard
Product version: 1.0.0+1
Last updated: 2026-10-07
Audience: Organization owners, employees, platform staff
Use the live UI as truth.
Merchant sales KPIs (Finance source of truth)
Sales revenue MTD, COGS, gross profit, and sales count on the merchant dashboard come from Finance journal posting events (posting_kind such as sale_revenue, inventory_cogs, sale_void, sale_return, inventory_cogs_return). Creating a sales invoice alone no longer increments those KPIs. Other journals (for example cash transfers) do not change sales KPIs.
Platform operators can rebuild an organization's sales KPIs from Finance's internal snapshot feed. This requires the platform permission dashboard:update and is not available in the app.
Other metrics (products, stock alerts, subscription seats/storage) remain owned by their modules. See Finance events and Posting lifecycle.
Supplier-payables dashboard metrics
When the supplier-payables read model is available and the user has the supplier-payables read permission, the dashboard exposes an authorized Finance snapshot. Amounts use the tenant functional currency; the snapshot includes an as_of time, business date, and cutoff sequence. The durable read model is populated only through the Finance-service-authenticated internal rebuild boundary (POST /api/dashboard/v1/dashboard/internal/rebuild-supplier-payables/{tenant_id}) with a complete absolute Finance snapshot; a platform dashboard permission alone cannot submit fabricated totals, and the dashboard never derives AP totals from partial tables.
| Metric | Definition |
|---|---|
| Outstanding AP | Positive balances of posted supplier bills after effective payments, credits, advances, and reversals. Draft and voided bills are excluded. |
| Overdue AP | Outstanding posted-bill balance whose due date is before the tenant business date. Due today is not overdue. |
| Due today AP | Outstanding posted-bill balance due on the tenant business date. |
| Due soon AP | Outstanding posted-bill balance due from the tenant business date through seven days after it, inclusive. |
| Held AP | Gross amount of supplier bills held for unresolved mismatch or review; held drafts and voided bills are excluded from posted liabilities. |
| GRNI pending | Commercial received-not-invoiced accrual, net of returns and matching. It is separate from accounting-pending receipts. |
| Cash paid | Posted supplier-payment cash outflows in the selected date range; an advance is included once and reversals reduce the total. |
| Cash refunds | Posted supplier-refund cash inflows in the selected date range; reversals reduce the total and refunds are not counted as supplier payments. |
| Accounting pending | Count and oldest age of receipt, bill, or payment postings that are pending or failed. They are not posted liabilities. |
If the snapshot is unavailable or the user lacks permission, values are restricted/unavailable rather than inferred from partial data. These metrics are read-model definitions; they do not imply that this workspace posts supplier bills, payments, or journals.
Merchant (/dashboard)
Products, product items, inventory items, active members vs seats, sales MTD (Finance postings), gross profit, inventory value, monthly trend, low stock, expiring, pending requisitions, in-transit transfers, open customer returns, open stock counts, overdue invoices, seats and storage from billing.
COGS and sales count exist in the API for completeness and are not always separate merchant widgets.
Open customer returns counts returns created but not yet completed or cancelled. It appears under Needs attention and opens Inventory → Customer returns when you have inventory:return:read.
Open stock counts are two counters: counts in progress (cycle or physical counts still being counted) and counts awaiting review (submitted, waiting for approval). Starting a count adds one to in progress, submitting moves it to awaiting review, and approving or rejecting removes it. Corrections, damage, and expiry adjustments are not counted. Both appear under Needs attention → Counts and open Inventory → Counts when you have inventory:adjustment:read.
Platform (/admin/dashboard)
Registered users, active today / 7 days, active subscriptions, active organizations, failed payments, pending invoice amount, revenue this month (paid subscription invoices), plan distribution, recent payment failures.
Pull down to refresh. Export report is not implemented.
Monthly reset
Month-to-date values reset on the 1st of each month at 00:01 UTC: merchant sales revenue / COGS / gross profit / sales count and inventory transactions; platform revenue this month, failed payments, transactions and approved adjustments.
Related: Merchant dashboard | Admin dashboard | Finance | Billing usage | Overview