28 Apr 2026

Property dictionaries before you ship

An event name without a property contract is a rumour. The dictionary is the part of app analytics event schema planning that actually keeps funnels honest.

Planning sheets spread across a desk

Every property row needs five things: type, allowed values or “free text with examples,” null policy, PII flag, and owner. If any of those are missing, someone will invent them at 11 p.m. before a release.

Booleans that sometimes arrive as strings are a classic. So are amounts without a currency, and status fields with both success and SUCCESS. The dictionary’s job is to make those illegal before they hit production.

Null policy is unglamorous and decisive. “Omit if unknown” versus “send null” versus “send unknown” changes join logic. Write the sentence. Put it in the PR template. The Property Dictionary Intensive exists because teams skip this row and then argue for months in Looker.

PII flags are not a legal substitute for a privacy review, but they stop a well-meaning engineer from attaching an email to profile_updated “just for debugging.” If Thailand’s PDPA or your counsel says no, the dictionary should already say no.

Owners matter when a new value appears. Who may add promptpay to payment_method without a schema review? If the answer is “anyone,” you do not have a dictionary. You have a wiki.

We keep the artefact boring on purpose: a table, not a slide. Boring tables get implemented. Slides get applauded and ignored.

← All notes