Service pricing should define the unit being priced, keep currency explicit and preserve exact numeric values.
A default rate and a negotiated custom rate serve different purposes. Choosing a default should preserve a stored custom value. Availability and price inheritance are independent decisions; a missing price is not an approved zero price.
Historical amounts retain their original currency and rate snapshot. A currency correction must be deliberate and auditable rather than silently converting earlier records. Authorization and validation belong on the server.