The Money Math Review ran on your codebase and found the following issues:
CRITICAL amount held as float in file payment.ts:100
Now: stores price as a floating-point number
Should: store price as integer minor units
Costs: merchant loses 1 cent per transaction due to rounding
Fix: change type to integer cents
HIGH rounding applied before discount in file order.ts:200
Now: rounds subtotal before applying 10% discount
Should: apply discount before rounding
Costs: merchant loses 0.1% of revenue per order
Fix: swap order of operations
MEDIUM currency assumed globally in file config.ts:50
Now: assumes all amounts are in USD
Should: store currency next to every amount
Costs: potential loss if a non-USD currency is used
Fix: add currency field to all money types
The operation chain is: subtotal -> discount -> tax -> platform fee -> payout
Generated from this listing's real file at upload. The full output is in your download.
⛨Free, and yours to run in your own tools. No account needed.
⛨Human-reviewedEvery listing checked before it goes live
⛨Source-stampedCarries a visible line saying where it came from
⛨Real reviewsOnly verified buyers can rate it
A Claude Code skill for any code that touches money. Money bugs do not throw: they produce a plausible number that ships and quietly moves real currency until someone notices a bank statement weeks later. Checks the four failures that cause most of it, in the order where each can hide the next: amounts held as floats, rounding applied at the wrong step (per line item then summed, or before a percentage), currency assumed rather than stored, and fees or tax computed off the wrong base. Reconstructs the actual order of operations your code implements so two code paths cannot disagree in production.