# Gate report for `5fc4383bbfa34776`

**Overall: PASS** | project `claims_frequency` | family `gbm` | data `synthetic-7c8426d485-n40000` | gate config `7a4a29aea97dd405`

## G1 Data validation: PASS

| check | status | value | threshold | CI | detail |
|---|---|---|---|---|---|
| schema[train] | PASS | None | None | None | 24001 rows valid |
| schema[val] | PASS | None | None | None | 4000 rows valid |
| schema[holdout] | PASS | None | None | None | 6000 rows valid |
| row_floor[train] | PASS | 24001 | 10000 | None |  |
| row_floor[val] | PASS | 4000 | 1000 | None |  |
| row_floor[holdout] | PASS | 6000 | 1000 | None |  |
| null_rate | PASS | 0.0 | 0.0 | None |  |
| split_leakage | PASS | 0 shared ids | 0 | None | no id may appear in more than one split |

## G2 Metric floors: PASS

| check | status | value | threshold | CI | detail |
|---|---|---|---|---|---|
| deviance_skill | PASS | 0.324724 | min 0.005 | [0.29244806677504004, 0.348197469754422] |  |
| gini | PASS | 0.550797 | min 0.1 | [0.5228728302274024, 0.5803191033147433] |  |
| poisson_deviance | PASS | 0.802274 | max 0.9 | [0.7644981511995373, 0.8348878631922667] |  |

## G3 No regression vs champion: PASS

| check | status | value | threshold | CI | detail |
|---|---|---|---|---|---|
| poisson_deviance | PASS | 0.802274 | relative worsening <= 0.02 | [-0.011977, 0.005411] | relative worsening -0.2143% (95% CI of worsening shown) |
| gini | PASS | 0.550797 | relative worsening <= 0.1 | [-0.01276, 0.013671] | relative worsening -0.0170% (95% CI of worsening shown) |

## G4 Calibration: PASS

| check | status | value | threshold | CI | detail |
|---|---|---|---|---|---|
| decile_calibration_error | PASS | 0.088265 | max 0.35 | None |  |

## G5 Slice performance: WARN

| check | status | value | threshold | CI | detail |
|---|---|---|---|---|---|
| bonus_malus=55-70 | PASS | 0.940252 | |gap| <= 0.45 vs 1.0 | [0.858727, 1.010454] | n=2884, gap 6.0% |
| bonus_malus=70-90 | WARN | insufficient data | n >= 2000 | None | n=746: slice too small to judge; reported, not passed silently |
| bonus_malus=90-110 | WARN | insufficient data | n >= 2000 | None | n=104: slice too small to judge; reported, not passed silently |
| bonus_malus=<55 | PASS | 0.957686 | |gap| <= 0.45 vs 1.0 | [0.8426, 1.098024] | n=2241, gap 4.2% |
| bonus_malus=>=110 | WARN | insufficient data | n >= 2000 | None | n=25: slice too small to judge; reported, not passed silently |
| driver_age=25-35 | WARN | insufficient data | n >= 2000 | None | n=1011: slice too small to judge; reported, not passed silently |
| driver_age=35-45 | WARN | insufficient data | n >= 2000 | None | n=1481: slice too small to judge; reported, not passed silently |
| driver_age=45-55 | WARN | insufficient data | n >= 2000 | None | n=1477: slice too small to judge; reported, not passed silently |
| driver_age=55-65 | WARN | insufficient data | n >= 2000 | None | n=969: slice too small to judge; reported, not passed silently |
| driver_age=65-75 | WARN | insufficient data | n >= 2000 | None | n=420: slice too small to judge; reported, not passed silently |
| driver_age=<25 | WARN | insufficient data | n >= 2000 | None | n=513: slice too small to judge; reported, not passed silently |
| driver_age=>=75 | WARN | insufficient data | n >= 2000 | None | n=129: slice too small to judge; reported, not passed silently |
| exposure=0.25-0.75 | PASS | 1.027196 | |gap| <= 0.45 vs 1.0 | [0.959206, 1.09993] | n=3200, gap 2.7% |
| exposure=0.75-1 | PASS | 0.959575 | |gap| <= 0.45 vs 1.0 | [0.874681, 1.032018] | n=2083, gap 4.0% |
| exposure=<0.25 | WARN | insufficient data | n >= 2000 | None | n=715: slice too small to judge; reported, not passed silently |
| exposure=>=1 | WARN | insufficient data | n >= 2000 | None | n=2: slice too small to judge; reported, not passed silently |
| region=R21 | WARN | insufficient data | n >= 2000 | None | n=299: slice too small to judge; reported, not passed silently |
| region=R31 | WARN | insufficient data | n >= 2000 | None | n=257: slice too small to judge; reported, not passed silently |
| region=R42 | WARN | insufficient data | n >= 2000 | None | n=281: slice too small to judge; reported, not passed silently |
| region=R52 | WARN | insufficient data | n >= 2000 | None | n=293: slice too small to judge; reported, not passed silently |
| region=R72 | WARN | insufficient data | n >= 2000 | None | n=293: slice too small to judge; reported, not passed silently |
| region=R73 | WARN | insufficient data | n >= 2000 | None | n=292: slice too small to judge; reported, not passed silently |
| region=R94 | WARN | insufficient data | n >= 2000 | None | n=259: slice too small to judge; reported, not passed silently |
| region=other | PASS | 0.972513 | |gap| <= 0.45 vs 1.0 | [0.915731, 1.019871] | n=4026, gap 2.7% |
| vehicle_age=1-3 | WARN | insufficient data | n >= 2000 | None | n=1094: slice too small to judge; reported, not passed silently |
| vehicle_age=10-15 | WARN | insufficient data | n >= 2000 | None | n=933: slice too small to judge; reported, not passed silently |
| vehicle_age=3-6 | WARN | insufficient data | n >= 2000 | None | n=1781: slice too small to judge; reported, not passed silently |
| vehicle_age=6-10 | WARN | insufficient data | n >= 2000 | None | n=1590: slice too small to judge; reported, not passed silently |
| vehicle_age=<1 | WARN | insufficient data | n >= 2000 | None | n=202: slice too small to judge; reported, not passed silently |
| vehicle_age=>=15 | WARN | insufficient data | n >= 2000 | None | n=400: slice too small to judge; reported, not passed silently |

## G6 Performance budget: PASS

| check | status | value | threshold | CI | detail |
|---|---|---|---|---|---|
| p95_latency_ms | PASS | 3.479 | max 60 | None | single-row predict(), n=100 |
| artifact_mb | PASS | 0.3 | max 50 | None |  |

## G7 Reproducibility: PASS

| check | status | value | threshold | CI | detail |
|---|---|---|---|---|---|
| same_hash | PASS | 5fc4383bbfa34776 | 5fc4383bbfa34776 | None | identical hash on retrain with same seed |

## G8 Model card: PASS

| check | status | value | threshold | CI | detail |
|---|---|---|---|---|---|
| card_exists | PASS | None | None | None |  |
| card_matches_candidate | PASS | None | None | None | card must name this candidate hash (regenerated per candidate) |
| required_sections | PASS | all present | 9 sections | None |  |
