Academy of Profit Center
Hall 2 of 9 · Dimensions Gallery
Academy of Profit Center — Your Journey
Dimensions Gallery
Hall 2 of 9 · Academy of Profit Center · EPCM Study Tour

The geometry of profit

11 dimensions. Every one of them Stored. That is not a coincidence — it is a design decision with consequences that reach into every rule you will ever write. This hall explains why ASO dimension design is different, what Stored vs Dynamic actually means in production, and how NovaPrism's 11 dimensions were chosen and justified.

Conceptual Technical Interactive Lab Exam: 1Z0-1082-25
📐
Conceptual

Why dimensions are the foundation of everything

Every rule you write in Hall 4, every model you define in Hall 3, every number that appears in PCM_REP — all of it flows from the dimension design you lock in here.

A dimension is an axis of analysis. It answers one question: from what perspective do we want to see cost? NovaPrism needs to ask: by division (Entity), by GL account (Account), by shared service function (Function), by client engagement (Customer), by time period (Period), and more. Each unique question becomes a dimension.

The reason dimension design is Hall 2 and not Hall 8 is simple: you cannot add a dimension to a live EPCM application without rebuilding it. Every downstream decision — rule design, data load format, reporting layout — assumes a fixed dimension set. Get this wrong and you rebuild from scratch. Get it right and every subsequent hall clicks into place.

📐
The NovaPrism constraint: NovaPrism's CFO needs cost visible by four angles simultaneously — which division, which function, which client, and which period. That four-way intersection is only possible if all four are dimensions. A flat GL cannot do this. A single-dimension allocation tool cannot do this. EPCM's multi-dimensional ASO cube is designed exactly for it.
🧱
Conceptual

ASO dimension rules — what changes vs BSO

EPCM uses ASO (Aggregate Storage). Planning uses BSO (Block Storage). They look similar in the UI. They behave very differently. The storage type of each dimension has direct consequences for aggregation, calculation, and rule reliability.

In BSO, dimension members can be Tagged with Dense or Sparse storage. In ASO there are no Dense/Sparse tags — instead, each member has a Data Storage property: Stored or Dynamic (or Never Share, Label Only for structural members). This is a more powerful distinction than it sounds.

