🧠 TM1 Rules - IBM Planning Analytics
Explore the inner workings of Rules in IBM Planning Analytics. A complete guide to sparse consolidation, in-memory logic, and conditional feeders for Consultants


🧠 Introduction: The Logic That Breathes Life into real-time, in-memory performance in TM1 Models
In the world of IBM Planning Analytics (TM1), Rules are the logic engine behind real-time calculations and business logic embedded in the multidimensional model.
For Consultants navigating the future of enterprise analytics, understanding how TM1 Rules work — especially in areas like sparse consolidation, in-memory computing, and conditional feeders — is vital.
“If TurboIntegrator is the heart, Rules are the nervous system of IBM Planning Analytics — fast, reactive, and intelligent.”
Let’s unpack this essential component and elevate your TM1 mastery.
📜 What Are TM1 Rules?
Rules are line-based scripting logic written directly against TM1 cubes. They dynamically calculate values across dimensions without physically storing them — making your models lightweight, flexible, and fast.
Unlike TI processes (which run once to load/update data), Rules are persistent and recalculated in real time, driven by user interaction or data changes.
📌 Key Benefits of Using Rules
-
⚡ Real-Time In-Memory Calculations No need to run batch jobs — changes reflect instantly.
-
🏗️ Centralized Business Logic Keep logic inside the cube, not in spreadsheets or disconnected code.
-
🔐 Security-Aware Calculations TM1 Rules respect security hierarchies automatically.
-
🧩 Multidimensional Breadth Write logic across combinations of any number of dimensions.
🔎 Core Concepts of TM1 Rules
1️⃣ [Sparse Consolidation]: Taming the Empty Space
In TM1, most cubes are sparse — many dimension intersections have no data.
To optimize performance:
- Use
SKIPCHECK
at the top of your rule to skip default consolidations. - Define
FEEDERS
to tell TM1 what must be recalculated.
SKIPCHECK;
['Total Revenue'] = N: ['Unit Price'] * ['Units Sold'];
FEEDERS;
['Unit Price'] => ['Total Revenue'];
['Units Sold'] => ['Total Revenue'];
✅ Sparse optimization is the backbone of enterprise-grade performance.
2️⃣ [In-Memory Access]: Speed of Thought Calculations
TM1 is built on a 64-bit in-memory architecture.
- Rules are executed in memory.
- There's no need to fetch from disk.
- Results are calculated and visible immediately, ideal for live decision-making.
This architecture supports high-volume enterprise data while remaining lightning fast for end users.
3️⃣ [Conditional Feeders]: Feeding Only What’s Needed
Feeders are used to “light up” consolidated cells. But feeding too much = performance drop.
Enter Conditional Feeders — logic-based feeders that only feed when criteria are met.
['Actuals', 'Amount'] => IF(['Amount'] <> 0, ['Total'], STET);
Benefits:
- Save memory.
- Avoid overfeeding.
- More elegant rule models.
💡 Think of conditional feeders as precision targeting for your logic.
✍️ Rule Syntax Basics
Here’s a sample syntax for a TM1 rule:
['Net Profit'] = N: ['Revenue'] - ['Cost'];
Components:
['Net Profit']
– Target cell.= N:
– Applies only to leaf (N-level) elements.- Expression – Any valid TM1 arithmetic or function.
🧰 Advanced Topics & Best Practices
📦 Cube-to-Cube Rules
Reference values from another cube:
['Cost'] = DB('CostCube', !Product, !Month, 'Amount');
🧾 Use of ATTRS, ELISANC, DIMIX
Example:
['Comment'] = S: ATTRS('Product', !Product, 'CommentText');
- Great for attribute lookups.
- Avoids hardcoding.
- Promotes dynamic models.
⚠️ Avoid Overfeeding
Common mistake: feeding too broadly.
- Use conditional logic.
- Use FEEDSTRINGS only when truly needed (they’re heavier).
- Leverage Control Cubes to test and monitor feeder impact.
📊 TM1 Rule vs TI Process: Who Does What?
Feature | TI Process | TM1 Rule |
---|---|---|
Used For | Data load/transformation | Real-time calculations |
Execution Type | Batch | On-demand, in-memory |
Supports Complex Logic | ✅ Yes | ✅ Yes |
Real-Time Recalculation | ❌ No | ✅ Yes |
Feeder Required? | ❌ No | ✅ Yes (if SKIPCHECK used) |
Use TI for movement, and Rules for logic.
🧠 Tips for TM1 Architects
✅ Comment Your Rules
Use #
to explain logic line-by-line.
✅ Modularize with Rule Files Split rules into modular .rux sections per business domain.
✅ Use Control Cubes Log rule outcomes for validation and test feedback.
✅ Test Sparse Conditions Thoroughly Don’t assume your rule works in every slice — test against sparsity!
✅ Track Feeder Paths Use Trace Feeders to identify what’s being fed and why.
“Write rules as if you’ll debug them in a 3AM production call.”
👓 Debugging Rules: Think Like a Detective
🛠️ Use View Construct Mode Enable this to see what gets calculated vs. what’s stored.
🔍 ASCIIOutput in TI Write control logs with data to check correctness.
🔥 TurboFeederTest cube Build a diagnostic cube to test conditional feeders on dummy data.
“The smartest rule writers test more than they trust.”
🚀 Final Takeaways
- TM1 Rules are powerful real-time logic engines.
- Mastering sparse consolidation, conditional feeders, and cube-to-cube logic is critical.
- Feeding smartly is more important than feeding everything.
- Embrace rules as part of your architectural mindset, not just technical implementation.
“In a Sanatani sense, TM1 Rules reflect the power of sutras — concise, intelligent expressions that unlock vast meaning and harmony within enterprise data models.”
Whether you're engineering a forecast model or supporting a financial close, Rules will make or break your model’s speed, accuracy, and maintainability.