PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Nextdoor

Design tables for KPI dashboard

Last updated: Apr 17, 2026

Quick Overview

This question evaluates data engineering skills in analytical data modeling, incremental ETL, time-series aggregation, and KPI computation for large-scale systems.

  • hard
  • Nextdoor
  • System Design
  • Data Engineer

Design tables for KPI dashboard

Company: Nextdoor

Role: Data Engineer

Category: System Design

Difficulty: hard

Interview Round: Technical Screen

You need to design the analytical data model behind a KPI dashboard for a large-scale photo-sharing app. Raw source tables: - `users(user_id, user_name, joined_at)` - `photos(photo_id, user_id, created_at)` - `follows(follower_user_id, followed_user_id, created_at)` - `user_events(event_id, user_id, event_type, occurred_at)` Assume all timestamps are stored in UTC. A follow row means a follow relationship was created at `created_at` and remains active afterward. `DAU` means distinct active users per local calendar day, based on `user_events`. The dashboard is initially reported daily and must stay fast even when the raw dataset becomes very large. The required metrics are: - new users - change versus 7 days earlier - DAU - change versus 7 days earlier - new photos - new photos per DAU - change versus 7 days earlier - total followers - % users with 0 followers - % users with 1-2 followers - % users with 3+ followers Design the table or tables that should power this dashboard. Explain the grain, keys, what should be precomputed versus derived, and how you would populate the tables incrementally from raw data. Then discuss the design changes needed for each of these follow-ups: 1. Add a week-1 retention metric. 2. Support weekly rollups instead of daily rollups. 3. Change reporting from `America/Los_Angeles` to `America/New_York`. Focus on correctness, performance, and maintainability.

Quick Answer: This question evaluates data engineering skills in analytical data modeling, incremental ETL, time-series aggregation, and KPI computation for large-scale systems.

Related Interview Questions

  • Design a Scalable Job Scheduler - Nextdoor (medium)
  • Design KPI tables, retention, rollups, timezone - Nextdoor (hard)
  • Describe CAP, distributed systems, multithreading experience - Nextdoor (hard)
Nextdoor logo
Nextdoor
Mar 1, 2026, 12:00 AM
Data Engineer
Technical Screen
System Design
5
0

You need to design the analytical data model behind a KPI dashboard for a large-scale photo-sharing app.

Raw source tables:

  • users(user_id, user_name, joined_at)
  • photos(photo_id, user_id, created_at)
  • follows(follower_user_id, followed_user_id, created_at)
  • user_events(event_id, user_id, event_type, occurred_at)

Assume all timestamps are stored in UTC. A follow row means a follow relationship was created at created_at and remains active afterward. DAU means distinct active users per local calendar day, based on user_events.

The dashboard is initially reported daily and must stay fast even when the raw dataset becomes very large. The required metrics are:

  • new users
  • change versus 7 days earlier
  • DAU
  • change versus 7 days earlier
  • new photos
  • new photos per DAU
  • change versus 7 days earlier
  • total followers
  • % users with 0 followers
  • % users with 1-2 followers
  • % users with 3+ followers

Design the table or tables that should power this dashboard. Explain the grain, keys, what should be precomputed versus derived, and how you would populate the tables incrementally from raw data.

Then discuss the design changes needed for each of these follow-ups:

  1. Add a week-1 retention metric.
  2. Support weekly rollups instead of daily rollups.
  3. Change reporting from America/Los_Angeles to America/New_York .

Focus on correctness, performance, and maintainability.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Nextdoor•More Data Engineer•Nextdoor Data Engineer•Nextdoor System Design•Data Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.