This will largely depend on what your app formula is doing.
It is frequently necessary (and beneficial) to build interim source tables - tables that are ONLY used to facilitate processing. For example, if I wanted to produce a Monthly Sales report that reflects the Sales trend per day, I would build a table that holds the Daily summarized values AND when each Sales Order is placed, I would update, through automation, this interim Daily Summary table.
When its time to produce the Monthly report, I simply need to pull the values from the interim table. This approach accomplishes a few things actually:
- Most importantly…the processing to compute the Daily values is spread out over time in small background processes.
- I always have access to the summarized data so I could show history reports/charts easily if ever needed.
- If I wanted, I could show in the app a chart or report for the current Month so far.
In your case, is sounds as though you are gathering 20 different values to compute a final score. At some point, the final score will be challenged as incorrect and you’ll likely need to know what values contributed to that final score. Gathering those values in an interim table over time will be way more efficient and much easier to analyze any computing issues or questions that arise.
You too will have the side-benefit of being able to actually display to the users the values that make up the final score so they can see for themselves.
I hope this helps!!