The canonical record

Data and corrections

Every result since 1886. Detail fills in where sources allow — gaps stay on the page.

The record

Complete results, layers that fill in

Every result is known back to 1886. The richer detail thins as the record reaches into the Victorian past — this is exactly where, layer by layer and decade by decade.

6,032official matches

every result known, back to 1886

81%
Complete goalscorer rows
100%
Starting XIs
99%
Attendances

Swipe for all decades →

Layer
18801
1890256
1900384
1910247
1920451
1930420
1940172
1950472
1960531
1970515
1980516
1990562
2000591
2010554
2020360
All-time
Resultthe spine — every match
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100%
United scorerscomplete goal list
100
74
71
75
71
76
85
83
81
77
75
82
83
97
99
81%
Opposition goalswho scored against
100
22
36
61
64
71
65
75
73
69
60
58
56
61
68
61%
Starting XIthe eleven named
100
100
100
100
100
100
100
100
100
100
99
100
100
100
100
100%
Cardsbookings recorded
0
0
0
0
0
0
0
0
0
0
0
0
0
67
91
12%
Attendancecrowd recorded
100
98
100
100
100
100
100
99
100
100
100
100
100
100
81
99%
Assistssource-limited to recent eras
0
0
0
0
0
0
0
0
0
0
0
0
0
61
81
10%
Cell value is the percent of that decade’s matches carrying the layer.0%100%

Slice: all 6,032 matches in the database, grouped by decade. Every match carries a result row.

Intensity and the cell value are the share of each decade's matches that carry the layer. The all-time column on the right is the same share across the whole record.

The other cut

Coverage by competition type

The same layers, sliced by competition rather than by decade — league fixtures are the best-covered, the deep cup and European archive the thinnest.

  1. League
    Matches
    4,863
    Scorers
    3,924 (81%)
    Lineups
    4,862 (100%)
  2. FA Cup
    Matches
    464
    Scorers
    380 (82%)
    Lineups
    464 (100%)
  3. Europe
    Matches
    431
    Scorers
    363 (84%)
    Lineups
    431 (100%)
  4. League Cup
    Matches
    218
    Scorers
    180 (83%)
    Lineups
    217 (100%)
  5. Shields and Super Cups
    Matches
    40
    Scorers
    31 (78%)
    Lineups
    36 (90%)
  6. Test Matches
    Matches
    8
    Scorers
    4 (50%)
    Lineups
    8 (100%)
  7. World
    Matches
    8
    Scorers
    7 (88%)
    Lineups
    8 (100%)

Provenance

How the record is built and corrected

Every layered fact cites a source, and corrections follow one contract. The queue below is where the faint cells above turn into work.

Sources

Grouped by upstream source where several use cases share a lineage. Expand a family to see how each use case is applied and an example on file.

High-value gaps

The queue prioritises recent post-war United goalscorer gaps, then opposition goals, lineups, and attendance. Older archive work can still be added whenever a citation is strong.

For researchers & developers

The same compiled record powers the site, the public API, and the flat-file exports. Start with the manifest, cite stable us: IDs when linking back to a specific match or entity, and read facet flags before treating event or lineup fields as complete totals.

Dataset downloads

Each production build exports flat files from the compiled SQLite database, so the downloadable red thread dataset matches the app and API. /dataset/manifest.json lists row counts, build metadata, and registry fields for data catalogs.

All export files (13)

Public read-only API

JSON dumps generated at build, with permissive CORS and an attribution block on every payload. List endpoints are unfiltered snapshots. The index at /api/v1.json lists every endpoint with filter notes.

Treat result rows as the stable core and read facet flags before using event, lineup, assist, card, attendance, or source-derived fields as complete historical totals.

How to cite Red Thread

The dataset is licensed CC BY-SA 4.0. Credit Red Thread with a link to https://utdred.com/data, preserve per-source attribution in reused rows, and prefer stable us: identifiers when pointing at a specific record (e.g. us:match:1999-05-26-bayern-munich-n).

Plain text

Red Thread (2026). Red Thread dataset: United history, evidenced — every match since 1886. https://utdred.com/data. Licensed CC BY-SA 4.0. Stable record IDs use the us: scheme (e.g. us:match:1999-05-26-bayern-munich-n).

BibTeX
@dataset{red-thread-manchester-united_2026,
  title = {Red Thread dataset},
  author = {Red Thread},
  year = {2026},
  url = {https://utdred.com/data},
  note = {United history, evidenced — every match since 1886. Stable IDs: us:<kind>:<key>. Downloads: https://utdred.com/dataset/manifest.json},
  license = {CC BY-SA 4.0},
  howpublished = {\url{https://utdred.com/data}}
}

AI crawlers & registries

Machine-readable site guidance lives at /llms.txt. For football data registries and research indexes, list the dataset with manifest URL https://utdred.com/dataset/manifest.json and point documentation to this page.

Also layered onto lineups: 2,478 matches with used-substitute records and 882 with a named bench.