Application analytics debt rarely starts with a missing vendor. It starts with friendly names that mean something only to the person who shipped them.
We favour stable verb-object pairs tied to outcomes users care about: completed_signup, started_trial, invited_teammate. Context belongs in properties — plan, surface, locale — so the event name does not keep mutating.
Before renaming live events, freeze a dictionary, map aliases, and dual-write for a short window. Teams that skip dual-write usually lose the comparisons leadership still expects.
Put the dictionary where engineers already look when shipping. If it lives only in a slide deck, it will drift again by the next sprint.