The Outbound Data Feed exposes a set of core entities that link together through primary and foreign keys. These relationships allow you to join organisations, business units, accounts, metrics, actuals, budgets, and forecasts into a unified reporting model.
Core Structural Relationships
The following is the complete set of entity relationships. Not all of these relationships will be required when building BI models; see the modelling guidance further below.
Organisation -> BusinessUnitCategory -> BusinessUnit
Each organisation can contain multiple business unit categories with multiple business units in each category.
From entity | Relationship | To entity |
Organisation (OrganisationId) |
| BusinessUnitCategory (OrganisationId) |
BusinessUnitCategory (BusinessUnitCategoryId) |
| BusinessUnit (BusinessUnitCategoryId) |
Organisation (OrganisationId) |
| BusinessUnit (OrganisationId) |
Organisation -> Account
Each organisation defines its own chart of accounts.
From entity | Relationship | To entity |
Organisation (OrganisationId) |
| Account (OrganisationId) |
Organisation -> Budget Version
Each organisation defines its own list of budget versions.
From entity | Relationship | To entity |
Organisation (OrganisationId) |
| BudgetVersion (OrganisationId) |
Metric
Note: 💬 Metrics are defined at the workspace level so there is not core structural relationship to an Organisation. Mapping relationships to organisations only occurs through Actual and Budget value-based entities documented below.
Actuals, Budgets and Forecasts
These entities store monthly period‑based values and link back to the structural entities above.
OrganisationAccountActual & BusinessUnitAccountActual
From entity | Relationship | To entity |
OrganisationAccountActual (OrganisationId) |
| Organisation (OrganisationId) |
OrganisationAccountActual (AccountId) |
| Account (AccountId) |
BusinessUnitAccountActual (OrganisationId) |
| Organisation (OrganisationId) |
BusinessUnitAccountActual (BusinessUnitCategoryId) |
| BusinessUnitCategory (BusinessUnitCategoryId) |
BusinessUnitAccountActual (BusinessUnitId) | | BusinessUnit (BusinessUnitId) |
BusinessUnitAccountActual (AccountId) |
| Account (AccountId) |
OrganisationAccountBudget & BusinessUnitAccountBudget
From entity | Relationship | To entity |
OrganisationAccountBudget (OrganisationId) |
| Organisation (OrganisationId) |
OrganisationAccountBudget (BudgetVersionId) |
| BudgetVersion (BudgetVersionId) |
OrganisationAccountBudget (AccountId) |
| Account (AccountId) |
BusinessUnitAccountBudget (OrganisationId) |
| Organisation (OrganisationId) |
BusinessUnitAccountBudget (BudgetVersionId) |
| BudgetVersion (BudgetVersionId) |
BusinessUnitAccountBudget (BusinessUnitCategoryId) |
| BusinessUnitCategory (BusinessUnitCategoryId) |
BusinessUnitAccountBudget | | BusinessUnit (BusinessUnitId) |
BusinessUnitAccountActual (AccountId) |
| Account (AccountId) |
OrganisationCashflowForecast
From entity | Relationship | To entity |
OrganisationAccountBudget (OrganisationId) |
| Organisation (OrganisationId) |
OrganisationAccountBudget (BudgetVersionId) |
| BudgetVersion (BudgetVersionId) |
OrganisationAccountBudget (AccountId) |
| Account (AccountId) |
OrganisationMetricActual & BusinessUnitMetricActual
From entity | Relationship | To entity |
OrganisationMetricActual (OrganisationId) |
| Organisation (OrganisationId) |
OrganisationMetricActual (MetricId) |
| Metric (MetricId) |
BusinessUnitAccountActual (OrganisationId) |
| Organisation (OrganisationId) |
BusinessUnitAccountActual (BusinessUnitCategoryId) |
| BusinessUnitCategory (BusinessUnitCategoryId) |
BusinessUnitAccountActual (BusinessUnitId) | | BusinessUnit (BusinessUnitId) |
BusinessUnitAccountActual (MetricId) |
| Metric (MetricId) |
OrganisationMetricBudget & BusinessUnitMetricBudget
From entity | Relationship | To entity |
OrganisationMetricBudget (OrganisationId) |
| Organisation (OrganisationId) |
OrganisationMetricBudget (BudgetVersionId) |
| BudgetVersion (BudgetVersionId) |
OrganisationMetricBudget (MetricId) |
| Metric (MetricId) |
BusinessUnitMetricBudget (OrganisationId) |
| Organisation (OrganisationId) |
BusinessUnitMetricBudget (BudgetVersionId) |
| BudgetVersion (BudgetVersionId) |
BusinessUnitMetricBudget (BusinessUnitCategoryId) |
| BusinessUnitCategory (BusinessUnitCategoryId) |
BusinessUnitMetricBudget (BusinessUnitId) | | BusinessUnit (BusinessUnitId) |
BusinessUnitMetricBudget (MetricId) |
| Metric (MetricId) |
Period‑Based Relationships
To simplify filtering by Period in BI tools, we provide a dedicated Periods entity. All period‑based entities align to this by using the last day of the month as the period value.
Periods
From entity | Relationship | To entity |
Periods (Period) |
| OrganisationAccountActual (Period) |
Periods (Period) |
| BusinessUnitAccountActual (Period) |
Periods (Period) |
| OrganisationAccountBudget (Period) |
Periods (Period) |
| OrganisationCashflowForecast (Period) |
Periods (Period) |
| BusinessUnitAccountBudget (Period) |
Periods (Period) |
| OrganisationMetricActual (Period) |
Periods (Period) |
| BusinessUnitMetricActual (Period) |
Periods (Period) |
| OrganisationMetricBudget (Period) |
Periods (Period) |
| BusinessUnitMetricBudget (Period) |
Guidance for Building BI Models
Designing a BI model from the Outbound Data Feed requires selecting relationships that support your reporting needs while avoiding ambiguous filter paths. Because different reporting scenarios require different combinations of entities, there is no single “correct” model. Instead, the following principles and patterns provide a safe foundation for building reliable models in Power BI and other BI tools.
Star Schema
A star schema provides the simplest and most stable structure. Use dimension tables to filter fact tables and avoid connecting fact tables directly to each other.
Typical dimensions
Typical fact tables
Tip:💡Not all dimensions need to be included in every model. Add only the dimensions required for your reporting scenario.
Use Single‑Direction Filters
To avoid ambiguous paths, configure relationships as single‑direction from dimensions to facts.
This ensures:
Filters flow predictably
BI tools do not detect multiple valid filter routes
You avoid circular filtering chains
Bi‑directional filters should only be used when absolutely necessary and with a clear understanding of the consequences.
Only Create Relationships You Intend to Use
The Outbound Data Feed exposes many valid relationships, but you should not connect all of them in your BI model.
Extra relationships often create:
Ambiguous filter paths
Circular dependencies
Unexpected filtering behaviour
Create only the relationships required for your reporting logic.
Use the Period Dimension for Time Filtering
All period‑based entities use the last day of the month as the period value. Connecting each fact table to the Period dimension provides:
Consistent time filtering
A single reference point for slicers
No direct fact‑to‑fact joins
This avoids ambiguous paths between Actuals, Budgets, Metrics, and Forecasts.
Common Pitfalls to Avoid
Connecting every possible relationship “because it exists”
Using bi‑directional filters by default
Allowing multiple paths from Organisation to a fact table
Connecting fact tables directly to each other
Mixing Account‑based and BusinessUnit‑based Organisation paths
