TL;DR
SAP ships Embedded Analytics with five pre-built stories covering the most common IM reporting needs: Quota Attainment Summary, Pipeline Run Audit Log, Incentive Earnings Distribution, Plan Assignment Coverage, and Participant Hierarchy View.
Quota Attainment is the most used—shows attainment % by participant/plan/period, typically with bar charts, KPI tiles, and a detail table. It is the first stop for sales leadership and operations teams.
Pre-built stories can be customised (add filters, change chart types, add columns) without modifying the original. Always create a copy of an SAP-delivered story before editing. SAP may overwrite originals during upgrades.

Out of the box, SAP SuccessFactors IM comes with a set of pre-built Embedded Analytics stories. These stories cover the most common reporting scenarios: monitoring quota attainment, validating calculation runs, checking plan coverage, and understanding the distribution of incentive earnings. For many organizations, the pre-built content is sufficient for 80% of reporting needs. Understanding what is available, how each story works, and how to customise them is a practical first step before building custom reports.

The Five Standard Embedded Analytics Stories

Story NamePrimary PurposeKey UsersMain FiltersData Source
Quota Attainment SummaryShow participant quota attainment %, highlight above/below target, track attainment by period and planSales leadership, sales ops, compensation analystsPeriod, Plan, Region, Territory, Manager, StatusCSC_RESULTS + CSC_PARTICIPANT + CSC_QUOTA
Pipeline Run Audit LogMonitor recent calculation runs—status, duration, error messages. Operational health check.IM admins, ops team, supportDate range, Pipeline ID, Status (COMPLETED/FAILED)CSC_PIPELINE_RUN (HANA system table)
Incentive Earnings DistributionHistogram of incentive amounts across participant population. Validate calculation results.Compensation analysts, finance, auditPeriod, Plan, Earning bands (auto-binned)CSC_RESULTS
Plan Assignment CoverageWhich participants have active plan assignments vs. which don't. Pre-period validation.Compensation analysts, payroll, HRPeriod, Plan, Assignment status (Active/Inactive)CSC_PLAN_PARTICIPANT + CSC_PARTICIPANT
Participant Hierarchy ViewOrg structure and manager-participant relationships. Validation of master data.Compensation analysts, HR, sales opsManager, Period (to show current assignments)CSC_PARTICIPANT (hierarchical query)

Story 1: Quota Attainment Summary

This is the most frequently accessed Embedded Analytics story. It answers the question sales leadership asks first: "How many of our reps hit quota?"

What It Shows

The story typically has multiple visualizations on the same page or spread across pages:

  • KPI Summary tiles at the top: Total participants, % above target (green), % on track (yellow), % below target (red). These tiles give a at-a-glance sense of the population distribution.
  • Attainment bar chart: Participants grouped by attainment band (ABOVE TARGET / ON TRACK / BELOW TARGET) or a histogram showing distribution of attainment percentages. Users can filter by period, plan, or region and see the chart update.
  • Detail table: Participant name, manager, plan, quota, result, attainment %, attainment band. Sortable, filterable. Users can export to Excel for follow-up conversations.

Filters and Usage

Interactive filters allow users to slice the data:

  • Period — compare different fiscal periods side-by-side or drill into a single period.
  • Plan — if the org has multiple compensation plans (e.g., AE plan, sales engineer plan, renewal plan), filter to one plan to see performance by plan type.
  • Region / Territory — if the org structure is hierarchical (EMEA, APAC, etc.), filter to see regional performance.
  • Manager — team leader wants to see only their direct reports' attainment.
  • Status — filter to APPROVED calculations, exclude DRAFT or REVERTED runs.

Underlying Query

The story queries the "Quota Attainment" Calculation View, which sits on top of this simplified logic:

Quota Attainment underlying query structure
-- Simplified logic for Quota Attainment story
SELECT
  p.PARTICIPANT_ID,
  p.NAME                                  AS PARTICIPANT,
  mgr.NAME                                AS MANAGER,
  cp.PLAN_NAME,
  pd.PERIOD_NAME,
  COALESCE(q.QUOTA_AMOUNT, 0)          AS QUOTA,
  COALESCE(r.RESULT_AMOUNT, 0)        AS RESULT,
  COALESCE(r.INCENTIVE_AMOUNT, 0)   AS INCENTIVE,
  CASE
    WHEN COALESCE(q.QUOTA_AMOUNT, 0) = 0
    THEN NULL
    ELSE ROUND(r.RESULT_AMOUNT / q.QUOTA_AMOUNT * 100, 1)
  END                                    AS ATTAINMENT_PCT,
  CASE
    WHEN r.RESULT_AMOUNT >= q.QUOTA_AMOUNT * 1.2
    THEN 'ABOVE TARGET'
    WHEN r.RESULT_AMOUNT >= q.QUOTA_AMOUNT * 0.8
    THEN 'ON TRACK'
    ELSE 'BELOW TARGET'
  END                                    AS ATTAINMENT_BAND
