Annotation capacity planning is working out how many labelled hours your models need, by when, and at what quality, before the season decides it for you. Most sports AI teams size their annotation pipeline for an average week. The US calendar does not have average weeks. It has a winter where three leagues produce footage at once, and a pipeline built for the mean quietly falls behind exactly when the data matters most.
This guide covers what the overlap actually produces, how to turn that into a throughput number, and which part of the pipeline fails first when you get it wrong.
Key Takeaways
- League-wide the NFL plays 272 regular-season games, the NBA 1,230 and MLB 2,430. Spread across their seasons that is roughly 15, 51 and 93 games a week. The annual total is not the problem. The unevenness is.
- Capacity is throughput times time, divided by the share that passes review first time. That last term is the one teams forget, and the one that moves most.
- Each sport needs a different label type, so annotator capacity does not transfer between them without retraining.
- Decide before the season which of the three levers you will pull at peak: pre-booked external capacity, a narrower schema, or a longer turnaround.
How much footage does the US season actually produce?
The volume is large, but it is the concentration that hurts. The NFL's regular season is 272 games, with each team playing 17 games over an 18-week season (NFL Football Operations), followed by the playoffs in January and the Super Bowl in February. The NBA's 30 teams play 82 games each, which is 1,230 games league-wide, running from October into April. MLB's 30 teams play 162 each, 2,430 in total, with spring training opening in February.
Those are games, not hours, and the hours are the thing you actually label. One NFL game is not one video. From the 2012 season the NFL made coaches film available for every play in two angles: All-22, positioned high above the field so that all 22 players are visible at once, and High End Zone, high above the goalposts and behind the end zone (NFL.com, 2012). Add the broadcast feed and one game can arrive as three separate views, which have to be synchronised before labelling or reconciled across views afterwards.
Now put the calendar together. Dividing each league's games by the weeks its season runs gives a rough weekly load.
| League | Games league-wide | Season span | Rough games per week |
|---|---|---|---|
| NFL | 272 regular season | 18 weeks | 15 |
| NBA | 1,230 | about 24 weeks, October to April | 51 |
| MLB | 2,430 | about 26 weeks, late March to September | 93 |
That is arithmetic from the totals above, so treat the weekly column as an order of magnitude rather than a schedule. Two things follow from it.
The NFL's January is its lightest month by volume and its most valuable by far: a dozen playoff games decide the season, and the analysis deadlines around them are measured in days, not weeks. The volume peak sits elsewhere. It lands in spring, when the NBA's closing weeks overlap MLB's opening ones and the two leagues together produce something like 140 games a week.
So there are two different peaks to plan for, and they need different answers. The January peak is a deadline problem. The spring peak is a throughput problem.
Why the overlap breaks pipelines that look healthy
In our experience a pipeline sized for average throughput fails at peak in a specific order: turnaround slips first, then QA depth, then label consistency. That order matters, because the first two are visible and the third is not.
When the queue grows, the natural response is to keep the annotator count fixed and let delivery slide. Turnaround goes from a day to three. When the client pushes back on turnaround, the next thing to give is review depth: the second QA pass gets skipped for "clean-looking" clips. That still looks fine on a dashboard, because the errors it would have caught are the ones nobody is measuring.
What breaks last, and worst, is consistency. Under time pressure, different annotators resolve the same ambiguous case differently. A tackle in traffic gets logged by one person and skipped by another. A model trained on that data learns the disagreement rather than the sport.
The three sports need three different label types
This is why capacity does not transfer. Moving five annotators from baseball to football does not give you five football annotators.
American football is an occlusion problem. Twenty-two padded players collide in a small area, and players disappear under pile-ups for seconds at a time, so identity has to be maintained through contact rather than observed. Our NFL computer vision guide covers why helmets also remove the face as an identity cue.
American football's dense occlusion means identity must be reconstructed through contact, not merely tracked.
Basketball is a pose and identity problem at speed. The question is usually what a body is doing, not only where it is, which pushes teams towards skeletal keypoints, and screens repeatedly merge and separate two players' boxes. That is covered in our basketball computer vision guide.
Basketball pushes towards skeletal keypoints, a slower and more skill-dependent label than a bounding box.
Baseball is a timing problem. The events that matter are single frames: release, contact, the crossing of the plate. Precision is measured in frames rather than pixels, as covered in our baseball computer vision guide.
Baseball's decisive moments are single frames, so temporal precision matters more than box tightness.
A keypoint annotator who is fast and accurate on basketball pose will be slow on frame-accurate pitch events for weeks. Plan capacity per sport, not as one pooled number.
The capacity maths
Required capacity equals the labels you need, divided by throughput per annotator hour, divided by the share that passes review first time. That last term is the one most plans leave out, and it is the one that moves most.
Work it in this order:
- Labels per minute of footage. Count them from your schema on a real clip, not from memory. Ten tracked players at 30 frames per second is a different order of work from twelve events per match.
- Throughput per annotator hour. Measure it per sport and per label type, on your own footage, with your own guidelines.
- First-pass acceptance. The share of delivered work that passes QA without rework. If 80% passes, your effective capacity is 80% of what your headcount suggests, and the rework consumes reviewer time as well.
- Peak week, not average week. Size against the heaviest week in the table above, for the leagues you actually cover, not against your annual average.
The rework term compounds. A pipeline at 95% first-pass acceptance and one at 80% do not differ by 15%. The second one also spends senior reviewer hours re-checking work, and those reviewers are the constraint, not the annotators.
For context on what a sustained run looks like: on our largest football project we tagged more than 6,000 matches to a 30-plus class taxonomy. New uploads were delivered inside a 24-hour turnaround, through three review layers of primary annotator, specialist reviewer and senior auditor, at 98% accepted first pass. The turnaround was possible because the schema was frozen before the volume arrived, not renegotiated during it.
For the cost side of the same calculation, see our sports video annotation pricing guide, which covers why cost per usable label matters more than cost per hour.
Three levers at peak, and when to pull them
When the peak week is bigger than your capacity, there are only three honest options. Choose in advance which one you are willing to use.
Pre-book external capacity. The cheapest time to arrange overflow is before you need it, because onboarding a vendor mid-peak costs you the calibration period at the worst possible moment (see how long a vendor takes to become productive). Our build versus buy breakdown sets out the cost and risk either way.
Narrow the schema for the peak. Decide which classes are load-bearing for the models you are actually shipping this quarter and defer the rest. A narrower schema applied consistently beats a full schema applied unevenly.
Extend turnaround deliberately. If the downstream model trains weekly, a three-day turnaround may cost nothing. Agreeing that in advance is very different from discovering it in January.
What does not work is quietly reducing review depth, because it converts a visible scheduling problem into an invisible data problem.
What to fix before the season, not during it
- Freeze the schema. Changing class definitions mid-season invalidates comparisons with everything labelled before the change.
- Build a gold set per sport. A few hundred frames with agreed answers, used to calibrate new annotators and to re-test existing ones during the peak.
- Measure first-pass acceptance now. You cannot plan capacity without it, and the number will not be what you assume.
- Write down the ambiguous cases. Most consistency failures are unresolved edge cases, not carelessness. Our guide to measuring annotation quality covers the audits that surface them, including ID-persistence checks that catch identity swaps a spot check misses.
Frequently asked questions
How much annotation does a single game need?
It depends entirely on the schema. Event logging for one match is a few hundred labels. Frame-by-frame tracking is a different universe: ten players on an NBA court for 48 minutes at 30 frames per second is about 864,000 player-frames, before the ball, the officials or the bench. Count labels on one real clip from your own footage before estimating a season.
Can automation absorb the seasonal peak?
Partly. Model-assisted labelling raises throughput on routine frames, but the peak load lands on review rather than on drawing, and review is the slower, more skilled half. Automation changes the shape of the work more than it reduces the hours.
Why can't annotators move between sports at peak?
Because the label types differ. Tracking through occlusion, skeletal keypoints and frame-accurate event timing are three different skills with separate guidelines, and a strong annotator in one is a beginner in another until retrained.
What is first-pass acceptance and why does it matter here?
It is the share of delivered work that passes QA without rework. It converts headcount into real capacity: at 80% acceptance, a fifth of your annotator hours and a matching slice of reviewer time produce nothing new.
Plan for the peak week, not the season average
The US winter does not create a new annotation problem. It compresses the one you already have, and it exposes whichever assumption in your pipeline was never measured. Usually that assumption is first-pass acceptance, and it is measurable this week.
If you need burst capacity for a season peak, or a baseline throughput measurement on your own footage before you plan around it, see Train Matricx pricing and the free pilot. We annotate a pilot clip so you can measure throughput and quality on your hardest footage before committing to a volume.

Client results
“Train Matricx didn't just provide labeling — they became an extension of our team. With 6K+ football matches annotated and counting at 98% accuracy, they are our premier data partner.”

Billy Brush
Founder & CEO, Dark Horse AI
Don't take our word for it. Test the labels.
Send us the footage your current vendor gets wrong — the occluded players, the motion blur, the edge cases. We annotate it and return a QA report you can check frame by frame.
- Your hardest clip, annotated in 48 hours
- Full QA report with per-frame accuracy
- No commitment, no contract, no card


