CoolFace
Datasetpublic

skeswa/swingset

Swingset Swingset is an evidence-preserving dataset of competitive West Coast Swing results. It traces history from 2010-01-01 onward. Events that ended before that date get no rows in events or the tables under it. The registry mirror (dancers, registry_placements) is published whole, back to the registry's own beginning; a registry placement from before the start date keeps a null event_id. That absence is the start-date rule, not missing data. Month-only events have null… See the full description on the dataset page: https://huggingface.co/datasets/skeswa/swingset.

sourceHugging Faceodc-byupdated 2d agoView on Hugging Face
0likes1.2kdownloads
Dataset Card

Swingset

Swingset is an evidence-preserving dataset of competitive West Coast Swing results. It traces history from 2010-01-01 onward. Events that ended before that date get no rows in events or the tables under it. The registry mirror (dancers, registry_placements) is published whole, back to the registry's own beginning; a registry placement from before the start date keeps a null event_id. That absence is the start-date rule, not missing data. Month-only events have null start and end dates and retain their registry month. Editions with neither a registry occurrence nor a public listing are outside the discoverable event inventory.

Load it

sql
SELECT e.name AS event, p.place, leader.name_raw AS leader,
       follower.name_raw AS follower, couple.name_raw AS couple
FROM 'hf://datasets/skeswa/swingset/data/placements/*.parquet' p
JOIN 'hf://datasets/skeswa/swingset/data/events/*.parquet' e USING (event_id)
LEFT JOIN 'hf://datasets/skeswa/swingset/data/entries/*.parquet' leader
  ON leader.entry_id = p.leader_entry_id
LEFT JOIN 'hf://datasets/skeswa/swingset/data/entries/*.parquet' follower
  ON follower.entry_id = p.follower_entry_id
LEFT JOIN 'hf://datasets/skeswa/swingset/data/entries/*.parquet' couple
  ON couple.entry_id = p.couple_entry_id;

DuckDB can run this query directly. Polars, pandas, and Hugging Face datasets can read each table from the paths above. placements is the default config in this version. Hugging Face cannot stream an empty Parquet config, so calendar-only releases default to events; after results arrive, the default changes to placements.

Published coverage

This table is computed from the event rows in this exact dataset version. A source on an event identifies its evidence source or an explicitly labeled URL-override placeholder; it does not establish complete contest or round coverage. The coverage table separates archive and origin evidence. Counts across sources can overlap. Event-list acceptance requires recorded owner review; an empty findings queue alone does not approve a year. Sheet completeness remains unknown until the source index and all expected rounds have been checked.

