The Planning Quest Parts I–III
0 / 940 XP
📖 I–III ⚔ IV–V 👑 VI–IX 📘 Gr.I ⚡ Gr.II ⚙ Kernel 🏆 Engage 👥 WFP 📝 Quiz 🃏 Cards 🔬 Labs 🎯 Prep 🌐 REST ⚙ CLI 💻 Lab 🆕 New 🔍 Search
The Quest — Parts I–III
🏠
Quest Map
Part I · 225 XP
🏰
Part I
Orientation & Prologue
What is EPBCS? Vision Corp Business Case Creating the Application
Part II · 540 XP
🗺
Part II
Metadata Lands
Dimension Architecture Building Hierarchies Smart Lists & UDAs Formulas & SubVars
Part III · 175 XP
🌊
Part III
Resource Crossing
Data Load & Calculation
Continue
⚔ Parts IV–V → 👑 Parts VI–IX →
Practice
📝 Practice Quiz 🃏 Flashcards 🔬 Enterprise Labs
Full Quest Navigation
The Quest
🏠
Quest Map
Core Lessons
📖 Parts I–III (Fundamentals) ⚔ Parts IV–V (Forms + Groovy) 👑 Parts VI–IX (Workflow + Boss)
Groovy Mastery
📘 Groovy Chapter I (Basics) ⚡ Groovy Chapter II (EPM API) 💻 Groovy Lab (Interactive)
Deep Dives
⚙ Essbase Kernel (NODE s) 👥 Workforce Planning 🌐 REST API Cookbook ⚙ EPM Automate CLI Ref
Practice & Labs
📝 Practice Quiz 🃏 Flashcards 🔬 Enterprise Labs 🎯 Interview Prep
Tools & Reference
🏆 The Engagement 🆕 What's New in EPM 🔍 Search 📊 Capability Framework 🎮 Simulators
🏰 Part I · Lesson 1 · 50 XP

🏰 What is EPBCS?

Part I · Orientation & Prologue · Lesson 1 of 3

The Oracle Speaks

In the kingdom of finance, chaos ruled. Spreadsheets multiplied without reason, data lived in silos, and budgeting season brought dread to all. Then came the Oracle's tool: Enterprise Planning and Budgeting Cloud Service — forged to bring order to financial chaos across the realm.

Oracle EPBCS — The Platform

EPBCS (Enterprise Planning and Budgeting Cloud Service) is Oracle's cloud-based financial planning, budgeting, and forecasting platform. It is built on the Oracle Fusion EPM Planning engine and delivered via Oracle Cloud Infrastructure (OCI).

DimensionEPBCS (Cloud)Oracle EPM On-Premise (Classic)
InfrastructureOracle manages all serversYour IT team manages everything
UpdatesAutomatic quarterly releasesManual upgrades every 2–4 years
Cost modelSaaS subscription (PMPM)High CapEx + ongoing OpEx
Groovy scripting✓ Native support✗ Requires Calculation Manager (legacy) — Groovy available in cloud
IntegrationREST API, EPM Automate (epmautomate CLI), FCCData Integration (EPM 25.06+), OCI Identity (IDCS)

Core Architecture — Essbase Under the Hood

EPBCS is built on Essbase — Oracle's multi-dimensional analytical database. Every EPBCS application creates one or more Essbase cubes (BSO or ASO) that store and calculate financial data across multiple dimensions.

🔵BSO vs ASO: Block Storage Option (BSO) allows write-back and calc scripts — essential for planning. Aggregate Storage Option (ASO) is read-only but blazing fast for large reporting cubes. Financial Planning always uses BSO for plan-type cubes.

EPBCS Modules

ModulePurposeFP&A Use Case
Financial PlanningP&L, Balance Sheet, Cash FlowAnnual budgeting, quarterly forecasts
Workforce PlanningHeadcount, compensation, benefitsHR-driven cost planning (60–70% of OpEx)
Capital PlanningCapEx projects, depreciationAsset investment planning
Projects PlanningProject-level financial trackingProfessional services firms
Strategic ModelingLong-range planning, scenarios3–5 year strategic plans
💡FP&A Reality Check: Most enterprises use Financial Planning + Workforce as the core duo. Workforce planning alone represents 60–70% of total OpEx for most companies — integrating it with Financial Planning eliminates the largest manual reconciliation effort in any FP&A team.
🏰 Quest Tasks — Lesson 1
Understand what EPBCS is and how it differs from Oracle EPM on-premise
Identify BSO vs ASO and when each cube type is used
List the 5 core EPBCS modules and their primary FP&A use case
Explain why Groovy scripting is available in cloud but not on-premise
🔭
The Oracle
EPBCS Expert · Always available

