Skip to content
MLLabz

Last year's cutoff was the hardest number to beat

Every year, Form 4 leavers choose courses by guessing next year's cutoffs. We tested how well CareerNext guesses, against the simplest guess there is: same as last year. The answer was humbling, and it changed how we build.

Written by
Meshack Limo, Founder & Developer, MLLabz
Published
Reading time
6 min
Category
Data & ML

A question with real stakes#

Picture a Form 4 leaver with 38 cluster points. The course they want had a cutoff of 37.2 last year. Should they put it on their list?

CareerNext answers that question for every course a student looks at. It shows an expected cutoff for the next intake, a range around it, and a plain label: Very High, High, Medium or Low chance. Students build their KUCCPS choices on that label. If we get it wrong, they waste a choice on a course they can't get, or they skip one they could have had.

So before making the prediction any smarter, we asked a blunt question: is it actually better than repeating last year's cutoff?

At MLLabz, we start with the problem, and this problem is a guess a student makes with their future on the line. A tool that guesses no better than the student could alone adds nothing. It only adds confidence they shouldn't have.

Testing on years it hasn't seen#

A prediction that matches the past proves very little. You can tune almost any method until it fits the years it was built from. The fair test is a year it has never seen.

So we went back in time. We took 2,178 degree offerings from CareerNext's database, with cutoffs from 2021 to 2025. For each of 2023, 2024 and 2025, we hid that year's real cutoffs, predicted them using only the years before, and compared the predictions with what actually happened. The test runs CareerNext's live prediction code, unchanged.

We put it up against guesses anyone could make:

  • Repeat last year: next year's cutoff equals the latest one.
  • Average the earlier years.
  • Extend the trend: if it rose by a point, assume it rises by another.

We scored each one by its typical miss: half of its predictions were closer than this, half further, in cluster points. A student only lives through one placement year, so we wanted the number that describes an ordinary prediction, not an average that a few wild misses can pull around.

The result was humbling#

Typical miss for programmes above the minimum, in cluster points (lower is better)
202320242025
Repeat last year
2023:1.35
2024:1.13
2025:1.36
Extend the trend
2023:2.93
2024:1.58
2025:1.49
CareerNext
2023:1.18
2024:1.06
2025:1.18
Method202320242025
Repeat last year1.351.131.36
Extend the trend2.931.581.49
CareerNext1.181.061.18

CareerNext won all three years. By 0.07 to 0.18 points.

That's the honest headline. After all the work, our prediction beats "same as last year" by less than a fifth of a point.

Two other things stood out.

Cutoffs move more than most people think. A typical cutoff above the minimum moves a little over one point a year, and about one in three moves more than two. Back to our student: last year's 37.2 could easily be 36 or 38.5 this year. Their 0.8-point margin sits inside normal movement. No method can promise them a place.

Trends lie. Extending the trend was the worst method in every year we tested. And when a cutoff went up or down, it moved the same way the next year only 33% to 42% of the time. That's less often than a coin toss. "It went up last year, so it'll go up again" is the most natural guess, and the data says it's wrong more often than right.

The mistake that almost made it out#

More than half of degree programmes don't fill in a typical year: between 54% and 60%. For those, anyone who meets the cluster minimum gets in. From 2025, the KUCCPS portal leaves their cutoff blank.

In an earlier version of this analysis, we treated those blanks as missing data and skipped them. That left only the programmes that filled, which are the competitive ones. The result looked dramatic: nearly three in four cutoffs rose in 2025, and nearly half moved more than two points.

It was wrong. A blank cutoff isn't missing. It means the minimum was enough. Counted properly, 2025 rose by about half a point, much like 2022. We withdrew those numbers.

I caught it while reviewing the draft: the blanks were exactly the programmes that hadn't filled. If we had published it, we would have told students that cutoffs jumped in 2025. Some might have dropped courses they could have got.

The lesson is one we now apply to every dataset: before dropping a gap, ask what it means. Sometimes the empty cell is the answer.

What changed for students#

The test didn't just give us a score. It changed CareerNext:

  • Courses that usually don't fill are now treated separately. Most programmes at the minimum stay there the next year. With that change, the likely/unlikely labels were right 89%, 88% and 84% of the time across the three years, up from 87%, 86% and 81%.
  • The range is wider, and labelled honestly. It now holds the real cutoff about two times in three (61% to 67%). In roughly one case in three, the cutoff lands outside it. So we call it a typical range, not a safe one.
  • Trend arrows describe history, not the future. They now read "Rose last year" instead of "Cutoffs rising".

It still gets things wrong. In our test, 7% to 9% of simulated students were told "unlikely" for a course they would have got, and 3% to 7% were told "likely" for one they would have missed. Those are the numbers we're working to bring down.

The rule we keep#

The prediction behind all of this is a statistical rule, not machine learning. That's deliberate. It earned its place by beating the simple baseline on years it hadn't seen, and any model we build next has to clear the same bar:

If it can't beat "same as last year" on years it hasn't seen, we don't ship it.

This rule isn't only about cutoffs. If you're building anything that predicts, whether it's next month's sales, next term's enrolment or next year's prices, start by asking what "same as last time" would score. Then test your method on a period it never saw. If the clever method only wins on the past, it hasn't won.

What we still don't know#

  • We tested three years. The lead is small and could change with a fourth.
  • We tested degree courses only. Diploma, KMTC, TVET and TTC courses have no official cutoffs to test against.
  • The label test used simulated students, not real applicants.
  • We measured how well we predict cutoffs, not whether students made better choices. That's the impact we haven't measured yet.

The full method, data and code are in the Lab entry: How predictable are KUCCPS degree cutoffs?