Analytics dashboard
The Analytics dashboard gives property managers and admins a clear, data-driven view of portfolio performance. Track occupancy, monitor revenue trends, and identify vacancy patterns — without needing a spreadsheet.
Analytics is available on PRO and BUSINESS plans only. Free plan users will see a
PLAN_UPGRADE_REQUIRED response. Upgrade from Settings → Billing to access this feature.
Minimum role required: Property Manager. Landlord and below cannot access analytics.
Accessing analytics
Go to Analytics in the left sidebar. The dashboard loads with data for your full portfolio using a trailing 6-month window.
Available metrics
Occupancy
| Metric | Description |
|---|
| Occupancy rate | Percentage of active units currently occupied across your portfolio. |
| Active units | Total number of units in your organisation (all statuses). |
| Available units | Total number of units in “available” status. |
| Vacancy duration | Average number of days since the last lease ended for currently available units. |
| Occupancy trend | Monthly occupancy rate, occupied unit count, and total unit count for the past 6 months. Each data point includes the month label (e.g. “Mar 2026”), occupancy rate, occupied unit count, and total unit count. |
A high occupancy rate means your properties are generating income consistently. Track vacancy duration to understand how quickly you are filling units.
Revenue
| Metric | Description |
|---|
| Revenue trend | Month-by-month comparison of expected rent (from all non-draft leases) versus collected rent (from recorded payments) over the past 6 months. |
Each data point in the revenue trend includes:
- Month — formatted as abbreviated month name and year (e.g. “Mar 2026”).
- Expected — total monthly rent from all non-draft leases that overlap that month.
- Collected — total rent payments received during that month.
Maintenance
| Metric | Description |
|---|
| Open maintenance requests | Total number of maintenance requests in open, in_progress, or awaiting_parts status across your portfolio. |
Data scope
Analytics data is scoped to your organisation and respects row-level security. All queries run through the standard server client without service-role bypass.
The dashboard always shows a 6-month trailing window. Per-property filtering and custom date ranges are not yet available.
Reporting APIs
In addition to the analytics dashboard, you can retrieve reporting data programmatically via two dedicated API endpoints. Use these to build custom dashboards, feed data into external reporting tools, or generate end-of-year financial summaries.
Both reporting endpoints require at least the Landlord role and a PRO or BUSINESS plan.
Operational reports
GET /api/reports returns operational metrics for a given date range including occupancy rates, revenue totals, payment collection status, and maintenance request statistics.
Parameters
| Parameter | Type | Required | Description |
|---|
startDate | string | Yes | Start of the reporting period in YYYY-MM-DD format. |
endDate | string | Yes | End of the reporting period in YYYY-MM-DD format. Must be after startDate. |
Response fields
The response data object contains the following sections:
| Section | Fields |
|---|
period | startDate, endDate — the requested reporting window. |
occupancy | totalUnits, occupiedUnits, vacantUnits, occupancyRate (decimal, e.g. 0.86 = 86%). |
revenue | totalCollected, totalExpected, collectionRate (decimal, e.g. 0.905 = 90.5%). |
payments | totalPayments, onTime, late, outstanding. |
maintenance | totalRequests, open, inProgress, awaitingParts, completed, cancelled. |
Example request
curl -H "Authorization: Bearer <API_KEY>" \
"https://briksync.com/api/reports?startDate=2026-10-01&endDate=2026-10-31"
Example response
{
"data": {
"period": {
"startDate": "2026-10-01",
"endDate": "2026-10-31"
},
"occupancy": {
"totalUnits": 50,
"occupiedUnits": 43,
"vacantUnits": 7,
"occupancyRate": 0.86
},
"revenue": {
"totalCollected": 128500,
"totalExpected": 142000,
"collectionRate": 0.905
},
"payments": {
"totalPayments": 45,
"onTime": 38,
"late": 5,
"outstanding": 2
},
"maintenance": {
"totalRequests": 12,
"open": 3,
"inProgress": 4,
"awaitingParts": 1,
"completed": 3,
"cancelled": 1
}
},
"error": null
}
Financial reports
GET /api/financial-reports returns annual financial summaries with monthly breakdowns of income, expenses, and net operating income.
Parameters
| Parameter | Type | Required | Description |
|---|
year | integer | Yes | The calendar year for the report (2020–2100). |
Response fields
The response data object contains:
| Field | Description |
|---|
year | The calendar year of the report. |
summary | totalIncome, totalExpenses, netOperatingIncome — annual totals. |
months | Array of monthly breakdowns, each with month (1–12), income, expenses, and netOperatingIncome. |
Example request
curl -H "Authorization: Bearer <API_KEY>" \
"https://briksync.com/api/financial-reports?year=2026"
Example response
{
"data": {
"year": 2026,
"summary": {
"totalIncome": 1542000,
"totalExpenses": 312000,
"netOperatingIncome": 1230000
},
"months": [
{
"month": 1,
"income": 128500,
"expenses": 26000,
"netOperatingIncome": 102500
}
]
},
"error": null
}
Error responses
Both reporting endpoints return standard error responses:
| Status | Code | Meaning |
|---|
| 400 | VALIDATION_ERROR | Invalid date range, missing parameters, or invalid year. |
| 401 | UNAUTHORIZED | Missing or expired session. |
| 403 | FORBIDDEN | Insufficient role — requires at least the Landlord role. Includes a message field with a detailed explanation. |
| 403 | PLAN_UPGRADE_REQUIRED | Requires a PRO or BUSINESS plan. Includes currentPlan, requiredPlan, and upgradeUrl fields. |
| 429 | — | Rate limit exceeded. Check Retry-After header. |
| 500 | INTERNAL_ERROR | Unexpected server error. |
See the API overview for details on error formats and rate limiting.
Built by Errsol Technologies LLP · Karan · BrikSync PropOS