[ Finance ]
What Is a Semantic Layer for Finance Data? Why ERP Data Alone Isn't One
A finance semantic layer defines metrics, grain, joins, periods, currency, access, and lineage once so every tool and AI system uses the same meaning.

On this page
Ask the controller, FP&A lead, and data lead the same question: How much revenue did we have in June? In one illustrative diagnostic, the ledger says $1.20 million, billing $1.31 million, and the CRM $1.44 million. All three can be correct.
A finance semantic layer defines and reuses one governed meaning across every report, spreadsheet, API, and AI system. It specifies the metric, grain, joins, period, entity scope, currency, exclusions, access, and owner. ERP data records transactions; it does not automatically settle cross-system meaning.
The $1.20 million is recognized revenue in a closed accounting period. The $1.31 million is invoiced value. The $1.44 million is a run rate from $120,000 of monthly recurring revenue. One noun, three defensible measures, and a meeting already heading sideways.
What is a semantic layer for finance data?
A semantic layer for finance data is an executable contract that translates physical records into business measures. It names what a number means, where it comes from, how it aggregates, which dimensions may filter it, who may see it, and which definition version applied at the time.
Microsoft describes a Power BI semantic model as a logical description of an analytical domain with metrics, business-friendly terminology, facts, and dimensions. dbt's current Semantic Layer documentation centers metric definitions above existing models and handles joins so downstream tools use the same logic. Snowflake's semantic views store business entities, relationships, dimensions, facts, and metrics as metadata in the database. Across all three products, reusable business definitions sit between physical data and the tools that consume it.
A glossary entry can explain a term. A semantic layer goes further: it can produce the same governed calculation when Excel, a dashboard, or an agent asks for it. Documentation without executable logic still leaves every consumer free to rebuild the number.
Why is an ERP not automatically a semantic layer?
An ERP is often an authoritative system of record for financial transactions, books, posting periods, accounts, and reporting dimensions. That is indispensable. But a transaction system does not automatically settle how finance concepts should work across every consuming tool or source.
Oracle's own NetSuite analytics-source documentation describes inconsistent field names and exposure across some historical Saved Search and Report surfaces, while the newer Workbook data source aims to provide consistent fields inside Workbook. Reproducing an older search can still require different records, joins, or custom formulas. NetSuite includes analytics. Yet one database does not guarantee one reusable meaning across surfaces.
Even inside a single ERP, the consuming surface matters. NetSuite's dataset-linking guidance shows separate datasets joined through common fields such as sales representative and accounting period. Oracle warns that one-to-many links can duplicate results, common keys need compatible values and data types, and aggregation occurs at the visualization layer. An error in grain or cardinality changes the reported amount, so finance should review those rules as carefully as an account mapping.
A data warehouse centralizes prepared tables and history; it does not by itself establish reusable finance meaning. Microsoft recommends a warehouse and ETL process before a Power BI semantic model when source preparation becomes complex. The warehouse governs where prepared data lives. The semantic layer governs what a reusable business number means.
Why can the same finance question produce three correct numbers?
The same finance question can produce several correct numbers when systems measure different events, use different clocks, or apply different recognition rules. In the illustrative June diagnostic, the ledger measures posted recognized revenue, billing measures invoices, and the CRM annualizes recurring revenue. The intended decision determines which measure belongs in the answer.
| System answer | Visible calculation | What it actually measures | Valid use |
|---|---|---|---|
| $1.20M from the general ledger | Sum of approved posted revenue lines for June | Recognized revenue for the accounting period | Management P&L and close reporting |
| $1.31M from billing | Sum of June customer invoices | Billed value | Collections and billing operations |
| $1.44M from the CRM | $120,000 June MRR × 12 | Annualized recurring run rate | Commercial planning, not June recognized revenue |
The semantic layer does not choose one universal winner. It gives each measure a precise name, formula, owner, and valid use. If the official question is 'recognized revenue for the June management P&L,' the layer selects the posted GL measure, the June posting period, approved entities and books, and the reporting-currency rule. If the question is 'current ARR,' it uses a different contract.
Currency alone can change the answer. NetSuite's consolidated exchange-rate documentation assigns Average rates by default to income-statement accounts, Current rates to most balance-sheet accounts, and Historical rates to equity accounts. Oracle's reporting guidance explains that the selected subsidiary context determines reporting currency. A field labeled amount is not a complete metric until the currency basis and entity scope are known.
Time rules can also change a finance answer. Finance may need posting period, transaction date, service period, invoice date, CRM close date, or cash date. A semantic contract declares the clock instead of letting the dashboard designer pick the nearest date column.
What belongs in a finance metric contract?
A finance metric contract should specify the metric question, owner, sources, grain, joins, formula, scope, time, entity, currency, dimensions, access, lineage, tests, refresh behavior, version, and valid uses. The 20-field Finance Metric Contract below is an editorial framework, not an industry standard. Every blank field forces a downstream analyst, report, or model to guess.
| Field | What to record |
|---|---|
| 1. Name and question | A precise metric name and the plain-language question it answers |
| 2. Definition | The formal business definition, including the intended use |
| 3. Ownership | Finance owner, technical steward, and change approver |
| 4. Sources | Systems, records, tables, and authoritative control totals |
| 5. Grain | What one fact row represents before aggregation |
| 6. Entities and joins | Primary keys, foreign keys, cardinality, and allowed join paths |
| 7. Base measure | Signed amount, quantity, balance, rate, or event being aggregated |
| 8. Formula | Aggregation, filters, denominator, and rounding rule |
| 9. Account and record scope | Included and excluded accounts, transaction types, statuses, and books |
| 10. Time rule | Posting period, fiscal calendar, date role, and as-of behavior |
| 11. Entity scope | Legal entities, subsidiary hierarchy, eliminations, and accounting book |
| 12. Currency | Transaction, local, or reporting currency and translation method |
| 13. Dimensions | Permitted cuts, prohibited cuts, hierarchies, and effective dates |
| 14. Sign convention | Debit-credit treatment and favorable-unfavorable policy |
| 15. Access | Row-level permissions, restricted attributes, and downstream rights |
| 16. Lineage | Drill-through target from metric to source record |
| 17. Tests | Tie-out, duplicate, unmapped-value, valid-period, and currency-basis checks |
| 18. Refresh | Cadence, source snapshot, freshness threshold, and failure behavior |
| 19. Version | Effective date, definition version, approval, and change history |
| 20. Consumers and limits | Reports, spreadsheets, APIs, agents, known limitations, and invalid uses |
Start with revenue if it causes debate. Ask finance and data teams to complete the contract independently, then compare account scope, period, entity hierarchy, currency basis, eliminations, and exclusions. Every disagreement is a missing semantic decision. No benchmark is required. The blank cells are the finding.
How do you build a finance semantic layer without boiling the ledger?
Build the first finance semantic layer around one recurring decision, not the entire chart of accounts. A bounded metric exposes the hard parts while the blast radius remains small.
| Step | Required output | Stop condition |
|---|---|---|
| 1. Choose one question | Named metric, audience, decision, and finance owner | The intended use or accountable owner is missing |
| 2. Freeze the source scope | Authoritative records, period, book, entities, status filters, and control total | The source population cannot tie to an approved report |
| 3. Declare the grain and joins | Fact grain, dimensions, keys, cardinality, and fan-out tests | A one-to-many path duplicates the measure |
| 4. Write the contract | Formula, account mapping, time, currency, exclusions, access, lineage, and version | A reviewer must infer a rule from a report name or spreadsheet tab |
| 5. Test adversarially | Known answers, zero and missing cases, duplicate keys, unmapped accounts, late journals, and FX changes | The layer returns a plausible number instead of failing visibly |
| 6. Reuse and govern | The same metric served to at least two consumers with change approval and monitoring | A downstream tool redefines the metric locally |
The AI-ready finance data checklist is the prerequisite for source scope, periods, mappings, dimensions, and ownership. A semantic layer cannot repair an incorrect posting, a missing subsidiary, or an account mapping nobody will approve. With explicit tests and failure rules, it can make those gaps fail loudly.
Keep the first test boring. Remove a mapping. Feed a duplicate accounting line. Change the reporting subsidiary. Reopen the period with a late journal. A governed metric should stop, identify the affected result, and name the owner. A number that survives only the happy path is a demo.
How is a semantic layer different from an ontology?
A semantic layer makes measures executable across data and tools. An ontology models business concepts and their relationships beyond a single metric: customers sign contracts, contracts govern invoices, invoices create receivables, and subsidiaries own the transactions. The two can overlap, but they solve different parts of the meaning problem.
The Financial Industry Business Ontology formalizes financial concepts and relationships in machine-readable OWL. FIBO describes itself as a financial-services ontology; it is not presented as an FP&A metric catalog. For a mid-market finance team, the practical distinction is simpler: the ontology is the map of what exists and connects; the semantic layer is the governed calculation and query interface that uses the map.
Pluvo's published ontology essay goes deeper on the entity-and-relationship layer. Here the boundary is narrower: how a finance number gets one reusable definition.
What can AI not do, and what must stay human?
AI should not hold authority to choose the official definition of revenue, approve a new account mapping, accept a broken tie-out, set FX policy, or waive a late journal as immaterial. Those are finance decisions with owners and consequences.
An AI system can query an approved semantic layer, assemble source evidence, explain a governed result, and flag a contract failure. The calculation still belongs in deterministic logic. The two-system control pattern keeps language generation away from the arithmetic and preserves a source-to-answer path.
Human review should focus on changes in meaning: a new account, revised entity structure, exception to the recognition rule, altered materiality, or a source failure. Automated tests can clear stable definitions and routine source checks, while exceptions route to the people authorized to decide them.
How does Pluvo use finance semantics?
The 20-field Finance Metric Contract above is Pluvo's editorial framework. Pluvo's current ontology models entities, relationships, and definitions from connected finance and operating systems. Definitions are versioned and governed; the history remains when a definition changes. Lineage connects a reported figure to source records, definitions, and transformations. Those are product claims documented on Pluvo's public pages, not proof that every implementation begins clean. Finance still reviews the definitions and the source data must still reconcile.
For practical field notes on Finance Engineering, subscribe to the Finance Engineering Newsletter.
The next time three systems answer revenue, do not ask which one is lying. Ask which question each was built to answer.
Frequently asked questions
What is a semantic layer in finance?
A finance semantic layer is an executable contract above source data that defines metrics, grain, joins, periods, entity and currency scope, dimensions, access, ownership, tests, and lineage for reuse across analytical tools and AI systems.
Is an ERP a semantic layer?
An ERP is the authoritative system of record and may include analytical models, calculations, and dimensions. Its transaction tables and chart of accounts alone are not a cross-system semantic layer because downstream tools can still rebuild joins, metrics, and policies differently.
What should a finance metric definition include?
Include the question, formula, owner, sources, fact grain, joins, account scope, period, entity, book, currency, dimensions, sign convention, access, lineage, tests, refresh rule, effective date, version, limitations, and consumers.
What is the difference between a semantic layer and an ontology?
A semantic layer makes measures executable and queryable across tools. An ontology defines business entities, concepts, and relationships. An ontology can inform the semantic layer, while the semantic layer adds metric formulas, filters, aggregations, access, and query behavior.
Can a semantic layer make finance data accurate?
A semantic layer can enforce definitions, expose failed tests, and make calculations reproducible. It cannot repair incorrect source postings, missing dimensions, stale master data, or an account mapping that finance has not approved.
How does a semantic layer help AI in finance?
A semantic layer gives AI governed metric names, joins, filters, dimensions, permissions, and lineage instead of forcing the model to infer meaning from raw schemas. Finance still approves the definitions and material decisions.



