OpenPharmaStability — inspectable shelf-life analysis

A reproducible shelf-life decision, with the model record attached.

OpenPharmaStability analyzes CSV or XLSX stability data locally in Python using ICH Q1E-inspired fixed-effect batch regression and one-sided confidence-bound crossing.

$pip install openpharmastability
Supported shelf life17 months
Governing batchB2
Modelcommon slope + batch intercepts
Statistical crossing17.954842 months
Slope interaction p-value0.9056
Batch intercept p-value1.658e-16

The decision is visible in the evidence.

Golden assay example: 42 rows, 3 batches, 7 time points from 0 to 24 months. The lower one-sided 95% confidence bound crosses the 95.0% specification at 17.95 months.

Open the complete report
Assay confidence-bound plot for three batches showing a 17.95-month crossing of the lower specification limit
Real output from the Python engine—not a decorative dashboard. The supported shelf life is rounded down to 17 months; B2 is the governing batch. Observed coverage extends to 24 months, so the result does not depend on extrapolation.

Method record

EnginePython statistical engine; local execution
ModelFixed-effect batch regression; common slope with batch-specific intercepts
PoolabilitySlope interaction p=0.9056; batch intercept p=1.658e-16
Decision ruleOne-sided 95% mean-response confidence bound crossing the lower specification limit
Observed data42 rows; 3 batches; time points 0, 3, 6, 9, 12, 18, and 24 months
OutputsHTML report, JSON decision record, confidence plot, and optional PDF
Multi-attribute sampleimpurity_a limits the product decision at 7 months

Supported scope

  • CSV and XLSX stability data
  • Fixed-effect multi-batch regression
  • One-sided confidence-bound crossing
  • Multi-attribute limiting decisions
  • Inspectable report artifacts

Explicit boundaries

  • Regulatory approval or submission
  • Validated GxP operation
  • 21 CFR Part 11 controls
  • Automatic scientific judgment

Local execution

Your data stays on your machine. The public site is documentation and sample evidence; analyses run through the installed Python package and local workspace.

Decision support only

OpenPharmaStability provides statistical evidence for qualified review. It does not replace scientific judgment, quality review, or regulatory decision-making.

From stability data to an inspectable record.

The browser presents the evidence. The Python package owns the calculations.

Prepare data

Provide batch, condition, time, attribute, value, and specification columns in CSV or XLSX.

Run locally

The engine validates the data, tests batch poolability, fits the model, and computes the bound.

Review evidence

Inspect the plot, assumptions, warnings, model choice, and machine-readable record.

Use professional judgment

Bring the evidence into a qualified stability review without overstating the software's regulatory role.

Install and launch the local workspace

$ pip install openpharmastability
$ openpharmastability-ui --host 127.0.0.1 --port 8765

Run the golden example from the CLI

$ openpharmastability analyze examples/assay_3batch.csv \
    --condition "25C/60RH" \
    --attribute assay \
    --output report.html