Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
  1. Home
  2. Blog
  3. Why Models Underperform After Launch
AI & Machine Learning

Why Models Underperform After Launch

A drop between test and live is so common it should be expected. The five usual causes, in the order worth checking, and how to tell them apart.

Updated 2 min readBy SpiderHunts Technologies

Free estimateNo obligation

Get a free estimate

Tell us what you need. A senior engineer reads every enquiry.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →

Quick answer — TL;DR

Nearly always one of five things: leakage in training, a different data pipeline in production, a shifted population, feedback from the model's own actions, or a different measurement. Check them in that order - the first two account for most cases.

Expect some drop, investigate a large one

A modest decline from test to production is normal. Development data is cleaner, the period is fixed, and any tuning has fitted the evaluation somewhat.

A large drop is a defect, and it has a findable cause. Five causes cover almost everything we see.

One: leakage in training

The most common cause. The model had access during training to something unavailable at prediction time, so its test score was never achievable.

The tell is a test score that seemed surprisingly good. If a feature made the model dramatically better, examine when that value is actually populated - fields written during or after the event you are predicting are the usual culprits.

Two: a different pipeline in production

Training runs on a carefully prepared extract; production runs on live data through different code. Small differences change results in ways that are hard to see.

  • A category encoded differently, so unseen values fall into a default bucket
  • Units differing - pence against pounds, or a date parsed day-first in one place and month-first in the other
  • A join producing duplicates in one path and not the other
  • Missing values filled differently, or not at all
  • Rounding or type conversion applied in one pipeline only

The direct check is to score the same records through both paths and compare outputs row by row. Any difference beyond floating-point noise is a bug, and this test finds it in an afternoon.

Three: the population has changed

The model was trained on last year's customers, orders or equipment, and this year's are different. A new channel, a marketing push into a new segment, a price change, or simply growth into a different market.

Compare the distribution of key inputs between training and live. Where they have moved materially, the model is being asked about a population it never saw. Retraining on recent data is usually the answer, and monitoring input distributions is how you catch it earlier next time.

Four and five: feedback, and measuring differently

Feedback is subtle: the model's actions change the data it later learns from. Decline the risky applications and future data contains only accepted ones, so the model never learns about the group it rejected. A random holdout that bypasses the model is the standard defence.

The last cause is the most embarrassing and worth ruling out early. Sometimes the model is fine and the production metric is computed differently - a different denominator, a different time window, a different definition of success. Reconcile the two calculations on the same records before assuming a modelling problem.

Before rebuilding the model, check that both numbers were measuring the same thing.

FAQ

Frequently asked questions

The questions readers ask us after this guide.

Still have a question?

Ask us directly — a senior engineer will get back to you.

Ask about your project

How much of a drop is normal?

Some decline is expected. A large or sudden drop indicates a defect rather than natural degradation, and is worth investigating rather than tuning around.

What is the fastest check?

Score identical records through both the training and production pipelines and compare outputs. It rules the second cause in or out quickly.

Could it just be a bad month?

Possibly, which is why you compare against a baseline over the same period. If the naive baseline also got worse, conditions changed rather than the model breaking.

Should we retrain immediately?

Not before diagnosing. Retraining on leaked features or a broken pipeline reproduces the problem with fresh data.

Keep reading

More on AI & Machine Learning

Start here

Want machine learning project details from us?

Tell us what you are trying to predict and roughly what data you hold. We will come back with an honest view on whether machine learning is the right tool, what the work would involve and a realistic cost range. If a spreadsheet would do the job, we will say so.

  1. You tell us what you needTwo minutes on the form, or a message on WhatsApp.
  2. A senior engineer reviews itAnd comes back with questions, a realistic range and an honest view on fit.
  3. Free 30-minute scoping callWe talk through scope, options and a realistic estimate — with no obligation.
Free estimateNo obligation

Talk to someone who builds this

Send a short brief and we will come back with an honest view and a realistic range.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →