The red tile counts live approvals (1 — the price request). The SA row illustrates the > RM 5,000 adjustment threshold rule. Approve/Reject are Filament Actions guarded owner-only; staff see the row as "locked — waiting owner".
Is anything on fire?— one row per site · every non-zero cell links to the screen where it gets fixed
Green row = don't call them. Counts are per-tenant aggregates over the same records the module screens show — MOs past deadline, assets out of service, programs past next-due, today's temp/RH vs room limits, return lots in quarantine.
Demand-chain risk— promises to customers vs when supply actually lands
PO-459 ITS · QBO bills ×3, balance due 15 Jul · from QBO refs, illustrative
July consolidation open
1,337.40 MYR
7 retail sales → one consolidated e-invoice at month end
Plus receivable to watch: Herbs & Health PJ B2B invoice due 17 Jul. Bill amounts read from QBO refs — Gaia never posts accounting entries.
Project Gaia — static mockup in Filament v3 idiom. No backend. Role dashboard; data continuous with the other screens.
Approve below-floor price?
Customer
Kedai Pak Din
Item
Kopi Cik Abang / 2023-01
Asked
2.80vs floor 3.00 · cost 2.40
Margin at ask
0.40 MYR · 14.3%
Requested by
Kevin Wong (Sales) · 06 Jul — line locked since
Unlocks the line at 2.80 and records a price exception with owner identity + timestamp. The floor stays 3.00.
Acting as Leo — Owner · Actions are policy-guarded owner-only; staff see this row as “locked — waiting owner”.
Reject price request?
Customer
Kedai Pak Din
Item
Kopi Cik Abang / 2023-01
Asked
2.80vs floor 3.00
sent back to Kevin — the line stays locked until re-quoted at ≥ 3.00
Acting as Leo — Owner · Actions are policy-guarded owner-only; staff see this row as “locked — waiting owner”.
Approve stock adjustment SA-540?
Item
Angelica Sinensis Extract / CK-4548
Lot
CK4548-2603A
Variance
−6,214.50 MYR write-down (limit 5,000)
Origin
stocktake variance
Requested by
Sarah Tan (FM CYTO-11) · 05 Jul — SA not applied
Applies the SA: posts the adjustment stock movement, recalculates moving-average cost, stamps owner approval on the record.
Acting as Leo — Owner · Actions are policy-guarded owner-only; staff see this row as “locked — waiting owner”.
Reject stock adjustment SA-540?
Item
Angelica Sinensis Extract / CK-4548
Lot
CK4548-2603A
Variance
−6,214.50 MYR write-down (limit 5,000)
SA-540 stays draft; Sarah is notified — usually means recount lot CK4548-2603A first.
Acting as Leo — Owner · Actions are policy-guarded owner-only; staff see this row as “locked — waiting owner”.
Owner dashboard — field manifest
Widget
Filament class
Query (in words)
Why the owner sees it
Stat tiles ×5
StatsOverviewWidget
Sums across ALL tenants the user is granted (owner = all 4): open sales_orders total; CRM deals in open stages; retail_sales month-to-date; stock valuation at moving-average cost; count of approval_requests pending with approver_role=owner
Owner sees consolidated money everywhere. Every other role's dashboard is tenant-scoped and hides pipeline, margins and valuation.
Needs YOU
TableWidget + Actions
approval_requests where status=pending and approver_role=owner; kinds: price_below_floor (from Sell/Retail line lock), stock_adjustment_over_threshold (SA draft value > RM 5,000)
Approve/Reject are Filament Actions guarded by an owner-only policy — they never render for other roles; approving writes the price exception / applies the SA. Staff must NOT see the buttons, only "locked — waiting owner".
Fire matrix
TableWidget (one row per factory)
Per-tenant aggregate counts: MOs with deadline < today and not done; assets status=Out of Service; maintenance programs next_due < today; today's temp/RH records outside room limits; return lots in Quarantine. Each count deep-links to the module screen
The "which site do I call" view — only the owner spans tenants. FMs get the same counts but for their own site only.
Demand-chain risk
TableWidget
Open SOs where the latest expected date of covering POs > the SO delivery deadline (join via MO shortages), union shipments flagged at-risk on ETA
Cross-module join (Sell × Buy × Ship) that no single role owns end-to-end; the owner is the one who can expedite or renegotiate.
Money movement
TableWidget (4 fixed rows)
Shipments shipped this week joined to SO line value; retail payments this week; open QBO bill refs due ≤ 14 d (display-only strings stored on the PO); retail consolidation open balance for the month
Cash direction at a glance. Read-side only — QuickBooks stays the ledger, Gaia never posts accounting entries. Accountant role gets the detailed version.
Engine notes
A dashboard is a to-do list, not a report: the only actions on this page are the two owner approvals; every other cell is a link into the module where the work happens.
Nothing here is a new table — all five widgets are derived queries over existing module records (MOs, assets, maintenance programs, temp/RH logs, returns, SOs, POs, shipments, retail sales, approval requests).
The factory switcher gains an "All sites — consolidated" entry for users granted every tenant; picking a single site re-scopes the same widgets to that tenant.
Illustrative rows are labelled: SA-540 (the > RM 5,000 adjustment threshold), shipped-value and QBO bill amounts. All other figures match the module screens exactly (527,908.70 / 823,000 / 3,846.50 / 506,649.33 / 1,337.40).
Approve/Reject open Filament Action modals: price approval writes a one-time price exception (Approve once — floor unchanged); SA approval applies the adjustment and posts the movement; rejects require a reason and notify the requester.