← All Use Cases
🌐
Full Factorial Design

Web App A/B Testing

Test every combination of UI design choices to find the highest-converting variant.

Summary

This experiment investigates web app a/b testing. Full factorial design to optimize conversion rate across UI variants.

The design varies 3 factors: font size, ranging from small to large, color scheme, ranging from dark to light, and layout, ranging from grid to list. The goal is to optimize 1 response: conversion rate (%) (maximize). Fixed conditions held constant across all runs include page = homepage, traffic pct = 10.

A full factorial design was used to explore all 8 possible combinations of the 3 factors at two levels. This guarantees that every main effect and interaction can be estimated independently, at the cost of a larger experiment (12 runs).

Quadratic response surface models were fitted to capture potential curvature and factor interactions. The RSM contour plots below visualize how pairs of factors jointly affect each response.

Key Findings

For conversion rate, the most influential factors were font size (46.0%), layout (39.7%), color scheme (14.3%). The best observed value was 4.69 (at font size = medium, color scheme = dark, layout = grid).

Recommended Next Steps

The Scenario

You are optimizing a web application's conversion rate by testing combinations of UI design choices. With only 3 factors and a manageable 12-run total, full factorial lets you see every combination and detect all interactions.

Why Full Factorial?

3 × 2 × 2 = 12 runs. That's very manageable, all factors are categorical, and you want to detect all interactions (e.g., does dark mode perform differently with grid vs. list layout?). Full factorial requires zero external dependencies.

Experimental Setup

Factors

FactorLevelsType
font_sizesmall, medium, largecategorical
color_schemedark, lightcategorical
layoutgrid, listcategorical

Fixed: page = homepage, traffic_pct = 10%

Responses

ResponseDirectionUnit
conversion_rate↑ maximize%

Configuration

use_cases/02_webapp_ab_testing/config.json
{ "factors": [ {"name": "font_size", "levels": ["small", "medium", "large"], "type": "categorical"}, {"name": "color_scheme", "levels": ["dark", "light"], "type": "categorical"}, {"name": "layout", "levels": ["grid", "list"], "type": "categorical"} ], "runner": {"arg_style": "env"}, "settings": {"operation": "full_factorial"} }

Notable: env argument style

Factors are passed as environment variables: FONT_SIZE=medium COLOR_SCHEME=dark LAYOUT=grid ./sim.sh. This is natural for web app testing where you might inject variants via environment config.

Experimental Matrix

The Full Factorial Design produces 12 runs. Each row is one experiment with specific factor settings.

Runfont_sizecolor_schemelayout
1mediumlightlist
2mediumdarklist
3smalllightgrid
4largedarkgrid
5largedarklist
6mediumlightgrid
7largelightlist
8smalllightlist
9mediumdarkgrid
10smalldarkgrid
11smalldarklist
12largelightgrid

Step-by-Step Workflow

1

Preview with --dry-run

Terminal
$ doe generate --config use_cases/02_webapp_ab_testing/config.json --dry-run # Prints all 12 factor combinations without writing files
2

Generate a Python-format runner

Terminal
$ doe generate --config use_cases/02_webapp_ab_testing/config.json \ --output results/run.py --format py --seed 123
3

Execute, analyze, and report

Terminal
$ python results/run.py $ doe analyze --config use_cases/02_webapp_ab_testing/config.json $ doe report --config use_cases/02_webapp_ab_testing/config.json \ --output results/report.html

Key Findings

Features Exercised

FeatureValue
Design typefull_factorial
Factor typescategorical (all 3, including 3-level)
Arg styleenv (environment variables)
Script formatpy (Python runner)
--dry-runPreview before generating
Total runs12 (3 × 2 × 2)

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: conversion_rate

The Pareto chart and main effects plot reveal which UI and content factors have the strongest influence on conversion rate.

Pareto Chart

Pareto chart for conversion rate

Main Effects Plot

Main effects plot for conversion rate

Full Analysis Output

doe analyze
=== Main Effects: conversion_rate === Factor Effect Std Error % Contribution -------------------------------------------------------------- font_size 0.7825 0.2313 43.7% color_scheme 0.7350 0.2313 41.1% layout 0.2717 0.2313 15.2% === Interaction Effects: conversion_rate === Factor A Factor B Interaction % Contribution ------------------------------------------------------------------------ color_scheme layout -0.6150 100.0% === Summary Statistics: conversion_rate === font_size: Level N Mean Std Min Max ------------------------------------------------------------ large 4 3.8800 0.9001 2.6300 4.6900 medium 4 3.3250 0.7613 2.2300 3.9900 small 4 3.0975 0.7300 2.2100 3.9900 color_scheme: Level N Mean Std Min Max ------------------------------------------------------------ dark 6 3.0667 0.5857 2.2300 3.8600 light 6 3.8017 0.8635 2.2100 4.6900 layout: Level N Mean Std Min Max ------------------------------------------------------------ grid 6 3.2983 0.8148 2.2300 4.3400 list 6 3.5700 0.8394 2.2100 4.6900

Optimization Recommendations

doe optimize
=== Optimization: conversion_rate === Direction: maximize Best observed run: #9 font_size = medium color_scheme = light layout = list Value: 4.69 RSM Model (linear, R² = 0.19): Coefficients: intercept: +3.4342 font_size: +0.2925 color_scheme: -0.2275 layout: +0.0525 Predicted optimum: font_size = small color_scheme = dark layout = list Predicted value: 4.0067 Factor importance: 1. font_size (effect: 0.9, contribution: 62.5%) 2. color_scheme (effect: -0.5, contribution: 30.4%) 3. layout (effect: 0.1, contribution: 7.0%)
← Reactor Optimization Next: ML Hyperparameters →