TangentLens

Home / Product / Experiments & flags

Ship it, roll it out, and find out if it worked.

Flags and experiments in the same place as the metrics they move. No exporting assignments into a second tool and hoping the two systems agree about who saw what.

Assignment

Deterministic, and identical in every SDK.

A user's variant is derived by hashing their identifier with the experiment key. The same person gets the same variant on web, on iOS, on your server — without a network call, and without a shared assignment database to go down.

The algorithm is specified in the documentation and covered by the same conformance suite that every SDK runs, so "it should match" is a tested claim rather than a hope.

checkout-v4 · assignment
// identical in all nine SDKs
bucket = hash(user_id + ":" + experiment_key)
variant = bucket % 100 < 50 ? "control" : "treatment"

// no network call, no shared state, no drift

Readouts

A result that tells you how sure it is.

Exposure is tracked as an event, so the analysis runs on who actually saw the variant — not on who was theoretically eligible. The readout reports the difference, the interval around it, and whether the test has collected enough data to say anything yet.

If it has not, it says so. An experiment that has not reached a conclusion is a normal state, not a number to squint at.

checkout-v4 · conversion
VariantUsersConvertedRate
control6,2401,48923.9%
treatment6,1981,70227.5%
+3.6pp · 95% CI [1.9, 5.3] · enough data to call

Feature flags

Roll out by percentage, kill instantly.

Ship code dark, enable it for one tenant, then five percent, then everyone — and turn it off in one click when the graph goes the wrong way. Flags are evaluated locally, so a flag check never adds latency to your request path.

The honest part

What this is not.

There is no sequential-testing or always-valid-inference engine yet, so peeking at a running experiment carries the usual risk of reading noise as signal. We say so in the product and in the docs rather than letting you learn it the expensive way.

Run your next release as an experiment.