-
Notifications
You must be signed in to change notification settings - Fork 1
KPI Catalogue
The canonical KPIs the LP and forecast operate on. Every canonical KPI is a count. The uniform-units refactor folded the historical rate KPIs (Engagement Rate / View Rate / CTR) into summed count components so all four KPIs on a platform share the same unit and the LP doesn't mix percentages and totals.
| Platform | Awareness | Engagement | Traffic | Lead Gen |
|---|---|---|---|---|
| Reach | reactions + comments + shares + saves + follows | Link clicks | Leads + Purchases | |
| Reach | likes + comments + shares + saves + follows | Link clicks | Leads + Purchases | |
| Impressions | reactions + comments + shares + followers | Clicks | Leads | |
| YouTube | Views | likes + comments + shares + subscribers | Clicks | Conversions + Purchases |
| Google Search | Impressions | (none) | Clicks | Conversions + Purchases |
| Google Display | Impressions | (none) | Clicks | Conversions + Purchases |
| Google PMax | Impressions | (none) | Clicks | Conversions + Purchases |
| TikTok | Video Views | likes + comments + shares + saves + followers | Clicks | Leads + Purchases |
| Impressions | Saves | Outbound clicks | Leads + Checkouts | |
| X (Twitter) | Impressions | likes + replies + reposts + bookmarks + followers | Link clicks | Leads |
| Snapchat | Reach | story opens + shares + subscribers | Swipe-ups | Leads + Purchases |
| Impressions | upvotes + comments + shares + followers | Clicks | Leads |
Google surfaces report CTR (a rate, violating uniform units within a platform) and "engaged clicks" (which would duplicate the Traffic KPI). Rather than fudge a composition that double-counts, Google platforms are omitted from Engagement. Honesty over completeness.
Link clicks belong to the Traffic objective. Counting them in engagement too would inflate engagement productivity and skew the LP toward platforms that report both.
Users can define custom platforms with their own KPI config. The
schema lives in core/kpi_config.py — each KPI row is:
{
"platform": "myco_app",
"goal": "lg",
"var": "myco_app_lg_signups",
"label": "Signups",
"kind": "count",
"components": ["signups"],
"operator": "sum",
}The wizard renders custom platforms alongside the built-ins.