Thank you for sharing this!
One thing to note: INP today when measured from PerformanceObserver API suffers from certain race conditions during document unload-- i.e. which comes first, unload or next paint? Today you cannot measure Event Timings which are still in the middle of measurement at unload time (because you can no longer run JS). (crbug
). So at least for your hyperlink/nav results, I suspect the "real" p75 would be slightly higher (if you did measure those long-running interactions that were slower than unload).
Based on your description of the site, it sounds like the primary causes of responsiveness issues on these pages is just general main thread contention and rendering work. Looking specifically at loading time TBT, a sample PSI run suggests there is room for improvement. That means that no specific event handler or specific effects which follow interactions are the low hanging fruit.
You could test that hypothesis by trying to attribute your INP scores down into more concrete time breakdowns (input delay, processing times, rendering and presentation delays), as e.g. this workshop suggests
. This would tell you if event processing times are the culprit, or mostly just other stuff.
Alternatively, to just see if it is mostly just loading TBT, you could also just compare INP scores to the time of interaction to see if it correlates.