Rule Balancing &
Profit Curve Analysis
"Rule Balancing traces every dollar through your model. Profit Curves reveal which customers create value — and which destroy it. Together, they transform NovaPrism's $134M blind spot into actionable intelligence."
The PCM_Balance Dimension
How EPCM preserves your original data while tracking every allocation and adjustment.
Every EPCM application includes a system-generated dimension called PCM_Balance. This dimension is the audit trail for your entire model — it tracks where data came from (Input), where it moved (Allocation In/Out), and how it was modified (Adjustment In/Out).
NovaPrism Balance Flow Example
Tracing $52M IT costs through the PCM_Balance dimension.
Let's follow NovaPrism's $52M IT cost pool through the PCM_Balance dimension. Initially loaded to Enterprise Support, it gets allocated to the four operating divisions based on IT ticket counts.
| Entity | PCM_Input | Alloc In | Alloc Out | Adj In | Adj Out | Net Balance |
|---|---|---|---|---|---|---|
| Enterprise Support | $52.0M | — | ($52.0M) | — | — | $0 |
| Digital Services (DS) | — | $18.7M | — | — | — | $18.7M |
| Infrastructure Solutions (IS) | — | $15.1M | — | — | — | $15.1M |
| Consulting Labs (CL) | — | $10.4M | — | — | — | $10.4M |
| Engineering Services (ES) | — | $7.8M | — | — | — | $7.8M |
| TOTAL | $52.0M | $52.0M | ($52.0M) | — | — | $52.0M |
Generating Rule Balancing Reports
The Rule Balancing page lets you trace fund flow rule-by-rule through your entire model.
Rule Balancing is accessed via Home → Modeling → Rule Balancing. Unlike Calculation Analysis (which shows performance), Rule Balancing shows data flow — how much moved through each rule.
Designing Data Forms for Rule Balancing
Form layout determines what insights you can extract from Rule Balancing.
The data form you select controls what the Rule Balancing report displays. Here are common form designs for NovaPrism:
| Form Name | Row Dimension | Column Dimension | Use Case |
|---|---|---|---|
| Balancing - All Steps | PCM_Rule (All Rules) | PCM_Balance | High-level view of all 18 allocation rules |
| Balancing - By Entity | Entity (All Divisions) | PCM_Balance | See how costs land on each division |
| Balancing - IT Only | PCM_Rule (IT Rules) | PCM_Balance | Drill into $52M IT allocation |
| Balancing - Customer Level | Customer (Level 0) | PCM_Balance | See fully-loaded costs by engagement |
Rule Balancing Actions
What you can do after generating a Rule Balancing report.
Understanding Profit Curves
A profit curve reveals which segments of your population create value — and which destroy it.
A profit curve is a graphical representation showing how a population dimension (customers, products, channels) contributes to cumulative profitability. The x-axis shows population members sorted by profitability (most profitable on left, least on right). The y-axis shows cumulative net profit.
Anatomy of a Profit Curve
Reading the three zones of customer profitability.
The Profit Curve Decision Framework
Four quadrants for customer portfolio management.
Creating Profit Curves in EPCM
Setting up profit curve analytics for NovaPrism.
Profit Curves are created in Home → Intelligence → Profit Curves. Only Service Administrators and Power Users can define profit curves, but all users can view them once created.
| Setting | Description | NovaPrism Example |
|---|---|---|
| Data Form | Select a form that contains the data to analyze | Engagement Profitability Form |
| Cube | The cube containing your profitability data | NovaPrism_Profit |
| Measure Dimension | The dimension containing your profit measure | Account |
| Measure Member | The specific member to plot (usually Net Profit) | Net_Profit |
| Row Dimension | The population to analyze (customers, products, etc.) | Customer (Level 0 members) |
Three ways to report EPCM results
Profit Curves show you which engagements to act on. These three tools show you the numbers behind those decisions — each serving a different consumer and a different purpose.
| Tool | Navigation | Consumer | Output | NovaPrism use case |
|---|---|---|---|---|
| Smart View | Excel → EPM Cloud add-in → Connect | Finance analysts, FP&A | Ad-hoc Excel grids; live refresh; Profit Curves in Excel; driver data submission | CFO's team pulls IS margin drill-down to engagement level in Excel; Finance team submits Q2 headcount drivers directly from spreadsheet |
| Financial Reporting Studio (FRS) | Home → Reports → Financial Reporting | Board, auditors, scheduled recipients | Formatted print-ready reports with headers, footers, page breaks; book bursting; PDF export | Monthly board pack: Division P&L with fully-loaded margins formatted to CFO spec; scheduled to burst to each division head on close Day 5 |
| Scatter Analysis | Home → Intelligence → Scatter Analysis | Finance Controllers, strategy team | Two-axis plot of any two measures across a population — Revenue vs Net Profit, Allocated Cost vs Margin% | Plot all 60 engagements on Revenue (x) vs Net Profit (y) — four quadrants immediately visible: Stars, Cash Cows, Rising Stars, Dogs |
Scatter Analysis — the quadrant view
Profit Curves show cumulative rank. Scatter Analysis shows position — two measures simultaneously across the whole population, making quadrant segmentation immediate.
NovaPrism's profit curve tells you that client #42 is in the bottom 24. Scatter Analysis tells you why — high revenue but catastrophic allocated cost ratio, placing it firmly in the bottom-right quadrant. The two views are complementary. Profit Curves for ranking; Scatter for diagnosis.
| Axis | Configured as | NovaPrism setting |
|---|---|---|
| X-axis | Any numeric measure from the model (Revenue, Allocated Cost, Margin%) | Revenue ($M) — shows engagement scale |
| Y-axis | Any numeric measure from the model | Net Profit ($M) — shows fully-loaded result |
| Population | Any dimension (Customer, Entity, Product) | Customer — 60 engagement codes |
| Quadrant lines | Configurable thresholds (absolute or percentile) | X: $5M revenue. Y: $0 profit (break-even) |
Home → Intelligence, Scatter Analysis reads from the published reporting cube. If Copy POV has not been run after the latest M01 calculation, the scatter plot reflects stale data. This is the same timing gap as Smart View reporting — both depend on Copy POV having run.Financial Reporting Studio — formatted reports
When ad-hoc grids and profit curves aren't enough — when the CFO needs a board-ready formatted P&L — Financial Reporting Studio is the tool.
Financial Reporting Studio (FRS) is a report design tool available to EPCM. It produces formatted financial reports: fixed headers and footers, page breaks at hierarchy levels, conditional suppression of zero rows, calculated columns, and scheduled PDF bursting to a distribution list. The output looks like a printed financial statement, not a spreadsheet. It connects to PCM_REP for its data — again, Copy POV must have run.
| Feature | What it does | When NovaPrism uses it |
|---|---|---|
| Report books | Bundle multiple reports into a single book — one PDF per recipient per period | Monthly close pack: Division P&L + Engagement Summary + Cost Pool Summary in one document |
| Bursting | Run one report template, distribute personalised slices to different recipients based on POV | Each division head receives their own P&L with only their entities visible |
| Conditional suppression | Hide rows where all values are zero or below a threshold | Suppress zero-revenue rows in the engagement summary — only active engagements shown |
| Calculated columns | Add formulas (variance, %, prior period) that don't exist in the cube | Add "Direct vs Fully Loaded margin delta" column: IS shows −8.2pp, revealing the allocation impact |
Smart View — retrieval, analysis, and the ASO extraction problem
Hall 8 covers Smart View as a data submission tool. This section covers the other direction: retrieving allocation results from PCM_REP into Excel for analysis — and why ASO creates anomalies you have to know how to diagnose.
Smart View connects to EPCM via the EPM Cloud URL. Once connected, analysts can open ad-hoc grids against PCM_REP, retrieve any intersection of members, refresh to latest published data, and work in Excel with full pivot and formula capability. Profit Curves and Scatter Analysis can be displayed directly in Smart View. Driver data (headcount, ticket counts) can be submitted back — that flow is in Hall 8. This section is about reading out.
| Smart View action | Direction | Source/Target | NovaPrism example |
|---|---|---|---|
| Ad-hoc retrieval | PCM_REP → Excel | Read from PCM_REP | Pull IS fully-loaded margin by engagement code into Excel pivot |
| Profit Curve in Excel | PCM_REP → Excel | Read from PCM_REP | Embed NovaPrism profit curve directly in the CFO's deck |
| Driver submission | Excel → PCM_CLC | Write to PCM_CLC | Finance team updates Q2 headcount for 60 engagements from spreadsheet (Hall 8) |
ASO extraction anomalies — why your Smart View numbers don't match
EPCM runs on ASO. ASO's aggregation behaviour is fundamentally different from BSO. When you retrieve data into Smart View or FRS, certain conditions produce numbers that look wrong — and diagnosing them requires understanding how ASO computes parent values.
In BSO, every cell value is either stored or calculated on demand from a formula you can inspect. In ASO, parent members are aggregated from their stored children using the consolidation operator. This is fast and elegant — until you try to retrieve data in a way that crosses hierarchy boundaries, asks for a member that aggregates differently than you expect, or retrieves a slice that doesn't correspond to a stored block. Four anomalies appear repeatedly in EPCM reporting.
Symptom: You retrieve
All_Customers total = $38.4M net profit. You then retrieve each of the 60 engagement codes individually and sum them — you get a different number.Root cause: ASO aggregates parent values from stored children using consolidation operators. If any child has a
~ (ignore) operator, or if the hierarchy has shared members that aggregate differently, the parent is not a simple sum. The stored child values and the dynamic parent aggregation can diverge when the member selection in your Smart View grid doesn't match the aggregation path ASO uses internally.Diagnosis: Check consolidation operators on all children under
All_Customers. Verify no shared members are double-counted. In Smart View: use Member Selection to explicitly retrieve All_Customers.Children rather than individual member names — this forces ASO to aggregate consistently with the hierarchy path.Symptom: You retrieve IS × ENG_042 × Net_Profit — the cell shows #MISSING. You know ENG_042 is an IS engagement with costs allocated. The Profit Curve shows it as a loss-maker.
Root cause: ASO only stores data at the intersections where rules actually wrote values. If your Smart View grid is retrieving at a member intersection that doesn't correspond to a stored block — for example, a combination of
PCM_Input + a Customer code that only has data at the PCM_Allocated_In member — the cell is genuinely empty at that intersection.Diagnosis: Check which PCM_Balance members hold data for that engagement. Use an ad-hoc grid with all 6 PCM_Balance members on columns and the engagement on rows. Typically:
PCM_Input = 0 (no direct input), PCM_Allocated_In > 0 (received allocation), PCM_Net_Balance < 0 (loss-making). The number is not missing — you were looking at the wrong PCM_Balance slice.Symptom: You write an MDX expression to filter the 17 loss-making engagements:
FILTER([Customer].Members, [PCM_Net_Balance] < 0). The result returns 23 members, not 17. Or it returns correct members but with #MISSING values when you try to retrieve associated measures.Root cause: MDX against ASO evaluates conditions against the current aggregated context. If the MDX is running against PCM_CLC instead of PCM_REP, or if the POV context is not set to the correct Scenario/Period, the filter evaluates against stale or wrong data. Additionally, ASO MDX
Members returns all members in the hierarchy including parents — use Leaves or Descendants(..., LEAVES) to restrict to level-0 members only.Fix:
/* Wrong — includes parent rollups in filter */ FILTER([Customer].Members, [Measures].[PCM_Net_Balance] < 0) /* Correct — level-0 engagements only */ FILTER( Descendants([Customer].[All_Customers], [Customer].[ENG_001].Level, LEAVES), ([Measures].[PCM_Net_Balance], [Scenario].[Actual], [Year].[FY2025], [Period].[Q1]) < 0 )
Symptom: You configure FRS to suppress rows where Net Profit = 0. Several engagement rows disappear that you know should have values. When you remove the suppression, they appear with correct non-zero values.
Root cause: FRS suppression evaluates each cell in the row independently. In ASO, a row can have data in one column (e.g.
PCM_Allocated_In) but return zero or #MISSING in another column (e.g. PCM_Input). If the suppression condition is evaluated against a column that happens to be zero at that intersection, the entire row is suppressed even though adjacent columns have meaningful data.Fix: Set the suppression condition explicitly to the measure you care about —
Suppress if PCM_Net_Balance = 0 — rather than using the default row suppression which evaluates the first column. In FRS: Row Properties → Suppress → specify the exact member, don't rely on the default.What the exam tests on reporting
| Concept | Exam answer | Implementation reality |
|---|---|---|
| Profit Attribute dimension | Required for Profit Curves and Scatter Analysis | Without it, neither analytics view is available — it's the prerequisite dimension the exam will test by asking what's required to create a profit curve |
| Scatter Analysis navigation | Home → Intelligence → Scatter Analysis | Same location as Profit Curves — both under Intelligence, not Modeling |
| FRS vs Smart View | FRS for fixed-format formatted reports; Smart View for ad-hoc analysis and driver submission | In production you use both: FRS for the monthly board pack, Smart View for everything else |
| Smart View — two directions | Retrieve allocation results from PCM_REP (output); Submit driver data to PCM_CLC (input) | Most candidates only know the submission side — the retrieval side is equally tested |
| ASO #MISSING in Smart View | May mean you are retrieving the wrong PCM_Balance member, not that the data is absent | Always pull all 6 PCM_Balance members when diagnosing a missing value — the data is likely in a different balance member than expected |
| MDX filter on ASO — Members vs Leaves | Use Descendants(..., LEAVES) to filter level-0 members only; .Members includes parent rollups | This is the most common MDX error in EPCM reporting — filter returns 23 instead of 17 because parent members match the condition too |
| All reporting views depend on Copy POV | Smart View, FRS, Scatter Analysis all read from PCM_REP — stale if Copy POV hasn't run | The timing gap is the same as any PCM_REP consumer: calculate → Copy POV → then report |
Lab 7.1: Generate NovaPrism Rule Balancing Report
Trace the $134M Enterprise Support allocation through every rule.
Lab 7.2: Analyze NovaPrism Profit Curve
Generate the engagement profit curve and identify the value-destroying clients.
Engagement Profitability Simulator
Explore how different engagement characteristics affect fully-loaded profitability.
Rule Balancing & Profit Curve Quiz
Test your knowledge on PCM_Balance, Rule Balancing reports, profit curve analysis, and reporting tools.
Exam Focus: Analytics & Reporting
What to remember for the 1Z0-1082-25 exam.