North Star Metric
North Star Metric
Technical Explanation
The North Star Metric (NSM) is the single metric that best captures the core value your product delivers to customers. It's the "one number" that, if you improve it, everything else follows. Every company should have exactly one North Star.
Properties of a North Star Metric
| Property | Description |
|---|---|
| Revenue-adjacent | Correlated with revenue growth |
| Customer-focused | Reflects value delivered to customers |
| Leading indicator | Predicts long-term success |
| Actionable | Team can influence it |
| Simple | Everyone can understand it |
Finding Your NSM
Ask: "If we improved this metric, would our business grow sustainably?"
Not: "More signups" → Can have lots of signups with no revenue
Yes: "Active users who complete a transaction weekly" → True value delivered
Code Examples
Using the CatCafe dataset:
-- Identifying potential North Star Metrics for CatCafe
-- Candidate 1: Total Revenue
-- Pro: Directly revenue
-- Con: Doesn't capture customer value, can be inflated by few big spenders
SELECT
DATE_TRUNC('month', order_date) as month,
SUM(total_amount) as monthly_revenue
FROM orders
WHERE status = 'completed'
GROUP BY DATE_TRUNC('month', order_date)
ORDER BY month;
-- Candidate 2: Active Customers (ordered in last 30 days)
-- Better: Captures ongoing engagement
SELECT
DATE_TRUNC('month', order_date) as month,
COUNT(DISTINCT customer_id) as active_customers
FROM orders
WHERE status = 'completed'
AND order_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY DATE_TRUNC('month', order_date);
-- Better NSM: Weekly Active Customers with Repeat Orders
-- Captures: Value delivered + Repeat behavior = sustainable
WITH weekly_activity AS (
SELECT
DATE_TRUNC('week', order_date) as week,
customer_id,
COUNT(*) as orders
FROM orders
WHERE status = 'completed'
GROUP BY DATE_TRUNC('week', order_date), customer_id
)
SELECT
week,
COUNT(*) as weekly_active_customers,
SUM(orders) as total_orders,
SUM(orders) * 1.0 / COUNT(*) as orders_per_active_customer
FROM weekly_activity
GROUP BY week
ORDER BY week;
-- Testing correlation: Does weekly active customers correlate with revenue?
WITH weekly_metrics AS (
SELECT
DATE_TRUNC('week', order_date) as week,
COUNT(DISTINCT customer_id) as active_customers,
SUM(total_amount) as revenue
FROM orders
WHERE status = 'completed'
GROUP BY DATE_TRUNC('week', order_date)
)
SELECT
week,
active_customers,
revenue,
revenue * 1.0 / NULLIF(active_customers, 0) as revenue_per_active
FROM weekly_metrics
ORDER BY week;
The Cat Analogy
Think of the North Star Metric as your cat's health indicator:
Wrong North Stars for a cat:
- "Number of treats given" → Easy to game, doesn't mean healthy
- "Hours slept" → Too generic, all cats sleep
- "Weight" → Can be too heavy OR too light
Good North Star for cat health:
"Weekly weight trend + Energy level + Clean coat score"
OR simply: "Weeks without vet visits for preventable issues"
Why it works: If your cat goes weeks without needing the vet, it means:
- Good diet (weight stable)
- Good hygiene (coat clean)
- Good exercise (energy normal)
- Overall healthy
One metric captures multiple aspects of health.
Wrong approach: Tracking treat consumption, water intake, toy playtime separately = too many metrics, no clarity.
Right approach: One North Star that, if healthy, means everything else is likely fine.
Common Pitfalls
Vanity North Stars
-- WRONG: "Total registered users"
SELECT
COUNT(*) as total_users
FROM users;
-- Can be inflated by one-time signups, no engagement
-- WRONG: "Total orders"
SELECT
COUNT(*) as total_orders
FROM orders;
-- Can be driven by discounts, not healthy growth
-- RIGHT: "Weekly active customers with 2+ orders who spent > $50"
WITH weekly_valuable_users AS (
SELECT
DATE_TRUNC('week', order_date) as week,
customer_id,
SUM(total_amount) as spent,
COUNT(*) as orders
FROM orders
WHERE status = 'completed'
GROUP BY DATE_TRUNC('week', order_date), customer_id
HAVING COUNT(*) >= 2 AND SUM(total_amount) > 50
)
SELECT
week,
COUNT(*) as valuable_weekly_users
FROM weekly_valuable_users
GROUP BY week;
Multiple North Stars
-- WRONG: Trying to optimize everything
SELECT
weekly_active_users,
monthly_revenue,
customer_satisfaction,
employee_nps
FROM dashboard;
-- No single focus = diffused effort
-- RIGHT: Pick ONE, let others be supporting metrics
SELECT
weekly_active_users as north_star, -- THE one
monthly_revenue, -- will follow if NSM improves
customer_satisfaction -- will follow if NSM improves
FROM dashboard;
Exercises
Exercise 1
For CatCafe, evaluate these as potential North Star Metrics:
- "Total revenue"
- "Unique cats adopted"
- "Weekly active customers with repeat purchases"
- "Customer lifetime value"
Exercise 2
Write a query to calculate what CatCafe's North Star might be: "Weekly active customers with 2+ orders this month."
Exercise 3
Why is "Total users" a poor North Star metric for a subscription service?
Exercise 4
Design a North Star for:
- A cat grooming service
- A cat food subscription box
- A cat sitting app
Exercise 5
Write a query showing the correlation between your proposed North Star and revenue over time.
Key Takeaways
- North Star Metric = the one metric that best captures core customer value
- Should be: revenue-adjacent, customer-focused, leading, actionable, simple
- Exactly one North Star per business/team
- Avoid vanity metrics that don't correlate with sustainable growth
- Supporting metrics will improve if North Star improves
- Test correlation: does improving NSM actually drive revenue?