Splitstreamportfolio demo

Bucketing visualizer

The same SHA-256-based bucketing function the Splitstream SDKs ship — runs entirely in your browser (no API roundtrip). Paste sample identifiers, edit the variant weights, watch the cumulative distribution converge. The corpus drift test in CI checks that this function returns the exact same numbers as the PHP and Python ports against the shared corpus.

Variants
50.0%
50.0%

Bucketed: 0 units

ready
UnitNormalisationBucketVariant

Notes

  • UTF-8 NFC normalization is applied to experiment_key and unit_id before hashing. The normalisation column shows when the input wasn't already canonical (try pasting a decomposed café — looks identical, hashes differently without NFC).
  • Production assignment is server-side. The SDK reads the variant from the /v1/assign response (which also writes the sticky assignments row) — it does not run this function. The local bucket() is for offline preview and the corpus drift test.
  • The distribution converges to the configured weights at ±1% at n=100,000 — covered by the bucketing-corpus property test in CI (see tests/Unit/BucketingCorpusTest.php).