TL;DR
Compensation plans are stored in CSC_COMP_PLAN with effective dating. Plan periods (CSC_PLAN_PERIOD) define the time windows — monthly, quarterly, annual — over which plans operate.
Plan components (rates, quotas, rules, tiers) are the building blocks you configure through the IM UI. Plan hierarchy and inheritance determine which values cascade down to child plans.
Participants are assigned to plans via CSC_PLAN_PARTICIPANT with start/end dates. Always test plans before go-live using the Plan Testing framework.

Plan Administration is Layer 1 of SAP SuccessFactors IM, and it's where your incentive strategy becomes executable. A plan defines the rules of compensation: who gets paid what for doing what. This lesson covers how to think about plans, structure them in SAP SuccessFactors IM, and prepare them for operational use.

What is a Compensation Plan?

A compensation plan is a formal document that specifies how participants earn incentive compensation based on their performance. In SAP SuccessFactors IM, a plan is a persistent object in the database (CSC_COMP_PLAN table) with a name, type, period range, and a set of configuration parameters that drive the calculation engine.

Every plan answers these questions:

  • What performance metric is measured? — Orders, revenue, units sold, customer satisfaction, cost savings, etc.
  • What is the target performance level (quota)? — Per participant, per period. $2M annual revenue, 100 units monthly, etc.
  • How much is earned at target? — The base rate or tier structure. 2% commission on revenue, $500 per unit, $50K bonus at 100% attainment, etc.
  • What happens above and below target? — Accelerators (earn more for over-quota performance), floor minimums (don't earn below 50% attainment), caps (don't pay above 200%), clawbacks (deductions for chargebacks).
  • When does the plan apply? — The period range (e.g., Jan 1–Dec 31, 2026) and effective dates for participants (e.g., new hire starts March 15).

Plan Types in SAP SuccessFactors IM

SAP SuccessFactors IM supports several plan type templates, though custom types are also possible:

Commission Plans

The most common type. Participants earn a percentage or per-unit amount for each transaction. Example: 2% commission on all deals closed. The formula is straightforward: Result × Rate = Incentive. Commission plans scale with transaction volume and are used for direct sellers, channel partners, and account executives.

Example: A sales rep closes $2M in revenue against a $2M quota. With a 2% commission rate, they earn $40K.

Bonus Plans

A fixed bonus amount that scales with attainment. The plan defines a target bonus (e.g., $10K) and a tier structure that maps attainment percentages to payout percentages. Example: At 100% attainment, pay 100% of the bonus ($10K). At 75–100% attainment, pay 50% of the bonus ($5K). Below 75%, no bonus.

Example: A manager has a $30K target bonus. Their team achieves 120% attainment. The bonus tier says "above 100%, pay 100% + 25% accelerator," so they earn $37.5K.

Management by Objectives (MBO) Plans

Bonuses tied to achievement of qualitative goals, not just quantitative metrics. The IM system stores goal definitions and scores; the plan applies tiers based on the overall MBO achievement percentage. These require close integration with SAP SuccessFactors Performance Management for goal tracking.

Special Payment Funds (SPF) Plans

Discretionary bonus pools that are allocated to participants by managers or administrators. Example: A regional manager has a $100K pool to distribute among their team. Rather than a formula, the manager enters each team member's SPF allotment individually. IM tracks these allocations and produces statements.

Plan Periods and Effective Dating

Plans operate in time windows called periods. A period is the interval over which performance is measured and incentives are calculated. Common periods are:

  • Monthly — 12 periods per year, for transaction-intensive businesses (retail, e-commerce)
  • Quarterly — 4 periods per year, common for enterprise sales
  • Annual — 1 period per year, for bonus and MBO plans
  • Custom — Non-standard periods (e.g., "fiscal weeks" if the company uses a 4-4-5 calendar)

A plan period is defined in CSC_PLAN_PERIOD with:

  • PERIOD_ID — Unique identifier (e.g., "2026-Q2", "2026-JULY")
  • PERIOD_NAME — Human-readable label (e.g., "2nd Quarter 2026")
  • START_DATE and END_DATE — The calendar range
  • PLAN_ID — The plan this period belongs to

Effective dating is critical. A plan might have a global EFFECTIVE_START_DATE and EFFECTIVE_END_DATE (e.g., Jan 1, 2026–Dec 31, 2026), but individual participant assignments to the plan have their own effective dates (e.g., a new hire is assigned starting March 15, 2026). The pipeline respects these dates — it will not calculate results for a participant outside their assignment date range.

SAP HANA Database SQL — List active plans and their periods
-- Query active plans with period dates
SELECT
  cp.ID              AS PLAN_ID,
  cp.NAME            AS PLAN_NAME,
  cp.PLAN_TYPE,
  cpp.PERIOD_ID,
  cpp.PERIOD_NAME,
  cpp.START_DATE,
  cpp.END_DATE,
  DATEDIFF(cpp.END_DATE, cpp.START_DATE) AS DAYS_IN_PERIOD,
  COUNT(DISTINCT cpa.PARTICIPANT_ID)
                     AS ASSIGNED_PARTICIPANTS
