Jump to content

Welcome to King Warz Charts Wiki! Please note that the site is still under construction as I work on creating past chart week pages, as well as templates and pages for artists, songs, and albums. Because of this, you may see a lot of red links throughout the site.

Vinyl Album Charts

From King Warz Charts
King Warz logo as of January 2025.

The Vinyl Album Charts are monthly personal charts tracking the vinyl listening habits of King Warz. Data is collected by manually searching and selecting records from his physical vinyl collection through the app's web dashboard, and the charts are automatically generated by a custom-built program called KWC Vinyl Charts, developed with the assistance of Claude, an AI assistant by Anthropic.

The first chart, covering spins logged during March 1 – March 31, 2026, was generated and published on April 11, 2026.

Background

From streaming to vinyl

King Warz had been running personal streaming charts since November 2024, with data retroactively generated back to February 2020, powered by a program called Levboard which pulled data from his Spotify account via Stats.fm (see King Warz Charts). In early 2026, as his physical vinyl collection grew, Warz wanted a way to track and chart his vinyl spins with the same level of detail he had for streaming.

Spun It and its limitations

Warz initially used an app called Spun It to log his vinyl plays. While the app provided basic spin tracking, it did not offer everything he needed — features like chart generation, detailed statistics, and integration with his existing chart ecosystem were either missing or locked behind a paywall. Rather than continue paying for an incomplete solution, Warz decided to build his own system from scratch.

Building KWC Vinyl Charts

With the help of Claude, an AI coding assistant, Warz developed KWC Vinyl Charts — a fully custom application that replicates and expands on what Spun It offered. The program runs locally on his home server and includes:

  • Web-based spin logging by searching and selecting records from the collection dashboard
  • Automatic chart generation using a multi-factor scoring system with guaranteed no ties
  • Discogs integration for syncing his vinyl collection, cover art, and pricing data
  • Google Sheets integration for live chart data and spin logs
  • Wiki publishing via a bot account (WeekBot) that creates and updates chart pages on this wiki
  • Cover art collage generation for chart month images
  • Year-end charts, streak tracking, heatmaps, artist leaderboards, and collection analytics

Historical spin data from Spun It was imported into the system. These imported spins are preserved in the database for reference but are excluded from chart calculations to ensure only natively-tracked data influences chart positions.

How the charts work

Data collection

Spins are logged by searching for and selecting a record through the web dashboard, which runs on a local home server. Each logged spin:

  • Identifies the specific pressing (variant) in the collection, synced from Discogs
  • Records the timestamp, duration, and whether it was a full or partial play
  • Checks for duplicate scans within a 30-minute window to prevent accidental double-logging
  • Syncs the spin to a Google Sheets log in real time

Spins can also be logged manually through the web dashboard for retroactive entries.

Chart period

Unlike the streaming King Warz Charts, which use weekly periods, the Vinyl Album Charts operate on monthly periods:

  • Each chart covers a full calendar month (1st to last day)
  • Charts are numbered sequentially (Month 1, Month 2, etc.)
  • If a month does not meet the minimum threshold of unique albums spun, no chart is generated for that month and the data rolls forward

Eligibility

For an album chart to be generated, at least 5 unique albums must have been spun during the chart period. Only spins with source other than import count toward eligibility.

The chart displays up to 10 albums, ranked by chart score.

Chart score (no-ties formula)

Each eligible album receives a chart score calculated as:

chart_score = (adjusted_spins x 1000)
            + (previous_chart_points x 50)
            + (duration_minutes / 100)
            + (consecutive_months x 2)
            + (lifetime_adjusted_spins x 0.001)
            + (total_duration_seconds / 1,000,000)

Where:

  • Adjusted spins counts full plays as 1.0 and partial plays by their play percentage. This value is further modified by the spin's rating multiplier (see below).
  • Previous chart points rewards albums that performed well on the prior month's chart
  • Duration minutes gives a small bonus for total listening time during the period
  • Consecutive months rewards albums with sustained chart presence
  • The final two terms are tiebreakers that use lifetime data and album length to guarantee every album receives a unique score

Spin ratings and their chart impact

Each spin can optionally be rated on a 1 to 5 star scale. Ratings reflect the quality of the listening experience — for example, a spin affected by heavy popping or skipping might receive a low rating, while a pristine-sounding play might earn 5 stars. A comment can also be attached to any spin to note observations about the pressing or the listening session.

Ratings directly influence the chart by applying a multiplier to the spin's adjusted value:

Rating Multiplier Effect
Unrated 1.0x Neutral (no impact)
1 star 0.6x Strong penalty
2 stars 0.8x Moderate penalty
3 stars 1.0x Neutral
4 stars 1.15x Moderate reward
5 stars 1.3x Strong reward

For example, a full play rated 2 stars contributes 0.8 adjusted spins instead of the default 1.0, reducing the album's chart score. A 5-star full play contributes 1.3 adjusted spins, boosting it. This system ensures that albums which consistently deliver a great listening experience are rewarded on the chart, while albums with poor-quality pressings or disappointing plays are naturally penalized.

Ratings and comments can be added at the time of logging a spin or edited after the fact through the app's spin feed.

Points and units

  • Points are awarded based on chart position: (chart_size + 1) − position. On a 5-entry chart, #1 earns 5 points, #2 earns 4, and so on.
  • Units represent an all-time performance score: Units = (2 x lifetime_adjusted_spins) + total_chart_points

Movement codes

The MV column shows how an album's position changed from the previous month:

  • NEW — first-ever appearance on the chart
  • RE — re-entry after being absent from the previous month's chart
  • = — no change in position
  • ▲N — moved up by N positions
  • ▼N — moved down by N positions

Chart columns

Column Meaning
MV Movement from previous month
Album Album title and artist(s)
TW This Week (current position)
LW Last Week (previous month's position, or "-" if new)
MO Months on Chart (total appearances)
PK Peak position (best-ever rank)
SPN Raw spin count during the period
ADJ Adjusted spin count (accounting for partial plays)
PTS Points earned this month

Publishing

Once a chart is generated, it exists as a draft in the database and is synced to the Google Sheets bot tabs. The chart can be reviewed and regenerated as many times as needed while in draft status.

When ready, the chart is published to this wiki via the WeekBot bot account. Publishing:

  • Generates a cover art collage from the top 4 albums' artwork
  • Uploads the collage image to the wiki
  • Creates or updates the chart month's wiki page with the full article, infobox, chart table, statistics, and categories
  • Locks the chart in the database, preventing any further recalculation

Automatic generation

The KWC Vinyl Charts server automatically detects and generates charts for any missed past months when it starts up. This ensures that even if Warz forgets to manually trigger chart generation on the 1st of a new month, the charts are created the next time the server runs.

See Also