Interactive, standards-based KPI definition template that captures name, owner, decision context, calculation logic, data lineage, monitoring rules, validation history, RACI, and example values. Designed to be saved as structured JSON and reused across dashboards, audits, and accountability workflows.
{
"Title": "KPI Definition & Ownership Template (Interactive)",
"IntroductionHtml": "
Use this template to make KPIs unambiguous, dependable, and actionable. Capture the business question the metric answers, explicit calculation logic, data sources and ownership, monitoring rules and alerts, validation history, and the decisions the KPI should trigger. The interactive form saves a structured KPIDefinition record that teams can reuse in dashboards, audits, and automated alerts.
Completed example (illustrative)
KPI: Monthly Active Users (MAU)
Business question: How many distinct users engage with the product each calendar month?
Owner: Growth Product Manager
Calculation (numerator/denominator): Numerator = count(distinct user_id where event in ('open_app','login') and event_date between month_start and month_end). No denominator. SQL example: SELECT COUNT(DISTINCT user_id) FROM events WHERE event_type IN ('open_app','login') AND event_date >= '2023-07-01' AND event_date < '2023-08-01';
Target / tolerance: Target: 120,000 MAU; tolerance: ±5%
Linked decision: If MAU falls >10% below target for two months, trigger retention experiment and review by Growth huddle.
",
"SubmitLabel": "Save KPI Definition",
"SuccessMessage": "KPI definition saved. You can edit this entry later or export the JSON for documentation and dashboards.",
"DataType": "KPIDefinition",
"SchemaVersion": "1.0",
"Fields": [
{"Key": "kpi_name", "Label": "KPI name", "FieldType": "text", "Required": true, "HelpText": "Short, specific name (for example: Monthly Active Users)"},
{"Key": "short_description", "Label": "Short description", "FieldType": "textarea", "Required": true, "HelpText": "One or two sentences explaining what the KPI measures and why it matters"},
{"Key": "business_question", "Label": "Business question it answers", "FieldType": "textarea", "Required": true, "HelpText": "The concrete question stakeholders should be able to answer using this KPI"},
{"Key": "owner_name", "Label": "Owner (person)", "FieldType": "text", "Required": true, "HelpText": "Primary accountable individual"},
{"Key": "owner_role", "Label": "Owner (role/team)", "FieldType": "text", "HelpText": "Role or team accountable for the KPI"},
{"Key": "responsible", "Label": "Responsible (RACI)", "FieldType": "text", "HelpText": "Who performs the measurement or maintenance tasks"},
{"Key": "accountable", "Label": "Accountable (RACI)", "FieldType": "text", "HelpText": "Who is ultimately accountable"},
{"Key": "consulted", "Label": "Consulted (RACI)", "FieldType": "text", "HelpText": "Who should be consulted when changes are proposed"},
{"Key": "informed", "Label": "Informed (RACI)", "FieldType": "text", "HelpText": "Who should be informed about KPI changes and breaches"},
{"Key": "measurement_frequency", "Label": "Cadence / frequency", "FieldType": "select", "Required": true, "HelpText": "How often the KPI is computed and reviewed", "Options": [
{"Value": "daily", "Label": "Daily"},
{"Value": "weekly", "Label": "Weekly"},
{"Value": "monthly", "Label": "Monthly"},
{"Value": "quarterly", "Label": "Quarterly"},
{"Value": "annually", "Label": "Annually"},
{"Value": "ad_hoc", "Label": "Ad hoc / on demand"}
]},
{"Key": "numerator", "Label": "Numerator (explicit) ", "FieldType": "textarea", "HelpText": "Exact definition of numerator (include filters, date boundaries, dedup rules)"},
{"Key": "denominator", "Label": "Denominator (explicit)", "FieldType": "textarea", "HelpText": "If applicable, exact definition of denominator"},
{"Key": "unit", "Label": "Unit / dimension", "FieldType": "text", "HelpText": "Units (e.g., users, sessions, $)"},
{"Key": "calculation_formula", "Label": "Calculation formula or SQL", "FieldType": "textarea", "Required": true, "HelpText": "Provide SQL or a clear formula, including any aggregations and time-window logic"},
{"Key": "data_sources", "Label": "Data sources (systems & tables)", "FieldType": "textarea", "Required": true, "HelpText": "List systems, tables, file names, event streams and owners"},
{"Key": "data_owner", "Label": "Data owner / steward", "FieldType": "text", "HelpText": "Person or team responsible for the underlying data"},
{"Key": "calculation_sql", "Label": "Calculation SQL (optional)", "FieldType": "textarea", "HelpText": "Paste production SQL or ETL logic here if available"},
{"Key": "target_value", "Label": "Target", "FieldType": "text", "HelpText": "Numeric or qualitative target (e.g., 120,000 MAU or Improve NPS by 3 pts)"},
{"Key": "tolerance_band", "Label": "Tolerance band", "FieldType": "text", "HelpText": "Acceptable variance around target (e.g., ±5%)"},
{"Key": "criticality", "Label": "Criticality", "FieldType": "select", "Options": [
{"Value": "high", "Label": "High"},
{"Value": "medium", "Label": "Medium"},
{"Value": "low", "Label": "Low"}
], "HelpText": "How important is this KPI to core operations or strategic goals?"},
{"Key": "leading_indicators", "Label": "Leading indicators / upstream measures", "FieldType": "textarea", "HelpText": "Signals that typically move before this KPI"},
{"Key": "linked_decisions_actions", "Label": "Linked decisions / actions", "FieldType": "textarea", "Required": true, "HelpText": "What decisions should be made or actions taken when the KPI changes or breaches thresholds"},
{"Key": "monitoring_alert_rules", "Label": "Monitoring and alert rules", "FieldType": "textarea", "HelpText": "Explicit conditions for alerts (e.g., 10% drop vs target for 2 consecutive periods)"},
{"Key": "alert_channels", "Label": "Alert channels", "FieldType": "checkbox", "HelpText": "Where should alerts be sent?", "Options": [
{"Value": "email", "Label": "Email"},
{"Value": "slack", "Label": "Slack"},
{"Value": "dashboard", "Label": "Dashboard"},
{"Value": "pagerduty", "Label": "PagerDuty / on-call"},
{"Value": "other", "Label": "Other (describe in monitoring rules)"}
]},
{"Key": "data_quality_checks", "Label": "Data quality checks", "FieldType": "textarea", "HelpText": "Describe validation rules (row counts, null rate thresholds, freshness checks)"},
{"Key": "last_validation_date", "Label": "Last validation date (YYYY-MM-DD)", "FieldType": "text", "HelpText": "Last date when calculation and sources were validated"},
{"Key": "validation_notes", "Label": "Validation notes", "FieldType": "textarea", "HelpText": "Who validated, what was checked, known issues"},
{"Key": "dependencies", "Label": "Dependencies & upstream transformations", "FieldType": "textarea", "HelpText": "ETL jobs, event producers, or other KPIs this one depends on"},
{"Key": "dashboard_present", "Label": "Is this KPI currently on a dashboard?", "FieldType": "yesno", "HelpText": "Helps connect changes to visualization owners"},
{"Key": "dashboard_links", "Label": "Dashboard links / locations", "FieldType": "textarea", "HelpText": "URLs or locations of dashboards showing this KPI"},
{"Key": "documentation_link", "Label": "Documentation link", "FieldType": "text", "HelpText": "Link to runbook, Confluence page or data dictionary"},
{"Key": "version", "Label": "Template version", "FieldType": "text", "HelpText": "Increment when calculation or ownership changes"},
{"Key": "change_log", "Label": "Change log", "FieldType": "textarea", "HelpText": "Record of revisions: date, author, reason"}
]
}