QI Console Dashboard
Live data
Active Files
204
118 delayed · 58 reverse · 28 improvement
Funds Held
$61.4M
Qualified escrow across 204 files
New Files This Week
8
Received via CRM API · week of Aug 10
Closings Next 30 Days
17
Purchase closings on the calendar
Deadline Risk
Past deadline 2 Statutory date already passed
≤ 7 days 6 2 at 45-day · 4 at 180-day
8–14 days 11 9 at 45-day · 2 at 180-day
Statutory 45/180-day clocks · click a bucket to open the filtered file list
Book Mix by Structure
204 Active
Delayed11255%
Reverse5828%
Improvement2814%
Simultaneous63%
Open files by exchange structure · colors match file badges everywhere in the console
E-Sign Queue
12 envelopes outstanding oldest 4d
Awaiting exchanger7
Awaiting lender / third party3
Awaiting QI countersign2
Reminders send automatically at 48h and 96h
Intake Volume · Last 8 Weeks
840
3
5
4
6
5
7
6
8
Jun 22Jun 29Jul 6Jul 13 Jul 20Jul 27Aug 3Aug 10*
New files received via CRM API · *current week to date · axis starts at zero
Funds Held
Proposed
3
$2.1M
Screened
2
$1.4M
Approved
2
$1.1M
Ready to Wire
1
$480,000
Last wire released Aug 12 · EX-2026-1152 · $312,400
Counts and totals from the disbursement queue · every stage change is audit-logged
Workload by Coordinator
Ceiling · 120
TBTom Bottenberg
112
SOSandra Osman
92
New CRM intakes auto-suggest the lighter book at assignment
Days to 45th — Heatmap
fewer more
0–6d 7–13d 14–20d 21–27d 28–34d 35–45d
T. Bottenberg 1 5 8 11 14 12
S. Osman 1 4 7 9 11 10
93 files inside their 45-day identification window · click a cell to open those files
Design variant — edit mode with the widget gallery drawer open
Editing · Tom's layout Set as org default Org admins only
Deadline Risk
Past deadline 2
≤ 7 days 6
8–14 days 11
4 × 2
Book Mix by Structure
Delayed112
Reverse58
Improvement28
Simultaneous6
4 × 2 · moving
Drop here · 4 columns
Intake Volume · Last 8 Weeks
840
Jun 22Jun 29Jul 6Jul 13 Jul 20Jul 27Aug 3Aug 10
6 × 2
Workload by Coordinator
TBTom Bottenberg
112
SOSandra Osman
92
6 × 1
E-Sign Queue
12 envelopes outstanding oldest 4d
6 × 1
Widget gallery
Dashboards cap at 12 widgets · 10 in use on this layout
Design variant — widget editor dialog · both tabs shown
Add widget
Build a metric Pin a saved report view
Files entering 45-day windowcount by week
Active filescount
Awaiting signaturecount
Funds heldsum
Disbursements by stagecount · sum
Intake volumecount by week
Type=Delayed Status=45-Day ID Coordinator=All 45th DaywithinNext 14 days
23 files match · live
45-day pressure — next 14 days
1260
2
9
12
0–4d5–9d10–14d
Updates as you change the metric and filters
Add widget
Build a metric Pin a saved report view
Deadlines this month 7 columns · 3 filters · renders as table Pinned
Closing this month 6 columns · 2 filters · renders as table
Open files by coordinator 5 columns · grouped · renders as bar
Funds held > $1M 6 columns · 1 filter · renders as table
Design variant — how a pinned saved-report view renders as a widget
Deadlines This Month Saved view
Exchange #Exchanger45th DayDays Left Funds Held
EX-2026-1187Matt Belcher Aug 17, 20263d $1,120,000
EX-2026-1204Rosa Alvarez Aug 20, 20266d$685,000
EX-2026-1216Evelyn Cho Aug 26, 202612d $925,000
Showing 3 of 8 matching files · open the full view in Reports
Design variants — empty dashboard · loading skeleton
Add your first widget
Start from the gallery, or pin one of your saved report views from Reports › Custom Views.
QI Officer Countersignature, approvals, fiduciary control
6 widgetsAwaiting countersignature, awaiting approval, funds held, disbursement approval posture, screening dispositions, 180-day escrow exposure
Compliance & BSA Identity & AML, screening dispositions, statutory clocks
7 widgetsIdentity & AML, closing the 45-day window, screening dispositions, identification rules, parking clocks, deadline risk, disbursement approval posture
Office Manager Team load, intake, queue composition
7 widgetsWorkload by coordinator, at risk by coordinator, unassigned intake, active files, work-queue composition, files opened per month, files completed since tracking began
Leadership The office at a glance · book, completions, funds
7 widgetsActive files, completed YTD, funds held, files completed since tracking began, book mix by structure, hub progress, files opened per month
Escrow & Operations Money movement, reconciliation, 180-day exposure
6 widgetsFunds held, awaiting approval, escrow cross-check, reconciliation exceptions by kind, disbursement approval posture, 180-day escrow exposure
A template is a starting point, not a binding. Applying one copies its widgets into your own layout, which you then own and can edit freely — it never links back, so a later change to the template does not rewrite your dashboard. Org owners and admins can set their own layout as the org default for a role; everyone in the org then sees it first in this list, and nobody's dashboard changes until they choose it.
The pattern
Deadlines at risk
Awaiting my approval
Document chases
Never mouse-only. Focus the handle, then Space to lift, ↑↓ to move, Space to drop, Esc to cancel. Each move is announced (“Awaiting my approval, position 3 of 8”). Our users skew 40–80; a drag-only affordance would exclude some of them outright.
Dashboard widgets
Reposition and resize on the 12-column grid.
Shipping here
My Queue — group order
Reorder and hide action groups; reorder saved views. Handles are already drawn in the queue sidebar.
Highest value after the dashboard
Book of business — columns
Drag column headers to reorder; a column tray to show and hide. The coordinator's table, not ours.
Pairs with saved views
Workspace summary rail
Reorder the rail blocks — key dates, funds, team, next action, portal — so the fact you check first sits highest.
Per-user, applies to every file
Report builder — columns
Drag chosen columns into output order instead of picking from a fixed list.
Direct incumbent-vendor complaint
Workflow action catalog
Pin and order the actions a coordinator runs most — send reminder, request document — so their top three are always first.
Small change, daily payoff
Never draggable
Anything whose order carries legal meaning: the four lifecycle stages, the audit log, deadline sequence, the four-eyes approval chain, and document-to-leg binding. If a user could reorder it into a different compliance story, it is not a preference.
Hard rule
Layouts persist per user in the database — Tom's layout follows him to any device; nothing lives in the browser. The shared org-default layout can only be published by org admins; coordinators see the toggle disabled with the lock explained.
"Overdue" counts next actions past their internal due date. Statutory 45/180-day clocks cannot be extended and are never shown as "overdue" — a lapsed statutory deadline surfaces as a compliance event, not a dashboard bucket.
Dataviz restraint: axes always start at zero, exchange-type colors reuse the console's badge hues (blue, indigo, purple), and red/amber appear only for genuine deadline urgency. Pinned report widgets execute the saved definition server-side — the same query that powers Reports › Custom Views, with every export audit-logged.
Build contract — dashboard builder
1 · Tokens, never hex. Every colour resolves from docs/mockups/tokens.css. The [PROPOSED] tokens this surface needs (--console-rail-*, --admin-*, --hub-id-*, --hub-escrow-*, --hub-purchase-*, --scrim, the good/warn/bad triad) go into packages/web-app/src/index.css under :root and .dark before this is coded. A filled button takes --admin-on or --good-on, never a literal white — the accent fill lightens in dark and white on it measures 2.9:1.
2 · Layouts are rows in Supabase, one per user per scope. Widget set, order, span and the selected layout persist server-side under the tenant's RLS policies, so a coordinator's dashboard follows them to any device. Nothing about a layout lives in localStorage. The org-default layout is publishable by org admins only; for everyone else the control renders disabled with the reason named, not hidden.
3 · Every widget reads through the caller's permissions. A widget is a saved query, and adding one can never widen scope — if a coordinator cannot open a file, no tile, bucket, heat cell or pinned report may count it. Pinned report widgets execute the saved definition server-side: the same query that powers Reports › Custom Views, audit-logged on every run and export.
4 · Statutory clocks are never a user-editable number. The Deadline Risk buckets count internal next actions past their due date. The 45- and 180-day dates are computed from the relinquished closing and cannot be extended from this surface — an adjustment requires an approved four-eyes override carrying a legal basis, which happens on the exchange file, not on a dashboard. A lapsed statutory deadline surfaces as a compliance event and never renders in a satisfied or green state.
5 · Colour carries meaning, and only one meaning each. Exchange-type hues (--hub-id, --admin, --hub-purchase) are wayfinding and match the type badges everywhere else in the console. Red and amber are reserved for genuine deadline urgency. Status is never conveyed by colour alone — every bucket, legend row and heat cell carries a label and a number.
6 · Drag is never the only path. Reordering and resizing work from the keyboard: focus the handle, Space to lift, arrows to move, Space to drop, Esc to cancel, with each move announced. The audience skews 40–80; a drag-only affordance excludes some of them outright. prefers-reduced-motion removes the lift and skeleton animation.
7 · Axes start at zero and the empty state teaches. No truncated baselines, no invented precision. A dashboard with no widgets explains what a widget is and offers the role templates rather than showing a blank grid.
Light and dark are both designed here. All counts, amounts, names and dates are synthetic demo data.