Spotify Extended Streaming History โ†’ record bag

Crate Intelligence

I DJ. Wrapped tells me what I listened to, which is the least useful thing about it. What I need to know before a gig is narrower and harder: which tracks actually hold a room, which ones I've flogged to death, and what order any of it plays in. So I pointed a product-analytics pipeline at three years of my own listening history and made it answer those three questions.

Everything below is computed from a fully synthetic sample committed to the repo, so it runs end-to-end with zero personal data. Swapping in a real export is one flag. Source on GitHub โ†’

Build me a set

Beam search over the crate. Every transition is scored on the harmonic move, whether the tempo is reachable through a pitch fader, how well the incoming track fits the arc's energy target, how survivable the energy step is, and whether the track is worth playing at all โ€” with hard constraints for repeats, artist spacing and tempo jumps. This runs in your browser, over a graph precomputed by the same Python that scores it in the report.

    Does harmonic mixing actually hold the listener?

    The transition graph is the one thing three years of history can supply that a Mixed In Key export cannot: which tracks actually got played back-to-back, and whether the incoming one survived. A skip on the incoming track is the closest thing streaming data has to the transition didn't work.

    Skip rate of the incoming track, by harmonic move

    The crate

    Three questions per track: does it hold, have I burned it out, and is there enough evidence to have an opinion. Holding is a Wilson lower bound on the non-skip rate โ€” a track played twice and never skipped shows a perfect 100%, and ranking on that puts the least-evidenced tracks on top.

    Crate coverage around the Camelot wheel

    Inner ring is minor (A), outer is major (B). Gaps are keys I can't mix out of.

    Does it hold, and have I flogged it?

    The burned tracks sit top-right, not bottom-right โ€” they're flogged because they hold. "Rest these" is a freshness call, not a quality one.

    How it's built

    What this doesn't prove