Ask anything about EPBCS architecture, cloud vs on-premise, or platform concepts.

🏰 Part I · Lesson 2 · 75 XP

📋 Vision Corporation Business Case

Part I · Orientation & Prologue · Lesson 2 of 3

The Saga Begins

Vision Corporation — a global manufacturing company with $2.8B in annual revenue — has outgrown its spreadsheet process. The CFO has decreed: a single source of truth for finance. You are the Planning Champion, charged with building the kingdom's planning system from the ground up.

Vision Corporation — Profile

AttributeDetails
Revenue$2.8B annually, 4 business segments
Entities12 legal entities, 6 countries (USD, EUR, GBP, JPY, AUD, CAD)
Employees4,200 headcount → Workforce Planning required
Fiscal YearJan–Dec, monthly granularity
Scenarios neededBudget (annual), Forecast (quarterly rolling), Prior Year Actual
Current pain14 disconnected Excel models, 3-week planning cycle, zero auditability

The Five Pain Points EPBCS Solves

📊The 60% Problem: Vision's FP&A team spent 60% of their time collecting and reconciling data, 25% building reports, and only 15% on actual analysis. EPBCS inverts this — automation handles collection so analysts can analyse.
  • Data consolidation: Subsidiaries email Excel templates → manual consolidation → error-prone and slow
  • No version control: "Budget_v2_FINAL_FINAL_CFO_approved.xlsx" is real in every enterprise
  • No scenario planning: Running what-ifs requires rebuilding entire models from scratch
  • Approval bottlenecks: No workflow → who approved what and when is undocumented
  • Currency translation: Manual FX rates in multiple places create inconsistencies

Vision's Dimension Preview

Entity 🏢
×
Account 📊
×
Period 📅
×
Scenario 🎯
×
Version 📌
×
Currency 💱
🏰 Quest Tasks — Lesson 2
Map Vision's 5 key pain points to specific EPBCS capabilities
Identify the 6 core dimensions Vision's application will use
Articulate the "60% problem" in FP&A and how EPBCS inverts the ratio
🔭
The Oracle
EPBCS & FP&A Expert
🏰 Part I · Lesson 3 · 100 XP

⚙ Setting Up Planning

Part I · Orientation & Prologue · Lesson 3 of 3

The Builder's Call

With Vision's needs mapped, the time for action arrives. You must forge the application from raw cloud steel — choosing the right settings from the start, for these choices cannot be unmade. The configuration decisions you make in the next 30 minutes will govern this kingdom for years to come.

🚨Irreversible Settings: Base time period (Monthly/Quarterly) and Fiscal Year start month cannot be changed after creation. Get these wrong and you rebuild the entire application from scratch.

Key Configuration Decisions

SettingVision ValueWhy It Matters
Application NameVision (max 12 chars)Embedded in all API URLs — cannot rename later
Base Time PeriodMonthlySupports both monthly and quarterly rollups. Quarterly-only is almost never right.
Fiscal Year StartJanuaryMisalign this and period mapping breaks everywhere
Reporting CurrencyUSDAll consolidation translates to this currency
Multi-Currency✓ EnableVision has 6 currencies — painful to add after data exists
Consolidation✓ EnableRequired for legal entity rollups with eliminations

After Creation — First Actions

  1. Go to Application → Overview — confirm BSO cube shows Active
  2. Run Actions → Refresh Database to initialise the Essbase outline
  3. Take a snapshot export immediately — confirms backups work from day one
  4. Create a Design Constraints document and get it signed by the Finance Controller
💡Professional Practice: Before any EPBCS build, create a one-page Design Constraints document listing: dense/sparse decisions, features enabled, fiscal year start, naming conventions. Have the Finance Controller sign it. This protects you when requirements change mid-project — and they always do.
🏰 Quest Tasks — Lesson 3
Navigate to Application → Create and select Financial Planning
Configure: name=Vision, time period=Monthly, start year=FY2024
Enable Multi-Currency and Consolidation before clicking Create
Verify BSO cube shows "Active" and run Refresh Database
Take first snapshot export and confirm it completes without error
🔭
The Oracle
Application Setup Expert
🗺 Part II · Lesson 4 · 100 XP

🗺 Dimension Architecture

Part II · Metadata Lands · Lesson 1 of 4

The Cartographer Speaks

Every kingdom needs a map. In EPBCS, your map is the dimension structure — the axes of your data cube. Design them poorly and queries will crawl, calculations will fail. Design them well, and Vision Corporation will have a planning engine that scales for a decade.

The 7 Core Dimensions of Financial Planning

