The answer needs to be exact (not approximate) - You need to compute the answer quickly (simulation takes time) - You want to understand *why* the answer is what it is (formulas reveal structure) - You need to communicate the logic to others (formulas are more transparent than code)