Design executive KPI dashboards by aligning each metric to a decision lever, embedding actionable thresholds, and using a data model that enforces provenance.
Step‑by‑step implementation
1. Define decision levers – List the top 3‑5 strategic questions (e.g., “Should we increase marketing spend this quarter?”).
2. Map raw facts to levers – For each lever, identify 1‑2 leading indicators and 1 lagging KPI. Use Snowflake tables sales.fact_orders and marketing.fact_campaigns.
3. Build a semantic model – In Power BI or Looker, create a model with measures that include a target and direction column. Example DAX:
RevenueGrowthPct = DIVIDE(SUM('sales'[Revenue]), CALCULATE(SUM('sales'[Revenue]), SAMEPERIODLASTYEAR('sales'[Date]))) - 14. Set actionable thresholds – Encode thresholds as numeric fields (target, tolerance_up, tolerance_down). Use conditional formatting rules: green if ≥ target, amber if between target‑10% and target, red otherwise.
5. Automate alerts – Deploy a Python Airflow DAG that runs nightly, evaluates thresholds, and posts to Slack via the slack_sdk API:
from airflow import DAG
from airflow.operators.python import PythonOperator
from slack_sdk import WebClient
import os
def check_kpis():
# fetch KPI values from Snowflake
# compare to thresholds
# send message if out of range
client = WebClient(token=os.getenv("SLACK_BOT_TOKEN"))
client.chat_postMessage(channel="#exec‑alerts", text=msg)
dag = DAG('kpi_alerts', schedule_interval='@daily')
PythonOperator(task_id='check', python_callable=check_kpis, dag=dag)6. Validate with decision owners – Conduct a 30‑minute walkthrough, record any “action taken” evidence, and iterate thresholds quarterly.
Quick comparison
| Feature | Power BI (Embedded) | Looker | Tableau |
|---------|--------------------|--------|---------|
| Built‑in threshold UI | ✅ (Conditional formatting) | ✅ (Table calculations) | ❌ (requires calculated field) |
| Native Slack alert | via Power Automate | via Looker Actions | via Tableau Extensions |
| Data lineage view | ✅ (Impact analysis) | ✅ (Explore) | ❌ (limited) |
Checklist before publishing
- [ ] Every KPI linked to a decision lever.
- [ ] Target, tolerance_up, tolerance_down stored in the model.
- [ ] Conditional formatting reflects the three‑color rule.
- [ ] Alert DAG scheduled and tested.
- [ ] Executive sign‑off on thresholds.