In this blog series, we’re reviewing OneStream’s out-of-the-box People Planning MarketPlace solution, which allows organizations to plan for employee and contractor compensations, benefits, as well as travel and expenses. The solution provides flexibility based on dashboards and SQL tables.

We discussed how MorganFranklin was able to drastically reduce a client’s People Planning calculation time by focusing on these components: allocationcalculation plansexecution lists, business rules and parallel batch size. In this final post of our three-part series, we’ll discuss how to optimize business rules and parallel batch size.

Business Rules

As noted in the earlier blog, People Planning lets us call Dashboard XFBR String functions. These rules allow for complex calculations on data from the PLP register, cubes, stage table, and other specialty planning registers. Using these rules, we can perform unlimited numbers of calculations. There are many ways to utilize XFBR rules. Let’s explore two approaches: independent and dependent.

Independent Functions


As the name implies, an independent function can be called independently of any other action. For example, the above screenshot calculates merit using salary that is calculated every time the merit calculation is executed. This calculation does not require salary to be calculated before it is run, because it calls the rule that calculates salary in the command line Dim HrlyTotalWage as Deciaml = Me.GetBaseSalary (si, globals, api, args). While this method ensures that all data that is used in the calculation will always be available, it takes longer to execute because it has to perform two calculation passes.

Dependent Functions


Dependent functions leverage results of calculations that have already taken place in the system. The screenshot above shows how the value for BaseSalary can be retrieved from the Plan Data table (Dim BaseSalary as Double = ci.SumPlanCustom(si, Criteria, “Amount”). Since Base Salary has already been calculated, it is faster to retrieve than to recalculate. While this method is faster, it depends on the sequence of the calculation plans. As discussed above, this sequence can be controlled by the execution lists.

Parallel Batch Size

This setting allows us to control how many processes are executed in parallel by the system. A lower number lets more processes get executed simultaneously. In general, a lower number will be faster. Make sure to validate data when changing this value. The calculation may be faster, but that doesn’t matter if the data is not correct. The batch size settings is available on the Global Options tab of the Settings page:


The following screenshot shows a comparison of calculation times for 2,000 employees generating 189,000 rows in the Data Plan:


And that’s it! People Planning is just one example of how utilizing OneStream’s many marketplace solutions can increase your team’s efficiency and drastically save time and effort. Want to learn more? Contact our CPM experts to see how you can get started.

Get Started Today!

Authored by: Gidon Albert