Data & BI

Verified against ChatGPT · 2026-08-13

Write a KPI definition precise enough that two teams calculate it the same way

Produces a full KPI spec — exact formula, inclusion/exclusion rules, edge cases, and calculation cadence — so the metric doesn't quietly mean something different in two different dashboards.

ChatGPT (GPT-5.1)4 fillable variables

The prompt

Ready to copy — highlighted parts are example details you can swap.

Write a formal KPI definition spec for the metric below, precise enough that two different analysts working independently would compute the identical number from the same raw data.

METRIC NAME AND ROUGH INTENT
"Monthly Active Users" — meant to capture how many customers are actively using the product in a given month

AVAILABLE DATA TO CALCULATE IT FROM
events table with user_id, event_type, event_timestamp, platform; users table with user_id, plan_tier, is_internal_test_account, signup_date

WHERE THIS METRIC WILL BE USED
The board deck's growth section, alongside revenue metrics, compared month over month

COMPETING DEFINITIONS ALREADY IN USE, IF ANY
Product team's internal dashboard counts anyone with any event including passive page-loads; this new spec is meant to require a meaningful action event instead

Write the exact formula as an equation using the actual field names from events table with user_id, event_type, event_timestamp, platform; users table with user_id, plan_tier, is_internal_test_account, signup_date, not a plain-language description of the concept — "active users" is not a definition; "COUNT(DISTINCT user_id) WHERE last_event_date >= CURRENT_DATE - 30" is. State every inclusion and exclusion rule explicitly: does the metric include internal/test accounts, does it include free-tier users if the business also has paid tiers, does it count a user who churned and came back within the window as one user or a new one. Name the calculation cadence and the point-in-time behavior — is this calculated as of end-of-day, is it a trailing window or a calendar-period snapshot, and what happens to a historical value of this metric when it's recalculated later (does day 45's number for "last 30 days" change retroactively as new data arrives, or is it locked once calculated). If Product team's internal dashboard counts anyone with any event including passive page-loads; this new spec is meant to require a meaningful action event instead shows this metric is already calculated differently somewhere else in the business, name the specific discrepancy between the two definitions and state which one this spec is choosing, with the reasoning, rather than adding a third silent variant to the pile. Flag any input field this formula depends on that could itself be unreliable (a last_event_date field that's known to lag by a day for one platform) as a caveat that affects how much to trust the number.

WHAT NOT TO DO
Do not write the definition as a paragraph of prose with the formula implied — the formula must be a literal expression against named fields. Do not silently resolve a conflict with an existing definition without naming that a conflict existed and what was chosen.

OUTPUT FORMAT
1. Metric name and one-sentence business intent.
2. Exact formula, as an expression against named fields.
3. Inclusion/exclusion rules, as a bullet list.
4. Calculation cadence and point-in-time/recalculation behavior.
5. Any conflict with an existing definition, and which one this spec adopts and why.
6. Known reliability caveats on the underlying data.

Customize

Optional — swap in your own details for the highlighted parts above.

Why this works

The single most common way KPI definitions cause organizational confusion isn't a wrong formula, it's an underspecified one that two teams each interpret slightly differently and calculate consistently within their own dashboard but inconsistently against each other's — a model asked to "define this metric" will happily produce fluent prose that sounds precise ("active users are customers who engaged with the product") while leaving every actual edge case (test accounts, churned-and-returned users, timezone of day boundaries) unresolved, which is why this prompt requires the formula to be a literal expression against named fields rather than a description, since prose can be reread two different ways but an actual SQL-shaped expression cannot. Requiring explicit inclusion/exclusion rules for test accounts, tier segmentation, and re-engaged users targets the exact list of decisions that silently vary between two teams' independently-built dashboards of the "same" metric, and none of those decisions have an objectively correct default — they're business choices that need to be made once, explicitly, and then referenced consistently rather than re-decided ad hoc by whoever happens to be writing the next query. The explicit handling of recalculation behavior (does a trailing-30-day metric's historical value shift as new data lands) matters because this is the single most common source of a metric appearing to "change" after the fact with no code change to explain it, confusing anyone who pulled the number on two different days and got two different answers for what they assumed was a fixed historical fact. Requiring an explicit conflict-resolution statement when a competing definition already exists, rather than silently producing a third version, directly prevents KPI proliferation — the well-known organizational failure mode where five teams each have their own "official" definition of the same-named metric and no single spec is treated as authoritative, because no one ever explicitly reconciled the differences when the second definition was written.

What you get back

Formula: COUNT(DISTINCT e.user_id) WHERE e.event_type IN ('core_action_types') AND e.event_timestamp >= DATE_TRUNC('month', CURRENT_DATE) AND u.is_internal_test_account = FALSE, joined events to users on user_id. Inclusion/exclusion: excludes internal test accounts; includes both free and paid tiers unless a tier-specific cut is requested separately; a churned-and-returned user within the same calendar month counts once, not twice. Conflict flagged: product dashboard counts passive page-views as "active"; this spec requires a core action event instead, producing a materially lower number — recommend product dashboard be updated to match this definition rather than maintaining two MAU figures.

Verified against

ChatGPT GPT-5.1 · 2026-08-13

Changelog

  • 2026-08-13 Initial publish, verified against ChatGPT GPT-5.1.

Need this built into your business?

If a prompt isn't enough — what Scult builds, built and maintained for you — that's Scult's day job.

EXPLORE WHAT SCULT BUILDS
All Data & BI prompts

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY