Framing business questions & KPIs

Most failed analytics projects fail at the start, not in the code. A manager says "sales are down, look into it" and the analyst spends a week producing charts nobody uses. The fix is to frame the question and agree on how success will be measured before you open a notebook.

From vague request to sharp question

A good analytical question is specific, measurable, tied to a decision and bounded in time. Compare:

Vague request Sharp question
"Why are sales down?" "Which stores and categories explain the 12% drop in July revenue versus July last year?"
"Are customers happy?" "Did repeat-purchase rate within 60 days change after we raised delivery charges on 1 May?"
"Should we do a Diwali offer?" "Did last year's 15% Diwali discount increase profit, or only shift purchases earlier?"

Always ask the stakeholder one follow-up: "What will you do differently depending on the answer?" If no decision changes, the question is not worth a week of work.

KPIs: metrics that matter

A metric is any number you can compute. A KPI (Key Performance Indicator) is a metric the business has agreed to steer by. Good KPIs are:

  • Clearly defined — "revenue" net of GST and returns, or gross? Write it down.
  • Owned — someone is responsible for moving it.
  • Actionable — a team can influence it.
  • Balanced — pair a growth KPI with a guardrail (orders up, but refund rate must not rise).

Build a KPI tree

Break a top-level goal into drivers you can actually investigate:

Monthly revenue
├── Number of orders
│   ├── Footfall / app sessions
│   └── Conversion rate
└── Average order value (AOV)
    ├── Items per order
    └── Average selling price (after discount)

If revenue falls, the tree tells you where to look first: fewer visitors, lower conversion, or smaller baskets.

Leading vs lagging indicators

Lagging KPIs (monthly profit, churn) tell you what already happened. Leading KPIs (cart additions, trial sign-ups, enquiries) move earlier and give you time to react. A good dashboard shows both.

Write the KPI as a query

A definition is only real once it is code that everyone runs the same way:

-- Average order value per month, excluding cancelled orders
SELECT DATE_FORMAT(order_date, '%Y-%m') AS month,
       COUNT(*)                          AS orders,
       SUM(net_amount)                   AS revenue,
       ROUND(SUM(net_amount) / COUNT(*), 2) AS aov
FROM orders
WHERE status <> 'CANCELLED'
GROUP BY month
ORDER BY month;

Keep a small metric dictionary (name, formula, source table, owner, refresh frequency) in your team wiki so the finance and marketing teams stop arguing over two different "revenue" numbers.

Common mistakes

  • Starting with the data you have instead of the decision you need to support.
  • Vanity metrics such as total app downloads, which rarely drive decisions.
  • Comparing periods unfairly — a 31-day month against a 28-day month, or Diwali week against a normal week.
  • Too many KPIs: if everything is key, nothing is.

Practice

Pick a business you know (a coaching institute, a cloud kitchen, a textile shop in Surat). Write one sharp question, a KPI tree with at least two levels, and a metric-dictionary row for the top KPI, including a guardrail metric.

B

Written by Bablu Kumar Jha

Founder, BeeProton AI · Mumbai, Maharashtra, India