Audited a production iOS app's tracking last week. 32 screens, 110 events across the codebase.

A few of the findings:

- One event accepted an optional "source" property at the API level, but no call site in the codebase ever passed it. Months of data collection, a property the code was ready to receive, and nothing was ever populated.

- Two events were firing from base classes without any screen attribution. They showed up in dashboards with no context about where they originated.

- Events added across quarters had three different naming conventions sitting side by side.

None of this shows up as broken in dashboards. The events fire. The data flows. It's just quietly wrong, or quietly incomplete.

This is what tracking debt actually looks like in production - not missing tracking, but tracking that looks fine and isn't.

#ProductAnalytics #DataQuality

Originally published on LinkedIn by X91 Tech.