by Ed Merriman
| February 7, 2017
Of the many features that help TruePlanning stand out as the premier predictive cost analytics tool, TruePlanning’s ability to calibrate is frequently cited by users as the most important feature in TruePlanning. Users can create models that are highly tuned to the organizations and processes that they are modelling. The 50,000-foot description of calibration is to increase the fidelity of a model to a known process or organization by using ‘actuals’ (known result data) and driving TruePlanning inputs so that the known values are obtained.
A concrete example would be knowing the number of hours it took create a piece of software and adjusting the Organizational Productivity to get to the known number of hours. The Organizational Productivity input is a good choice for an input to be calibrated because it is a TruePlanning specific measure of an organization’s general efficiency.
Many TruePlanning users will want to perform the calibration process in ‘bulk’ because they will obtain the actual data in a dump from an accounting system or some other data store and will got lots of data at one time for multiple TruePlanning Cost Objects. The TruePlanning Excel Solution provided access to bulk calibration using the TruePlanning API. Other users build, or had PRICE build custom calibration tools. TruePlanning’s API has always had the required features to allow users to perform the steps required to perform calibration, but it was ‘an exercise left to the student’ in that users needed to build up the process manually. The benefit of this was that users could perform calibrations exactly the way they wanted to.
There were some downsides to having to create the calibration process from scratch in the API. One was the effort to build up all of the steps involved in calibration: targeting the right Cost Object, getting to the right Input, repeatedly setting the value, testing the results, and so on. A second issue was that because all the behaviors were occurring outside of TruePlanning as individual steps. The same input was being set, the entire model was being calculated, and the results were obtained and tested over and over again. A third issue was the fact that there was no guarantee that each calibration process that was created followed the exact same rules or work the same way.
The TruePlanning application has had, since its inception, a GUI based calibration process. This process was not, however, exposed through the API… Until now! With TruePlanning 2016 (16.0.6187.2) users have access to a calibration process through the API. This means users will gain the benefits of access to an easy to use, repeatable, and better performing calibration process through the API. It’s easy to use because it’s a simple object with a few parameters. Its repeatable because the same code will be executed for each calibration. Its better performing because the data will not need to ‘round trip’ between the API and TruePlanning, and instead the data stays in TruePlanning through the entire calibration process.
The heart of the calibration feature of the TruePlanning API is the “Calibration” object. It has multiple parameters and two methods that are used to set up a standard calibration. There are other properties and methods not listed below that will be covered in future blogs and are covered by the TruePlanning COM API documentation.
The following is a simple snippet of code showing the use of the new calibration feature of the API in VBA:
‘ this is a snippet of code, the full code can be provided upon request
‘ costObject and proj variables are declared earlier
Dim tInput as TruePlanningApi_16_0.Input
Set tInput = costObject.Inputs.ItemByName(“Organizational Productivity”)
Dim cTest As TruePlanningApi_16_0.Calibration
Set cTest = proj.Calibrations.New("COne")
targetOutputPath = costObject.Path & "::Labor Requirement"
cTest.CostObjectOutput = targetOutputPath
cTest.Tolerance = 1 ' this is a % value 1 = 1%, 10 = 10%
cTest.MaxIterations = 100
cTest.Target = 1000
dim outputNumb as double
outputNumb = cTest.CalibratedInput ‘ 4.2
outputNumb = cTest.OutputAnswer ‘ 1006
outputNumb = cTest.LastIteration ‘ 8
Dim outputStr as string
outputStr = cTest.OutputName ‘ Labor Requirement
Our “inside” behavior of calibration is now “out”. To those familiar with the TruePlanning API, setting up a calibration is now very simple, and highly repeatable.
If you would like a working sample in Excel VBA, let us know.
Please feel free to contact PRICE if you have any questions about this feature, TruePlanning, TrueMapper, or any other PRICE products and services.