The fare is stored, not computed
Recalculating from distance and a current rate would restate every historical trip the day pricing changes, and would ignore surge, tolls and promotions that applied at the time. Freezing fare on the ride is what makes a receipt true. distance_km is kept beside it for the same reason — as evidence of how the number was reached, not as an input to recompute it.