Why everything is counted in integer millimes
A dinar is a thousand millimes, and no floating-point number touches your balance. Here is why.
Most AI platforms bill in dollars, with prices like $0.00042 / 1K tokens. We
bill in integer millimes, and the reason has more to do with arithmetic than
with localisation.
The trouble with floats#
A balance stored as a floating-point number eventually lies. 0.1 + 0.2 is not
0.3 in binary, and a wallet that accumulates tens of thousands of small debits
drifts in a way that cannot be explained to a customer — let alone an auditor.
A millime is the indivisible unit of the Tunisian dinar: 1 TND = 1,000 millimes. Storing integer millimes makes every balance exact, every debit exact, and the sum of the debits exactly the change in balance.
What that means in practice#
- A model's price is an integer number of millimes per million tokens.
- A request's cost is rounded up to the millime, once, at billing time.
- The wallet balance and the sum of unexpired credit lots must be equal. That is an invariant, checked by a dedicated script.
The rounding is visible#
Rounding up to the millime means a tiny request still costs one millime. That is deliberate: the only honest alternative is to charge zero, and a platform that charges zero for real work ends up taking it back somewhere else.
Exact rates are on the Plans and pricing page — and that table is rendered from the same registry the gateway bills with, precisely so it cannot drift.