Scores a deliberately dumb baseline — majority class, mean, median, or a one-rule heuristic — so there is a number the real model has to beat. Use when someone asks whether a score is actually good, what to compare a model against, or whether a result beats guessing. Use before training or tuning any model, whenever no baseline number exists yet.
Installs into .claude/skills of the current project.
Are you the author of Ds Baseline?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/stamkavid-ds-baseline)
---
name: ds-baseline
description: Scores a deliberately dumb baseline — majority class, mean, median, or a one-rule heuristic — so there is a number the real model has to beat. Use when someone asks whether a score is actually good, what to compare a model against, or whether a result beats guessing. Use before training or tuning any model, whenever no baseline number exists yet.
---
# ds-baseline — Honest Baseline
## Overview
Establishes the dumbest reasonable prediction as the anchor metric, so every later
model's score can be judged as real lift or noise, not judged in a vacuum.
## When to Use
- Before `/ds-model` — this is a Hard Gate `/ds-model` checks for.
- Whenever asked to build, train, or compare models and no baseline artifact exists yet
for this problem.
- NOT for: tuning or comparing real candidate models (that's `/ds-model`) — this stage
produces exactly one deliberately simple number to compare against.
- **Scope: tabular supervised learning.** On a time-indexed target the right anchor is
seasonal-naive or last-value, and this plugin does not carry the lag/rolling feature
machinery to go further — see README → Scope before using this as a forecasting
baseline.
## Core Process
1. Pick the simplest possible baseline for the problem type: mean or median prediction
for regression; majority-class or prior-probability prediction for classification; or
a simple rule already in informal use, if one exists. Simplest still has to be
*honest*: on data with strong known structure (temporal, seasonal, hierarchical), a
global mean or majority class is a strawman — trivial to beat, so beating it proves
nothing. Use the strongest *simple* anchor that needs no modeling: last known value,
same period last cycle (e.g. same weekday last week), or the rule already in use.
2. Evaluate it using the exact success metric chosen in `/ds-frame` — not a different,
more convenient metric.
3. Record the baseline score as the anchor. Every subsequent model must be compared
against it, not against zero or against "feels better."
4. Write to `.last-ds-mile/stages/04-baseline.md`: the baseline definition, its score,
and what "beating it" will concretely mean.
## Common Rationalizations
| Rationalization | Reality |
|---|---|
| "This is a well-known dataset/problem, everyone knows a baseline would be trivial" | Trivial to state is not the same as trivial to skip — it's the only thing that tells you whether your fancier model earned its added complexity. |
See `ds-method` for the shared Rationalizations that apply to every stage (including "the baseline is obviously worse, I'll skip it").
## Red Flags
| Red Flag | What it usually means |
|---|---|
| The baseline is a global mean/majority on data with obvious temporal or group structure | Likely a strawman — a model beats it trivially and the reported "lift" is meaningless. A too-weak baseline inflates apparent lift as surely as a leaked feature inflates the metric. |
See `ds-method`'s Red Flags — in particular, "model accuracy matches the majority-class
rate to 2 decimal places" is this stage's most direct signal that a later model isn't
actually beating the baseline.
## Verification
- [ ] Baseline defined and scored using the exact metric from `/ds-frame`.
- [ ] Baseline score recorded as the explicit comparison anchor for `/ds-model`.
- [ ] `.last-ds-mile/stages/04-baseline.md` written.