Data Methodology
We publish how ARPG Seasons collects, verifies, estimates, and corrects season and league schedules. We don't hide which values are official announcements, which are algorithmic estimates (shown as 'Expected'), or which data is missing.
1. Data sources
We limit the primary sources of schedule data to publishers' official channels. Secondary sources such as wikis and news articles are used only as fact-checking references — we don't copy their content into our data.
- Official announcements, developer blogs, and patch notes
- Official publisher forum notices
- Official publisher RSS feeds
2. Verification process
From collection to publication we follow the steps below. Automated collection produces candidates first; a person then cross-checks them against official announcements to confirm or correct them.
- Automated collection: crawl official channels to gather season and league schedule candidates.
- Official cross-check: compare each candidate directly against the publisher's official announcement.
- Human review and correction: the editorial team confirms or edits before publishing, and corrects any error found later.
3. Prediction method and algorithmic-inference disclosure
Season start dates are generally based on official announcements. Official end dates, however, are mostly never announced, so we estimate them algorithmically from past season cadence and announcement patterns.
Any value estimated this way is clearly marked with an 'Expected' badge on screen and is never mixed with confirmed official values. Estimation may combine rule-based computation (such as average past cadence) with supporting large-language-model (LLM) inference.
Real cases where estimation concentrates on end dates:
- Path of Exile: 40 of the 41 tracked leagues have an estimated end date.
- Diablo III: 38 of the 39 tracked seasons have an estimated end date.
- Start dates are mostly based on official announcements; estimation applies mainly to end dates.
4. Prediction accuracy ledger — coming soon
A ledger showing how accurate our predictions actually were is not yet published. Because we have no past prediction history, reconstructing one retroactively would fabricate figures. Instead, we will log only forward-only predictions and their actual outcomes from now on, then publish the ledger once enough data accumulates.
See the prediction ledger notice (Analytics) →5. Correction policy
When an error is found, we correct it against the publisher's official announcement. Facts confirmed after the fact — such as a scheduled start date that actually slipped — are retroactively updated to confirmed values. Error reports are always welcome.
6. We don't hide missing data
For some games we could not confirm past schedules from primary sources, so we left those gaps empty rather than filling them from secondary sources. Known gaps are as follows.
- Undecember: some early entries could not be confirmed, so only 7 seasons are included.
- Path of Exile: some very early league dates (around 2013) are approximate.
- No Rest for the Wicked: no regular seasons yet (1.0 release unannounced, expected in 2026).
- Grim Dawn: runs on an expansion model rather than seasons.
7. Time zone used for display
Season start and end times are stored in the database as UTC and converted only when they are rendered, on a basis fixed per language. Korean pages use KST (Korea Standard Time) and English pages use UTC, with the applicable badge shown next to each date. A visitor's browser time zone is never used for display, because a page that shows different dates depending on where it is opened cannot be cited or compared screen to screen.
The month axis and the displayed window on the calendar and analytics pages are an exception: they stay fixed to UTC regardless of language. If the boundaries of an aggregation window followed the per-language time zone, the window would shift by nine hours and figures such as the maximum number of concurrent seasons would differ between Korean and English. Keeping the axis on a single UTC basis is what makes the aggregate results identical in both languages, so the month axis is treated as a fixed analytical axis and labelled UTC on screen.