Reporting
Part of the IP4CMS portal. β All module guides
What it's for β Reporting lets you build your own visual dashboards from the data already flowing through other parts of the portal β transactions, members, properties, vehicles, panic alerts and more. Each dashboard is a grid of tiles ("report items"): a table, a chart, a single big metric number, a map, an embedded web page, or a pre-built dashboard pulled in from Metabase (an external business-intelligence tool, optional). You group dashboards into collections, arrange tiles by drag-and-drop, and can pin one dashboard as the portal home page. (In some deployments this module is relabelled "Dashboard" in the menu β it is the same feature.)
Where to find it β In the left-hand navigation under Reporting (or Dashboard), route /app/reporting/dashboards. The screen opens with a list of dashboard groups and dashboards down the side; selecting one shows its tiles in the main canvas. If a default reporting dashboard has been configured (see below), it can also appear as your portal landing page at /app.
Before you start
- The Reporting licence module must be enabled for your tenant. If it is off, the menu item does not appear.
- You need reporting permissions on your role (see Permissions & access). Viewing needs
reporting:read:all; creating, editing and deleting need the matching create/update/delete permissions. - Some data sources only appear if their own module is licensed β for example Vehicles tiles need the Vehicles module, Property Verifications need Properties, Member Requests need the members-requests module, and Panic Alerts need Panic. If a module is off, it simply won't be offered as a tile source.
- Metabase tiles only work if your platform administrator has connected a Metabase instance and allow-listed dashboards for your tenant.
Key tasks
Create a dashboard group
Groups are folders for organising related dashboards (for example "Finance", "Operations").
- On the Reporting screen, choose New group (the add control beside the dashboard list).
- Enter a Name and save.
- The group appears in the side list and can be expanded or collapsed. To rename or remove it, use its edit and delete controls.
Fields: Name (required, up to 255 characters). Deleting a group does not delete its dashboards β they simply become ungrouped.
Create a dashboard
- Choose New dashboard.
- Enter a Name.
- Optionally pick a Group to file it under; leave blank to keep it ungrouped.
- Save. You are taken straight into the new (empty) dashboard, ready to add tiles.
Fields: Name (required), Group (optional). You can move a dashboard between groups, or rename it, at any time via its edit control. Deleting a dashboard removes it and all its tiles β this cannot be undone.
Add a report item (tile / metric)
Tiles are the building blocks of a dashboard. Open a dashboard and choose Add report item, then complete the modal.
- Item type β choose one:
- Table β rows and columns of records.
- Chart β a bar, line, pie or doughnut visualisation of grouped data.
- Total β a single large metric number (a count, or a sum of a value field).
- Map β plots records with coordinates on a map (only for map-capable sources: Vehicles, Properties/Locations, Panic Alerts).
- Metabase embed β a dashboard rendered from your connected Metabase instance (see below).
- Embedded page (iframe) β an external web page embedded in the tile.
- Source module β the data the tile draws from: Transactions, Members, Vehicles, Properties/Locations, Property Verifications, Member Requests or Panic Alerts. The list reflects what your tenant has licensed. (For Metabase tiles you instead pick a Metabase dashboard.)
- Title β the heading shown on the tile (required).
- Configure the tile's content (varies by type β see below).
- Save. The tile is added to the grid; reposition it as needed.
Configuring a table tile β pick which columns to show (leave all selected to show everything), and optionally add filters to narrow the rows.
Configuring a chart or total tile β choose how to summarise the data:
- Group by β the field to break the data down by (for example transaction type, status, or a date field). Date fields offer a granularity (day / month, etc.) so you can chart a trend over time.
- Metric / aggregation β what to measure. Pick a field and an operation: sum, average (avg), count, minimum (min) or maximum (max). A Total tile shows one metric; a chart can plot one or more.
- Chart type (charts only) β bar, line, pie or doughnut.
Adding filters β choose Add filter, pick a field, then set its value:
- Select / text filters β choose or type a value (for example Status = Approved).
- Date filters β every date field can be filtered two ways: a relative period (Today, This week, This month, Last 30 days, This quarter, This year, Year to date, and more) or an explicit date range (from / to). Relative periods are dynamic β a tile set to "This month" always reflects the current month, with no maintenance.
Each active filter shows as a removable pill. You can clear filters individually or all at once.
Lay out the dashboard
Tiles sit on a 12-column grid.
- Switch the dashboard into edit mode (the layout/edit toggle). The grid lines appear.
- Drag a tile by its handle to move it; drag its edge/corner to resize. Neighbouring tiles move out of the way automatically.
- Layout is saved automatically a moment after you finish moving (no explicit Save needed).
- Turn edit mode off to return to the normal read-only view. Any tile can be opened full screen from its tile menu; press Esc to close.
Embed a Metabase dashboard
If your platform has Metabase connected and dashboards allow-listed for your tenant, you can surface them inside the portal.
- Add a report item and set Item type to Metabase embed.
- Choose the Metabase dashboard from the allow-listed options (only active, allow-listed dashboards appear).
- Give it a Title and save.
Behind the scenes the portal requests a short-lived secure embed token (valid about 10 minutes, refreshed automatically) so the Metabase dashboard renders safely without exposing credentials. You cannot embed arbitrary Metabase dashboards β only those your administrator has allow-listed for your tenant. If Metabase signing is not configured on the server, embedding is unavailable and the option will not produce a working tile.
Set a landing / default dashboard
You can make one reporting dashboard the portal's home page so users land on it after signing in.
- Go to Settings β General settings.
- Under Home page, open Default reporting dashboard.
- Select a dashboard (or clear it to remove the default).
- Save. From then on,
/appshows that dashboard in read-only embed mode. With no default set, users land on their first accessible route instead.
Setting this requires the reporting:update:all permission.
How the data connects
Reporting does not store its own copy of your business data β it reads live from the modules you already use:
- Transactions β receipts, invoices, credit notes, refunds and journals from Financials, with currency-aware totals (sum/avg of amounts inc/ex VAT, amount due) and breakdowns by type, status or currency.
- Members β the member directory: counts and breakdowns by status, location and join date.
- Properties / Locations β locations, with map plotting and status breakdowns.
- Property Verifications β members' property-ownership/residency claims, with status counts (useful for "verifications pending" metrics).
- Member Requests β incoming/outgoing membership requests by status and type.
- Vehicles β registered vehicles, with map plotting by last-known position.
- Panic Alerts β panic events, with map plotting and an "Activity" filter for active vs. closed alerts.
Because tiles query live data, the numbers reflect the current state every time a dashboard loads; relative date filters re-resolve on each load. Metabase tiles are different β they are produced entirely by your separate Metabase instance and embedded as-is; their content, refresh and data sources are managed in Metabase, not in the portal.
Only the dashboard definition itself is stored: the dashboard, its group, its tiles (type, source, title, filters, metric configuration) and the saved grid layout.
Permissions & access
Access is gated by the Reporting licence module plus four role permissions:
| Permission | Lets the user |
|---|---|
reporting:read:all | View dashboards, groups, tiles and run their data queries |
reporting:create:all | Create dashboard groups, dashboards and tiles |
reporting:update:all | Edit groups, dashboards, tiles, layout, and set the default home dashboard |
reporting:delete:all | Delete groups, dashboards and tiles |
All data is tenant-scoped β you only ever see and edit your own organisation's dashboards and data. Tile source modules are further filtered by their own licences, so a user can only build tiles from data they are entitled to.
Tips & gotchas
- Empty dashboard list? Reporting opens the first available dashboard automatically; if none exist, create a group or a dashboard first. With at least one dashboard, the screen jumps you straight into it.
- A data source is missing from the tile picker. That source module is likely not licensed for your tenant (Vehicles, Properties, Member Requests or Panic). Enable the underlying module to expose it.
- Map tiles only offer map-capable sources (Vehicles, Properties/Locations, Panic Alerts) and only plot records that actually have coordinates.
- Relative date filters are dynamic. "This month" and similar always reflect now, so a dashboard stays current without editing. Use an explicit from/to range when you need a fixed window.
- Layout saves itself shortly after you stop dragging β there is no Save button for positioning. Just make sure you're in edit mode first.
- Deleting a group keeps its dashboards (they become ungrouped), but deleting a dashboard deletes its tiles permanently.
- Metabase embeds depend on the administrator. If a dashboard you expect isn't listed, it hasn't been allow-listed for your tenant, or Metabase isn't configured on the server.
- The "Total" tile is ideal for headline KPIs (for example "Active panic alerts" or "Pending verifications") β set it to a count with a status filter, or a sum of a financial field.