SourceViaYearEventsDay precisionListed onlyRegistry onlyIndex onlyPartial sheetsComplete sheetsEvents accepted
swingdancecouncilwayback201057752308400no
wsdc_registryorigin201062540196100no
swingdancecouncilwayback20113242804500no
wsdc_registryorigin201178350483700no
swingdancecouncilwayback2012739227010500no
wsdc_registryorigin201274750147800no
swingdancecouncilwayback2013779514010300no
wsdc_registryorigin201385870168900no
swingdancecouncilwayback201465701008300no
wsdc_registryorigin2014102620457300no
swingdancecouncilunknown20150000000no
swingdancecouncilwayback201510912725013600no
wsdc_registryorigin201510410901111100no
wsdc_registryunknown20150000000no
swingdancecouncilunknown20160000000no
swingdancecouncilwayback201644511005700no
wsdc_calendarunknown20160000000no
wsdc_calendarwayback201675841408400no
wsdc_newsletterorigin20164400400no
wsdc_newsletterunknown20160000000no
wsdc_registryorigin201611911901312100no
wsdc_registryunknown20160000000no
wsdc_calendarunknown20170000000no
wsdc_calendarwayback201727301303000no
wsdc_newsletterorigin20171031337013300no
wsdc_newsletterunknown20170000000no
wsdc_registryorigin20171201430514300no
wsdc_registryunknown20170000000no
scoringdanceorigin20183440310no
scoringdanceunknown20180000000no
wsdc_calendarunknown20180000000no
wsdc_calendarwayback20182223302300no
wsdc_newsletterorigin201810713711013700no
wsdc_newsletterunknown20180000000no
wsdc_registryorigin20181221460114600no
wsdc_registryunknown20180000000no
scoringdanceorigin20197111001010no
scoringdanceunknown20190000000no
wsdc_calendarunknown20190000000no
wsdc_calendarwayback201921261102600no
wsdc_newsletterorigin201910714511014500no
wsdc_newsletterunknown20190000000no
wsdc_registryorigin20191211500215000no
wsdc_registryunknown20190000000no
scoringdanceorigin20200320030no
wsdc_calendarunknown20200000000no
wsdc_calendarwayback202075184180018400no
wsdc_newsletterorigin202029411604100no
wsdc_newsletterunknown20200000000no
wsdc_registryorigin20202529022900no
wsdc_registryunknown20200000000no
scoringdanceorigin20212310210no
scoringdanceunknown20210000000no
wsdc_calendarunknown20210000000no
wsdc_calendarwayback202171160136016000no
wsdc_registryorigin20212426002600no
scoringdanceorigin20228151001320no
scoringdanceunknown20220000000no
wsdc_calendarunknown20220000000no
wsdc_calendarwayback202246724307200no
wsdc_newsletterorigin20224761406100no
wsdc_newsletterunknown20220000000no
wsdc_registryorigin20227990029000no
wsdc_registryunknown20220000000no
scoringdanceorigin202317291502090no
scoringdanceunknown20230000000no
wsdc_calendarunknown20230000000no
wsdc_calendarwayback202344713407100no
wsdc_newsletterorigin202360841208400no
wsdc_newsletterunknown20230000000no
wsdc_registryorigin2023911190311900no
wsdc_registryunknown20230000000no
eeproorigin20241110010no
eeprounknown20240000000no
scoringdanceorigin2024275833037210no
scoringdanceunknown20240000000no
wsdc_calendarunknown20240000000no
wsdc_calendarwayback202436794407900no
wsdc_newsletterorigin202468951409500no
wsdc_newsletterunknown20240000000no
wsdc_registryorigin20241001370213700no
wsdc_registryunknown20240000000no
eeproorigin2025535318016370no
eeprounknown20250000000no
scoringdanceorigin20256512952097320no
scoringdanceunknown20250000000no
wdrmanual20251100100no
wdrorigin20255500050no
wdrunknown20250000000no
wsdc_calendarunknown20250000000no
wsdc_calendarwayback202538551005500no
wsdc_registryorigin202512615801415800no
wsdc_registryunknown20250000000no
eeproorigin20264141907340no
eeprounknown20260000000no
scoringdancemanual20260100100no
scoringdanceorigin2026518725064230no
scoringdanceunknown20260000000no
wdrmanual20268800800no
wdrorigin20268800080no
wdrunknown20260000000no
wsdc_calendarorigin202657575705700no
wsdc_calendarunknown20260000000no
wsdc_registryorigin20269910202110200no
wsdc_registryunknown20260000000no
scoringdanceorigin20271110100no
scoringdanceunknown20270000000no
wsdc_calendarorigin2027107107107010700no
wsdc_calendarunknown20270000000no
wsdc_calendarorigin20283330300no
wsdc_calendarunknown20280000000no
wsdc_calendarorigin20291110100no
wsdc_calendarunknown20290000000no
wsdc_calendarorigin20301110100no
wsdc_calendarunknown20300000000no

Result coverage

Results sourceEvents with placementsPlacements
eepro7210455
scoringdance221264
wdr132396

Event metadata includes future schedules and index-only events. Results coverage counts only events with placements. The manifest separates calendar_horizon from latest_event_covered, the latest dated event with placements; placeholder dates remain approximate.

Data quality

0 of 58558 entry records carry a WSDC ID. Entries represent contest participation, sometimes couples, and are not unique people.

Default WSDC IDs contain confirmed links only. Probable matches remain candidate evidence in identity_links and link_candidates; they do not populate default entry or judge joins. Confirmed source IDs identify what the source asserted. An ID can precede the corresponding registry fetch. Registry coverage does not establish complete dancer histories.

Entry link statusRecords
unmatched58558
Review kindFindings
acquisition_gate7
admission_blocked330
ambiguous_entry136
conflict877
event_alias34
firstpointreconsideration2673
identity_decision298
missing_identity1
paired_name22683
parse_failure5
parse_gap235
parse_warning84
phase1_incomplete17
registry_diff1231
round_observations3764
series_alias45
sourceeventmapping64
sourceidchecked6
unknown_enum3394
work_attempt198

