A zero-stake Free Game cannot have a finite return-to-stake percentage
Published — UTC

Dividing an award by a zero recorded stake does not produce a finite return-to-stake percentage. A free-game row can show an award while still being unsuitable for that individual ratio.
Define the scope before dividing
Our invented record has one paid entry costing 2 units and one associated free-game award of 3 units. There are no other awards, costs or adjustments. This is not a Super Ace product specification or play test.
| Scope | Recorded stake | Recorded return | Ratio |
|---|---|---|---|
| Free-game row alone | 0 | 3 | Undefined: denominator is zero |
| Complete stated paid-entry scope | 2 | 3 | 3 / 2 = 150% |

The second row uses an expressly defined combined boundary. It does not mean every free-game award belongs to the nearest paid spin. The actual relationship needs the feature and round identifiers.
Do not replace zero with an invented stake
Adding 0.01 just to obtain a large percentage changes the data. Keep an undefined ratio labelled undefined. Python's zero-division reference reflects the same arithmetic boundary; the original ledger is not a claim about a supplier's software.
A feature bought at a separate price, an awarded feature and a promotional free round can have different cost relationships. State which applies instead of using the word “free” as the entire accounting rule.
Separate return percentage from net percentage
Within the stated complete scope, total return is 3 and total cost is 2. Net is 3 − 2 = 1. The return-to-stake percentage is 150%, while net divided by stake is 50%. Labeling both as “profit percentage” would hide the returned stake.
If the wallet started at 10 with no other activity, the linked paid cost and feature return would produce 10 − 2 + 3 = 11. The zero-stake feature row adds its confirmed return once; it does not erase the cost of the documented entry that belongs to this scope.
Aggregate sums rather than averaging incompatible rows
Add a second independent paid-entry scope costing 8 and returning zero. Across both complete scopes, total stake is 10 and total return is 3, so the combined observed ratio is 30%. Averaging the individual 150% and 0% would give 75%, giving equal weight to scopes with unequal stakes.
The free-game row's undefined individual ratio is not 0% and should not be inserted as another zero in an average. Preserve stake and return fields so the correctly defined totals can be calculated without manufacturing a row-level percentage.
A feature summary can duplicate its components
If three child awards of 1 each are already included in a feature summary of 3, the return is 3, not 6. Select one complete representation or reconcile the parent-child relationship explicitly. A summary display, a ledger credit and an animation can all describe the same money.
If the feature's paid-entry link is unknown, do not borrow a nearby 2-unit debit to make the ratio calculable. Keep the row-level percentage undefined and the combined scope unresolved. Feature IDs, accepted round IDs and any separate purchase records establish the cost boundary; the word “free” alone cannot do so.