FROM   CSC_COMP_PLAN cp
JOIN   CSC_PLAN_PERIOD cpp
  ON  cpp.PLAN_ID = cp.ID
LEFT JOIN CSC_PLAN_PARTICIPANT cpa
  ON  cpa.PLAN_ID = cp.ID
  AND cpa.EFFECTIVE_START_DATE <= cpp.END_DATE
  AND cpa.EFFECTIVE_END_DATE >= cpp.START_DATE
WHERE  cp.EFFECTIVE_START_DATE <= CURRENT_DATE
  AND cp.EFFECTIVE_END_DATE >= CURRENT_DATE
GROUP BY cp.ID, cp.NAME, cp.PLAN_TYPE, cpp.PERIOD_ID, cpp.PERIOD_NAME,
         cpp.START_DATE, cpp.END_DATE
ORDER BY cp.NAME, cpp.START_DATE;

Plan Components: The Building Blocks

A plan is composed of smaller, reusable components. These are the pieces you configure to define how money flows:

Quotas

The performance target. Stored in CSC_QUOTA with a participant ID, plan ID, period ID, and quota amount. A sales rep might have multiple quotas: a $2M annual quota split into four $500K quarterly quotas. Quotas are the denominator in attainment calculations.

Rates and Rate Tables

The commission or bonus amount. A simple rate is "2% of revenue." A rate table is more complex: "1% on revenue 0–$500K, 1.5% on revenue $500K–$1M, 2% above $1M." Rate tables model progressive commission structures and are stored in a separate configuration table.

Rules and Tiers

Conditional logic. Example: "If attainment is 0–50%, pay 0%; 50–75%, pay 50% of base; 75–100%, pay 100%; 100%+, pay 100% + 25% accelerator." Tiers are stored in CSC_PLAN_TIER and evaluated by the calculation engine at result generation time.

Measures and Metrics

What is being measured. A measure might be "Q2 Revenue" or "New Customer Acquisitions." Measures are tied to credit transaction types — when a credit comes in labeled with a specific measure, the pipeline routes it to the appropriate plan component for calculation.

Modifiers and Adjustments

