mod retention#

module retention#

Retention intent generation from observed session timing distributions.

Functions

fn generate_retention_intent(session_duration: &DistributionSummary, inter_call_gap: &DistributionSummary, thresholds: &RetentionThresholds) -> RetentionIntent#

Generate a retention intent from observed session timing distributions.

The median session duration determines the recommended retention tier. The median inter-call gap is copied into the returned intent for downstream policy decisions.

Parameters

  • session_duration: Observed session-duration distribution.

  • inter_call_gap: Observed inter-call-gap distribution.

  • thresholds: Tier thresholds used to classify the session duration.

Returns

A RetentionIntent summarizing the recommended retention policy.

fn generate_retention_intent_default(session_duration: &DistributionSummary, inter_call_gap: &DistributionSummary) -> RetentionIntent#

Generate a retention intent with the default thresholds.

Parameters

  • session_duration: Observed session-duration distribution.

  • inter_call_gap: Observed inter-call-gap distribution.

Returns

A RetentionIntent produced with RetentionThresholds::default.

Structs and Unions

struct RetentionThresholds#

Thresholds used to map observed timing into a retention tier.

ephemeral_max_secs: f64#

Maximum median session duration for the ephemeral tier, in seconds.

short_lived_max_secs: f64#

Maximum median session duration for the short-lived tier, in seconds.

session_duration_max_secs: f64#

Maximum median session duration for the session-duration tier, in seconds.

long_lived_max_secs: f64#

Maximum median session duration for the long-lived tier, in seconds.

Traits implemented

impl Default for RetentionThresholds#