A refund is not the absence of a sale. It is its own event, and it deserves its own number.

I keep seeing dashboards that compute run-rate by joining a sales table to a refunds table on the fly. It looks fine until a busy refund week skews the join and the numbers drift. Then someone makes a call on bad data.

The fix is boring and it works. Store a refunded quantity right next to the sold quantity. Do the subtraction once, on write, not every time you read. Now every report reads the same number, and the math cannot disagree with itself.

This is the same instinct as keeping the model out of the source of truth. Decide the real number in one place. Let everything else just read it.