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:

  1. 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.
  2. 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.
  3. 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.