Metric Consistency
Metric consistency means that a metric like "Revenue" produces the same result regardless of who queries it, which tool they use, or when they run the query. This consistency is foundational to data-driven decision making.
Why Consistency Matters
The Cost of Inconsistency
When metrics are inconsistent, organizations face:
| Problem | Business Impact |
|---|---|
| Different revenue numbers | Leadership distrust, wrong forecasts |
| Conflicting KPIs | Misaligned team goals |
| Manual reconciliation | Wasted analyst time (10+ hrs/week) |
| Report disputes | Meeting time wasted on "which number is right" |
| Compliance failures | Audit findings, regulatory issues |
Real-World Example
Consider how "Customer Churn Rate" can vary:
Marketing's Definition:
Customers who haven't purchased in 90 days
= 15% churn rate
Finance's Definition:
Customers who cancelled subscription
= 8% churn rate
Support's Definition:
Customers who contacted to complain
= 3% churn rate
All three are "valid" definitions—but which one should drive decisions?
How Olytix Core Ensures Consistency
1. Single Metric Definition
In Olytix Core, each metric has exactly one definition:
metrics:
- name: customer_churn_rate
description: |
Percentage of customers who have not made a purchase
in the last 90 days, calculated monthly.
type: ratio
numerator:
expression: customers.churned_count
denominator:
expression: customers.total_count
time_grain: month
meta:
owner: customer-success-team
certified: true
certified_by: VP of Customer Success
last_reviewed: 2024-01-15
2. Central Calculation Engine
All queries flow through Olytix Core's calculation engine:
┌─────────────────────────────────────────────────────────────────────┐
│ Query: "Get churn rate" │
│ │
│ Tableau Power BI Python Excel Custom App │
│ │ │ │ │ │ │
│ └──────────┴──────────┴──────────┴────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────┐ │
│ │ Olytix Core Query Engine │ │
│ │ │ │
│ │ 1. Parse request │ │
│ │ 2. Load metric def │ │
│ │ 3. Apply security │ │
│ │ 4. Generate SQL │ │
│ │ 5. Execute & return │ │
│ └─────────────────────────┘ │
│ │ │
│ ▼ │
│ Same result: 15% │
└─────────────────────────────────────────────────────────────────────┘
3. Consistent Time Handling
Time-based calculations are standardized:
metrics:
- name: monthly_revenue
expression: orders.total_revenue
time_grain: month
# Time behavior is explicit
time_handling:
timezone: UTC
week_start: monday
fiscal_year_start: july
No matter when or where you query, time periods are calculated the same way.
4. Filter Inheritance
Metric-level filters are always applied:
metrics:
- name: completed_revenue
expression: orders.total_revenue
filters:
- dimension: orders.status
operator: equals
value: completed
- dimension: orders.is_test
operator: equals
value: false
These filters cannot be bypassed—ensuring the metric always excludes test orders and incomplete transactions.
Consistency Across Dimensions
Olytix Core ensures consistency when metrics are sliced by dimensions:
Same Total, Different Slices
Revenue by Region Revenue by Product
───────────────── ─────────────────
North $500K Widgets $600K
South $300K Gadgets $400K
East $400K Services $200K
West $200K ─────────────────
───────────────── Total $1.2M
Total $1.2M
✓ Both totals match—because both use the same underlying metric
Additive Consistency
Olytix Core ensures metrics behave predictably:
Total Revenue = $1,200,000
Revenue (Region = North) = $500,000
Revenue (Region != North) = $700,000
Revenue (Region IN [N,S,E,W]) = $1,200,000 ✓ Adds up correctly
Handling Edge Cases
Nulls and Missing Data
Olytix Core applies consistent null handling:
measures:
- name: average_order_value
type: avg
sql: total_amount
null_handling: exclude # Nulls are excluded from calculation
This means:
AVG(100, 200, NULL)=150(not100)- Behavior is documented and predictable
Zero vs Null
Olytix Core distinguishes between zero and null:
| Scenario | Value | Meaning |
|---|---|---|
| No sales | 0 | We have data, sales = 0 |
| No data | null | Data is missing or unavailable |
Division by Zero
Protected against divide-by-zero errors:
metrics:
- name: conversion_rate
type: ratio
numerator: conversions
denominator: visitors
zero_division_handling: null # Returns null instead of error
Version Control for Metrics
When metric definitions change, Olytix Core maintains history:
Metric: monthly_revenue
═══════════════════════════════════════════════════════════════
Version 3.0 (Current) — Effective 2024-01-01
───────────────────────────────────────────
Definition: Sum of order amounts, excluding refunds
Change: Added refund exclusion
Approved by: CFO
Impact: -3% vs previous definition
Version 2.0 — 2023-07-01 to 2023-12-31
───────────────────────────────────────────
Definition: Sum of order amounts
Change: Added digital products
Approved by: Finance Director
Version 1.0 — 2023-01-01 to 2023-06-30
───────────────────────────────────────────
Definition: Sum of physical product sales only
Initial definition
Historical Queries
Query metrics as they were defined at a point in time:
{
"metrics": ["monthly_revenue"],
"dimensions": ["order_date.month"],
"as_of_version": "2.0"
}
This enables:
- Accurate historical comparisons
- Audit trail for compliance
- Understanding trend changes
Measuring Consistency
Consistency Score
Olytix Core provides a consistency score for your metrics:
Metric Consistency Report
═════════════════════════════════════════════════
Overall Score: 94%
By Category:
Revenue Metrics: 98% ✓ Excellent
Customer Metrics: 92% ✓ Good
Operational Metrics: 89% ⚠ Review recommended
Issues Found:
• 'daily_active_users' has 2 similar definitions
• 'cost_per_acquisition' filters differ by team
Recommendations:
1. Consolidate DAU definitions
2. Standardize CPA filters
Consistency Checks
Automated validation runs on every change:
tests:
- name: revenue_totals_match
description: "Total revenue equals sum of regional revenue"
query: |
SELECT
ABS(total_revenue - regional_sum) < 0.01 AS consistent
FROM (
SELECT
SUM(revenue) AS total_revenue,
(SELECT SUM(revenue) FROM regional_revenue) AS regional_sum
FROM orders
)
expected: true
Best Practices for Consistency
1. Document Everything
Every metric should have:
- Clear description
- Calculation logic explained
- Known limitations
- Example values
2. Establish Ownership
Assign clear owners:
meta:
owner: finance-team
steward: john.smith@company.com
slack_channel: "#data-finance"
3. Require Certification
Important metrics need approval:
governance:
certification_required: true
approvers:
- role: Finance Director
- role: Data Governance Lead
4. Regular Reviews
Schedule periodic metric reviews:
review_schedule:
frequency: quarterly
next_review: 2024-04-01
review_team: [Finance, Analytics, Governance]
Next Steps
Now that you understand metric consistency:
Metric consistency isn't automatic—it requires intentional design. Olytix Core provides the technical foundation, but success requires organizational commitment to single definitions and governed changes.