Gaffer IQ · Section 04 of 22
The engineDesign philosophy
All the number-crunching in one place, the settings that control it in another, and a confidence level attached to every output.
- Read time
- ~1 min
- Revised
- 3 Sep 2026
- Status
- Published
One place for the numbers
To be able to predict how strong a player or fixture is, all the number-crunching lives in one place – engine/, containing js files. If a view needs a new number, it gets added to the engine properly, not bolted on as a shortcut. That’s what keeps every screen showing the same story.
Settings, not formulas
The settings that control the model (how much recent form matters, how much a tough opponent counts) live in one config file, separate from the formulas. Changing the model means adjusting a setting, never rewriting a formula.
Direction and confidence
Every calculation has to clearly state which way it points, as well as an acknowledged confidence level in each output according to max weight contribution to the overall player or fixture score. There are automated tests to catch it, and the current weightings are an honest best guess, written down so they can be challenged – not treated as fact – until enough data is available after enough fixtures that can prove them right.
Terms used here
- Pure functions
- The scoring engine’s code style: same input always gives same output, no side effects.