FROM      CSC_RESULTS          r
JOIN      CSC_PARTICIPANT      p ON p.ID = r.PARTICIPANT_ID
LEFT JOIN CSC_PARTICIPANT      mgr ON mgr.ID = p.MANAGER_ID
JOIN      CSC_COMP_PLAN        cp ON cp.ID = r.PLAN_ID
JOIN      CSC_PERIOD           pd ON pd.ID = r.PERIOD_ID
LEFT JOIN CSC_QUOTA            q ON  q.PARTICIPANT_ID = r.PARTICIPANT_ID
                                             AND q.PERIOD_ID = r.PERIOD_ID
                                             AND q.PLAN_ID = r.PLAN_ID
WHERE     r.STATUS IN ('APPROVED', 'PROCESSED');

The Calculation View handles this join and aggregation. Embedded Analytics then queries it with filters applied.

Story 2: Pipeline Run Audit Log

This story is used by the operations and administration team—not sales leadership. It is an operational monitoring dashboard.

What It Shows

A table (and sometimes a timeline chart) showing recent pipeline runs:

  • Pipeline Run ID — a unique identifier for the calculation run.
  • Period — which fiscal period was calculated.
  • Status — COMPLETED, FAILED, IN PROGRESS, CANCELLED.
  • Start Time, End Time, Duration — when the run started, ended, and how long it took (minutes or seconds).
  • Rows Processed — how many participant/plan records were calculated.
  • Error Message — if status is FAILED, the error details that caused the failure.

Usage

Every morning, the IM admin checks this story to confirm that the nightly calculation run completed successfully. If the status is FAILED or if the duration is unexpectedly long, the admin investigates (perhaps data quality issues, configuration changes, or system load).

Underlying Query

Pipeline Run Audit Log query
-- Pipeline run monitoring query
SELECT
  r.ID                                    AS RUN_ID,
  r.PIPELINE_ID,
  pd.PERIOD_NAME,
  r.STATUS,
  r.START_TIME,
  r.END_TIME,
  SECONDS_BETWEEN(
    r.START_TIME,
    COALESCE(r.END_TIME, CURRENT_TIMESTAMP))  AS DURATION_SEC,
  r.ROWS_PROCESSED,
  r.ERROR_MESSAGE,
  r.CREATED_AT
FROM   CSC_PIPELINE_RUN r
LEFT JOIN CSC_PERIOD pd ON pd.ID = r.PERIOD_ID
WHERE  r.START_TIME >= ADD_DAYS(CURRENT_DATE, -30)
ORDER BY r.START_TIME DESC;

Story 3: Incentive Earnings Distribution

This story is used during results validation—before final approval, the comp analyst checks that the distribution of incentive earnings looks correct.

What It Shows

A histogram or bar chart showing how many participants fall into each earnings band:

  • Earnings bands — typically auto-binned: $0–10K, $10K–25K, $25K–50K, $50K–100K, $100K+.
  • Count of participants — how many people earned in each band.

A normal distribution (bell curve) is expected—some people earn very little (below quota), most earn in the middle (on quota), some earn a lot (above quota). If the distribution is bimodal (two peaks) or highly skewed, it is a signal that something is wrong with the calculations (e.g., two separate groups with very different quota structures, or a data quality issue).

Underlying Query

Earnings Distribution query
-- Earnings distribution: count of participants by earning band
SELECT
  CASE
    WHEN r.INCENTIVE_AMOUNT 0 THEN '$0 - $10K'
    WHEN r.INCENTIVE_AMOUNT 10000 THEN '$10K - $25K'
    WHEN r.INCENTIVE_AMOUNT 25000 THEN '$25K - $50K'
    WHEN r.INCENTIVE_AMOUNT 50000 THEN '$50K - $100K'
    ELSE '$100K+'
  END                                    AS EARNING_BAND,
  COUNT(*)                           AS PARTICIPANT_COUNT,
  ROUND(AVG(r.INCENTIVE_AMOUNT), 2)  AS AVG_EARNING,
  ROUND(MAX(r.INCENTIVE_AMOUNT), 2)  AS MAX_EARNING
FROM   CSC_RESULTS r
WHERE  r.PERIOD_ID = :period_id
  AND r.STATUS = 'APPROVED'
GROUP BY EARNING_BAND
ORDER BY EARNING_BAND;

Story 4: Plan Assignment Coverage

This is a critical pre-period validation report. It answers: "Do all active participants have an assignment to at least one compensation plan?"

What It Shows

Two categories:

  • Assigned — participants who have an active plan assignment for the current or upcoming period.
  • Unassigned — active participants with no plan assignment.

Any participant in the "Unassigned" category will receive zero incentive when the period is calculated. This is critical to surface before the calculation run, not after.

Underlying Query

