Great work Paul!
I noticed that you’re using a UDF to do the JSON parsing, which is pretty much what I advised earlier. However in this case since only 1 parse is needed, you could get away with using JSON_EXTRACT. You’ll also need to cast the results to an int (and maybe even filter out nulls) but it should be much simpler.
Really liking your visualizations too 