Skip to main content
All Docs
FeaturesBlockManOSUpdated April 12, 2026

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:

ControlPurpose
Development dropdownScopes all KPIs and tasks to a single development
Focus area tabsNarrows 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 agentDevelopmentAssignments are 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:

SourceExamples
Overdue arrearsService charge balances past due date
Compliance issuesExpired certificates, overdue regulatory filings
Urgent maintenanceHigh-priority open maintenance requests
Upcoming meetingsAGMs 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 stateKPI cardsPriority tasks
No development, no focus areaFull portfolio overviewAll accessible developments
Development selectedScoped to that developmentScoped to that development
Focus area selected (no development)Scoped to that domainScoped to that domain
Development + focus area selectedScoped to bothScoped 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.