Rules
Every implementation may use its language and that language's standard library, and nothing else.
No third-party packages
Python may use csv, math, and statistics, but not NumPy, pandas, or scikit-learn. Ruby may use its standard library, but no gems. The containers that run the tests contain only the language's own toolchain and have no network access, so nothing else can sneak in.
What "from scratch" means
The steps that make up the method are written out in the code: averaging, variance, fitting a line, finding neighbors, moving centroids, combining probabilities. General-purpose tools are allowed: arithmetic, square roots and logarithms, sums and counts, sorting, distance formulas, and parsing the data file. A built-in that performs the method itself, such as R's lm() or SQL's regr_slope, makes an implementation "built-in" instead.
Built-in features are allowed, and labeled
Some tools ship data science features of their own, such as PostgreSQL's regr_slope, R's lm(), or BigQuery ML. A page may show the built-in version beside a from-scratch one, and each is labeled From scratch or Built-in.
One shared dataset per concept
Every implementation of a concept reads the same data.csv and must print the same results, to within a relative tolerance of 10⁻⁴ (or an absolute tolerance of 10⁻⁶, whichever is looser).
Every implementation is verified
Each one is either run by the test harness on every change, marked Tested automatically, or, for tools that cannot run in a container, such as cloud services, checked by hand and marked Manually verified with the date. The code you see is the exact file that was run.
Clarity over cleverness
Code is written to teach: idiomatic for its language, commented where the language is unfamiliar, and short enough to read on one page where possible.