One money model, written twice on purpose
Every profit total in the product comes from one module, and the same rule exists as SQL in the database so a trigger cannot compute one formula while the screen computes another. The two move in one commit or neither moves. With no revenue recorded, profit is reported as unknown rather than as a loss, and the costs already spent are shown separately rather than dropped, hiding them would overstate profit, which is the opposite lie.
Proof
lib/deal-money.ts, supabase/migrations/*_profit_has_one_writer.sql


