I had a similar requirement for a Form Reform application and ended up adding a maths engine to my addon.
At first I thought like @TMDesigns, why store derived values? Then realised it was much simpler to search and sort results if the calculated value was saved with the form.
Hence whilst @assadebrahim’s intended design may not be optimum for the data, maybe it simplifies things later on.
Certain derived values are best stored in the table to make it easy to run aggregate operations on various subsets. In the commercial example, e.g. margin of a subset of the SKUs.
As @JohnthFish correctly wrote, storing certain derived values in the table makes it easier to provide listings sorted in a ‘useful’ order. In the commercial example, sorting the list by margin allows either focusing on high margin items or asking for action to improve the low margin items.
If it can be calculated on form save, you can plug to on_express_entry_saved event.
Inside event, check if current express object = your_object and do the math there.