Before this course: Analytics Projects: questions to dashboards and recommendations (course 7.3.3). You should already be able to write a project brief, define a metric card, clean data with tests, analyse segments, funnels and cohorts, spot Simpson's paradox, build a dashboard and write a recommendation. Courses 7.3 (Data Analytics Basics) and 7.3.2 (Data Analysis in Practice) come before that, and the SQL here uses the level of SQL Joins & Analysis (course 7.4.2). This is the expert level: you stop running one project and start setting the rules that every project on your team follows, checking others' work and growing other analysts.
Before you start, and a metrics framework: goal, drivers and guardrails
A football team wants to win (the goal). To win, it must score goals and stop the other team scoring (the drivers). But it must not win by fouling everyone, or it loses players to red cards (the guardrail). A metrics framework writes those three things down for a business.
- A metrics framework is a small, agreed set of metrics in three layers:
| Layer | What it is | Example for an online shop |
|---|---|---|
| Goal metric | The one number that shows the team is creating value | Paid revenue per month |
| Driver metrics | Numbers the team can act on that move the goal | Active customers, orders per active customer, average order value |
| Guardrail metrics | Numbers that must not get worse while you chase the goal | Refund rate, complaints, delivery time |
- Lagging metrics (revenue) show results late. Leading metrics (active customers this week) move earlier and help you act sooner.
- A metric tree links the goal to its drivers with a formula. Here: revenue = active customers x orders per active customer x average order value. Each team can own one branch.
- Check the tree with numbers: multiply the drivers and confirm you get the goal back. If the product does not match, a definition is wrong.
- A well-known warning, often called Goodhart's law: once a measure becomes a target, people may improve the number without improving the real thing (for example, more orders through big refunds). Guardrails are the answer.
- Keep it small: a team that tracks 40 "key" metrics has no key metrics. Aim for one goal, three to five drivers and two or three guardrails, each with a metric card (course 7.3.3, Lesson 2) and one owner.
- Leading analytics also means saying what the framework is not for: individual performance ratings of staff need different care (Lesson 4 and Lesson 5).
CREATE TABLE customers ( id INTEGER PRIMARY KEY, signup_month TEXT, channel TEXT ); CREATE TABLE orders ( id INTEGER PRIMARY KEY, customer_id INTEGER REFERENCES customers(id), order_date TEXT, amount REAL, status TEXT ); INSERT INTO customers VALUES (1,'2026-09','search'), (2,'2026-09','social'), (3,'2026-09','search'), (4,'2026-09','social'), (5,'2026-09','email'), (6,'2026-10','social'), (7,'2026-10','search'), (8,'2026-10','social'), (9,'2026-10','email'), (10,'2026-10','social'); INSERT INTO orders VALUES (1, 1,'2026-09-03',40,'paid'), (2, 2,'2026-09-05',25,'paid'), (3, 3,'2026-09-11',60,'paid'), (4, 1,'2026-09-20',35,'paid'), (5, 4,'2026-09-22',30,'paid'), (6, 5,'2026-09-28',50,'refunded'), (7, 1,'2026-10-02',45,'paid'), (8, 3,'2026-10-06',55,'paid'), (9, 6,'2026-10-08',20,'paid'), (10,7,'2026-10-12',35,'paid'), (11,8,'2026-10-15',15,'paid'), (12,1,'2026-10-19',40,'paid'), (13,9,'2026-10-24',30,'paid'), (14,10,'2026-10-27',20,'paid'), (15,6,'2026-10-31 14:20',25,'paid'), (16,1,'2026-11-03',50,'paid'), (17,3,'2026-11-05',45,'paid');
Note: order 15 has a time as well as a date. That is on purpose (Lesson 6).
WITH paid AS (
SELECT customer_id, substr(order_date, 1, 7) AS month, amount
FROM orders
WHERE status = 'paid'
),
monthly AS (
SELECT month,
COUNT(DISTINCT customer_id) AS active_customers,
COUNT(*) AS orders,
SUM(amount) AS revenue
FROM paid
GROUP BY month
)
SELECT month, revenue, active_customers,
ROUND(1.0 * orders / active_customers, 2) AS orders_per_customer,
ROUND(revenue / orders, 2) AS avg_order_value,
ROUND(active_customers * (1.0 * orders / active_customers)
* (revenue / orders), 2) AS check_revenue
FROM monthly
WHERE month IN ('2026-09', '2026-10')
ORDER BY month;
| month | revenue | active_customers | orders_per_customer | avg_order_value | check_revenue |
|---|---|---|---|---|---|
| 2026-09 | 190.0 | 4 | 1.25 | 38.0 | 190.0 |
| 2026-10 | 285.0 | 7 | 1.29 | 31.67 | 285.0 |
Reading it: revenue grew from 190 to 285. Active customers grew from 4 to 7, while the average order value fell from 38.0 to 31.67. The growth came from more customers, not bigger orders. check_revenue equals revenue, so the tree is consistent.
SELECT substr(order_date, 1, 7) AS month,
COUNT(*) AS orders,
SUM(status = 'refunded') AS refunds,
ROUND(100.0 * SUM(status = 'refunded') / COUNT(*), 1) AS refund_rate_pct
FROM orders
WHERE substr(order_date, 1, 7) IN ('2026-09', '2026-10')
GROUP BY month
ORDER BY month;
Result: September 6 orders, 1 refund, 16.7%; October 9 orders, 0 refunds, 0.0%. With so few orders, one refund moves the rate a lot: show the counts next to the rate.
- Write your team's goal in one sentence, then choose one goal metric that shows it.
- List three to five driver metrics your team can act on, and write the formula that links them to the goal.
- Choose two or three guardrails: what must not get worse?
- Load the practice data and run the metric tree query.
- Check: check_revenue equals revenue in both months.
- Write one sentence saying which driver explains the change from September to October.
- Run the refund-rate guardrail and write the counts next to the rate.
- Check: every metric in your framework has a metric card and one named owner (a role is fine).
Videos by other creators on YouTube, for reference. They are not made by or affiliated with The Future Market.
Read the video script
[Host] "Your team tracks forty 'key' metrics. That means it has none."
[Screen: tree with revenue at the top, three branches below] "Pick one goal. Link it to the drivers your team can move: customers, orders per customer, order value."
[Text on screen: 4 x 1.25 x 38.0 = 190] "Multiply the drivers. If you don't get the goal back, a definition is wrong."
[Screen: refund rate as a guardrail] "Then add guardrails, so nobody hits the target by breaking something else."
Build a metrics framework for a club, a class or a small business you know: one goal metric, three drivers with a formula, two guardrails and an owner for each. Then, with the practice data, split October's paid revenue and active customers by channel (join orders to customers). Check: search 3 customers and 175.0, social 3 customers and 80.0, email 1 customer and 30.0. Write one sentence on why counting customers and counting revenue tell different stories here.
ClaudeStuck? Copy a ready-made prompt for Claude
Copy this, open Claude, paste it, and Claude will walk you through the lesson step by step.
For a grown-up: Claude is for adults (18+). Copy this, paste it into Claude, and use the answer to explain the lesson to your child.
I'm learning "Analytics Lead: strategy, ethics and mentoring" on The Future Market. Lesson 1: "Before you start, and a metrics framework: goal, drivers and guardrails". What the lesson teaches: - A metrics framework is a small, agreed set of metrics in three layers: - Layer - What it is - Example for an online shop - Goal metric - The one number that shows the team is creating value - Paid revenue per month - Driver metrics - Numbers the team can act on that move the goal - Active customers, orders per active customer, average order value - Guardrail metrics - Numbers that must not get worse while you chase the goal - Refund rate, complaints, delivery time - Lagging metrics (revenue) show results late. Leading metrics (active customers this week) move earlier and help you act sooner. - A metric tree links the goal to its drivers with a formula. Here: revenue = active customers x orders per active customer x average order value. Each team can own one branch. The exercise I'm working on: Build a metrics framework for a club, a class or a small business you know: one goal metric, three drivers with a formula, two guardrails and an owner for each. Then, with the practice data, split October's paid revenue and active customers by channel (join orders to customers). Check: search 3 customers and 175.0, social 3 customers and 80.0, email 1 customer and 30.0. Write one sentence on why counting customers and counting revenue tell different stories here. I'm stuck. Please: 1. Explain the main idea in plain, simple words with one everyday example. 2. Walk me through the exercise one small step at a time. Ask me what I've done so far before giving the next step. 3. Don't just give me the final answer. Help me do it myself, and check my work when I share it.
I'm a parent helping my child (about 8 years old) with a lesson called "Before you start, and a metrics framework: goal, drivers and guardrails" from the course "Analytics Lead: strategy, ethics and mentoring". Here's what the lesson says: A football team wants to win (the goal). To win, it must score goals and stop the other team scoring (the drivers). But it must not win by fouling everyone, or it loses players to red cards (the guardrail). A metrics framework writes those three things down for a business. The activity: Build a metrics framework for a club, a class or a small business you know: one goal metric, three drivers with a formula, two guardrails and an owner for each. Then, with the practice data, split October's paid revenue and active customers by channel (join orders to customers). Check: search 3 customers and 175.0, social 3 customers and 80.0, email 1 customer and 30.0. Write one sentence on why counting customers and counting revenue tell different stories here. Please explain this so an 8-year-old understands: short sentences, a fun everyday example, and no hard words. Then give me 3 simple questions I can ask my child to check they understood, and a way to do the activity together, one tiny step at a time.
Sources
- SQLite, core functions (substr, round): www.sqlite.org/lang_corefunc.html
One source of truth: definitions, versions and certified dashboards
This lesson is part of full access: every course and every level for one payment.
Reviewing analyses for bias
This lesson is part of full access: every course and every level for one payment.
Fairness checks for models and automated decisions
This lesson is part of full access: every course and every level for one payment.
Privacy review: minimise, aggregate and test for re-identification
This lesson is part of full access: every course and every level for one payment.
Running reviews: a checklist, evidence and kind comments
This lesson is part of full access: every course and every level for one payment.
Mentoring junior analysts (capstone lesson)
This lesson is part of full access: every course and every level for one payment.
Final project
This lesson is part of full access: every course and every level for one payment.
Quiz
What are the three layers of a metrics framework?
A goal metric, driver metrics that move it, and guardrail metrics that must not get worse.
How do you check that a metric tree is consistent?
Multiply (or combine) the drivers with the formula and confirm you get the goal metric back.
Why can two dashboards show different "active customers" for the same month?
They use two different definitions under the same name.
What should you do when a metric definition changes?
Add a new version with a start date and close the old one, instead of overwriting it.
What is survivorship bias?
Drawing conclusions only from the people or things that "survived" a filter, and forgetting the ones that dropped out.
You test 20 segments with no real effects at the 5% level. About how many false alarms do you expect?
About one (and about a 64% chance of at least one).
What does a low flag-rate ratio between two groups tell you?
That one group is flagged much more often; it is a signal to investigate, not proof of unfairness.
Why is removing a sensitive column not enough to remove bias?
Other columns can act as proxies for it.
What does a k-anonymity check look for?
Combinations of quasi-identifiers shared by fewer than k people.
What is the subtraction trap in small-cell suppression?
A hidden value can be worked out from the total and the other groups, so you must hide another cell or the total.
Why can
BETWEEN '2026-10-01' AND '2026-10-31'miss orders?Values with a time on 31 October are greater than '2026-10-31' as text; use "less than the next day".
What are the parts of SBI feedback?
Situation, Behaviour and Impact; SBII adds asking about Intent.
Final exam
This lesson is part of full access: every course and every level for one payment.
Certificate
This lesson is part of full access: every course and every level for one payment.