The observation deck
A 47-minute allocation run becomes a 90-second run — not through code changes, but through observation and targeted tuning. Calculation Analysis is the dashboard that tells you exactly where your model is bleeding time. This hall teaches you how to read the statistics, identify bottlenecks, and apply the performance settings that transform production runs from overnight jobs into on-demand reports.
Understanding Calculation Analysis
Every calculation run in EPCM leaves behind a trail of statistics. Calculation Analysis is where you read that trail — and where performance tuning begins.
After you calculate a model using Calculation Control, EPM Automate, or the REST API, EPCM records detailed statistics about every rule that ran: elapsed time, updated cells, scripts generated, and the execution order. The Calculation Analysis page — accessed via Home → Modeling → Calculation Analysis — displays these records and lets you generate diagnostic reports.
For NovaPrism's M01 (Actuals Allocation Process), a typical monthly close run touches all 5 rule sets, 18 rules, and writes to roughly 4,200 cell intersections. When the model runs in 90 seconds, Finance closes the books on time. When it takes 47 minutes, the CFO starts asking questions. The difference is almost always visible in the statistics.
calculateModel via EPM Automate in a nightly scheduled script — not via the Calculation Control UI. After the run, exportData archives the statistics before auto-purge removes them. Groovy adds in-product validation before the run and writes a completion status flag to the cube after. For the full automation architecture — EPM Automate vs Groovy, the hybrid pipeline, and all EPCM-relevant commands — see the EPM Automate vs Groovy reference.The Calculation Analysis page
Each row on the Calculation Analysis page is a calculation record — a snapshot of one model run at one POV.
The Calculation Analysis page lists every calculation that has been performed on your models. Each record includes the model name, POV (Scenario, Version, Period), start/end timestamps, status (Completed, Running, Failed), and the user who initiated the run. You can select any record to generate reports or re-run the calculation.
| Column | What It Shows | NovaPrism Example |
|---|---|---|
| Model | The model name that was calculated | M01 — Actuals Allocation Process |
| POV | Point of View: Scenario × Version × Period | Actual · Working · FY24-Q1 |
| Status | Completed, Running, Failed, or Cancelled | Completed |
| Start Time | When the calculation began | 2024-03-15 09:04:12 |
| End Time | When the calculation finished | 2024-03-15 09:05:42 |
| Elapsed | Total runtime (End - Start) | 00:01:30 |
| Initiated By | User or service account that triggered the run | svc_epm_scheduler |
The three statistics reports
EPCM provides three levels of diagnostic detail. Know which report to use for which question.
The statistics that matter
Not all numbers in the report are equally useful. Focus on these five.
| Statistic | What It Tells You | Warning Sign |
|---|---|---|
| Elapsed Time | Wall-clock time from rule start to rule finish | Single rule >50% of total runtime |
| Updated Cells | Count of cell intersections written by the rule | Unexpectedly high count (millions) or unexpectedly zero |
| Scripts Generated | Number of Essbase calc scripts EPCM created to execute the rule | Custom Calc with 1,000+ scripts — missing FIX statement |
| Execution Order | The sequence in which rules actually ran (may differ from design-time order in Parallel sets) | Unexpected ordering causing data dependency issues |
| Job Log Errors | Any errors or warnings that occurred during calculation | Any error — indicates rule logic or data issue |
Execution Control — triggering calculations
Before you can analyse, you must calculate. Execution Control is where you initiate runs — and where you configure multi-POV calculations.
Execution Control lives in Home → Modeling → Models → Execution Control. From here, you can run a single-POV calculation (select one data POV, apply its own rules) or a multi-POV calculation (apply the rules from one model POV against the data from one or more different POVs). Multi-POV is useful when you have a single rule set that applies across Actual, Forecast, and Budget scenarios — you define the rules once and execute against multiple data sets.
/* Run M01 rules against both Q1 and Q2 data in a single execution */ Data POVs: Actual · Working · FY24-Q1 Actual · Working · FY24-Q2 Model POV (rules source): M01 — Actuals Allocation Process /* EPCM will run M01's 5 rule sets against both Q1 and Q2 data */ /* Two calculation records will appear in Calculation Analysis */
Calculation settings that affect performance
EPCM has several application-level settings that can dramatically change calculation behaviour. Know what they do before you touch them.
Common bottleneck patterns
Most slow models fall into one of these four patterns. Learn to recognize them from the statistics.
| Pattern | Symptom in Statistics | Root Cause | Fix |
|---|---|---|---|
| Unscoped Custom Calc | One Custom Calc rule takes 40+ minutes; "Scripts" count in thousands | Missing FIX statement — EPCM iterates every cell intersection | Add FIX to restrict calculation to required members only |
| Missing NONEMPTYTUPLE | Custom Calc rule slow despite FIX; Updated Cells count lower than Scripts count | Script iterates over empty dimension combinations | Add NONEMPTYTUPLE(dim) to skip empty cells |
| Overly broad allocation | Allocation rule "Updated Cells" is millions — far more than expected cost objects | Allocation destination is too broad (e.g., all Customer × Product × Region combinations) | Restrict destination POV or use driver filters |
| Serial set serializing independent rules | Multiple rules in a Serial set show stacked elapsed times; no data dependency exists | Rules that could run in parallel are forced to run sequentially | Move independent rules to a Parallel set or create separate Serial sets |
NovaPrism M01 tuning walkthrough
See how targeted changes transform NovaPrism's 47-minute M01 run into a 90-second production-ready model.
The tuning checklist
A systematic approach to EPCM performance tuning. Work through this list before escalating to Oracle Support.
| # | Check | How to Verify | Fix if Failing |
|---|---|---|---|
| 1 | Run Calculation Statistics Summary | Generate the report; review Top 10 Longest Running Rules | Identify the #1 bottleneck rule |
| 2 | Check Custom Calc FIX statements | Open rule definition; confirm FIX is present and scoped tightly | Add FIX with minimum required members |
| 3 | Check Custom Calc NONEMPTYTUPLE | Open rule definition; confirm NET wraps iteration logic | Add NONEMPTYTUPLE for sparse dimensions |
| 4 | Verify Allocation destination scope | Check rule's destination POV; estimate expected cell count | Restrict destination or add driver filters |
| 5 | Review Serial vs Parallel assignment | Check rule set type; verify data dependencies actually exist | Move independent rules to Parallel sets |
| 6 | Check Logical Clear setting | Application Settings → Clear Type | Ensure Logical Clear is enabled (default) |
| 7 | Review Optimize for Reporting | Model Settings → Calculation Options | Enable unless rapid iterative testing |
| 8 | Compare before/after | Run Comparison report on pre-change and post-change records | Confirm improvement; iterate if needed |
Lab: Diagnose NovaPrism's M01 bottleneck
Practice the diagnostic workflow you'll use on real EPCM implementations.
Exam practice — Calculation Analysis
Test your knowledge on the exam topics covered in this hall.
Hall 6 exam takeaways
- Calculation Analysis is accessed via Home → Modeling → Calculation Analysis
- The Calculation Statistics Summary report shows the Top 10 Longest Running Rules
- Updated Cells count tells you how many cell intersections a rule wrote
- Logical Clear is the EPCM default and is faster than Physical Clear
- Optimize for Reporting runs Essbase aggregations after calculation — keep it enabled for production
- Multi-POV calculations can apply rules from one POV against data from multiple POVs
- A high Scripts Generated count on a Custom Calc rule indicates missing FIX scoping
- EPCM auto-purges old calculation records — archive important runs via Export to Excel