Some of what we sell, we buy. A domain is the clearest example: we pay a
registrar a wholesale price, then pass it to you with a small margin. Easy in
theory — until you try to put an actual number on it. We pay in US dollars; you
pay in your currency. The wholesale cost changes. And $10.46 × 1.1 is $11.51,
which is not a price anyone should ever see.
So we wrote a tiny rule instead of guessing. Here's the whole of it.
The problem with the obvious approaches
A flat markup produces ugly numbers — ₹1,043.20, £9.07 — and they drift every time the wholesale cost or exchange rate moves. A hardcoded price list ("a .com is ₹999") goes stale the moment the cost or rate changes, and it only covers the currencies you remembered to list. It's hard to keep all three — honest, clean, and durable — at once.
The rule, in three steps
For any domain, we compute the price live:
- Convert on today's rate. We pull a fresh exchange rate once a day and add a small buffer so the rate covers our conversion cost — not yesterday's mid-market number.
- Aim for a margin band, not a number. We target a narrow band over cost (a single-digit percentage), not one fixed markup. A band gives us room to land on a nice price instead of whatever the multiplication spits out.
- Snap to a clean price inside the band. We pick the cleanest "9-ending" price that falls inside that band — ₹999, $11.99, £9.99, AED 46.99. If several clean prices fit, we take the middle one; if none do, we take the next clean price just above the floor.
The clean numbers aren't a lookup table — they're generated from the number
itself (the next …9, …99, or ….99 at that currency's scale), so the rule
works in any currency we bill, with no list to maintain.
Why 9-endings and not ₹1,111
We seriously considered repeating-digit prices — ₹1,111, ₹2,222. In some markets a repeating number even reads as lucky. We went with 9-endings everywhere anyway, for two reasons. First, the left-digit effect — that ₹999 reads as "₹900-ish" and ₹1,111 reads as "over a thousand" — is a well-known effect in pricing, and it tends to read as value rather than premium. Second, and more important for us: one rule that's good everywhere beats a rule that's clever in one place and odd in another. A repeating number that charms one market looks strange in the next. A 9-ending travels better — it reads the same way in every currency we bill.
The honest caveat
This is a judgment-based design, not an experiment. We set the band and the buffer by judgment, not against conversion data — so treat the exact percentages as ours to revisit, not fixed. And because clean numbers are coarse, the realized margin floats within a range rather than hitting one figure; we decided a price you recognize is worth some margin variation.
What we got out of it is the thing we actually wanted: a fair, clean price in your currency, computed fresh, with nobody hand-pricing each one. The same discipline we want for everything — automate the judgment once, so the answer is consistent every time.