# facebookarchive/planout

PlanOut is a library and interpreter for designing online experiments.

Repository: https://github.com/facebookarchive/planout
Canonical: https://ross.abutalabs.com/products/planout
Homepage: http://facebook.github.io/planout
Language: JavaScript
License: NOASSERTION
License Family: other
Archived: true
Last push: 2021-03-19T22:24:45+00:00

## Health v2 (maintenance only)
Score: 10/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 4603, "days_push": 1993, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, archived, no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1688, forks 217 (observed 2026-08-28T04:05:22.360665+00:00)

## What it is
PlanOut is a framework and domain-specific language for online field experimentation, letting developers define how units (e.g., users) are deterministically mapped to experiment conditions via hashing. It ships a Python reference implementation plus interpreters and SDKs for Java, JavaScript, and PHP, along with a web-based editor and compiler.

## Use cases
- run A/B tests on button colors and text
- randomly assign users to experiment variants deterministically
- manage multiple mutually exclusive experiments with namespaces
- log experiment assignment data for analysis
- execute serialized experiment scripts written in the PlanOut DSL
- run controlled online field experiments at scale

## When to choose
- you need deterministic, hash-based random assignment of users to experiment conditions
- you want a lightweight self-hosted alternative to hosted A/B testing platforms
- you are a researcher or small business running online experiments
- you need cross-language experiment assignment (Python, Java, JavaScript, PHP)

## When to avoid
- you need a maintained project with active support and updates
- you want a full-featured hosted experimentation platform with dashboards and statistical analysis
- you require multi-armed bandit or adaptive experimentation out of the box
- your stack has no PlanOut SDK available

## Facets
- artifact type: library
- maturity: maintenance
- function: testing, sdk, developer-tools
- domain: analytics, developer-tools, data-science
- platform: python, jvm, php, cross-platform
- tags: a-b-testing, experimentation, field-experiments, randomized-assignment, deterministic-hashing, abandoned, nodejs

## Member repositories
- facebookarchive/planout (main) score 10

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:22.360665+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:38:43.231243+00:00, confidence not recorded.
  - readme: https://github.com/facebookarchive/planout (fetched 2026-08-28T04:05:22.360665+00:00, sha c8bf57770242)
- Data as of 2026-08-30T08:39:29.467469+00:00.
