Requirements
Required number of IDsi The number of distinct identifiers this namespace must ever issue. Plain digits or a compact suffix: 6k is 6,000, 6m is 6,000,000, 6b (or 6g) is 6,000,000,000 and 6t is 6,000,000,000,000. When you leave the field the number is restated in the standard display format. Deriving from operational demand (below) uses the larger of the two values.
Or derive from operational demand
New records per dayi How many new records this namespace issues on an average day. Combined with the retention period it sizes the demand the namespace must hold at once.
Retention period in daysi How long a code must keep working after it is issued, in days. Records per day times retention gives the volume of live codes; codes that outlive their retention can be retired.
Maximum displayed lengthi The longest displayed string a candidate may produce, checksum and any separator included; candidates may be shorter, never longer. The solver ranks shorter candidates first, so this is a ceiling, not a target.
Maximum utilizationi Hides any candidate whose required capacity exceeds this fraction of its total capacity. Lower values reserve more growth headroom: at 50% you can double demand before you must re-issue a longer code and migrate references. Fuller codes are shorter today but risk exhausting the namespace at exactly the moment the product is succeeding.
50%
70%
80%
90%
100%
Base alphabeti The pools of symbols the solver may draw body characters from; a candidate's alphabet comes from whichever of these you allow. Digits only: 0-9, 10 symbols, needs the longest codes for a given capacity. Uppercase letters: 26 symbols. Alphanumeric: digits plus uppercase, up to 36 symbols before safety exclusions. Visual safety exclusions are applied on top of whichever modes you allow, and the exact resulting alphabet is shown for every candidate.
Digits only
Uppercase letters only
Alphanumeric
Visual safetyi Applied to every alphabet the solver considers: look-alike symbols are excluded so printed codes are harder to misread. None keeps all symbols. Light drops O, I and L (covered by 0 and 1). Medium also drops B and S. Heavy is not cumulative: every candidate switches outright to the reviewed 32-symbol alphabet, which keeps B and S but drops U. A typed letter that was stripped still decodes without ambiguity: O, I and L read as 0, 1 and 1, B and S as 8 and 5, and U as V, so there is never a wrong choice. Higher safety shrinks the alphabet, so a candidate may need a longer body to reach your required capacity.
None
Light (drop O, I, L)
Medium (also drop B, S)
Heavy (safe 32 alphabet)
Spoken safetyi For codes read out over the phone. For each sound-alike pair, one letter is removed from the alphabet so it can never appear in a new code, and a code that contains it anyway decodes automatically as the kept letter: no ambiguity, no guessing. Light removes D (decodes as B) and T (decodes as P). Medium also removes N (decodes as M) and W (decodes as V). Heavy also removes S (decodes as F) and G (decodes as C). Pairs run from the most common confusions at Light to the least at Heavy. Each removed letter shrinks the alphabet, so higher levels need either a longer body or accept less capacity, and the solver prices that in automatically.
None
Light (drop D, T)
Medium (also drop N, W)
Heavy (also drop S, G)
Profanityi Profanity controls keep codes customer-safe. Strip vowels removes A, E, I, O and U from every alphabet so no English word can ever be spelled; it shrinks the alphabet, which lowers capacity and may lengthen the body. Blocklist keeps the full alphabet but refuses to issue or accept any code containing a common English profanity; those identifiers are reserved and skipped, marked as blocked in the examples. None applies no check.
None
Strip vowels
Blocklist
Checksum lengthi Appended validation symbols; they detect typos but add no identifier capacity. The solver treats this as a floor: candidates may use more checksum symbols, never fewer. 0: typed errors are never detected and silently hit wrong records. 1: catches all but about 1 in 26 random mistakes and about 98.8% of single-symbol substitutions; suited to assisted support, where a human resolves the misses. 2: modulus 676 checksum, provably catches every single-symbol substitution and every adjacent transposition; the right choice for unattended self-service. 3: stronger still against random corruption.
0 (no detection)
1 (assisted support)
2 (self-service)
3
Repetition filteri Applied to every candidate and the expandable design: any code with a run of identical symbols this long or longer is refused, because humans mis-count long runs (00000 read as 0000) and no checksum can catch a symbol that was never typed. Runs are measured on the raw code, ignoring delimiters. Blocked identifiers are reserved and skipped; candidate capacities still count them (well under 0.5% of ids). 4 is what every frozen tier ships; Off disables the filter.
Off
3
4 (frozen tiers)
Separator (optional)i Optional one-character separator inserted between groups of the code, for example a hyphen turning JCG4JUY into JCG4-JUY. An empty value means no separator. Each separator position counts toward the maximum displayed length, so adding one can push a candidate from feasible to too long. The separator never changes capacity or the checksum; it is grouping only, and the character must not be an alphabet symbol.
Permutationi Permutation shuffles which code an identifier gets, hiding obvious sequence in the previews. It changes nothing about capacity, length or validation, and it is not access control. The preview uses a public built-in key; a real application generates its own key and keeps it server-side. It also costs compute: with permutation off, encode is about 20x faster and decode about 13x faster (1 microsecond per code instead of tens of microseconds), so it matters for bulk encoding, not per request. Permutation is not part of the exported design.
Preview with permutation on
Copy export JSON