Dimension storage type — consequences simulator
Stored
Dynamic
Scenario: Region dimension set to Stored (NovaPrism's actual design)
Aggregation works correctly. Americas and APAC roll up to NovaPrism_Group via outline hierarchy. The rollup executes at query time using stored values — fast, reliable.
Allocation rules can target this member. A rule that writes to Region→Americas is writing to a stored cell. The value persists after the rule completes. If Region were Dynamic, the write would be discarded.
Driver members are safe here. If you stage a driver ratio into a Region member for use in a later rule, Stored means that staged value will be there when the next rule reads it. Dynamic would recalculate and potentially wipe it.
Audit trail is intact. Every stored cell has a written value that can be traced back to the rule that wrote it. PCM_REP archives these values for historical comparison.
Scenario: Region dimension flipped to Dynamic (hypothetical — do not do this)
Allocation rules cannot write to Dynamic members. EPCM's rule engine writes to ASO stored cells. If Region is Dynamic, any rule targeting Region members will silently fail or produce incorrect output. This is the most dangerous consequence and the hardest to diagnose.
Staged driver values are lost between rules. If rule seq:10 stages a ticket-count ratio into a Dynamic member so that rule seq:40 can read it, the value is gone — Dynamic members recalculate on read, they do not persist writes. The IT allocation produces zero or garbage.
PCM_Balance interactions break. The PCM_Input → PCM_Output flow depends on stored intermediate values. Dynamic members in operational dimensions break this chain at the point where the Dynamic member intersects the balance flow.
Rule Balancing reads incorrect totals. Rule Balancing in Hall 7 confirms that allocated amounts sum to pool totals. If any dimension in the balance equation is Dynamic, the sum reads a recalculated value, not the value written by the rule. False balance confirmed — real error hidden.
⚠️
The Dynamic trap on the exam: A question will describe a scenario where "a dimension was set to Dynamic to improve query performance." The correct answer will always identify this as wrong for operational dimensions — because Dynamic members cannot be targets of allocation rule writes. The performance benefit of Dynamic is real; the cost to rule reliability makes it unacceptable for any dimension that participates in allocation logic.
🔢
Conceptual

NovaPrism's 11 dimensions — the design rationale

Each dimension answers a distinct business question. The design principle: if two questions can be answered from the same axis, they share a dimension. If they cannot, they get their own.

DimensionStorageBusiness question it answersNovaPrism design notes
💡
Why no Dynamic dimensions in NovaPrism's design? Every one of NovaPrism's 11 dimensions is either Stored or System. This is the correct default for an allocation model. Dynamic is appropriate for pure reporting dimensions where values are always derived from others — like a calculated subtotal that never needs to be written to by a rule. In NovaPrism's model, every dimension is either a target or a context for rule execution. Stored is the right answer for all of them.
⚙️
Technical

PCM_Balance — the system dimension you don't design

PCM_Balance is the only dimension in EPCM that you cannot rename, restructure, or change. It is prebuilt by the system and its six members define the entire flow of money through the model.

Every other dimension tells EPCM what kind of thing you are measuring (which account, which entity, which period). PCM_Balance tells EPCM what stage in the allocation pipeline the value is at. You can think of it as the allocation lifecycle dimension — every cell in the model has a PCM_Balance coordinate that tells you whether the value is raw input, in-transit allocation, or final output.

PCM_Balance MemberWhat it holdsWritten byNovaPrism example
PCM_InputRaw costs loaded from source systemData load (Hall 8)ES division's $52M IT pool cost, loaded from GL extract
PCM_Allocated_InCost received from another cost objectAllocation rulesDS receives $14.19M from the IT pool — this is its PCM_Allocated_In
PCM_Allocated_OutCost sent to another cost objectAllocation rulesES sends its full $134M out — PCM_Allocated_Out = $134M
PCM_Adjustment_InManual adjustment creditsManual data entry or adjustment rulesQ1 restatement: +$0.3M correction to DS IT allocation
PCM_Adjustment_OutManual adjustment debitsManual data entry or adjustment rulesCorresponding $0.3M debit from IS
PCM_OutputFinal fully-loaded cost for this objectCalculated: Input + Allocated_In − Allocated_Out + AdjustmentsDS: $580M direct + $40.26M allocated in = $620.26M output
📋
The balance check: For any cost centre (like ES), PCM_Input must equal PCM_Allocated_Out. ES has $134M input and $134M allocated out — it nets to zero. For any receiving division (like DS), PCM_Output = PCM_Input + PCM_Allocated_In − PCM_Allocated_Out ± Adjustments. This is how Rule Balancing in Hall 7 confirms the model is correct: it verifies these equations hold across every member of every dimension.
🌿
Technical

Alternate hierarchies — Period and View without Dynamic

NovaPrism needs Periodic, YTD, and QTD views. The wrong approach is to make View a Dynamic dimension using formula members. The right approach is alternate hierarchies in Stored dimensions.

In ASO, a dimension can have multiple hierarchies — a primary hierarchy for base aggregation, and one or more alternate hierarchies for different rollup paths. NovaPrism's Period dimension has a primary hierarchy (Q1, Q2, Q3, Q4 rolling up to FY24) and an alternate hierarchy (Jan, Feb, Mar rolling up to Q1_YTD).

This means YTD values are aggregations, not formulas. When the reporting user selects Q1_YTD, ASO aggregates Jan + Feb + Mar from stored cells. No formula member, no Dynamic dependency. The value is always consistent with the underlying data and can be written to by rules if needed.

⚠️
The exam question on this: "A designer has created a View dimension with members Periodic, YTD, and QTD as Dynamic Calculation members that sum the appropriate Period members. Is this correct?" — No. Dynamic Calculation members in ASO cannot be targets of rule writes, and they add calculation overhead at query time. The correct design uses alternate hierarchies in the Period dimension with Stored members. View as a separate dimension is unnecessary if Period has alternates designed correctly.
Design choiceApproachCan rules write to it?PerformanceVerdict
View as Dynamic dimYTD member uses Dynamic formula summing Period membersNoCalculated at query timeAvoid
Period alt hierarchyYTD node in alternate hierarchy aggregates stored Period membersYesAggregated from stored cellsCorrect
👥
Technical

The Customer dimension — 60 engagements + rollup

The Customer dimension is what makes NovaPrism's model worth building. Without it, you can see divisional profitability. With it, you can see which of the 60 engagements is destroying value.

NovaPrism has 60 active client engagements coded as ENG_001 through ENG_060. These are leaf members in the Customer dimension, rolling up to a parent All_Customers. The Engagement Contribution ruleset (seq:50 in Hall 4) pushes fully-loaded costs from the Entity dimension intersection down to the Customer dimension intersection — creating a fully-loaded P&L at the engagement level.

This is the dimension that delivers the key insight: 17 of 60 engagements are loss-making on a fully-loaded basis, but none appear loss-making on direct costs alone. The Customer dimension is what makes that visible. Without it, you would never know.

💡
Design decision: The All_Customers rollup parent must be Stored (not Dynamic) because rules write to the engagement-level leaf members and the system aggregates to All_Customers. If All_Customers were Dynamic, the aggregation would recalculate but never match the sum of engagement-level PCM_Output values exactly — because Dynamic members in ASO recalculate from stored children, but intermediate stored values at the parent level are not guaranteed to match when the rule writes happen at different times. Stored is safer and gives a directly auditable group total.
🧭
Interactive

Venturi Dimension Visualiser

Click any dimension node to inspect its storage type, member design, exam traps, and NovaPrism-specific justification. This is NovaPrism's live dimension map.

NovaPrism_EPCM_PROD — 11 Dimensions Click a dimension to inspect
← Select a dimension node above to see its full design specification.
🌿
Interactive

Dimension design decision tree

Answer five questions about a dimension you are designing. The tree tells you Stored or Dynamic — and why.

Dimension storage decision engine
🔬
Lab Scenario

Design NovaPrism's dimension set from scratch

You are the EPCM implementation lead. The application is empty. You must propose and justify the complete dimension set before the build can begin.

Mission Brief — Dimension Design Sign-off
Situation: NovaPrism's Finance Director has reviewed your Hall 1 business case and approved the EPCM project. The next meeting is with the Oracle implementation team to agree the dimension design. You have one hour to prepare. The meeting agenda: (1) confirm the list of dimensions, (2) justify each storage type, (3) confirm PCM_Balance is understood, (4) sign off the Account alt hierarchy grouping, (5) confirm Customer dimension scope. You need answers to all five items before you walk in.
List all 11 dimensions and state their storage type. Use NP.dimensions from constants.js as your source. For each dimension, write one sentence justifying why Stored is correct. Note which one is System and why you cannot change it.
Explain PCM_Balance to the Finance Director. Use the six-member lifecycle analogy: Input (what came in from the GL), Allocated_In (what was received from other cost objects), Allocated_Out (what was sent out), two Adjustment members, and Output (the final fully-loaded number). Map each member to a NovaPrism example using the $134M ES allocation.
Design the Account dimension alt hierarchy. NovaPrism has 1,200 GL accounts. They must group into 8 cost pools for allocation purposes. Sketch the two-level hierarchy: leaf = GL account code, alternate parent = cost pool (IT, Facilities, Finance, HR + 4 revenue pools). Explain why this is an alternate hierarchy and not a separate dimension.
Justify the Period + View design choice. NovaPrism needs Periodic, YTD, and QTD views. Explain why you are NOT creating a View dimension with Dynamic formula members, and instead using alternate hierarchies in the Period dimension. State the specific consequence of the Dynamic approach that makes it incorrect for EPCM.
Scope the Customer dimension. Confirm 60 engagement codes (ENG_001–ENG_060), one All_Customers rollup parent, and a No_Customer member for costs not yet attributable to an engagement. Explain why this third member is necessary and what happens to allocation calculations if it is missing.
0 of 5 tasks completed
🎓
Dean's hint on task 5: The No_Customer member is critical. When the Facilities pool is allocated to DS, IS, and CL by square footage, the allocation targets Entity members. The Engagement Contribution ruleset (seq:50) then maps Entity-level costs to Customer-level engagements. But not every cost has a clear engagement mapping at the time of allocation. No_Customer captures the unattributed portion — without it, the Customer dimension total will not reconcile with the Entity dimension total, and Rule Balancing will fail.
📝
Exam Alignment · 1Z0-1082-25

What Dimensions Gallery covers on the exam

Hall 2 maps to the second syllabus topic: Designing Dimensions. Expect 5–7 questions in this area across the 50-question exam. It is the second-highest weighted topic after Rule Sets & Rules.

📝 Syllabus — Designing Dimensions
Key sub-bullets tested:

1. Describe dimension types and storage properties in EPCM Standard (ASO) — Stored vs Dynamic, Label Only, Never Share.
2. Explain the PCM_Balance system dimension and its six members.
3. Design alternate hierarchies for Period/View without Dynamic formula members.
4. Explain the consequences of setting operational dimension members to Dynamic.
5. Identify which dimensions are prebuilt (PCM_Balance) vs user-defined.
⚠️ The three most dangerous distractors in this section
Distractor 1: "Dynamic members improve performance, so use them for the Period dimension."
FALSE for any dimension whose members are targets of allocation rule writes. Dynamic members in ASO do not persist values — rules that write to them will fail silently. Stored + alternate hierarchy is the correct Period design.

Distractor 2: "You can rename PCM_Balance to match your company's naming convention."
FALSE. PCM_Balance is a System dimension. Its name, its six prebuilt members, and their definitions are fixed. You can add members to user-defined dimensions freely — you cannot modify PCM_Balance.

Distractor 3: "EPCM Standard supports up to 20 dimensions."
The exam tests the actual limit. EPCM Standard supports up to 20 user-defined dimensions plus the mandatory system dimensions. NovaPrism uses 10 user-defined + PCM_Balance (system) = 11 total, well within limits. The number 20 is the ceiling for user dimensions, not total dimensions.
0/5
Hall 2 Exam Score
ConceptExam answerImplementation reality
Default storage type for operational dimsStoredEvery dimension that participates in rule logic must be Stored — this is the first thing you verify on any implementation
PCM_Balance member count6 (Input, Allocated_In, Allocated_Out, Adjustment_In, Adjustment_Out, Output)You reference these names in every rule you write — memorise them in Hall 4
Dynamic member use casePure reporting members with no rule write target — calculated subtotals onlyIn practice most implementations use zero Dynamic members in the operational model
YTD/QTD design patternAlternate hierarchies in Period dimension, Stored membersSame — this is the only correct pattern for EPCM allocation models
Max user dimensions (Standard)20NovaPrism uses 10 user-defined. Most implementations use 8–14.