Importing match history

Bringing an existing club onto Skoryd? You can import your past cornhole matches from a CSV file — including full round-by-round bag data — so your players' production stats and skill ratings reflect their real history, not just wins and losses.

Find it under a club at Manage → Import / Export → Import Match History (organizers only). The importer creates one new completed league holding all the imported matches.

Two file shapes

The importer auto-detects which shape your file uses. Download a starter template from the upload screen.

Simple — results only

One row per match, final scores only. Good when all you have is who beat whom.

Date,Player 1,Score 1,Player 2,Score 2
2026-05-01,Jane Smith,21,Bob Jones,15
2026-05-08,Jane Smith,21,Alex Lee,12

Full — round-by-round

One row per round, grouped by a Match ID. This is how you bring in the per-round bag counts Skoryd tracks. Rows that share a Match ID are the rounds of one match.

Match ID,Date,Court,Home Player 1,Home Player 2,Away Player 1,Away Player 2,Round,Home Bags In,Home Bags On,Away Bags In,Away Bags On,Home Thrower,Away Thrower
m1,2026-05-01,1,Jane Smith,,Bob Jones,,1,4,0,0,0,,
m1,2026-05-01,1,Jane Smith,,Bob Jones,,2,2,1,3,0,,

The final score for each match is calculated from its rounds (standard 21-point cancellation with bust-back), so you don't have to provide it. If your matches were played under different rules (for example, no bust-back), add Home Score and Away Score columns with each match's final score. When those are filled in, they're used instead of the calculated score.

Everything except the essentials is optional

The only columns you truly need are the player names plus either final scores or round-by-round bag rows. Every richer column is optional, and a blank cell is treated the same as a missing column:

  • Doubles — fill in Home Player 2 and Away Player 2. Leave them blank for singles. A single file can mix singles and doubles matches.
  • Court — sets the court number on the match (a column named Board works too). Independent of everything else.
  • Home Thrower / Away Thrower — for doubles, name which partner threw that round so their individual production is credited, as the live scorer does after you pick who throws first. This works with or without a Court column. Leave it blank and both partners are credited — the same default the live scorer uses. Nobody is blocked for not having this data.

Note

The templates are just convenient starting points, not rigid formats. You can add or delete any optional column. If you don't track per-throw data, delete the Thrower columns and import the rest.

Exporting the same format (round-trip)

Under Import / Export → Export, the League / Tournament CSV row has a Round-by-round button that exports any event's matches in this exact round-by-round format — every round's bag counts, doubles partners, throwers, each side's running score after that round (the way a paper scorecard reads), and each match's final score. The running score is there for reading; the importer ignores it. Because it matches the import schema, you can export an event, edit it in a spreadsheet, and re-import it. The final score is repeated on every round of a match, so a re-import keeps the score the event actually recorded, whatever its scoring rules were. If you change a match's bag counts, clear its Home Score and Away Score cells on every row so the score is recalculated from the new bags. (The Player stats button next to it exports the aggregated one-row-per-player leaderboard instead.)

The Club stats CSV row beside it exports the club leaderboard itself: one row per player per format, for all time or for one season (your club's seasons plus any organization season your events are attached to). It covers official events only; Quick Play isn't included. SSR is filled in for singles and doubles rows and is each player's current rating, even in a one-season file; a provisional rating is marked in the column beside it.

Both CSVs identify players by name, so Crew Cup events — whose matches are played by teams — aren't listed in the picker.

Matching players

After parsing, you'll map each name in the file to a Skoryd member. For anyone who isn't a member, keep Create guest to make a claimable guest account (they get a G-XXXXXX code to claim their history later — see Guests & walk-ins), or choose Skip to leave that player out. Exact name matches to existing members are selected for you.

A match imports only when both sides have their lead player mapped; a match with a skipped player is left out.

Size limits

One import can bring in up to 2,000 matches (up to 100 rounds each), map up to 300 players, and create up to 150 new guest players. The file can be up to 2 MB. A bigger history imports fine in parts: split the file (for example, one season per file) and import each one. Each organizer can run up to 10 imports a day.

What the import produces

  • A new completed cornhole event named however you choose, with every imported match marked approved. If your file has both singles and doubles matches, they import as two separate events (one Singles, one Doubles) — a single event only holds one format.
  • Round-by-round bag data feeds the production stats — PPR, OPPR, DPR, OPR — and each player's skill rating, exactly as if the matches had been scored in the app.
  • If you only imported final scores, wins and losses still count, but there's no per-bag production to show (the same as the simple score-only scorer).