the problem with storing calculated values (ie information that could be derived from other information in the database) is that there is always the possibility of loss of integrity.
the underlying data can change, and the calculated value does not get updated - so the values are inconsistent
so the chief reasons for storing a calculated value are maybe
that it is an important value. Say an invoice total, or a VAT/Sales Tax amount, that will need to be referred to, and will not change. You could compute these by adding the invoice lines each time, but often a designer will still store the calculated figures
secondly, information that would otherwise take a long time to evaluate. Say totals of a large domain. You often see sales ledger/receivables system where the account header stores an outstanding balance. This could be calculated by adding all the transactions, but it is still common to see the total on the account header.
the downside is that you then have to be very careful over the integrity of the calculated fields, and probably need some sort of extra "checking" module to use from time to time, to verify the accuracy of the calculated fields
therefore a decision to use a calculated field is something that the designer should make in a considered way.