Play Time Model

Play time is one of the most commonly misrepresented data points in board gaming. The publisher says “60 minutes,” but your first game took 3 hours. The data model addresses this with a dual-source approach: publisher-stated times and community-reported times as separate, independent fields.

Publisher-Stated Play Time

The min_playtime and max_playtime fields store what appears on the box, in minutes:

FieldTypeDescription
min_playtimeintegerPublisher’s minimum play time in minutes
max_playtimeintegerPublisher’s maximum play time in minutes

These are factual records of what the publisher claims. They are useful for comparison across games (a “60-90 minute” game is in a different category than a “180-240 minute” game), but they should not be taken as accurate predictions of actual play time.

Why Publisher Times Are Optimistic

Publisher play time estimates are systematically biased toward lower numbers for several reasons:

  • Marketing pressure. A shorter play time makes the game more appealing to a wider audience. “90 minutes” sounds more accessible than “2-3 hours.”
  • Experienced players assumed. Publishers often time with their own playtest groups who know the game intimately. First-time players will be significantly slower.
  • Setup and teardown excluded. The timer starts when the first turn begins, not when you open the box. For complex games, setup can add 15-30 minutes.
  • Analysis paralysis not modeled. Real players think longer than ideal players, especially in strategy-heavy games.
  • Player count variation ignored. Many publishers list a single time range that does not scale with player count, even when a 5-player game takes twice as long as a 2-player game.

Community-Reported Play Time

The community_min_playtime and community_max_playtime fields are derived from actual play logs submitted by community members:

FieldTypeDescription
community_min_playtimeintegerCommunity-reported minimum play time in minutes
community_max_playtimeintegerCommunity-reported maximum play time in minutes

These represent the range within which most community-reported plays fall. The specification defines “most” as the 10th to 90th percentile of reported play times, excluding obvious data entry errors (plays under 5 minutes or over 24 hours for non-campaign games).

Data Source

Community play times come from logged plays where the player recorded a duration. Not all logged plays include duration, and the ones that do are self-reported, so there is inherent noise. With enough data points, the aggregate provides a more detailed picture than publisher estimates – though it still reflects the play patterns of people who log their games, who tend to be more experienced hobbyist gamers. See Data Provenance & Bias for more on how community data is shaped by who contributes it.

Example: Ark Nova

SourceMinMax
Publisher90 min150 min
Community120 min210 min

The publisher says 90-150 minutes. The community data tells a different story: even experienced 2-player games rarely finish under 2 hours, and 4-player games with new players can exceed 3.5 hours. The publisher’s 90-minute lower bound assumes experienced players making fast decisions – a condition that rarely holds for a game with this much card variety and decision density.

Example: Gloomhaven

SourceMinMax
Publisher60 min120 min
Community90 min180 min

The publisher’s optimistic “60-120 minutes” per scenario misses that most groups, especially in early scenarios with new characters, spend 90-180 minutes. Setup and teardown alone can take 20 minutes.

Filtering by Play Time

The filter dimensions support both sources:

  • playtime_min / playtime_max – Filter using whichever source is selected by playtime_source
  • playtime_source=publisher – Use publisher-stated times (default)
  • playtime_source=community – Use community-reported times

Why default to publisher times? Because publisher times are available for nearly every game, while community times require sufficient play log data. For less popular games, community data may not exist. Defaulting to publisher ensures the broadest coverage while allowing users who want accuracy to opt into community times.

Play Time with Expansions

Expansions frequently change play time. Adding content means more decisions, more setup, and longer games. The property delta system captures these changes:

  • Base game publisher time: 90-120 min
  • With expansion: 90-150 min (individual delta)
  • With two expansions: 120-180 min (explicit combination)

When effective mode is enabled, play time filtering considers these expansion effects.

Experience-Adjusted Play Time

All playtime data – publisher-stated, community-reported, and expansion-modified – implicitly assumes experienced players. But a first play of Agricola takes roughly 60% longer than an experienced play – the card combinations, feeding mechanics, and action optimization are overwhelming on first encounter. The experience-adjusted playtime model (ADR-0034) addresses this by bucketing community play data by experience level.

Experience Levels

LevelDescriptionTypical Multiplier
first_playEveryone is new to the game~1.5×
learning1-3 prior plays, still referencing rules~1.25×
experienced4+ plays, knows the rules well (baseline)1.0×
expertOptimized play, minimal downtime~0.85×

How It Works

Community play logs include a self-reported experience level. The system aggregates these into per-level median and percentile times. Multipliers are derived per-game as median[level] / median[experienced].

Example: Agricola

LevelMedian10th pctl90th pctlReports
First play150 min110 min220 min278
Learning120 min90 min165 min445
Experienced95 min65 min130 min1,089
Expert70 min50 min100 min231

Agricola’s first-play multiplier is 1.58× – a first-time group should budget nearly twice the box’s “30 minutes per player” estimate. The card combinations, feeding pressure, and action space are overwhelming on first encounter. The expert multiplier of 0.74× reflects that veteran players who have internalized the occupation/improvement combos and optimal action sequences can finish remarkably quickly.

Why Per-Game Multipliers Matter

Different games have fundamentally different experience curves:

  • Party games (Codenames, Wavelength): Near-zero first-play penalty. Rules take 2 minutes to explain, and play speed barely changes with experience.
  • Medium-weight euros (Wingspan, Everdell): Moderate first-play penalty (~1.3×). The rules are learnable in one session, but card familiarity speeds up experienced play.
  • Heavy games (Agricola, Through the Ages): High first-play penalty (~1.5-2.0×). Complex interlocking systems, large decision trees, and frequent rules references extend first plays dramatically.

A global multiplier would be wrong for all three categories. Game-specific data from community play logs captures these differences accurately.

Filtering by Experience Level

The playtime_experience parameter adjusts playtime filtering:

GET /games?playtime_max=120&playtime_source=community&playtime_experience=first_play

This asks: “Show me games where a first play fits in 2 hours.” Agricola’s community max (130 min) adjusted for first_play (× 1.58 = 205 min) exceeds 120, so it is correctly excluded – a first play of Agricola will not fit in 2 hours.

See Filter Dimensions for the full parameter reference.

Games Without Experience Data

Games with fewer than a minimum number of experience-tagged play logs fall back to global default multipliers (derived from aggregate data across all games). The sufficient_data flag in the experience profile indicates whether game-specific or global multipliers are in use.

OpenTabletop’s Approach

Input Contract

The playtime model follows the specification’s Input Contract principles:

ElementPlaytime-Specific Definition
Question“How long did your session of [Game] take?”
ScaleMinutes (integer)
Context capturedPlayer count for this session, experience level (first play / learning / experienced / expert per ADR-0034), whether rules teaching was included
Transparency“Your reported time is bucketed by experience level and player count. The aggregate reflects play times for your experience bracket, not all players.”

Future: Play Time Distribution

The current model stores the range (min/max). A future version of the specification may include full distribution data:

  • Median play time
  • Percentile breakdown (25th, 50th, 75th, 90th)
  • Play time by player count (2p median, 3p median, etc.)
  • Play time trend over time (are plays getting faster as the community learns the game?)

This data exists in play logs and is planned for the statistics foundation. The current range fields are a pragmatic starting point.