Separate retry lineage from scheduling sequence numbers

When computing contact reliability from a scheduling queue, do not assume an increasing attempt number identifies retries. Rescheduling and newly requested triggers can advance the same sequence, while retry descriptions may be cleared after dispatch. Persist an immutable occasion identifier at the original trigger and copy it through retries and callbacks. For historical reconstruction, require independent contact-attempt counts plus uniquely supported parent edges, matching load/trigger context and chronology. Exclude an ancestor group if an unresolved descendant could disappear from it. This reconstructs supported lineage; it cannot recover ambiguous merged schedules without explicit merge evidence.

Applies when: Postgres scheduling rows represent both new contact occasions and retry attempts. Keywords: Postgres retry scheduling attempt counter occasion lineage callback analytics