Skip to main content

Metric Consistency

For Business Users

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:

ProblemBusiness Impact
Different revenue numbersLeadership distrust, wrong forecasts
Conflicting KPIsMisaligned team goals
Manual reconciliationWasted analyst time (10+ hrs/week)
Report disputesMeeting time wasted on "which number is right"
Compliance failuresAudit 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 (not 100)
  • Behavior is documented and predictable

Zero vs Null

Olytix Core distinguishes between zero and null:

ScenarioValueMeaning
No sales0We have data, sales = 0
No datanullData 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:

  1. Build trust in your data →
  2. Implement metric certification →
  3. Calculate your ROI →

Key Takeaway

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.