← All Use Cases
💄
Box-Behnken Design

Nail Polish Durability

Box-Behnken design to maximize chip resistance and gloss retention by tuning base coat thickness, color coat layers, and top coat formula

Summary

This experiment investigates nail polish durability. Box-Behnken design to maximize chip resistance and gloss retention by tuning base coat thickness, color coat layers, and top coat formula.

The design varies 3 factors: base coats (coats), ranging from 1 to 2, color coats (coats), ranging from 1 to 3, and topcoat thickness (mils), ranging from 1 to 3. The goal is to optimize 2 responses: days no chip (days) (maximize) and gloss retention pct (%) (maximize). Fixed conditions held constant across all runs include prep = dehydrator, cure = air_dry.

A Box-Behnken design was chosen because it efficiently fits quadratic models with 3 continuous factors while avoiding extreme corner combinations — requiring only 15 runs instead of the 8 needed for a full factorial at two levels.

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 days no chip, the most influential factors were base coats (45.9%), topcoat thickness (34.1%), color coats (20.0%). The best observed value was 9.0 (at base coats = 2, color coats = 1, topcoat thickness = 2).

For gloss retention pct, the most influential factors were base coats (40.2%), topcoat thickness (36.6%), color coats (23.2%). The best observed value was 85.0 (at base coats = 2, color coats = 3, topcoat thickness = 2).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
base_coats12coats
color_coats13coats
topcoat_thickness13mils

Fixed: prep = dehydrator, cure = air_dry

Responses

ResponseDirectionUnit
days_no_chip↑ maximizedays
gloss_retention_pct↑ maximize%

Configuration

use_cases/221_nail_polish_durability/config.json
{ "metadata": { "name": "Nail Polish Durability", "description": "Box-Behnken design to maximize chip resistance and gloss retention by tuning base coat thickness, color coat layers, and top coat formula" }, "factors": [ { "name": "base_coats", "levels": [ "1", "2" ], "type": "continuous", "unit": "coats" }, { "name": "color_coats", "levels": [ "1", "3" ], "type": "continuous", "unit": "coats" }, { "name": "topcoat_thickness", "levels": [ "1", "3" ], "type": "continuous", "unit": "mils" } ], "fixed_factors": { "prep": "dehydrator", "cure": "air_dry" }, "responses": [ { "name": "days_no_chip", "optimize": "maximize", "unit": "days" }, { "name": "gloss_retention_pct", "optimize": "maximize", "unit": "%" } ], "settings": { "operation": "box_behnken", "test_script": "use_cases/221_nail_polish_durability/sim.sh" } }

Experimental Matrix

The Box-Behnken Design produces 15 runs. Each row is one experiment with specific factor settings.

Runbase_coatscolor_coatstopcoat_thickness
11.511
21.522
3223
4221
51.522
61.522
7123
8212
91.513
10232
11121
121.533
13112
14132
151.531

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/221_nail_polish_durability/config.json
2

Generate the runner script

Terminal
$ doe generate --config use_cases/221_nail_polish_durability/config.json \ --output use_cases/221_nail_polish_durability/results/run.sh --seed 42
3

Execute the experiments

Terminal
$ bash use_cases/221_nail_polish_durability/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/221_nail_polish_durability/config.json
5

Get optimization recommendations

Terminal
$ doe optimize --config use_cases/221_nail_polish_durability/config.json
6

Multi-objective optimization

With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.

Terminal
$ doe optimize --config use_cases/221_nail_polish_durability/config.json --multi
7

Generate the HTML report

Terminal
$ doe report --config use_cases/221_nail_polish_durability/config.json \ --output use_cases/221_nail_polish_durability/results/report.html

Features Exercised

FeatureValue
Design typebox_behnken
Factor typescontinuous (all 3)
Arg styledouble-dash
Responses2 (days_no_chip ↑, gloss_retention_pct ↑)
Total runs15

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: days_no_chip