Findings are not an error-rate estimate. Unknown callback outcomes are withheld, so callback rows alone are not a promotion-rate denominator. For entrants appearing with multiple partners, outcomes summarize their strongest reported result. Conflicting entrant/judge marks and their dependent summaries are withheld with findings; partner-specific score histories are not fully represented. alternate preserves an unranked source alternate status. rounds.judge_count is the round-wide judge roster, not each entrant's voting-panel size. Registry divisions PRO and TCH retain literal source codes with unverified meanings; unknown levels mean unavailable interpretation, not no points. Conflicting registry claims are withheld with review findings.

Identity corrections

Default entry and judge IDs have been rechecked against the accepted decision journal, source evidence and suppression policy. identity_links.acceptance_state describes publication acceptance; probable scores remain in link_candidates. Named judges without WSDC numbers retain null IDs.

New default joins remain withheld pending the reviewed accuracy gate. Published baseline interpretations may retain disclosed legacy support; this does not grant admission or removal authority. The manifest pins the journal and admission policy digests. Suppressed personal records are omitted from correction history.

Row counts

TableRows
events2105
contests2005
rounds2934
entries58558
heats0
judges2818
callback_marks288502
callbacks59064
final_marks83355
placements14115
dancers27784
registry_placements197990
identity_links0
link_candidates0
review_queue36082
changelog19132932
snapshots31759
coverage6429

Known gaps

  • 235 contests have unsupported scoring layouts. Their raw evidence is retained privately; see review_queue for details.
  • 1998 of 2105 events currently have event metadata but no parsed contest results.
  • heats has 0 rows; public heat assignments are rarely available.
  • Unverified callback codes and numeric marks remain in private evidence; they do not become negative callbacks or zero marks. Shared finals bibs stay null where partner ownership is unknown; a unique same-contest, same-role preliminary identity can supply an independently observed bib. Couple names remain a single couple entry when the source does not establish individual roles.
  • Rows with snapshot_id = override are URL-override placeholders, not fetched source evidence. Their dates span the month encoded in the override ID; they are not verified event dates. Do not infer result coverage from these rows.
  • 7 newly discovered sheet links await event-year acceptance and the historical acquisition gates. Their index evidence is retained; acquisition has not started for these links.
  • Event-list completion has 17 open year-scope findings for 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026. These combine pending captures (including any waits for host budgets), unresolved source interpretations, and incomplete discovery. The public year findings do not provide a distinct pending-capture count.
  • Event-list identity review has 45 series-alias and 34 event-alias findings across 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026. Printed names and ambiguous editions remain unresolved until reviewed; these counts are findings, not distinct people or series.
  • Event-list sources have 58 warning findings for dates, hiatus/cancellation notices, newsletter approvals or unrecovered status colours, and 4 archived-map parse findings for missing printed names or dates. Unsupported dates and undated listings remain findings; they are not silently assigned dates.
  • Event-list acceptance remains open for 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030. Publishing this partial inventory does not accept a year or authorize its historical score-sheet intake.

Sources and attribution

These sites remain the sources of their facts. Row-level source and snapshot_id fields identify the captured evidence where the table supports them. Coverage varies by source, event, round, and date; this card makes no claim of complete source or registry coverage.

