<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kingwarzcharts.com/index.php?action=history&amp;feed=atom&amp;title=Vinyl_Album_Charts</id>
	<title>Vinyl Album Charts - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://kingwarzcharts.com/index.php?action=history&amp;feed=atom&amp;title=Vinyl_Album_Charts"/>
	<link rel="alternate" type="text/html" href="https://kingwarzcharts.com/index.php?title=Vinyl_Album_Charts&amp;action=history"/>
	<updated>2026-07-21T13:05:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://kingwarzcharts.com/index.php?title=Vinyl_Album_Charts&amp;diff=1339&amp;oldid=prev</id>
		<title>imported&gt;WeekBot: Added spin ratings section: 1-5 star system with chart score multipliers</title>
		<link rel="alternate" type="text/html" href="https://kingwarzcharts.com/index.php?title=Vinyl_Album_Charts&amp;diff=1339&amp;oldid=prev"/>
		<updated>2026-04-12T05:25:53Z</updated>

		<summary type="html">&lt;p&gt;Added spin ratings section: 1-5 star system with chart score multipliers&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{SHORTDESC:Monthly vinyl album charts by King Warz}}&lt;br /&gt;
[[File:King_warz_logo_black.png|thumb|right|150px|King Warz logo as of January 2025.]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Vinyl Album Charts&amp;#039;&amp;#039;&amp;#039; 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&amp;#039;s web dashboard, and the charts are automatically generated by a custom-built program called &amp;#039;&amp;#039;&amp;#039;KWC Vinyl Charts&amp;#039;&amp;#039;&amp;#039;, developed with the assistance of [[Claude (AI)|Claude]], an AI assistant by Anthropic.&lt;br /&gt;
&lt;br /&gt;
The first chart, covering spins logged during &amp;#039;&amp;#039;&amp;#039;March 1 &amp;amp;ndash; March 31, 2026&amp;#039;&amp;#039;&amp;#039;, was generated and published on &amp;#039;&amp;#039;&amp;#039;April 11, 2026&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== From streaming to vinyl ===&lt;br /&gt;
King Warz had been running personal streaming charts since November 2024, with data retroactively generated back to February 2020, powered by a program called &amp;#039;&amp;#039;Levboard&amp;#039;&amp;#039; which pulled data from his Spotify account via Stats.fm (see &amp;#039;&amp;#039;[[King Warz Charts]]&amp;#039;&amp;#039;). 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.&lt;br /&gt;
&lt;br /&gt;
=== Spun It and its limitations ===&lt;br /&gt;
Warz initially used an app called &amp;#039;&amp;#039;&amp;#039;Spun It&amp;#039;&amp;#039;&amp;#039; to log his vinyl plays. While the app provided basic spin tracking, it did not offer everything he needed &amp;amp;mdash; 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.&lt;br /&gt;
&lt;br /&gt;
=== Building KWC Vinyl Charts ===&lt;br /&gt;
With the help of &amp;#039;&amp;#039;&amp;#039;Claude&amp;#039;&amp;#039;&amp;#039;, an AI coding assistant, Warz developed &amp;#039;&amp;#039;&amp;#039;KWC Vinyl Charts&amp;#039;&amp;#039;&amp;#039; &amp;amp;mdash; a fully custom application that replicates and expands on what Spun It offered. The program runs locally on his home server and includes:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Web-based spin logging&amp;#039;&amp;#039;&amp;#039; by searching and selecting records from the collection dashboard&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Automatic chart generation&amp;#039;&amp;#039;&amp;#039; using a multi-factor scoring system with guaranteed no ties&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Discogs integration&amp;#039;&amp;#039;&amp;#039; for syncing his vinyl collection, cover art, and pricing data&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Google Sheets integration&amp;#039;&amp;#039;&amp;#039; for live chart data and spin logs&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wiki publishing&amp;#039;&amp;#039;&amp;#039; via a bot account (WeekBot) that creates and updates chart pages on this wiki&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Cover art collage generation&amp;#039;&amp;#039;&amp;#039; for chart month images&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Year-end charts&amp;#039;&amp;#039;&amp;#039;, streak tracking, heatmaps, artist leaderboards, and collection analytics&lt;br /&gt;
&lt;br /&gt;
Historical spin data from Spun It was imported into the system. These imported spins are preserved in the database for reference but are &amp;#039;&amp;#039;&amp;#039;excluded from chart calculations&amp;#039;&amp;#039;&amp;#039; to ensure only natively-tracked data influences chart positions.&lt;br /&gt;
&lt;br /&gt;
== How the charts work ==&lt;br /&gt;
&lt;br /&gt;
=== Data collection ===&lt;br /&gt;
Spins are logged by searching for and selecting a record through the web dashboard, which runs on a local home server. Each logged spin:&lt;br /&gt;
* Identifies the specific pressing (variant) in the collection, synced from Discogs&lt;br /&gt;
* Records the timestamp, duration, and whether it was a full or partial play&lt;br /&gt;
* Checks for duplicate scans within a 30-minute window to prevent accidental double-logging&lt;br /&gt;
* Syncs the spin to a Google Sheets log in real time&lt;br /&gt;
&lt;br /&gt;
Spins can also be logged manually through the web dashboard for retroactive entries.&lt;br /&gt;
&lt;br /&gt;
=== Chart period ===&lt;br /&gt;
Unlike the streaming [[King Warz Charts]], which use weekly periods, the Vinyl Album Charts operate on &amp;#039;&amp;#039;&amp;#039;monthly&amp;#039;&amp;#039;&amp;#039; periods:&lt;br /&gt;
* Each chart covers a full calendar month (1st to last day)&lt;br /&gt;
* Charts are numbered sequentially (Month 1, Month 2, etc.)&lt;br /&gt;
* 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&lt;br /&gt;
&lt;br /&gt;
=== Eligibility ===&lt;br /&gt;
For an album chart to be generated, at least &amp;#039;&amp;#039;&amp;#039;5 unique albums&amp;#039;&amp;#039;&amp;#039; must have been spun during the chart period. Only spins with &amp;lt;code&amp;gt;source&amp;lt;/code&amp;gt; other than &amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt; count toward eligibility.&lt;br /&gt;
&lt;br /&gt;
The chart displays up to &amp;#039;&amp;#039;&amp;#039;10 albums&amp;#039;&amp;#039;&amp;#039;, ranked by chart score.&lt;br /&gt;
&lt;br /&gt;
=== Chart score (no-ties formula) ===&lt;br /&gt;
Each eligible album receives a chart score calculated as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
chart_score = (adjusted_spins x 1000)&lt;br /&gt;
            + (previous_chart_points x 50)&lt;br /&gt;
            + (duration_minutes / 100)&lt;br /&gt;
            + (consecutive_months x 2)&lt;br /&gt;
            + (lifetime_adjusted_spins x 0.001)&lt;br /&gt;
            + (total_duration_seconds / 1,000,000)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Adjusted spins&amp;#039;&amp;#039;&amp;#039; counts full plays as 1.0 and partial plays by their play percentage. This value is further modified by the spin&amp;#039;s &amp;#039;&amp;#039;&amp;#039;rating multiplier&amp;#039;&amp;#039;&amp;#039; (see below).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Previous chart points&amp;#039;&amp;#039;&amp;#039; rewards albums that performed well on the prior month&amp;#039;s chart&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Duration minutes&amp;#039;&amp;#039;&amp;#039; gives a small bonus for total listening time during the period&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Consecutive months&amp;#039;&amp;#039;&amp;#039; rewards albums with sustained chart presence&lt;br /&gt;
* The final two terms are &amp;#039;&amp;#039;&amp;#039;tiebreakers&amp;#039;&amp;#039;&amp;#039; that use lifetime data and album length to guarantee every album receives a unique score&lt;br /&gt;
&lt;br /&gt;
=== Spin ratings and their chart impact ===&lt;br /&gt;
Each spin can optionally be rated on a &amp;#039;&amp;#039;&amp;#039;1 to 5 star&amp;#039;&amp;#039;&amp;#039; scale. Ratings reflect the quality of the listening experience &amp;amp;mdash; 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 &amp;#039;&amp;#039;&amp;#039;comment&amp;#039;&amp;#039;&amp;#039; can also be attached to any spin to note observations about the pressing or the listening session.&lt;br /&gt;
&lt;br /&gt;
Ratings directly influence the chart by applying a &amp;#039;&amp;#039;&amp;#039;multiplier&amp;#039;&amp;#039;&amp;#039; to the spin&amp;#039;s adjusted value:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;margin:auto; text-align:center&amp;quot;&lt;br /&gt;
! Rating !! Multiplier !! Effect&lt;br /&gt;
|-&lt;br /&gt;
| Unrated || 1.0x || Neutral (no impact)&lt;br /&gt;
|-&lt;br /&gt;
| 1 star || 0.6x || Strong penalty&lt;br /&gt;
|-&lt;br /&gt;
| 2 stars || 0.8x || Moderate penalty&lt;br /&gt;
|-&lt;br /&gt;
| 3 stars || 1.0x || Neutral&lt;br /&gt;
|-&lt;br /&gt;
| 4 stars || 1.15x || Moderate reward&lt;br /&gt;
|-&lt;br /&gt;
| 5 stars || 1.3x || Strong reward&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example, a full play rated 2 stars contributes &amp;#039;&amp;#039;&amp;#039;0.8 adjusted spins&amp;#039;&amp;#039;&amp;#039; instead of the default 1.0, reducing the album&amp;#039;s chart score. A 5-star full play contributes &amp;#039;&amp;#039;&amp;#039;1.3 adjusted spins&amp;#039;&amp;#039;&amp;#039;, 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.&lt;br /&gt;
&lt;br /&gt;
Ratings and comments can be added at the time of logging a spin or edited after the fact through the app&amp;#039;s spin feed.&lt;br /&gt;
&lt;br /&gt;
=== Points and units ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Points&amp;#039;&amp;#039;&amp;#039; are awarded based on chart position: &amp;lt;code&amp;gt;(chart_size + 1) &amp;amp;minus; position&amp;lt;/code&amp;gt;. On a 5-entry chart, #1 earns 5 points, #2 earns 4, and so on.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Units&amp;#039;&amp;#039;&amp;#039; represent an all-time performance score: &amp;lt;code&amp;gt;Units = (2 x lifetime_adjusted_spins) + total_chart_points&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Movement codes ===&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;MV&amp;#039;&amp;#039;&amp;#039; column shows how an album&amp;#039;s position changed from the previous month:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;NEW&amp;#039;&amp;#039;&amp;#039; &amp;amp;mdash; first-ever appearance on the chart&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;RE&amp;#039;&amp;#039;&amp;#039; &amp;amp;mdash; re-entry after being absent from the previous month&amp;#039;s chart&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;=&amp;#039;&amp;#039;&amp;#039; &amp;amp;mdash; no change in position&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;amp;#9650;N&amp;#039;&amp;#039;&amp;#039; &amp;amp;mdash; moved up by N positions&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;amp;#9660;N&amp;#039;&amp;#039;&amp;#039; &amp;amp;mdash; moved down by N positions&lt;br /&gt;
&lt;br /&gt;
=== Chart columns ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Column !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;MV&amp;#039;&amp;#039;&amp;#039; || Movement from previous month&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Album&amp;#039;&amp;#039;&amp;#039; || Album title and artist(s)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;TW&amp;#039;&amp;#039;&amp;#039; || This Week (current position)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;LW&amp;#039;&amp;#039;&amp;#039; || Last Week (previous month&amp;#039;s position, or &amp;quot;-&amp;quot; if new)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;MO&amp;#039;&amp;#039;&amp;#039; || Months on Chart (total appearances)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;PK&amp;#039;&amp;#039;&amp;#039; || Peak position (best-ever rank)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;SPN&amp;#039;&amp;#039;&amp;#039; || Raw spin count during the period&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;ADJ&amp;#039;&amp;#039;&amp;#039; || Adjusted spin count (accounting for partial plays)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;PTS&amp;#039;&amp;#039;&amp;#039; || Points earned this month&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Publishing ===&lt;br /&gt;
Once a chart is generated, it exists as a &amp;#039;&amp;#039;&amp;#039;draft&amp;#039;&amp;#039;&amp;#039; 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.&lt;br /&gt;
&lt;br /&gt;
When ready, the chart is &amp;#039;&amp;#039;&amp;#039;published&amp;#039;&amp;#039;&amp;#039; to this wiki via the WeekBot bot account. Publishing:&lt;br /&gt;
* Generates a cover art collage from the top 4 albums&amp;#039; artwork&lt;br /&gt;
* Uploads the collage image to the wiki&lt;br /&gt;
* Creates or updates the chart month&amp;#039;s wiki page with the full article, infobox, chart table, statistics, and categories&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Locks&amp;#039;&amp;#039;&amp;#039; the chart in the database, preventing any further recalculation&lt;br /&gt;
&lt;br /&gt;
=== Automatic generation ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Vinyl Singles Charts]]&lt;br /&gt;
* [[King Warz Charts]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Vinyl Album Charts]]&lt;br /&gt;
[[Category:King Warz Charts]]&lt;/div&gt;</summary>
		<author><name>imported&gt;WeekBot</name></author>
	</entry>
</feed>