# NALTP Archive > History of the North American TagPro leagues (MLTP Majors, mLTP Minors, NLTP Novice, ALTP): > schedules, games, drafts, rosters, transactions and rules-committee records, extracted from the > leagues' Google Sheets, tagproleague.com, tagpro.eu and mltp.gg. The data is served from a home machine through a Cloudflare quick tunnel whose address changes. Use https://tagpro-archive-tunnel.bambitagpro.workers.dev/h/naltp/go as : it redirects to wherever the tunnel is now, so it does not go stale, and it answers 503 while the host is offline. The current address is also in https://bambitp.github.io/naltp-archive/tunnel.json (field "url"), but read that again after every rotation if you use it instead. Either way, append the paths below. /tunnel-check.txt contains "naltp-archive" when the server is up, and https://tagpro-archive-tunnel.bambitagpro.workers.dev/h/naltp/status reports {online, url, updated, age}. All responses allow cross-origin requests. ## Extracted data (start here) - /viewer/data/records/games.csv: one row per scheduled game. Columns: season, league, week, played, team_a, team_b, game (the hub's label where the season has a hub, else tagproleague.com's: G1..G5 from S27; G1H1, G1H2... for halves before S27 and for B teams; G1OT, G1OT2... for overtime periods), on_tagpro_eu (yes | no | not checked yet), note (B-team game; B-team game not on any schedule; found on tagpro.eu; found by the hub's score; mltp.gg score; moved here by tagpro.eu line-ups; forfeit; played, the hub has the score, tagpro.eu has no record; played, this half's/game's tagpro.eu record is missing; played, tagpro.eu has only a fragment; probably not played; probably not played (a team didn't show); unknown), score_a, score_b (tagpro.eu's, else the hub's or mltp.gg's), map, replay (tagpro.eu link, or a TagPro replay the hub links). Restart records (under 5 minutes, where a matchup has more records than games) are not games and are left out. - /viewer/data/records/rosters.csv: one row per player per team per stage. Columns: season, league, team, player, stage (after the draft | end of season), role, joined_by (draft | trade | add or drop), draft_pick (as the sheet wrote it), tagcoins, games_for_team (tagpro.eu games, 10 minutes = 1 game), confirmed. - /viewer/data/records/misc.csv: Columns: season, league, category (transaction | team | rules committee member | map), date, week, name, team, description, confirmed. - Each also as .json: {"columns": [...], "rows": [[...]]}. - source, on every row of those three: a link into the archive's copy of the spreadsheet the fact was read from, opened at that cell (or the mltp.gg page, where that is the source). Blank where the fact came from tagpro.eu rather than a sheet - for a game, the replay column is the record. Rosters: every row. Games: the 7,840 whose result was read from a season hub. Misc: transactions and rules-committee rows. - confirmed = yes when two separate sources agree. - /conflicts.csv: every place sources disagree. Columns: season, league, what, subject, stage_or_week, one_side_says, other_side_says, tagpro_eu_shows, hub_shows, outcome, sources, cells. Only disagreements tagpro.eu and the hub don't settle. - Fuller internal tables with sources and ids are not published here; the condensed raw sources are (below). Season ids: S = Majors/Minors season n (post-merge S27+ also has Novice), N = NLTP season n, A = ALTP season n. Rule used throughout: a fact is trusted when two separate documents state it; single-source facts are kept but marked. ## Every match in one file - https://bambitp.github.io/naltp-archive/matches.json and /matches.json: every match the archive holds, as season -> league -> week -> that week’s games (19,230 games, 49 seasons). Each game: team_a, team_b, game (G1..G5), score in that team order, played (ET), map, record ("tagpro.eu", "pastebin", or null where none was found), url, match (the tagpro.eu id), minutes, players and tags with the first-named team’s side first. A game recorded over more than one match - played in halves, or decided in overtime after a tie - has parts, one per record, each with its own part ("H1", "H2", "OT"), url, match, score, map, minutes and time; the game’s own score is the halves added together, and overtime=true marks the ones an overtime decided (6,096 games are split this way, 289 of them with an overtime). Where record is null, why says what is known and hub_score gives the season hub’s score. Served from GitHub Pages, so it does not need the tunnel. - The same file also carries the postseason, which is in none of the league's own schedule because tagproleague.com recorded the weeks and stopped. It comes from the season hubs' own playoff tabs. - playoffs: season -> league -> the series in the order they were played. Each: round (the league's own name for it - Play-in, The First Four, Equidistant Eight, Secant Six, Spherical Six, Foci Four, Fibonacci Fifteen, then Superball, Muperball, Nuperball or Buperball for the final), played, start_time, team_a, team_b, seed for each, games_won, won_by, streamer, and games: one per match with its score, its tagpro.eu link and whether the match agrees with what the hub wrote. 319 series over 41 brackets, 1,395 of 1,466 games linked to tagpro.eu. - champions: season -> the winners of each competition, with the seed they came from, the captain and the players. 105 of them, reaching back to seasons that have no bracket at all. ## Full export with statuses (internal detail) - /export/README.md: explains the files below. - /export/schedule.csv, games.csv, draft.csv, rosters_after_draft.csv, rosters_end_of_season.csv, transactions.csv, teams.csv, committee.csv: every fact with season, league, a status (confirmed | one source + tagpro.eu | one source | contradicted), the sources behind it, what tagpro.eu shows, and the sheet cell. - /export/contradictions.csv: every place sources disagree, with what each side says and what tagpro.eu and the season hub show. - /export/missing_games_review.csv: every scheduled game with no linked tagpro.eu match, its outcome and the evidence checked (matches found, hub score, forfeit, each team's private matches that night, the rest of the week). - /export/b_team_games_found.csv, b_team_seasons.csv: NLTP S14-S18 B teams (drafted in B-team rounds): official B-team games vs scrims. B teams played Wednesdays, the day after the A teams, the same opponents, six 10-minute halves (S18 sometimes eight); S16-S17 B fixtures appear on no schedule. - /export/missing_games_found.csv: tagpro.eu matches that fit schedule matchups with missing games (found from the schedule and tagpro.eu only), with how and when they matched. - /export/missing_games_search.csv: every matchup with missing games and what the search found. - https://bambitp.github.io/naltp-archive/replays.html and /replays.html: the games with no tagpro.eu record, with the night, the times of the matchup's other games, the map, the hub's score and who played, so a player who was in one can find its TagPro replay. TagPro has kept a recording of every game since 27 Sep 2023; the page opens on those and can show the older ones too. Data: /viewer/data/replay_search.json (replay_era marks the ones TagPro would have), /export/replay_search.csv. - https://bambitp.github.io/naltp-archive/playoffs.html and /playoffs.html: every postseason the archive holds, by season and tier, round by round: the seeds, the series score, every game with its score and record, who streamed it, and the champions (taken from the hub's winners tab, or from whoever won the final where the hub never wrote one down). The league's own schedule holds none of this - tagproleague.com recorded weeks and stopped - so it is read from the season hubs' own playoff tabs. Rounds keep the league's own names (Play-in, The First Four, Equidistant Eight, Secant Six, Spherical Six, Foci Four, Fibonacci Fifteen, Superball/Muperball/Nuperball/Buperball) and are ordered by their dates, or by the shape of the bracket where a hub's dates or numbering contradict it. Data: /export/playoff_series.csv, playoff_games.csv, playoff_champions.csv. Served from GitHub Pages, so it does not need the tunnel. - /match.html?id=: any match the archive holds, shown here rather than on tagpro.eu - the scoreboard, both line-ups with their stats, the map, how the game ended - with tagpro.eu itself, the cell of the season hub the score was written in, and the season all linked from it. id is a tagpro.eu match id (18,631 of them, read out of a full local copy of tagpro.eu) or a pastebin id for a match tagpro.eu doesn't have. The record itself: /viewer/data/eu/.json. - /export/pastebin_games.csv: every game a pastebin holds - season, league, week, teams, game, half, score, kind (tagpro.eu match | stats sheet), players_a and players_b (how many players each side has: fewer than three on a side means tagproleague.com's own placeholder page, not a record, and those are left out of games.csv), whether the sides could be matched to the two teams, the pastebin link and the record path. One page counts as one game: where tagproleague.com links the same page from several games, it fills the first and the note says so. - https://bambitp.github.io/naltp-archive/pastebin_records.zip: every pastebin the archive holds, in one file, kept because whoever posted a pastebin can delete it. pages/.txt are the pages as fetched, records/.json the same read as matches, plus pastebin_games.csv and a README. Served from GitHub Pages, so it does not need the tunnel. ## Browsing - https://bambitp.github.io/naltp-archive/app.html?p=: any path below, shown inside the GitHub Pages site. - /almanac/index.html: one page per season, two-source facts only. - /viewer/: every downloaded spreadsheet, cell for cell, with its merges, colours, links and formulas. /viewer/#t= opens one tab; /viewer/#t=&c=, opens it with that cell picked out, which is what the source column of the tables above links to. Tab data: /viewer/data/tabs/.json, catalog of every workbook and tab: /viewer/data/catalog.json. ## Raw sources, condensed - /sources_data/README.md: format of the condensed sources. - /sources_data/catalog.json: every source workbook and tab with its CSV path. - /sources_data/sources.sqlite: all sheet cells (tables sources, tabs, cells, merges) plus web_* tables (tagproleague links, mltp.gg rosters/draft/transactions, tagpro.eu matches and per-player minutes). ~500 MB. - /SOURCES.md: inventory of every source and its format. ## Reports - /handover.html: overview of sources, pipeline, verification status. - /sources.html: where each season's rosters, drafts and trades live. - /schedule.html, /calendar.html: schedule by season; league nights by month. - /missing_games.html: games still missing and the searches done. - /hub_report.html, /hub_audit.html: wrong tagpro.eu links in the season hubs. - /schedule_crosscheck.html: hub schedules vs tagproleague.com. - /NALTP_rosters.xlsx, NALTP_schedule.xlsx, NALTP_match_archive.xlsx, NALTP_sources.xlsx: spreadsheet exports. - /seasons/index.html: older season browser (before two-source checking).