A Match object describes a single match scheduled between two teams. A Match object with MatchTeam objects but without MatchPlayer objects can be used to describe a match that has been scheduled but not played. Matches are contained in Round objects, which are contained in Phase objects of the Tournament.

If a Match includes Lineup objects on its MatchTeam objects and includes MatchQuestion objects, a complete scoresheet can be reconstructed.

Match object

tossups_read Number The number of tossups read, including any tossups read in overtime.
overtime_tossups_read Number The number of tossups read in overtime.
location String The location of the match. Probably a room name.
packets String The packet(s) used for the match if different from that implied by the packet field of the Round containing the match. This would be used if a small number of matches used different packet(s) than most matches in that round, e.g. by mistake, to fix a previous mistake, or to accommodate a team that had written the packet used for most games in the round.
tiebreaker Boolean Was the match a tiebreaker match?
moderator String Moderator's name.
scorekeeper String Scorekeeper's name.
serial String "For control room use only"-type serial number.
match_teams Array MatchTeam The performances of the teams in this match; see below.
carryover_phases Array Phase Additional phases in which this match should count, besides the one that actually contains it. This is used for "carrying over" games.
match_questions Array MatchQuestion The question-by-question account of what happened; see below.
notes String Freeform text field to record any notes about the match, such as protests or questions read out of order.

MatchTeam object

team Team The team playing this side of the match.
card String The card this team was holding at the beginning of this match.
At least one of team or card is required.
forfeit_loss Boolean Did this team forfeit this match? If absent, assumed to be false. Note that it is possible for both teams in a match to forfeit.
points Number The total score for this team in this match.
bonus_points Number The number of points this team earned on bonuses.
It is invalid to provide both points and bonus_points since that could allow for inconsistent data. Generally, bonus_points is preferred; points is for results that do not include detailed (player-level) statistics.
correct_tossups_without_bonuses Number The number of tossups this team answered correctly (in any form) without earning a bonus. If absent, assumed to be 0. Generally this occurs in overtime, but some formats may use tossups without bonuses in one phase of the game. This field can be used to correctly calculate points per bonus, whose denominator in most formats would be the total number of tossups answered correctly by the team minus this field's value. For more complicated overtime scenarios (e.g. involving nonstandard AnswerTypes), you will need to create different AnswerTypes with different values of awards_bonus.
bonus_bounceback_points Number The number of points this team earned on bonuses bounced back from the opponent.
lightning_points Number The number of points this team earned on lightning questions.
lightning_bounceback_points Number The number of points this team earned on lightning questions bounced back from the opponent.
match_players Array MatchPlayer The performances of the players on this team; see below.
lineups Array Lineup Which players were playing when; see below.
suppress_from_statistics Boolean Indicates that the match should be excluded from calculations of standings, statistics, etc. If absent, this will be assumed to be false.

MatchPlayer object

player Player The player whose performance in this match is being stored.
tossups_heard Number Number representing the number of tossups this player heard.
answer_counts Array PlayerAnswerCount The number of this player's answers for each answer value.

Lineup object

first_question Number Which question number this lineup heard first. The players in this lineup will be credited with hearing all tossups until another lineup takes precendence or until the end of the game, whichever comes first.
players Array Player Which players were in this lineup, in the same order that they would appear on the scoresheet. This array's length is less than or equal to the maximum_players_per_team field from the tournament's ScoringRules object.
reason String One of initial, own_timeout, other_timeout, halftime, segment_break, or before_overtime, representing what opportunity the team had to set or change its lineup. If reason is "initial", then first_question should be 1. The segment_break option represents a moment between portions of a match such as the end of the first quarter in a four-quarter format. halftime can be thought of as equivalent to segment_break for the common case of match formats whose regulation segments are simply two halves. before_overtime can be thought of as a special case of segment_break.

PlayerAnswerCount object

number Number Number of questions answered for this many points.
answer_type AnswerType For nonstandard question types, the particular details about this answer type.

MatchQuestion object

question_number Number Which question number this was. Starts at 1.
buzzes Array MatchQuestionBuzz The number of points scored and by whom on each buzz. The length of this array will be equal to or less than the number of teams playing the match.
bonus_points Number How many bonus points were awarded on this question. May be omitted if the question type doesn't award a bonus, or if bonus is present.
bounceback_bonus_points Number How many bonus points were awarded when this question's bonus bounced back. May be omitted if bonus is present, if the question type doesn't award a bonus, or if bonuses don't bounce back.
bonus MatchQuestionBonus Information about the bonus that was read for this question. May be omitted if bonus_points is present, or if no bonus was read for this question, but should not be omitted merely because no points were earned on the bonus.

For any question that led to a bonus, bonus_points or bonus should be present, but not both.

MatchQuestionBuzz object

team Team Which team's player buzzed in.
player Player Which player buzzed in.
result AnswerType The result of the player's buzz, representing how many points the player's team received.

MatchQuestionBonus object

question_number Number Which bonus number this was. May or may not match the question_number of the MatchQuestion parent, depending on whether bonuses are paired with tossups or simply read in order (and if the latter, on whether any bonus-earning questions failed to lead to a bonus).
parts Array MatchQuestionBonusPart Information about each part of the bonus.

For bonuses that do not have distinguishable parts — e.g. “Name any m of the n things that…” or 30–20–10-style bonuses, treat the entire bonus as a single MatchQuestionBonusPart.

MatchQuestionBonusPart object

controlled_points Number Number of points earned by the controlling team. In all formats with which we are familiar, this must be a nonnegative integer.
bounceback_points Number Number of points earned by the non-controlling team. May be omitted if bonuses do not bounce back, but should not be omitted merely because the non-controlling team earned no points. In all formats with which we are familiar, this must be a nonnegative integer. Usually it can only be positive if controlled_points is 0, but for bonuses of the form "Name any m of the n…") it would be possible for both controlling_points and bounceback_points to be positive.