How to decide whether to build a New Model or add the new functionaliy into an exisiting model
I am about to start modeling our Sales Commission Payments process, but I am wondering whether to build it as a stand alone model or add the functionality within our existing Operating Costs Model.
The Calculation for the actuals (which is the part of the process that currently exists) will work of a set of lists which are not currently within the existing model, but once we have done phase 1 to build the payment calculation, we will then look at using that calculation to feed back into the operating cost model to help us budget better for the Sales Commission, so we'd then want to tie up the employee and the cost centre to the employee and the cost centre within the existing model.
What would be the most efficient way to build this?
Great question and I'm sure there are multiple ways to approach this.
My recommendation would be to keep it within the existing model simply because of the requirement to feedback the output of the sales calculations into the operating cost model. Having this connection makes it much easier to interogate the values being produced by the sales calculation piece.
If common dimensions are used within the new process keep them the same and where applicable for relationship you could use mapping modules.
Also the benefit is that you can keep it one controlled environment than 2.
Whilst it is usually better/simpler to keep everything in one place, I'll share a a couple of other considerations as to why split models (which we often consider if models get too big)
1. Are the users of the new functionality a subset of the existing users, or completely different. If they are different than administration/security is easier if they are in separate models
2. Do the results of the Commissions need to be real time fed back into the next phase? If the processes are different steps (and run by different people (as above), then splitting the models can be considered and only "approved" values are sent over on a schedule
Also, I would also build a Data Hub if you haven't already to support the models. If you do this now, should you decide/need to split the models at a later date, if means the Data Hub can be used to support a single source of truth and be at the centre of the Connected Planning architecture that you will develop
I hope that helps give more insight to the decision
The existing users will be allowed access to see the calculation and the results of it, but the team that calculate the commissions and feed in the inputs wouldn't have access to anything within the existing model.
In terms of a Data hub, we have a functional area within our model which we have called Data Hub, which is where all our input data comes in, but we don't have a separate Data hub which then feeds into the models. Would you recommend splitting this out entirely?
Thank you, I'll take a look at those and work out what we might need to do. When we built this model with our partner that's how he set it up, This is my first model, so it might take me some time to digest and work out what would be my best way forward to work on changing this to be ready for scalability in the future as we do have more builds planned.
1. In your existing model, document what lists and data are updated from source systems
2. Copy the model and call it data hub (sorry not very imaginative)
3. Delete all of the Planning modules
4. Look at the imports to the key lists and data modules from source systems; the actions should still be there. They should still run, although you will probably need to upload the files again if you want to test
5. Create system modules for the key lists and create saved views to provide the source for the export to the planning model
6. In the planning model create imports pointing to the Data Hub for the lists and data modules
7. Copy the planning model and test the imports, To be safe, I would delete all elements and the re-import; you obviously should have the same as you planning model
8. Assuming all is in order, you can then delete/tidy up the external import processes in the planning model and use the Data hub imports/processes
I hope helps
Start slowly and be methodical and you shouldn't have any issues