DimensionTypeDense/SparseVision Example Members
AccountAccountsDenseRevenue, COGS, Gross_Profit, OpEx, EBITDA, Net_Income
PeriodTimeDenseJan, Feb... Dec, Q1, Q2, Q3, Q4, YTD, Full_Year
EntityEntitySparseVision_US, Vision_EU, Vision_APAC, Corporate
ScenarioScenarioSparseActual, Budget, Forecast, Prior_Year
VersionVersionSparseWorking, Draft, Approved, Final
YearYearSparseFY2023, FY2024, FY2025
CurrencyCurrencySparseUSD, EUR, GBP, JPY, Local, Reporting
The Golden Rule: Account and Period are always dense in BSO. Almost every account has a value in almost every period. Entity, Scenario, Version, Year are always sparse — most entity+scenario+version combinations are empty.
💡FP&A Impact: A poorly designed BSO cube with wrong dense/sparse settings can be 10–50x slower to calculate. For Vision's quarterly planning cycles, this is the difference between a 2-minute overnight calc and a 2-hour one. Finance stops tolerating 2-hour waits after the first failed budget cycle.
🗺 Quest Tasks — Lesson 4
Identify all 7 core Financial Planning dimensions and their types
Explain why Account and Period are dense while Entity and Scenario are sparse
Design the account hierarchy rollup from GL accounts to Net Income
🔭
The Oracle
Metadata & Essbase Expert
🗺 Part II · Lesson 5 · 125 XP

🏗 Building Hierarchies

Part II · Metadata Lands · Lesson 2 of 4

The Architect's Decree

The kingdom's ledger must be arranged with precision. Every account a stone; every hierarchy a pillar. Place them wrongly and your Palace of Numbers will crumble at the first budget cycle. Place them right, and Vision Corporation's financial truth will flow from every branch like water from a clear spring.

Account Dimension — P&L Hierarchy

P&L Account Hierarchy (simplified)
Net_Income // Root — consolidated P&L result Gross_Profit (+) // Revenue minus COGS Total_Revenue (+) Product_Revenue (+) Service_Revenue (+) Total_COGS (-) // Subtracted from Revenue Direct_Material (+) Direct_Labor (+) Operating_Income // Gross_Profit - OpEx Total_OpEx (-) Sales_Marketing (+) R_and_D (+) G_and_A (+) EBITDA_Adjustment // D&A add-back for EBITDA calc

Consolidation Operators

OperatorSymbolUse Case
Addition+Standard rollup (most members)
SubtractionCOGS, OpEx, deductions from revenue
Multiplication×Rate × Volume calculations
Never Consolidate~Memo accounts, ratio KPIs that should not sum up hierarchy

Entity Hierarchy — Legal vs Management

Vision needs alternate hierarchies on Entity — one for legal consolidation (by legal entity), one for management reporting (by geography or business unit). Both roll up to Total_Vision.

💡Naming Convention: Use underscores, not spaces. Prefix aggregation parents with "Total_". Keep leaf names short — they appear in form rows. Example: Total_Revenue → Prod_Rev, Svc_Rev not Total Revenue → Product Revenue, Service Revenue.
🗺 Quest Tasks — Lesson 5
Build Vision's 4-level Entity hierarchy in EPBCS Dimension Editor
Create Account hierarchy from GL accounts to Net_Income
Apply correct consolidation operators (+/−) for revenue vs expense accounts
Create an alternate Entity hierarchy for Management vs Legal reporting
🔭
The Oracle
Hierarchy Design Expert
🗺 Part II · Lesson 6 · 140 XP

📋 Smart Lists & UDAs

Part II · Metadata Lands · Lesson 3 of 4

The Scribe's Tome

Not all knowledge fits in numbers. Some truths must be recorded as words — categories, flags, classifications. Smart Lists and User-Defined Attributes allow Vision's champions to capture qualitative data alongside the numbers, turning a ledger into a living intelligence system.

Smart Lists — Dropdown Metadata

Smart Lists are dropdown lists that appear in planning forms. They store text values as integer codes in Essbase, then display them as readable labels to users.

Smart List: Approval_Status
// Smart List definition in EPBCS Name: Approval_Status Entries: 1 → "Draft" 2 → "Submitted" 3 → "Under_Review" 4 → "Approved" 5 → "Rejected" // Reading in Groovy (returns integer) def status = getCell(entity, "Approval_Status", ...) if (status == 4) { lockCells() } // 4 = "Approved"

UDAs — User Defined Attributes

UDAs are Boolean tags on dimension members — a member either has the tag or it doesn't. Use them in calc scripts/Groovy to process only tagged members without hardcoding lists.

