21 January 2026 · Mira Dela Cruz

Instrumenting micro-friction without drowning in events

Two colleagues collaborating over documents at a table

Mira teaches instrumentation ethics as a guest in week 2. This note is the version she leaves with students who are about to argue with a data team that wants five hundred new events.

Micro-friction is the stall that never becomes a pageview. Field cleared. Helper expanded twice. OTP requested a second time. Error shown, then the same form submitted again. If you only count route changes, you will call the flow healthy.

A set small enough for legal

We ask for four event types, named plainly, with no free-text payloads that might capture personal data:

1. hesitation_bound — fired when focus stays on a primary control beyond a documented threshold.
2. field_cleared — fired when a previously filled input is emptied.
3. recovery_attempt — fired when a user continues after an inline error.
4. handoff_wait — fired when a payment or OTP surface is shown, with a duration when they return.

If legal cannot understand the event name in one reading, the event does not belong in production.

What we refuse

Key-level capture. Clipboard contents. Precise geolocation “just in case.” Session replay without a consent path that matches your Cookies Policy. A Bangkok school that ignores PDPA while teaching friction is not a school worth the tuition.

The point of a small set is not purity. It is that a product squad can actually read the stream next Tuesday. UX Friction Analytics dies when instrumentation becomes a second product nobody maintains.

Back to the journal