Skip to content
Back to challenges
Metrics-first Product ModelingQuick Decisionbeginner5 min

Atomic events vs metrics

Recognize when one atomic event fact can support multiple product metrics.

How this preview works
Preview this problem before signing in. Sign in to save progress and submit work.

Concept

fact-table-grain

The primary modeling idea this problem reinforces.

Requirements

2

Business needs the model must satisfy.

Read the concept guide: Fact table grain
Scenario

A notifications team asks for send volume, click-through rate, and notification opt-out rate by channel. Someone proposes one fact table for each metric.

Why this matters

Metric-shaped tables make every new metric a new model. Atomic events keep the source behavior queryable and let metrics evolve.

Requirements
  • Pick the fact grain that preserves notification behavior.
  • Explain how the same event grain supports rate and volume metrics.
What success looks like
  • The answer chooses an atomic notification event fact.
  • The explanation distinguishes source-of-truth events from derived aggregates.
Hints
  • Ask what one notification event row should represent.
  • Click-through rate is a metric computed from sent and clicked events.
Common pitfalls
  • Creating one fact per metric and losing consistency across definitions.
  • Aggregating to channel-day grain before user-level opt-out analysis is possible.
Reference approaches
These are valid approaches, not one absolute answer.

Atomic notification event fact

Use one notification event fact with event_type, event_time, user, channel, and campaign context. A Kimball transaction-fact grain, served the dbt semantic-modeling way.

Optimizes for

  • Multiple metrics from one grain
  • Metric definition changes
  • User and channel debugging

Trade-offs

  • High event volume may need aggregate serving tables
  • Rate metrics require careful numerator and denominator filters

Try the question first.

The discussion has other people's approaches and solutions. Give it a real attempt before you read them.