UDA NameApplied ToGroovy/Calc Use
ALLOCATION_TARGETEntity membersOnly receive overhead allocations if tagged
DRIVER_BASEDAccount membersCalculate via driver formula, not direct input
INTERCOMPANYEntity membersInclude in intercompany elimination logic
HEADCOUNT_DRIVERAccount membersAuto-calc from headcount × rate driver
💡FP&A Power Move: Tag expense accounts with HEADCOUNT_DRIVER UDA, then write one Groovy rule that loops through all tagged accounts and multiplies headcount × per-head rate. When you add a new expense account, just add the UDA — zero code changes needed. This is driver-based budgeting at scale.
🗺 Quest Tasks — Lesson 6
Create the Approval_Status Smart List with 5 entries
Assign the Smart List to an Account member in Dimension Editor
Create 3 UDAs: ALLOCATION_TARGET, DRIVER_BASED, INTERCOMPANY
Assign UDAs to appropriate Entity and Account members
🔭
The Oracle
Metadata Expert
🗺 Part II · Lesson 7 · 175 XP

⚗ Member Formulas & Substitution Variables

Part II · Metadata Lands · Lesson 4 of 4

The Alchemist's Secret

Some accounts need no manual input — they are calculated from others. Gross Profit is always Revenue minus COGS. Variance is always Actual minus Budget. These truths are encoded as Member Formulas, spells that keep Vision's numbers consistent without human intervention.

Member Formulas — Essbase Calc Syntax

Common Member Formulas
/* Gross_Profit formula (attached to Gross_Profit member) */ "Total_Revenue" - "Total_COGS"; /* Gross Margin % — with zero-division guard */ IF ("Total_Revenue" != 0) "Gross_Profit" / "Total_Revenue" * 100; ELSE 0; ENDIF /* Budget Variance — Actual minus Budget */ @MEMBER("Actual") - @MEMBER("Budget"); /* YTD accumulation */ @SUM(@RANGE(Jan, @CURRMBRRANGE(Period, SAMEDIM, BEFORE)));

Substitution Variables

Substitution variables are application-level globals that can be referenced in any formula, business rule, or form. Update once → propagates everywhere.

VariableValueUsed In
CurYearFY2025Default year for forms, rules, reports
CurPeriodMarCurrent planning period — rolling forecast forms
BudgetYearFY2026Annual budget cycle forms
FxRate_EUR1.08Currency rules for EUR entities
LockDate20250228Groovy validation rules (date-lock checks)
💡Professional Practice: Update CurYear and CurPeriod via EPM Automate (epmautomate CLI) at the start of each period. All 50 forms advance automatically without any manual edits. One script command changes the entire system's perspective simultaneously.
🗺 Quest Tasks — Lesson 7
Write the Gross_Profit member formula in Essbase calc syntax
Create Gross_Margin_Pct formula with zero-division guard
Set up 5 substitution variables: CurYear, CurPeriod, BudgetYear, FxRate_EUR, LockDate
Reference a substitution variable in a business rule and test it
🔭
The Oracle
Formulas & SubVars Expert
🌊 Part III · Lesson 8 · 175 XP

🌊 Data Load & Calculation

Part III · Resource Crossing · Lesson 1 of 1

The Flood Gate Opens

The cube is built. The hierarchies stand. Now comes the flood — years of Vision Corporation's financial history, pouring in from the General Ledger. You must guide this torrent through Data Integration, transforming raw GL data into the dimensional intersections that EPBCS can calculate and plan from.

Data Integration — Architecture

📊
Source
ERP/GL file
Import
DI Inbox
🗺
Map
Dimension maps
Validate
Check errors
📤
Export
Load to EPBCS
DI ConceptDescriptionVision Example
LocationA source-to-target loading configuration"Vision_US_Actuals" loads US GL → EPBCS Actual scenario
Import FormatHow source file columns map to DI fieldsGL export has Period "2025-03" → maps to "Mar"
MapsSource member → EPBCS member translationGL Account "4000" → EPBCS "Product_Revenue"
Data RuleEnd-to-end load config with scheduleRuns nightly at 11pm to load daily actuals

Load Modes — Critical Distinction

🚨Replace vs Accumulate: Always load actuals in Replace mode for closed periods. Loading in Accumulate when you meant Replace doubles every number — and this is discovered during the Board presentation, not before.

Running Calculations

Post-Load Calculation Sequence
/* Step 1: Aggregate hierarchies */ CALC ALL; /* Step 2: Force-recalculate formula members */ CALC DIM(Account); /* Step 3: Currency translations (if multi-currency) */ FIX(Budget, FY2025) @XREF(CurrencyRates, USD); ENDFIX
🌊 Quest Tasks — Lesson 8
Configure a DI Location for Vision US Actuals
Create Import Format mapping GL account codes to EPBCS members
Build dimension maps for Account, Entity, and Period
Run a Data Rule and validate the loaded data in a form
Execute CALC ALL and verify Net Income populates correctly
🔭
The Oracle
Data Integration Expert