Reports, dashboards, and OData
Reporting turns non-debug execution records into reusable datasets, reports, dashboards, and BI access. Start with a business question, then choose the smallest set of fields and aggregation needed to answer it.
Create a dataset
A dataset has a name and a scope:
- a specific reportable HubItem; or
- all execution history where the report requires an organization-wide view.
Example:
Dataset name: Personal Loan Decisions
HubItem: Personal Loan Decision Workflow
Only HubItems with reportable execution records appear in selectors that require existing data. If an item is missing, execute it with the required analytics/history settings and confirm access.
Create a report
Enter a name and choose a visual type: chart, KPI, or grid. Configure grouping and aggregation.
Supported aggregation choices include count, sum, average, minimum, and maximum. Sum/average/minimum/maximum require a numeric measure.
Example: decisions by risk band
Name: Decisions by Risk Band
Visual: Chart
Group by: output.riskBand
Aggregation: Count
Illustrative result:
Low 1,240
Medium 380
High 145
Example: average approved amount
Name: Average Approved Amount
Visual: KPI
Measure: output.approvedAmount
Aggregation: Average
Example: decision audit grid
Choose fields such as correlation ID, execution time, input application ID, output status, risk band, and approved amount. Avoid including personal fields merely because they are available.
Build a dashboard
Create a dashboard with name and description, then add widgets. A widget can use a saved report or a custom configuration.
Widget options include:
- title;
- table, chart, or KPI presentation;
- optional HubItem and date range;
- selected payload fields;
- row limit from 1 to 1,000;
- group, calculation, and numeric measure;
- bar, line, area, pie, or donut chart style.
Example operations dashboard
KPI: Decisions today
KPI: Approval rate
Bar chart: Decisions by risk band
Line chart: Daily decision volume
Grid: Most recent manual reviews
Use a line/area chart for time trends, bar chart for category comparison, pie/donut only for a small number of parts of a whole, KPI for one important number, and grid for record-level review.
Dashboards can be searched, cloned, and deleted with permission. Clone before experimenting with a dashboard used by other operators.
Create an OData key
The OData API-key card creates organization-scoped reporting credentials for Power BI, Tableau, Excel, data warehouses, and other compatible tools.
- Enter a descriptive name such as
Power BI - Risk Dashboard. - Choose an optional expiry.
- Create and copy the full key immediately; it is shown once.
- Store it in the BI platform's protected credential store.
- Use the OData endpoint displayed by DecisionHub.
OData provides metadata, reportable HubItems, and Execution History according to server-side reporting rules. It is read-oriented reporting access, not an execution credential.
Execution keys and OData keys are different
| Key | Scope | Purpose |
|---|---|---|
| Solution API key | One solution and environment | Execute deployed HubItems |
| OData key | Organization reporting | Read reporting data through OData |
Never interchange or broadly share them. Rotate or revoke a key when ownership changes, a consumer is retired, or exposure is suspected.
Reporting quality tips
- Use stable output field names and categories.
- Prefer correlation/business IDs over names for joining investigations.
- Keep numeric measures numeric in Data Models.
- Document whether null values are excluded or counted.
- Use consistent time zones for period reporting.
- Limit record-level widgets and exports to the fields users need.
- Revalidate reports after model fields are renamed or removed.
Troubleshooting
| Problem | Check |
|---|---|
| HubItem missing from dataset selector | It has reportable non-debug execution records and you can access it |
| Sum/average option is unusable | A numeric measure field is selected |
| Chart is empty | Date range, field path, filters, and execution availability |
| BI tool is unauthorized | Correct OData endpoint/key, active key, and expiry |
| Field disappeared | Deployed Data Model changed or records use different model attribution |