Reporting
ioki Reporting is the web application you use to view, filter, chart, and export the reporting data that ioki Platform produces. To sign in and find your way around, see Get started. The remaining pages cover the report views, the Aggregations charts, and each standard report in detail. This section also documents the ioki Platform side of reporting; that is, how the reporting data is gathered and the underlying calculations.
Only the standard reports that ioki Platform provides are documented here. Provider-specific custom reports are not covered.
Links
ioki Reporting is available in the following environments:
- Staging: reporting.staging.io.ki
- Demo: reporting.demo.io.ki
- Production: reporting.io.ki
Default query timeframe
Each report suggests a default query timeframe to its users. Reports with only a few rows may recommend querying a full month, while more data-heavy reports may suggest starting with a single day. If no default query timeframe is explicitly defined, it defaults to three days.
Release strategies
The following release strategies exist:
- Alpha. Navigation item and report data are only visible/accessible to Super Admins.
- Closed beta. Navigation item only visible to Super Admins, but report is accessible.
- Open beta. Visible in navigations and report data is accessible, the UI should visually indicate the open-beta stage.
- Stable. Visible in navigations and report data is accessible.
- Deprecated. Visible in navigations and report data is accessible, the UI should show deprecation info.
The default release stage is alpha.
Access / permissions
Reports can be accessed without a specific permission. However each report can specify which rows are accessible for admins by assigned products, providers and operators. The following access modes are available for each report:
- Unrestricted. All rows are visible to the viewer.
- Product based. Rows visible if bound to a shared product.
- Operator based. Rows visible if bound to a shared operator.
- Product and operator based. Rows visible if bound to both a shared product AND operator.
- Product or operator based. Rows visible if bound to either a shared product OR operator.
Report partition: period type and versions
A report is partitioned into finished slices. To determine the size of such a slize a time period is defined on the report. Possible period times are:
- Daily
- Weekly
- Monthly
- Yearly
A report partition has two version columns, each serving a distinct purpose:
- report_version indicates how many times the same report partition (with the same ‘name’ and ‘period_identifier’) has been queried. Reports are immutable, so instead of modifying an existing report, a new report is created with an incremented
report_version. This happens when a report partition for the same period is collected and stored again. - definition_version represents the version of the ReportBuilder logic (or “internal calculation revision”) that was used to generate the report partiton. ReportBuilder classes, much like serializers, evolve over time with updates to column definitions, schema, and calculation methods. The
definition_versionensures that each report partition stores which version of the ReportBuilder was used, preserving the integrity of the report’s structure and calculations.
name: ‘revenue_report’ period_identifier: ‘2024-01’ report_version: 1 definition_version: 2
This revenue report partition for January 2024 was collected and stored once, using version 2 of the ReportBuilder’s column definitions and calculations.
name: ‘revenue_report’ period_identifier: ‘2024-01’ report_version: 2 definition_version: 1
This revenue report partition for January 2024 was collected a second time, but the ReportBuilder was still using its original version (definition_version 1).