Unfortunately I ended up winging the data processing, so it was mostly a pile of adhoc scripts. The incremental update pulling from the Strava API is a little cleaner, but would require significant work to open source.
The only thing I ever really cared about was keeping the streak going, everything else has come second. I dropped out of a trail running trip after a fall because I felt that even though I could continue, putting too much mileage on my knee would jeopardize the streak.