Special multipliers or deductions. Example: Regional modifier ("Americas reps earn 1.1x, EMEA reps earn 0.9x due to market differences"), product-line modifier ("high-margin products earn a 1.5x multiplier"), or manager override (a one-time adjustment to a participant's result).

Plan Hierarchy and Inheritance

Plans can have parent-child relationships. A parent plan might define baseline rates and tiers; child plans inherit and override specific components. This is useful for:

  • Regional Variation — A global plan defines the structure; regional child plans override rates and quotas per geography.
  • Product-Line Variation — A base commission plan; product-specific child plans adjust rates for high-margin vs. low-margin products.
  • Role-Based Variation — Different rates for account executives vs. sales development reps on the same base plan.

Inheritance in SAP SuccessFactors IM is explicit: you define which components are inherited (via the INHERITANCE_RULE field) and which are overridden in the child plan. This is more flexible than Callidus's implicit inheritance model.

AspectCallidus CommissionsSAP SuccessFactors IM Plan DefinitionXML configuration, stored as text in databaseUI-driven designer, normalized database structure Plan PeriodsImplicit; periods are driven by credit transaction datesExplicit CSC_PLAN_PERIOD table; must be defined upfront Rate TablesBanded rates in XML; evaluated at calculation timeSeparate CS_RATE_TABLE; joins to plan at calculation Effective DatingVersion management via VERSION fieldStart/end dates on plan and participant assignment Plan HierarchyImplicit; inheritance rules buried in XMLExplicit PARENT_PLAN field; inheritance rules visible in UI TestingManual calculation against test datasetBuilt-in Plan Testing framework with simulation mode

Plan Assignment: Linking Plans to Participants

A plan becomes operational when it's assigned to participants. The CSC_PLAN_PARTICIPANT table records this assignment with effective dates:

  • PLAN_ID — The plan being assigned
  • PARTICIPANT_ID — The person receiving the plan
  • EFFECTIVE_START_DATE — When this assignment begins
  • EFFECTIVE_END_DATE — When this assignment ends
  • QUOTA_AMOUNT (optional) — Participant-specific quota override

A single participant can have multiple plan assignments simultaneously. Example: A salesperson might have a base commission plan + a quarterly SPF plan + an annual bonus plan. Each assignment has its own effective date range. The pipeline processes each plan independently and aggregates the results.

Plan Assignment Workflow

  1. Design the plan (rates, quotas, tiers) in the Plan Administration UI
  2. Test the plan against sample participants and transactions
  3. Assign the plan to target participants via the Assignment interface (date-effective)
  4. Run a full pipeline cycle to validate calculations
  5. Lock the plan for go-live (prevent further edits to active plans)

Testing Plans Before Go-Live

This is non-negotiable. Testing plans is one of the highest-value pre-go-live activities. SAP SuccessFactors IM provides a Plan Testing framework built into the UI:

Simulation Testing

Define test scenarios with sample participants, transaction sets, and quotas. The system calculates results without updating the live system. Example: Create a test scenario with 5 representative salespeople, assign them the new bonus plan, and feed in Q2 sample transactions. The system shows what each person would earn. You can then tweak the plan and re-run the test.

Calculation Verification

Manually trace a calculation result back to the plan rules. Example: A participant earned $47,500. Verify this by hand: Quota $2M, Result $2.4M, Attainment 120%. Base rate 2% = $48K. Accelerator 1.25x = $60K. Cap $50K applies → $50K. Discrepancy of $2.5K — why? (Maybe a clawback was applied.) This manual verification catches configuration bugs before go-live.

Boundary Testing

Test edge cases: zero quota, negative attainment (chargebacks), participants with no plan assignment, assignments that overlap, etc. These edge cases expose calculation bugs.

⚠️Testing gotcha: Test data must be representative of production. If your test set includes only high performers (120%+ attainment), you won't catch bugs in the sub-100% tiers. Create a stratified test set: 20% below 50% attainment, 30% at 50–100%, 30% at 100–150%, 20% above 150%.

Plan Inventory Query

This query gives you a complete inventory of active plans and their configuration:

SAP HANA Database SQL — Plan inventory with participant and quota counts
-- Complete plan inventory with assignment and quota stats
SELECT
  cp.ID              AS PLAN_ID,
  cp.NAME            AS PLAN_NAME,
  cp.PLAN_TYPE,
  cp.EFFECTIVE_START_DATE,
  cp.EFFECTIVE_END_DATE,
  COUNT(DISTINCT cpa.PARTICIPANT_ID)
                     AS ASSIGNED_PARTICIPANTS,
  COUNT(DISTINCT cq.PARTICIPANT_ID)
                     AS PARTICIPANTS_WITH_QUOTA,
  SUM(cq.QUOTA_AMOUNT)  AS TOTAL_QUOTA,
  ROUND(AVG(cq.QUOTA_AMOUNT), 2)
                     AS AVG_QUOTA_PER_PARTICIPANT
FROM   CSC_COMP_PLAN cp
LEFT JOIN CSC_PLAN_PARTICIPANT cpa
  ON  cpa.PLAN_ID = cp.ID
  AND cpa.EFFECTIVE_START_DATE <= CURRENT_DATE
  AND cpa.EFFECTIVE_END_DATE >= CURRENT_DATE
LEFT JOIN CSC_QUOTA cq
  ON  cq.PLAN_ID = cp.ID
  AND cq.PARTICIPANT_ID = cpa.PARTICIPANT_ID
WHERE  cp.EFFECTIVE_START_DATE <= CURRENT_DATE
  AND cp.EFFECTIVE_END_DATE >= CURRENT_DATE
GROUP BY cp.ID, cp.NAME, cp.PLAN_TYPE,
         cp.EFFECTIVE_START_DATE, cp.EFFECTIVE_END_DATE
ORDER BY cp.NAME;

Common Plan Design Mistakes

Watch out for these pitfalls:

Ambiguous Quota Ownership

Who owns the quota — the participant, their manager, or the finance team? If roles are unclear, disputes arise. Example: A rep's quota is reduced mid-period. Does the rep keep incentives already earned at the original quota? Define this explicitly in plan documentation.

Missing Edge Cases in Tiers

Tier ranges that don't cover 0–100% attainment will leave gaps. Example: Tiers are defined for 75–100% and 100%+, but what about 50–75%? Either include it or explicitly state that those participants earn zero. Gaps cause calculation errors.

Ineffective Quota Allocation

Quotas that are too aggressive (no one achieves them) or too lenient (everyone hits accelerators) demoralizes reps and makes the plan ineffective. Validate that quotas are achievable; benchmark them against historical performance before assigning.

Overly Complex Plan Hierarchies

3+ levels of plan inheritance become a nightmare to maintain. Keep hierarchies to 2 levels: a base plan and regional/product child plans. Anything deeper is a sign you need separate plans, not a complex hierarchy.

Effective Dating Best Practices

Effective dating requires discipline:

  • Plan effective dates should span exactly one calendar period. A plan for 2026 should have EFFECTIVE_START_DATE = '2026-01-01' and EFFECTIVE_END_DATE = '2026-12-31'.
  • Participant assignments should match hire dates, promotion dates, and termination dates. A new hire on March 15 should have EFFECTIVE_START_DATE = '2026-03-15'.
  • Plan periods should cover the plan's entire effective date range without gaps or overlaps. For a quarterly plan, periods should be Q1, Q2, Q3, Q4 with no gap between them.
  • Always run a pipeline validation before the plan's EFFECTIVE_START_DATE to catch configuration issues early.
💡Pro tip: Create a spreadsheet audit log for plan changes. For each plan, track: version, effective dates, who changed what and when, testing results, and go-live approval. This creates an audit trail and makes troubleshooting historical issues much faster.

Next Steps

You now understand plan structure, period management, component configuration, and testing strategy. The next lesson covers the people layer: how to manage participants, their hierarchies, and quota assignments.