Calculating engineering metrics perfectly is impossible. Take cycle time, for example:
Calculating it from PR open to merge creates fuzziness based on when devs open PRs
If you try to calculate from "first commit", Git rebases muddy your numbers
Also: your metrics aren't factoring out non-working hours or weekends
And some teams don't use PRs at all
It's fine to settle for "good enough".
All metrics are proxies.
It's the trends and comparisons that give you the most signal.