Top factors: base_coats (45.9%), topcoat_thickness (34.1%), color_coats (20.0%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
base_coats214.90487.45241.0650.3891
color_coats22.40481.20240.1720.8452
topcoat_thickness27.47623.73810.5340.6058
LackofFit634.54765.7579
PureError214.0000
Error848.54767.0000
Total1473.33335.2381

Pareto Chart

Pareto chart for days_no_chip

Main Effects Plot

Main effects plot for days_no_chip

Normal Probability Plot of Effects

Normal probability plot for days_no_chip

Half-Normal Plot of Effects

Half-normal plot for days_no_chip

Model Diagnostics

Model diagnostics for days_no_chip

Response: gloss_retention_pct

Top factors: base_coats (40.2%), topcoat_thickness (36.6%), color_coats (23.2%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
base_coats2158.233379.11671.4040.3001
color_coats241.376220.68810.3670.7037
topcoat_thickness2101.876250.93810.9040.4425
LackofFit6631.5810105.2635
PureError2112.6667
Error8744.247656.3333
Total141045.733374.6952

Pareto Chart

Pareto chart for gloss_retention_pct

Main Effects Plot

Main effects plot for gloss_retention_pct

Normal Probability Plot of Effects

Normal probability plot for gloss_retention_pct

Half-Normal Plot of Effects

Half-normal plot for gloss_retention_pct

Model Diagnostics

Model diagnostics for gloss_retention_pct

Response Surface Plots

3D surfaces fitted with quadratic RSM. Red dots are observed data points.

days no chip base coats vs color coats

RSM surface: days no chip base coats vs color coats

days no chip base coats vs topcoat thickness

RSM surface: days no chip base coats vs topcoat thickness

days no chip color coats vs topcoat thickness

RSM surface: days no chip color coats vs topcoat thickness

gloss retention pct base coats vs color coats

RSM surface: gloss retention pct base coats vs color coats

gloss retention pct base coats vs topcoat thickness

RSM surface: gloss retention pct base coats vs topcoat thickness

gloss retention pct color coats vs topcoat thickness

RSM surface: gloss retention pct color coats vs topcoat thickness

Multi-Objective Optimization

When responses compete, Derringer–Suich desirability finds the best compromise. Each response is scaled to a 0–1 desirability, then combined via a weighted geometric mean.

Overall Desirability
D = 0.9802

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
days_no_chip 1.0
0.9511
8.97 0.9511 8.97 days
gloss_retention_pct 1.5
1.0000
88.19 1.0000 88.19 %

Recommended Settings

FactorValue
base_coats1 coats
color_coats3 coats
topcoat_thickness1.6 mils

Source: from RSM model prediction

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
gloss_retention_pct88.1985.00-3.19

Top 3 Runs by Desirability

RunDFactor Settings
#120.9074base_coats=1, color_coats=1, topcoat_thickness=2
#100.8006base_coats=1, color_coats=3, topcoat_thickness=2

Model Quality

ResponseType
gloss_retention_pct0.8193quadratic

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.9802 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- days_no_chip 1.0 0.9511 8.97 days ↑ gloss_retention_pct 1.5 1.0000 88.19 % ↑ Recommended settings: base_coats = 1 coats color_coats = 3 coats topcoat_thickness = 1.6 mils (from RSM model prediction) Trade-off summary: days_no_chip: 8.97 (best observed: 9.00, sacrifice: +0.03) gloss_retention_pct: 88.19 (best observed: 85.00, sacrifice: -3.19) Model quality: days_no_chip: R² = 0.7136 (quadratic) gloss_retention_pct: R² = 0.8193 (quadratic) Top 3 observed runs by overall desirability: 1. Run #3 (D=0.9342): base_coats=2, color_coats=1, topcoat_thickness=2 2. Run #12 (D=0.9074): base_coats=1, color_coats=1, topcoat_thickness=2 3. Run #10 (D=0.8006): base_coats=1, color_coats=3, topcoat_thickness=2

Full Analysis Output

doe analyze
=== Main Effects: days_no_chip === Factor Effect Std Error % Contribution -------------------------------------------------------------- base_coats 2.2143 0.5909 45.9% topcoat_thickness 1.6429 0.5909 34.1% color_coats 0.9643 0.5909 20.0% === ANOVA Table: days_no_chip === Source DF SS MS F p-value ----------------------------------------------------------------------------- base_coats 2 14.9048 7.4524 1.065 0.3891 color_coats 2 2.4048 1.2024 0.172 0.8452 topcoat_thickness 2 7.4762 3.7381 0.534 0.6058 Lack of Fit 6 34.5476 5.7579 0.823 0.6396 Pure Error 2 14.0000 7.0000 Error 8 48.5476 7.0000 Total 14 73.3333 5.2381 === Summary Statistics: days_no_chip === base_coats: Level N Mean Std Min Max ------------------------------------------------------------ 1 4 4.0000 2.1602 1.0000 6.0000 1.5 7 5.7143 2.4300 2.0000 9.0000 2 4 3.5000 1.7321 1.0000 5.0000 color_coats: Level N Mean Std Min Max ------------------------------------------------------------ 1 4 4.7500 2.0616 2.0000 7.0000 2 7 4.2857 2.8115 1.0000 9.0000 3 4 5.2500 1.8930 4.0000 8.0000 topcoat_thickness: Level N Mean Std Min Max ------------------------------------------------------------ 1 4 5.0000 2.5820 2.0000 8.0000 2 7 5.1429 1.7728 4.0000 9.0000 3 4 3.5000 3.0000 1.0000 7.0000 === Main Effects: gloss_retention_pct === Factor Effect Std Error % Contribution -------------------------------------------------------------- base_coats 6.7500 2.2315 40.2% topcoat_thickness 6.1429 2.2315 36.6% color_coats 3.8929 2.2315 23.2% === ANOVA Table: gloss_retention_pct === Source DF SS MS F p-value ----------------------------------------------------------------------------- base_coats 2 158.2333 79.1167 1.404 0.3001 color_coats 2 41.3762 20.6881 0.367 0.7037 topcoat_thickness 2 101.8762 50.9381 0.904 0.4425 Lack of Fit 6 631.5810 105.2635 1.869 0.3889 Pure Error 2 112.6667 56.3333 Error 8 744.2476 56.3333 Total 14 1045.7333 74.6952 === Summary Statistics: gloss_retention_pct === base_coats: Level N Mean Std Min Max ------------------------------------------------------------ 1 4 68.2500 7.7190 59.0000 76.0000 1.5 7 75.0000 9.8658 58.0000 85.0000 2 4 68.7500 6.4485 61.0000 75.0000 color_coats: Level N Mean Std Min Max ------------------------------------------------------------ 1 4 72.2500 10.2103 58.0000 82.0000 2 7 69.8571 8.8775 59.0000 84.0000 3 4 73.7500 8.5391 65.0000 85.0000 topcoat_thickness: Level N Mean Std Min Max ------------------------------------------------------------ 1 4 70.5000 11.4455 58.0000 85.0000 2 7 74.1429 6.0671 65.0000 84.0000 3 4 68.0000 10.4881 59.0000 82.0000

Optimization Recommendations

doe optimize
=== Optimization: days_no_chip === Direction: maximize Best observed run: #3 base_coats = 2 color_coats = 1 topcoat_thickness = 2 Value: 9.0 RSM Model (linear, R² = 0.3307, Adj R² = 0.1481): Coefficients: intercept +4.6667 base_coats +1.0000 color_coats -0.3750 topcoat_thickness -1.3750 RSM Model (quadratic, R² = 0.7148, Adj R² = 0.2014): Coefficients: intercept +4.3333 base_coats +1.0000 color_coats -0.3750 topcoat_thickness -1.3750 base_coats*color_coats -0.5000 base_coats*topcoat_thickness +0.0000 color_coats*topcoat_thickness +0.7500 base_coats^2 +0.2083 color_coats^2 +1.9583 topcoat_thickness^2 -1.5417 Curvature analysis: color_coats coef=+1.9583 convex (has a minimum) topcoat_thickness coef=-1.5417 concave (has a maximum) base_coats coef=+0.2083 convex (has a minimum) Notable interactions: color_coats*topcoat_thickness coef=+0.7500 (synergistic) base_coats*color_coats coef=-0.5000 (antagonistic) Predicted optimum (from quadratic model, at observed points): base_coats = 2 color_coats = 1 topcoat_thickness = 2 Predicted value: 8.3750 Surface optimum (via L-BFGS-B, quadratic model): base_coats = 2 color_coats = 1 topcoat_thickness = 1.31081 Predicted value: 9.1073 Model quality: Good fit — general trends are captured, some noise remains. Factor importance: 1. topcoat_thickness (effect: 3.1, contribution: 41.0%) 2. color_coats (effect: 2.4, contribution: 32.4%) 3. base_coats (effect: 2.0, contribution: 26.7%) === Optimization: gloss_retention_pct === Direction: maximize Best observed run: #12 base_coats = 2 color_coats = 3 topcoat_thickness = 2 Value: 85.0 RSM Model (linear, R² = 0.4184, Adj R² = 0.2597): Coefficients: intercept +71.5333 base_coats +3.2500 color_coats -2.2500 topcoat_thickness -6.2500 RSM Model (quadratic, R² = 0.7404, Adj R² = 0.2730): Coefficients: intercept +69.0000 base_coats +3.2500 color_coats -2.2500 topcoat_thickness -6.2500 base_coats*color_coats +1.5000 base_coats*topcoat_thickness -1.5000 color_coats*topcoat_thickness +3.0000 base_coats^2 +3.2500 color_coats^2 +6.2500 topcoat_thickness^2 -4.7500 Curvature analysis: color_coats coef=+6.2500 convex (has a minimum) topcoat_thickness coef=-4.7500 concave (has a maximum) base_coats coef=+3.2500 convex (has a minimum) Notable interactions: color_coats*topcoat_thickness coef=+3.0000 (synergistic) base_coats*color_coats coef=+1.5000 (synergistic) base_coats*topcoat_thickness coef=-1.5000 (antagonistic) Predicted optimum (from quadratic model, at observed points): base_coats = 2 color_coats = 1 topcoat_thickness = 2 Predicted value: 82.5000 Surface optimum (via L-BFGS-B, quadratic model): base_coats = 2 color_coats = 1 topcoat_thickness = 1 Predicted value: 88.5000 Model quality: Good fit — general trends are captured, some noise remains. Factor importance: 1. topcoat_thickness (effect: 12.5, contribution: 45.3%) 2. color_coats (effect: 8.6, contribution: 31.2%) 3. base_coats (effect: 6.5, contribution: 23.5%)
← Previous: Shampoo Foaming & Cleansing Next: Lip Balm Texture Formulation →