Conditional event drop β filter-based Lexicon rules, not all-or-nothing The problem Lexicon's Drop is binary today: drop the entire event/property, or keep all of it. This works when events are cleanly separable (drop a deprecated event, drop a sensitive property), but fails for the much more common case of mixed-quality events β one event name that carries both signal and noise. Concrete example from my project: our app emits Element Click with two tracking layers simultaneously β a generic auto-track that captures button text (Element Value: "Continue", "Back"...), plus an explicit semantic label we added for real analytics (Element Value: "question-financial_goal", "onboarding-strategy-continue"...). Roughly 50% of Element Click events are generic button-text noise; the other 50% are the semantic events our reports depend on. Today I can't do anything useful with this:
Dropping Element Click kills my semantic analytics too
Keeping it all means paying for (and wading through) massive Lexicon clutter
Hiding only cleans the dropdown β events still ingest, still bill
Current workarounds, and why they fall short
Backend proxy filtering β requires engineering cycles for every rule change. Data/analytics owners can't iterate without filing a ticket.
App-side suppression β same as above, plus a mobile release cycle.
Report-level exclusion filters β works at query time but storage + MTU still include the noise.
Historical deletion API β 10/month cap, 180-day window, retroactive only.
Common thread: the analyst / data-governance owner can't make governance decisions without engineering. Lexicon was supposed to solve that. Proposed feature A conditional Drop rule in Lexicon:
Drop <event> where <property> <operator> <value(s)>
Modeled on the filter UX already used across Insights / Funnels / Flows β same operators (equals, contains, in, matches regex, is set, etc.), same property-picker UI. Example rules
Drop Element Click where Element Value IN ("Continue", "PokraΔovaΕ₯", "Back") β kills generic button-text noise
Drop API Request where API Endpoint CONTAINS "/healthz" β kills monitoring noise
Drop any event where $app_version_string < "2.0" β stops ingestion from deprecated builds
Drop any event where any property MATCHES an email or credit-card regex β compliance safety net
Desired behavior
Takes effect at ingestion (same as existing Drop)
Reversible via Undrop (same as today)
Rule history logged and auditable (who/when)
Owner-only permission (same as today)
Why it matters
Governance by the right role. Data owners can shape Lexicon without engineering gatekeeping.
Cost control. Conditional drops actually reduce billable event volume, where today only full-event drops do.
PII / compliance safety net. Catch sensitive leaks at ingestion without waiting for a backend deploy.
Lexicon becomes the single governance surface instead of half the controls living at ingestion and half in backend proxies scattered across teams.
