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.

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 (like reviews) are updated within 1 hour. Daily rollups are updated within 24 hours.
  • 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 Includes reward amount and payment status.
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.
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 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: Messages use created_at, while reviews use 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.