It would be nice to have some documentation about what each of these value mean, there start to be many of them and I am not sure what each of them is about.
What happens (and what's is the intend) if any of the nodes here are obsolete ?
Using tip here seem a bit fragile.
The only(tip, <amended>) range seems strange since this will include changeset that are not descendant of <target>, so over reporting. (we need a test for that).
In addition if some node got skipped or "disappeared for being empty post rebase". It feel like we have a good odd of bad/confusing report.