Tech Talks After Hours - OneStream Fitness
In the kickoff session of our OneStream Fitness series, Tom Linton and Roland Galli lead you through a “rule‑writing workout,” breaking down the essential dos and don’ts to help you build stronger form and healthier solutions on the OneStream platform.
Key Topics Covered
- Rule fitness defined: an ongoing practice of reviewing and improving rules across member formulas and business rules to keep OneStream applications lean, healthy, and performing well
- Consolidation dimension awareness: understanding the full range of consolidation types — local currency, post-translated, eliminations, partial ownerships, post-adjust — and ensuring rules fire only at the appropriate levels
- Base entity and consolidation conditions: using dimension conditions to restrict rule execution to base entities or specific consolidation types, preventing unnecessary calculation overhead at parent or consolidated levels
- API data calculates with filtering: adding dimension filters to API data calculate (ADC) calls to be more surgical — only calculating the specific accounts, scenarios, or members the rule actually needs
- Stacked ADCs: a common anti-pattern seen in production rules where multiple API data calculate calls are layered; this should be consolidated into a single, filtered ADC call wherever possible
- Data calculate with member loops: guidance on when member loops are appropriate and when they add unnecessary overhead — avoiding loops when a single filtered ADC can accomplish the same result
- Remove No Data: removing no-data cells before processing is a baseline best practice that eliminates empty cells from the calculation engine's workload
- Remove Zeros: a stronger cleansing step that removes zero-value cells as well — appropriate when zeros carry no meaningful value for the calculation
- Careful dim variable management: avoiding re-declaring (dimming) variables inside loops or repeated code blocks — unnecessary dim statements add overhead and should be placed at the appropriate scope level
- Removing unused variables: auditing rules to comment out or remove variables that are declared but never used — dead code adds clutter and can slow rule compilation and execution
- Testing new rules safely: using an If statement to restrict a new or modified rule to a single test entity — the 'Ferrari' technique for validating logic without risk before opening the calculation to the full dataset
- Iterative rule writing mindset: normalizing the practice of writing imperfect rules first and refining — administrators should not be afraid to revisit working formulas and apply fitness improvements systematically

