Why is the raw GA4 events table so hard to query?
One row per event, with parameters packed into arrays of key-value structs — a schema built for completeness, not for analysts. Simple questions require UNNEST, grain decisions (event? session? user? day?), and knowledge of which parameters your implementation actually sends.
That knowledge is precisely what our modeling layer encodes, once, instead of every analyst rediscovering it per query. The raw export stays raw; the marts are what your team actually touches.