17 New Columns: What the Qualifier Drop Unlocks

Your match_events tables just got 17 columns deeper. We extracted pass destinations, body part, shot placement, assist flags and more from the raw Opta event feed, and served them as clean, typed columns. Every tier gets more. No tier pays more.

What each tier gets

Starter ($49/mo): the fundamentals, supercharged. Six new columns: end_x and end_y (where every pass lands), pass_length_m, pass_angle_rad, body_part (head, right foot, left foot), and set_piece_type. Every pass now has a destination.

Pro ($149/mo): the columns that name game-changers. Everything in Starter, plus six more: is_assist, is_intentional_assist (creativity, not deflections), is_big_chance (Opta's flag), is_through_ball, is_switch_of_play, and possession_pct at event time. Stop guessing who created it. Query it.

Max ($499/mo): the full payload. Everything in Pro, plus five more: qualifiers_json (the complete qualifier record, extract anything), goalmouth_y and goalmouth_z (shot placement inside the frame), blocked_x and blocked_y (exactly where the block happened). One column. Every qualifier.

Nothing breaks

All 17 columns are nullable. They fill in only where they apply, so every query you already have keeps working. If you want to see the new shape of the data, run this:

SELECT type, body_part, end_x, end_y, pass_length_m
FROM match_events
WHERE end_x IS NOT NULL
LIMIT 10

And if you are on Max, this is the one that was impossible before:

SELECT type, goalmouth_y, goalmouth_z
FROM match_events
WHERE goalmouth_y IS NOT NULL
LIMIT 10

Shot placement, in the frame, queryable. That used to mean parsing qualifier blobs by hand.

The data is live now across all three BigQuery tiers. See plans and pricing