Dashboard Filters & Priority Tasks
Dashboard Filters & Priority Tasks
Introduced in v1.1.1, the dashboard now supports development-scoped filtering, role-aware focus area tabs, and an AI-assisted priority task list. These features help property management agents focus on the most urgent work across their assigned developments.
Filter Bar
The filter bar appears at the top of the main dashboard and contains two controls:
| Control | Purpose |
|---|---|
| Development dropdown | Scopes all KPIs and tasks to a single development |
| Focus area tabs | Narrows the view to a specific domain |
Development Dropdown
The dropdown is populated by the getAccessibleDevelopments tRPC procedure, which respects RBAC assignments:
- Admins and Owners — all developments in the portfolio are listed.
- Members — only developments the user is assigned to via
agentDevelopmentAssignmentsare listed.
When no development is selected, the dashboard displays the full portfolio overview.
Focus Area Tabs
Five tabs are available:
- All — no domain filter applied
- Financial — service charge arrears, payment status, budget variance
- Compliance — certificate expiry, regulatory deadlines, open compliance items
- Maintenance — open and overdue maintenance requests
- Meetings — upcoming AGMs, EGMs, and committee meetings
Selecting a tab filters both the KPI cards and the priority task list to that domain.
Filtered KPI Cards
When a development and/or focus area is selected, the KPI cards update to show scoped metrics for that selection. The underlying data is fetched via the filteredKpis tRPC procedure, which accepts a development ID and an optional focus area.
Priority Task List
The priority task list aggregates actionable items from four sources and ranks them by urgency score:
| Source | Examples |
|---|---|
| Overdue arrears | Service charge balances past due date |
| Compliance issues | Expired certificates, overdue regulatory filings |
| Urgent maintenance | High-priority open maintenance requests |
| Upcoming meetings | AGMs or EGMs within the next few days |
Scoring Heuristic
Each task receives a numeric urgency score. The score increases based on:
- Days overdue / days until due — the closer to or further past the deadline, the higher the score.
- Financial amount outstanding — larger balances increase the score of arrears tasks.
- Task type severity — compliance overdue items rank above open maintenance items by default.
- Time-of-day weighting — financial tasks score higher during morning hours; compliance tasks score higher in the afternoon. This surfaces the most relevant tasks at the time of day the agent is most likely to act on them.
- Priority/urgency flags — records explicitly flagged as high-priority receive a score boost.
Tasks are displayed in descending score order. Each row shows:
- An urgency badge (colour-coded by severity)
- A description of the task
- A quick link to the relevant section of the platform
Scope
When a development filter is active, the priority task list shows only tasks for that development. When no filter is active, tasks from the entire accessible portfolio are included.
Dashboard Behaviour by State
| Filter state | KPI cards | Priority tasks |
|---|---|---|
| No development, no focus area | Full portfolio overview | All accessible developments |
| Development selected | Scoped to that development | Scoped to that development |
| Focus area selected (no development) | Scoped to that domain | Scoped to that domain |
| Development + focus area selected | Scoped to both | Scoped to both |
Time-Aware Greeting
The dashboard page displays a personalised greeting based on the current time:
- Before 12:00 — Good morning
- 12:00–17:59 — Good afternoon
- 18:00 onwards — Good evening
tRPC Procedures
All dashboard filter data is served through the dashboardFiltersRouter, registered in trpc/root.ts.
dashboardFilters.getAccessibleDevelopments
Returns the list of developments the authenticated user can access.
Returns: Array of { id, name } objects.
RBAC: Members see only their assigned developments. Admins and Owners see all.
dashboardFilters.filteredKpis
Returns KPI metrics scoped to the provided filters.
Input:
{
developmentId?: string // optional — omit for portfolio-wide
focusArea?: 'financial' | 'compliance' | 'maintenance' | 'meetings' | 'all'
}
Returns: Domain-specific KPI values for the requested scope.
dashboardFilters.priorityTasks
Returns a ranked list of priority tasks.
Input:
{
developmentId?: string
focusArea?: 'financial' | 'compliance' | 'maintenance' | 'meetings' | 'all'
}
Returns: Array of tasks sorted by urgency score (descending), each containing a type, description, urgency level, and a deep link.