Dashboard
The default landing page. Provides an at-a-glance overview of practice health and surfaces urgent action items.
KPI Cards
| Metric | Current Value | Detail |
|---|---|---|
| Active Patients | 17 | "4 prospects" subtitle |
| Monthly Revenue (MRR) | $3,735 | "$44,820 annualized" subtitle |
| Avg Revenue / Patient | $220 | "per month" subtitle |
| Action Items | 19 | "2 urgent" subtitle |
Sections
Upcoming Actions
- Shows top 5 most urgent action items
- Color-coded urgency: Red (urgent), Orange (soon)
- Each item has a "Schedule" button to open the schedule modal
- "View All" links to the full Action Items page
- Types: Wellness checks, Follow-ups, Billing changes
Unpaid This Month
- Lists patients with outstanding monthly payments
- Shows patient name and monthly fee amount
- "Mark Paid" button toggles payment status
- Collapsed view showing first 5 with "+N more" link
- Count in header (e.g., "Unpaid This Month (17)")
This Month's Wellness Checks
- Lists wellness checks due in the current month
- Shows patient name and check type (e.g., "2 months wellness check")
- "Schedule" button for each
- "View All" links to the Wellness page
Data Requirements
- Patient list with DOB (for age/tier calculation)
- Payment status per patient per month
- Wellness schedule calculations from DOB
- Action items aggregation from wellness + billing + follow-ups
- Prospect count for KPI subtitle
Key Functions
renderDashboard() — Main render function
getOverduePatients() — Patients with unpaid status this month
getActivePatients() — Filter active (non-prospect) patients
getAllActions() — Aggregate all action items with urgency scoring