SfSkills Domains Docs GitHub

Home / admin / analytics-kpi-definition

analytics-kpi-definition

Use this skill to define, document, and validate KPI metrics for CRM Analytics — covering metric formula design, dimension selection, target-dataset modeling, benchmark setting, and the KPI register that must exist before any dashboard or lens is built.

Open the skill folder on GitHub


Analytics KPI Definition

This skill activates when a practitioner needs to define, document, and validate KPIs for CRM Analytics before any lens or dashboard is built. It produces a KPI register — the canonical artifact that specifies metric formulas, dimension groupings, target attainment models, and benchmark values — that the dashboard builder uses as the single source of truth.


Before Starting

Gather this context before working on anything in this domain:


Questions to Ask Before Configuring

Each question traces to a gotcha in references/gotchas.md.

QuestionWhy it mattersWhat a good answer addsWhat proper configuration adds over just doing it
"What exactly counts, what is excluded, and is it a row count or a distinct count?"A count on a dimension is a unique count, and dimensions cannot be summed (Gotcha 2)Inclusion and exclusion rules and an explicit count() or unique()Every dashboard computes the same number for the same KPI
"Which groups must appear even with no activity: territories with no wins, reps with no deals?"An inner cogroup drops unmatched groups (Gotcha 4)The population stream and a left outer join with coalesce()Zero results show as zero instead of disappearing
"At what grain are targets set, who maintains them, and in what key format?"Targets join by exact, case-sensitive keys (Gotchas 1, 3)A targets dataset schema, an owner, and the key formatAttainment never goes blank because of a spelling difference
"Does a blank value mean zero or unknown for each measure?"Null measure handling decides how blanks aggregate (Gotcha 5)A null rule per measure and an explicit population filterAverages are not dragged down by records that should not count
"Which currency and which fiscal calendar does each KPI use?"No currency conversion, and custom fiscal years must be imported (Gotcha 6)A currency rule, a converted field, and the fiscal settingFiscal-quarter KPIs agree with Salesforce reports
"How far back must the KPI trend, and is that history in the source data?"Snapshot trending has row and dataset caps (Gotcha 7)A history source per KPI and a snapshot volume estimateMulti-year trends are promised only where the platform can hold them

What proper configuration adds over "just building the lens": a signed register whose formulas say how to count, which groups to keep, how blanks behave, and which currency and calendar apply, so every dashboard built from it agrees.

Core Concepts

Measures vs Dimensions

CRM Analytics datasets have two field types that affect KPI modeling:

A KPI formula must correctly identify which fields are measures (to aggregate) and which are dimensions (to group by). Using a dimension in a SUM() function produces a SAQL error.

KPI Target Attainment Pattern

CRM Analytics does not support inline target values in a dataset. The canonical pattern:

  1. Create a separate targets dataset with columns matching the KPI's dimension groupings (e.g., Owner, Region, Quarter) plus a Target value measure
  2. Join the targets dataset to the actuals dataset at query time using a SAQL left outer cogroup from the targets side (or a recipe join), with coalesce() for groups that have no actuals
  3. Compute attainment as actual / target * 100

Target datasets must be updated on the same cadence as the reporting period (quarterly targets loaded quarterly). The join key between actuals and targets must be an exact string match — case differences cause nulls.

Leakage and Proxy Field Risk

Einstein Discovery and CRM Analytics KPI definitions share a common pitfall: using fields that are causally downstream of the outcome (leakage) or fields that are proxies for the outcome (e.g., using Opportunity Close Date in a win-rate formula when Close Date is only populated on Closed Won/Lost records):


Common Patterns

Pattern: KPI Register

When to use: Before any CRM Analytics lens or dashboard is built — for every KPI stakeholders need.

How it works:

  1. For each KPI: document the metric name, plain-English definition, aggregation formula (SUM/AVG/COUNT/RATIO), dimension(s) to group by, and the dataset + field path
  2. Document target model: fixed value, external targets dataset join, or formula-derived
  3. Document benchmark: industry benchmark, historical baseline, or threshold
  4. Validate: confirm the formula fields are measures in the dataset (not dimensions)

Why not the alternative: Building lenses without a KPI register leads to multiple interpretations of the same metric, inconsistent calculation across dashboards, and rework when stakeholders reject the formula.

Pattern: Target Dataset Schema Design

When to use: When any KPI requires attainment tracking (actual vs target).

How it works:

  1. Define the granularity of targets: by Owner, by Region, by Quarter, or some combination
  2. Create a targets dataset schema with columns: all grouping dimensions + Target_Amount (or equivalent measure)
  3. Define the load schedule: targets are uploaded via CSV or External Data API on the same cadence as reporting periods
  4. Document the SAQL join key: the exact field name and format used to join actuals to targets

Decision Guidance

SituationRecommended ApproachReason
KPI is a simple sum or count from one datasetSAQL measure aggregation in lensStraightforward — no target dataset needed unless attainment tracking required
KPI requires target vs actual comparisonSeparate targets dataset + SAQL cogroupCRM Analytics cannot store targets inline in actuals dataset
KPI grouping field is a string (Region, Owner name)Use as dimension in GROUP BYString fields are dimensions and cannot be aggregated
Stakeholders use different formulas for the same metricKPI register with signed-off definition before buildLocking the formula before build prevents mid-project disputes
KPI involves multiple datasets (e.g., Opp + Account data)Recipe join before dataset publishJoin in recipe so the output dataset has all needed fields before KPI formula is applied

Step-by-step instructions for an AI agent or practitioner working on this task:

  1. Collect all KPIs stakeholders mention — even informally named ones. Document every metric and the person requesting it.
  2. For each KPI: write a plain-English definition that specifies what counts (included criteria), what excludes (excluded criteria), the time period, and the granularity.
  3. Map each KPI to CRM Analytics dataset fields: identify which field is the measure to aggregate, which fields are dimensions for grouping, and confirm field types in the dataset configuration.
  4. Identify KPIs that require target attainment: for these, design the targets dataset schema — dimension columns matching the KPI grouping, Target measure column, join key to actuals.
  5. Document SAQL formula sketch for each KPI: sum(Measure) groupby [DimensionField] with target join pattern if applicable. Use the register format and attainment query in references/examples.md, Example 3.
  6. Get stakeholder sign-off on the KPI register before any lens or dashboard is built — record who approved each formula and target definition.
  7. Hand off the signed KPI register to the dashboard builder as the authoritative specification.

Review Checklist

Run through these before marking work in this area complete:


Salesforce-Specific Gotchas

The full list with sources is in references/gotchas.md. The ones that most often corrupt a KPI:

GotchaConsequence
Case-sensitive join keys (Gotcha 1)Attainment is blank for groups whose key differs only in case
Inner cogroup drops unmatched groups (Gotcha 4)Ratio KPIs lose the groups with zero numerator and look better than they are
Sparse fields and Einstein Discovery (Gotcha 8)The earlier "70% fill rate" rule is UNVERIFIED; record fill rates and check the story's field analysis

Output Artifacts

ArtifactDescription
KPI registerSigned-off table of metric name, plain-English definition, formula, dimensions, target model, and benchmark
Targets dataset schemaColumn definitions for the external targets dataset to support attainment tracking
SAQL formula sketchesPer-KPI SAQL query patterns for developer reference during lens/recipe build

Package files