Schema

  • events: eventid, seriesid, name, year, startdate, enddate, eventmonth, dateprecision, held, coveragetier, historysource, city, region, country, website, wsdcstatus, sources, livewindowstart, livewindowend, source, snapshotid, parserversion, firstseenat, lastseenat, runid, scopestatus, evidenceobserved_at
  • contests: contestid, eventid, nameraw, division, agedivision, contesttype, partnermode, dancestyle, wsdcpointseligible, combinedfrom, parsestatus, sourcecontestref, source, snapshotid, parserversion, firstseenat, lastseenat, runid, scopestatus, evidenceobserved_at
  • rounds: roundid, contestid, roundtype, roundindex, nameraw, scoringmethod, callbacklegend, judgecount, chiefjudgeid, entrycount, promotedcount, sourceroundref, scoresheeturl, source, snapshotid, parserversion, firstseenat, lastseenat, runid, scopestatus, evidenceobservedat
  • entries: entryid, contestid, eventid, role, bib, nameraw, namenorm, partnernameraw, cityraw, countryraw, wsdcid, linkstatus, linkconfidence, partnerentryid, roundsdanced, bestround, source, snapshotid, parserversion, firstseenat, lastseenat, runid, scopestatus, evidenceobservedat
  • heats: heatid, roundid, heatnumber, entryid, position, source, snapshotid, parserversion, firstseenat, lastseenat, run_id
  • judges: judgeid, eventid, nameraw, initials, anonymous, wsdcid, source, snapshotid, parserversion, firstseenat, lastseenat, runid, scopestatus, evidenceobservedat
  • callback_marks: roundid, entryid, judgeid, mark, markraw, markvalue, source, snapshotid, parserversion, firstseenat, lastseenat, runid
  • callbacks: roundid, entryid, scoresum, yescount, altcount, nocount, outcome, tiebreakapplied, heatnumber, source, snapshotid, parserversion, firstseenat, lastseenat, runid
  • final_marks: roundid, placementid, judgeid, rank, source, snapshotid, parserversion, firstseenat, lastseenat, runid
  • placements: placementid, roundid, contestid, eventid, place, leaderentryid, followerentryid, coupleentryid, leaderwsdcid, followerwsdcid, markssorted, tally, registrypointsleader, registrypointsfollower, registryconfirmed, pointsmatchesexpected, source, snapshotid, parserversion, firstseenat, lastseenat, runid, scopestatus, evidenceobservedat
  • dancers: wsdcid, firstname, lastname, namenorm, ispro, primaryrole, leaderrequiredlevel, leaderallowedlevel, followerrequiredlevel, followerallowedlevel, leaderhighestlevel, leaderhighestpoints, followerhighestlevel, followerhighestpoints, recentyear, registryinternalid, registryfetchedat, mergedintowsdcid, source, snapshotid, parserversion, firstseenat, lastseenat, runid, scopestatus, evidenceobservedat
  • registry_placements: wsdcid, role, dancestyle, division, seriesid, seriesnameraw, eventmonth, eventid, result, points, source, snapshotid, parserversion, firstseenat, lastseenat, runid, scopestatus, evidenceobserved_at
  • identity_links: linkid, subjectkind, subjectid, wsdcid, method, status, confidence, constraintsapplied, sourcerefids, decisionids, acceptancepolicy, acceptancestate, journaldigest, journalgeneration, assertedat, runid
  • link_candidates: subjectkind, subjectid, wsdcid, score, namesimilarity, namerarity, divisionok, roleok, recencyok, geography, bibreuse, registryconfirms, sourceidconfirms, rank, chosen, run_id
  • review_queue: itemid, kind, subjectid, summary, suggestedoverride, openedat, run_id
  • changelog: changedat, runid, table, recordkey, field, oldvalue, newvalue, changetype, reason
  • snapshots: snapshotid, source, url, fetchedat, httpstatus, bodysha256, bodybytes, contentchanged, parser, parserversion, parsestatus, via, capturedat, archiveurl, observed_at
  • coverage: year, source, via, events, contests, rounds, entries, eventsregistryonly, eventsindexonly, eventssheetspartial, eventssheetscomplete, eventsdayprecision, eventslistedonly, eventsaccepted, expectedrounds, parsedrounds, unresolvedfindings, lastchangedat, scopekind, scopeid, scopestatus, scopereasons, missingscopes, discoveredunits, acquiredunits, interpretedunits, mappedunits, withheldunits, unavailableunits, unassessedunits, resolvedidentities, identitysubjects, withheldidentities, withheldscopes, unavailablescopes, discoverydenominator, discoveryuniverse, acquisitiondenominator, interpretationdenominator, mappingdenominator, evidencecutoff, evidenceobservedat, usableverifiedat, healthasof, method, population, uncertainty, eventid, enumerationid, enumerationsnapshotids, enumerationcomplete, listedpages, acquiredpages, acquisitionunknownpages, interpretationunknownpages, interpretedpages, selectedinterpretedpages, representedpages, unavailablepages, unsupportedpages

Updates and corrections

Collection runs every 15 minutes when work is due. identity_links carries current identity confidence; changelog explains published changes. File corrections or removal requests at https://github.com/skeswa/swingset/issues.

Collection and personal data

Public calendars, registries, and score sheets are fetched serially per host, respecting robots, Retry-After, and a five-second request floor. An explicitly seeded registry sweep uses its documented two-second exception. Results include public competitor and judge names. Suppressed people keep structural rows with identity fields removed. Raw bodies stay private. Source terms continue to apply.

License and citation

The compilation and structure are ODC-By 1.0. This license does not replace source terms or grant rights in source material. Attribute Swingset, cite this repository, and pin the Hub commit used.

Schema versions

The schema is pre-1.0. This version adds event precision, held status, history sources, archive capture times, and the coverage table. Probable identity links are excluded from default entry and judge WSDC IDs.