Disclosure

AI & Predictions

What a language model is allowed to do here, what it is never allowed to do — and exactly which paragraphs on this site it wrote.

A language model only writes three paragraph types here. It makes no predictions.

All numbers on this site were calculated before those paragraphs were created.

On Alin, a language model writes only three bits of text: the preview on a match page, the opening paragraph of a competition page, and the opening paragraph of the home page. That is the full list. Everything else is either fixed template wording — reused on each page of the same type — or a database number that has been formatted for display. If a line appears to be written for one fixture, the part being customised is the numbers inside that line.

Those three paragraphs are produced from a locked fact sheet. It contains the same probabilities, scoreline, form string, head-to-head record and confidence grade shown elsewhere on the page, with no extra material added. The model has no database connection, cannot search for information, and is not shown the internet. If something is not included on that sheet, it cannot get onto the page. That is why a preview here will not mention injuries or a manager's comments.

There is also a rule that belongs to this site, not just to the wider platform: generated text never names a bookmaker. Bookmakers appear only in our betting sites section, and that text is not written by our language model. If returned copy includes a bookmaker's name, it is rejected instead of published, and the page keeps the version it already had.

This has its own page because the phrase “AI football predictions” has become too broad to be clear. It can mean a fitted statistical model, a language model producing tips, or a spreadsheet with a logo added. Those are three separate things, and each can fail in a different way. Readers should know which one is in front of them. Here, the model writes text; it does not make the prediction.

The rules in force now that it is live

Set out before launch. Still the same — only the tense has changed.

  • A language model may only describe numbers that already exist. It receives the same prediction data displayed on the page, and it can explain that data. It cannot create a probability, a scoreline, an injury, a quote or a result.
  • If the wording and the numbers do not match, the numbers are correct and the wording is wrong. It never works the other way round — tables on this site are not changed to fit a paragraph.
  • Generated text is created once and saved, linked to the facts used to write it. If those facts are updated, the text is generated again instead of being left to describe a fixture that is no longer there.
  • None of this changes the model. Predictions are calculated before any wording is written, and they do not know that the wording exists.

What actually makes the prediction?

The prediction comes from a statistical model fitted to results and expected goals: rolling team ratings feed into a Dixon-Coles adjusted Poisson scoreline grid, then that is blended with the de-vigged market price on 1X2. It is not a neural network, and we will not describe it as one. It uses a fixed number of parameters, all set out on the mathematics page, and it has a published track record that can be compared with a baseline.

The practical reason for using that instead of a language model is simple: a language model cannot be calibrated. You cannot test whether events it labelled 60% really happened 60% of the time, because it does not have that kind of quantity. Our model does, and the accuracy page shows that figure whether or not it makes us look good.