Plan Assignment Coverage query
-- Coverage gap: participants without plan assignments
SELECT
  p.PARTICIPANT_ID,
  p.NAME,
  p.STATUS,
  CASE
    WHEN pp.PARTICIPANT_ID IS NOT NULL
    THEN 'ASSIGNED'
    ELSE 'UNASSIGNED'
  END                                    AS ASSIGNMENT_STATUS,
  GROUP_CONCAT(DISTINCT cp.PLAN_NAME)  AS PLANS
FROM      CSC_PARTICIPANT p
LEFT JOIN CSC_PLAN_PARTICIPANT pp
  ON pp.PARTICIPANT_ID = p.ID
  AND pp.PERIOD_ID = :period_id
  AND pp.STATUS = 'ACTIVE'
LEFT JOIN CSC_COMP_PLAN cp
  ON cp.ID = pp.PLAN_ID
WHERE p.STATUS = 'ACTIVE'
GROUP BY p.PARTICIPANT_ID, p.NAME, p.STATUS
HAVING COUNT(pp.PARTICIPANT_ID) = 0
ORDER BY p.NAME;

Story 5: Participant Hierarchy View

This story visualizes the organizational structure—who reports to whom. It is used for validation of master data and to ensure the hierarchy is correct before a calculation run.

What It Shows

A tree or tabular view of managers and their direct reports, possibly multi-level (manager → team lead → rep). Each row shows:

  • Manager name and ID
  • Direct report name and ID
  • Plan assignment (which plan the rep is on)
  • Effective dates (when the assignment is active)

Underlying Query

Participant Hierarchy query
-- Org hierarchy: manager-participant relationships
SELECT
  mgr.ID                                  AS MANAGER_ID,
  mgr.NAME                                AS MANAGER_NAME,
  p.ID                                    AS PARTICIPANT_ID,
  p.NAME                                  AS PARTICIPANT_NAME,
  cp.PLAN_NAME,
  pp.EFFECTIVE_START_DATE,
  pp.EFFECTIVE_END_DATE
FROM      CSC_PARTICIPANT p
LEFT JOIN CSC_PARTICIPANT mgr
  ON mgr.ID = p.MANAGER_ID
LEFT JOIN CSC_PLAN_PARTICIPANT pp
  ON pp.PARTICIPANT_ID = p.ID
LEFT JOIN CSC_COMP_PLAN cp
  ON cp.ID = pp.PLAN_ID
WHERE p.STATUS = 'ACTIVE'
ORDER BY mgr.NAME, p.NAME;

Customising Pre-Built Stories

The pre-built stories cover most needs, but you can customise them. SAC provides a no-code story builder—you can:

  • Add filters — new filter buttons for dimensions not in the original (e.g., add a "Cost Centre" filter if it is not already present).
  • Change chart types — swap a bar chart for a line chart, a table for a map (if geography data is present).
  • Add columns to a table — if the underlying Calculation View has additional fields, drag them into the table.
  • Modify visualisation labels and formatting — change titles, number formats, colours.
⚠️Do not modify SAP-delivered stories directly. Always create a copy first. SAP may update or overwrite the original stories during product upgrades, and your changes would be lost. To customise: (1) Open the pre-built story, (2) Click "Save As" or "Create a Copy", (3) Give it a new name (e.g., "Quota Attainment — EMEA Only"), (4) Edit the copy. The original stays untouched, and your version is yours to keep and modify.

When Pre-Built Content Is Not Enough

In some organizations, the five standard stories do not cover all reporting needs. Common custom reporting scenarios include:

  • Cross-plan comparison — compare a rep's attainment across multiple plans (if they are on more than one plan).
  • Multi-period trending — show how a team's attainment has changed over the last four quarters.
  • Territory performance vs market data — combine IM data with external market benchmarks (requires SAP Datasphere).
  • Exception reporting — highlight reps whose attainment dropped significantly month-over-month.
  • Participant self-service — give reps a personal dashboard showing their own quota attainment and earnings (with row-level security).

For these scenarios, you build a custom story. If the pre-built Calculation Views have all the fields you need, you can build the story in SAC without coding. If you need new fields or different data logic, you create a custom Calculation View in HANA (Lesson 04 covers writing the SQL queries).

Key Takeaways

  • SAP ships five pre-built Embedded Analytics stories that cover 80% of IM reporting needs.
  • Quota Attainment is the most used—it is the first report sales leadership and operations teams access.
  • Pipeline Run Audit is for operational monitoring; Earnings Distribution for results validation; Plan Coverage for pre-period checks; Hierarchy for master data validation.
  • Always customise by copying, not by editing originals. SAP may overwrite originals during upgrades.
  • Customisation is possible without coding—add filters, change chart types, add columns, modify labels.
  • For custom reporting beyond the pre-built content, you either build new stories on existing Calculation Views (no code) or create custom Calculation Views in HANA (requires SQL).