Here's how it works: when you solve a puzzle, a number of Simple Analytics Events docs.simpleanalytics.com/events are triggered (again, completely anonymous). This includes how many additional checks you used (the same data is presented on page to the player).
The average number of additional checks used for a particular puzzle is compared to the distribution of additional checks for all the puzzles that have been released to date (the Simple Analytics Stats API docs.simpleanalytics.com/api/stats is used to build this distribution).
By looking at where the number of additional checks used for a particular puzzle falls on the overall distribution you can get an idea of how tricky people are finding it. If it's about average it's scored as 3/5, if it's much lower than average it's 1/5, etc.