Josh BaileyIT Desktop Analyst
←Gaffer IQcontents

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.
Next in Gaffer IQThe interfaceDesign philosophy
→
© Josh Bailey · jayjaybee.comSet in Geist.