STAYCHARTED BLOG · MACHINE LEARNING · MODEL DRIFT
AI model drift: what happened when we trained on the past and tested on the future
AI model drift, measured: our NHTSA and CBP tests trained on older records and tested on newer ones. What changed, and when to retrain a classifier.
Why a time-based split shows AI model drift and a random split hides it
The usual way to test a classifier is to hold back a random share of the labeled rows. That is fine for checking that a model learned something, but it mixes old and new records on both sides. The HS code benchmark page explains why it avoided this: a random split would put rulings from the same week on both sides, and "The test would then reward remembering."
A time-based split trains on everything up to a date and tests on what came after. It is the closest thing to real use, because every row your model fills tomorrow is newer than its training data. The NHTSA benchmark page calls its date split "a harder and more honest test than a random split."
NHTSA complaints: older records against 2025 onward
The vehicle-complaint benchmark trained two models at two levels of detail:
- Vehicle system (21 categories): 19,902 complaints received 2023 to 2024.
- Subsystem (72 categories in training, 70 of them in the test): 19,281 complaints received 2020 to 2024.
Both levels were tested on 5,000 complaints received from 1 January 2025 onward. The page also reports scores on complaints held back from the training years, which gives a before-and-after view:
| Level and model | Held back from training years | Complaints from 2025 on | Change |
|---|---|---|---|
| Vehicle system, AI Classifier Model | 85.9% | 84.1% | down 1.8 points |
| Vehicle system, Dedicated AI Model | 88.6% | 87.7% | down 0.9 points |
| Subsystem, AI Classifier Model | 80.3% | 76.9% | down 3.4 points |
| Subsystem, Dedicated AI Model | 83.7% | 85.9% | up 2.2 points |
The observed score changes were modest. This comparison does not isolate drift from differences in the test samples. The biggest drop was the AI Classifier Model on the finer subsystem level. The Dedicated AI Model's subsystem score went the other way, and the page does not explain why, so we do not claim a reason. The page's own reading of why newer complaints are harder: "New vehicles and features bring new ways of describing problems, which is why the unsure answers go to a person and their decisions train the next version."
Confidence held up on the newer complaints
The confidence tables on that page were measured on the 2025-onward complaints, so they already include the drift. At a 0.90 cutoff:
| Level and model | Share at or above 0.90 | Right among those |
|---|---|---|
| Vehicle system, AI Classifier Model | 54.7% | 96.7% |
| Vehicle system, Dedicated AI Model | 84.7% | 93.7% |
| Subsystem, AI Classifier Model | 39.0% | 94.8% |
| Subsystem, Dedicated AI Model | 71.5% | 94.3% |
Even on records from a later period, the answers the models were sure about were right at least 93.7% of the time. That is the case for a confidence cutoff with a review step: drift lowered overall accuracy a little, while the answers above the cutoff stayed reliable on the later records and the unsure ones went to a person. For how to read these tables, see AI confidence score accuracy.
CBP rulings: data drift in classification when the categories are new
The customs benchmark trained on 5,621 CBP rulings from 29 March 2021 to 18 December 2025 and tested on 1,167 later rulings, from 18 December 2025 to 14 August 2026. Here drift showed up in a different form: new categories.
- 27% of test rulings have a code that never appears in training. As the page says, a model "can't suggest a code it has never seen."
- Across all 1,167 test rulings, the AI Classifier Model matched the exact 10-digit code 22.2% of the time and the Dedicated AI Model 25.1%.
- On the 849 rulings whose code does appear in training, the 10-digit figures are 30.5% for the AI Classifier Model and 34.5% for the Dedicated AI Model.
That gap is the cost of new categories. The models did better on codes they had seen, and every ruling with an unseen code counted as wrong. The NHTSA test had no such problem at the subsystem level: all 70 test subsystems were among the 72 in training.
Does an AI model get worse over time?
It can, and how much depends on what changes. These two tests show two kinds of change:
- New wording for the same categories. NHTSA complaints from 2025 onward used the same subsystems, described in newer ways. Accuracy fell by up to 3.4 points on three scores and rose on one.
- New categories. In the CBP test, more than a quarter of later rulings needed a code the training data did not contain. These fixed-category classifiers need examples of the new labels before they can predict them.
A fixed model can fall behind when these changes affect its task. The first kind tends to be gradual. The second is sudden: every row that needs the new category gets a wrong answer, because the right category is not in the model at all, and you cannot rely on the confidence to flag all of them.
How to test your own classifier for drift
You can run the same kind of test on your own data without special tools:
- Hold back your newest rows. When you export labeled rows to train, keep the most recent month or quarter out of the training file.
- Train on the older rows in StayCharted AI Model Trainer (AMT). AMT tests the model on held-out rows and reports accuracy, confusions and the confidence table.
- Fill the newest rows you held back, as a CSV or Excel file, and compare the model's answers with the categories your team already gave them. If accuracy on those rows is close to the test report, drift is small. If it is much lower, plan to retrain more often.
- Count new categories. Check what share of your newest rows have a category that does not appear in the training file. Those rows set a ceiling on what any trained model can do until it has examples.
- Watch the unsure share over time. If more answers fall below your cutoff than when you started, the incoming rows may be drifting away from what the model learned, and a drift check on your newest rows is worth running.
When to retrain a classifier
Retrain when one of these happens:
- You add a category. The model cannot predict it until it has examples. Label some rows, add them, and train a new version.
- Reviewers have built up corrections. Unsure answers from fills, the API, Google Sheets, AI assistants, warehouse fills, the mobile app and the Try box go to one Review Queue. Reviewers confirm or correct them, and the confirmed answers train the next version when a Builder or Reviewer retrains. The Review Queue is on the Essentials and Business plans.
- Your source changes. A new product line, a new form or a new channel can change how rows are written.
- Your drift check shows a gap between the test report and accuracy on your newest rows.
Each new version gets its own test report and confidence table, so check both before you publish it. If the confidence table changed, revisit your cutoff.
What these tests do not show
Both benchmarks are single runs on public data over one time window each. They show performance on later records, not a controlled estimate of drift or how fast your own data will change. A team whose categories rarely change and whose rows are written the same way every year may see very little drift. A team that adds products or codes every month will see more. The only reliable answer comes from testing on your own newest rows. For every result, see all benchmarks; for plans, see pricing; for features, see the product page.
Common questions
What is AI model drift?
It is the drop in accuracy that can happen when new records differ from the ones a model learned from. In our NHTSA test, three of four scores were lower on complaints from 2025 onward than on complaints held back from the training years, by up to 3.4 points.
Does an AI model get worse over time?
It can. In our CBP test, 27% of later rulings had a code that never appeared in training, so neither fixed-category classifier in this test could get those right. On NHTSA complaints the effect was smaller, and the Dedicated AI Model's subsystem score rose from 83.7% to 85.9%.
What is data drift in classification?
It is a change in the rows a classifier sees: new wording, new products, or new categories. New wording tends to lower accuracy gradually; new categories cause errors on every row that needs one until the model has examples of it.
How do I know when to retrain a classifier?
Retrain when you add a category, when reviewers have built up corrections in the Review Queue, when your source data changes, or when accuracy on your newest rows falls below the model's test report.
What is a time-based split, and why use one?
It trains a model on older records and tests it on newer ones. It matches real use, because every row a model fills is newer than its training data. A random split mixes records from the same period on both sides and can reward remembering.
Can a trained model handle a category it has never seen?
No. A trained model only suggests categories it learned from examples. Add labeled rows for the new category and train a new version; until then, those rows should go to a person.