Start Here: Business Intelligence Analytics

Welcome to Edge's Business Intelligence (BI) analytics model. This guide helps you get answers quickly and safely from our data.

New here? Check out Scope & Limitations to see what data is available and what's not included.

Key Concepts

  • Consistency First: Our primary goal is to ensure that numbers match and analyses are reproducible. Follow the guardrails to stay aligned.
  • Know Your Lens: Are you looking at the latest state of something (a snapshot) or its history over time? Picking the right one is important.
  • Dates & Locations are Central: Nearly everything is tied to a location and a standardized UTC date. Filter by these first for the best performance and accuracy.

Consistency Contracts

This section outlines what you can count on from the data.

Global Behaviors (Applies Everywhere)

  • Time: All timestamps and daily reporting use UTC.
  • Freshness Targets:
    • Object facts and dimensions (reviews, interactions, transactions, locations, employees): target lag of 1 hour in ANALYTICS
    • Daily aggregations (fact_location_daily_stats): target lag of 12 hours in ANALYTICS
    • Customer exports: delivered as daily file drops, within 24 hours of the scheduled run
  • Late Data: When late edits arrive, we generally update snapshots.
  • Backfills: We recompute history with no lookback limit; numbers from recent history may shift slightly as data settles.

Why your numbers might change: Backfills and late arrivals can revise yesterday's counts.

When to Escalate

If freshness targets aren't met or counts from the deep past keep drifting, please contact the data team with the dataset, time window, and your query.


Which Table Should I Use?

Use this guide to select the right table for your analysis. For a list of the most popular table columns, see Popular Columns. For a detailed breakdown of all metrics, see the Metrics Catalog.

Friendly Name Use This Table One Row Represents... Notes
Daily Performance fact_location_daily_stats A location on a date Pre-calculated totals for fast dashboards.
Reviews (Latest) fact_reviews A review's current state Best for today's totals and ratings.
Review History fact_review_versions A version of a review Use to track changes to a review over time.
Employee Mentions fact_employee_mentions An employee mention
Interactions fact_interactions A guest interaction Has first-response times and who started it.
Messages fact_messages A single message Detailed sender, type, and origin information.
Customer Saved fact_customers_saved A saved customer Has saved revenue and saved visits.
Transactions fact_transactions A POS transaction Transaction-level revenue and customer IDs.
Transaction Items fact_transaction_items A POS transaction item Product/item-level transaction detail.
Dates dim_dates A calendar day Shared calendar for consistent time analysis.
Locations dim_locations A location Contains brand, region, and other attributes.
Employees dim_employees An employee Names and emails for recognition reports.

For more advanced use cases and table details, see the Data Contracts and Data Dictionary documentation.


Guardrails

Follow these rules to ensure your analysis is accurate.

  • Choose Your Review Lens Carefully:

    • "How many reviews do we have now?" → Use Reviews (latest).
    • "How many different versions of reviews existed over time?" → Use Review Versions.
    • Never mix them in the same total.
  • Always Join on the Correct Date: Facts expose date fields such as created_at_date, last_version_date, and transaction_date. The shared dim_dates table helps keep this consistent.

  • Filter by Location/Brand First: This is the central key that ties everything together and ensures the best query performance.

  • Prefer Daily Tables for Dashboards: They are lighter, faster, and pre-aggregated for performance. Use event-level tables only when you need row-level detail.

For ready-to-use queries, check out the Cookbook.