Croco Track
Customer Success
ExecutiveEvents

CRM

UsersLocations

Client Health

Summary HealthHealth LabBetaCSM ActionsCSM KanbanBeta

Revenue

FinanceSubscription Status

Product & Ops

Product AdoptionGeolocationData Quality

Tools

UTM BuilderDocs
Settings
← Health Lab

Formula Versions

Timeline of all health-score formulas — active, candidates in shadow period, retired. Each candidate must run at least its min_shadow_days before promotion. Save new candidates from /health-lab/simulator.

  • v3Active
    activated 2026-04-20 · by Baptiste · shadow ≥ 0d
    AUC (churn, 60d)
    —
    n=0

    V3 canonical formula. Shipped 2026-04-20 via M082-M101 cluster. min_shadow_days=0 by exception — normal candidates require 30 days. See docs/product/health-score-v3-handoff.md.

    Definition (JSON)
    {
      "pillars": [
        {
          "max": 30,
          "name": "activation",
          "core_crm_points": 30,
          "any_feature_points": 15
        },
        {
          "max": 25,
          "name": "engagement",
          "saturation_days": 12
        },
        {
          "max": 20,
          "name": "depth",
          "feature_cap": 5
        },
        {
          "max": 10,
          "name": "team",
          "solo_points": 5,
          "multi_user_points": 10
        },
        {
          "max": 15,
          "name": "momentum",
          "thresholds": {
            "stable": -0.1,
            "declining": -0.3,
            "improving": 0.1
          }
        }
      ],
      "trial_max": 85,
      "thresholds": {
        "steady": 25,
        "healthy": 56,
        "thriving": 80
      },
      "subscription_max": 100,
      "core_crm_features": [
        "contacts",
        "conversations",
        "opportunities"
      ],
      "momentum_bootstrap": 10
    }
  • v3.3Candidate← v3
    created 2026-04-24 · by baptiste@alligator-ads.fr · shadow ≥ 14d
    AUC (churn, 60d)
    —
    n=0

    Honeymoon-gap test — R_018 contraction + R_025 churn, scoped to recently-converted subs (is_trial=false AND days_since_trial_converted <= 100). AI triage copilot flagged as top 2 high_signal candidates on 2026-04-24. min_shadow_days=14 to validate fast once outcomes mature ~2026-05-05. Legacy v3.1-profile-* left running for comparison.

    Definition (JSON)
    {
      "rules": [
        {
          "id": "R_honeymoon_contraction",
          "lift": 0.26957267557313186,
          "delta": -11,
          "notes": "Post-trial honeymoon — subs within 100d of conversion, contraction outcome.",
          "source": "rule_miner",
          "p_value": 3.664699727483213e-292,
          "support": 972,
          "condition": {
            "op": "AND",
            "operands": [
              {
                "op": "EQ",
                "field": "is_trial",
                "value": false
              },
              {
                "op": "LTE",
                "field": "days_since_trial_converted",
                "value": 100
              }
            ]
          },
          "confidence": 0.7695726755731319,
          "discovered_at": "2026-04-24",
          "source_rule_id": "R_candidate_2026-04-24_018"
        },
        {
          "id": "R_honeymoon_churn",
          "lift": 0.24907340781171491,
          "delta": -10,
          "notes": "Post-trial honeymoon — subs within 100d of conversion, churn outcome.",
          "source": "rule_miner",
          "p_value": 4.778066542692069e-270,
          "support": 972,
          "condition": {
            "op": "AND",
            "operands": [
              {
                "op": "EQ",
                "field": "is_trial",
                "value": false
              },
              {
                "op": "LTE",
                "field": "days_since_trial_converted",
                "value": 100
              }
            ]
          },
          "confidence": 0.7490734078117149,
          "discovered_at": "2026-04-24",
          "source_rule_id": "R_candidate_2026-04-24_025"
        }
      ],
      "pillars": [
        {
          "max": 30,
          "name": "activation",
          "core_crm_points": 30,
          "any_feature_points": 15
        },
        {
          "max": 25,
          "name": "engagement",
          "saturation_days": 12
        },
        {
          "max": 20,
          "name": "depth",
          "feature_cap": 5
        },
        {
          "max": 10,
          "name": "team",
          "solo_points": 5,
          "multi_user_points": 10
        },
        {
          "max": 15,
          "name": "momentum",
          "thresholds": {
            "stable": -0.1,
            "declining": -0.3,
            "improving": 0.1
          }
        }
      ],
      "trial_max": 85,
      "thresholds": {
        "steady": 25,
        "healthy": 56,
        "thriving": 80
      },
      "subscription_max": 100,
      "core_crm_features": [
        "contacts",
        "conversations",
        "opportunities"
      ],
      "momentum_bootstrap": 10
    }
  • v3.1-profile-trialCandidate← v3segmented (uncalibrated prior)
    created 2026-04-22 · by claude-code / segmentation analysis · shadow ≥ 30d
    AUC (churn, 60d)
    —
    n=0

    Prior weights based on archived correlation analysis (2026-04-20). Requires Phase 0 validation (see docs/product/health-score-segmentation-analysis.md) + 30-day shadow before promotion.

    Definition (JSON)
    {
      "notes": "Trial profile — activation-dominant, no momentum, boosted team points.",
      "weights": {
        "team": 15,
        "depth": 20,
        "momentum": 0,
        "activation": 40,
        "engagement": 25
      },
      "core_crm": [
        "contacts",
        "conversations",
        "opportunities"
      ],
      "team_pts": {
        "solo": 5,
        "multi": 15
      },
      "saturation": {
        "engagement_days": 8,
        "depth_feature_cap": 5
      },
      "thresholds": {
        "steady": 25,
        "healthy": 56,
        "thriving": 80
      },
      "segment_filter": {
        "applies_to": "trial",
        "was_trial_eq": true,
        "tenure_days_max": null
      },
      "momentum_thresholds": {
        "stable": -0.1,
        "declining": -0.3,
        "improving": 0.1
      }
    }
  • v3.1-profile-earlyCandidate← v3segmented (uncalibrated prior)
    created 2026-04-22 · by claude-code / segmentation analysis · shadow ≥ 30d
    AUC (churn, 60d)
    —
    n=0

    Same pillar maxima as v3 canonical ; diverges on saturation_days (8 vs 12) and momentum declining threshold (-0.2 vs -0.3) for earlier alert on disengaging early-stage subs. Requires Phase 0 validation.

    Definition (JSON)
    {
      "notes": "Early subscription (≤90j tenure) — tighter momentum detection, faster engagement saturation.",
      "weights": {
        "team": 10,
        "depth": 20,
        "momentum": 15,
        "activation": 30,
        "engagement": 25
      },
      "core_crm": [
        "contacts",
        "conversations",
        "opportunities"
      ],
      "team_pts": {
        "solo": 5,
        "multi": 10
      },
      "saturation": {
        "engagement_days": 8,
        "depth_feature_cap": 5
      },
      "thresholds": {
        "steady": 25,
        "healthy": 56,
        "thriving": 80
      },
      "segment_filter": {
        "applies_to": "early_subscription",
        "was_trial_eq": false,
        "tenure_days_max": 90
      },
      "momentum_thresholds": {
        "stable": -0.1,
        "declining": -0.2,
        "improving": 0.1
      }
    }
  • v3.1-profile-matureCandidate← v3segmented (uncalibrated prior)
    created 2026-04-22 · by claude-code / segmentation analysis · shadow ≥ 30d
    AUC (churn, 60d)
    —
    n=0

    Momentum bumped to 30 (from 15) reflecting §3.5 archive insight that slope_30d is the strongest pre-churn signal in mature cohorts. Activation reduced to 20 because core-CRM use is near-universal at M+3+. Requires Phase 0 validation.

    Definition (JSON)
    {
      "notes": "Mature subscription (>90j tenure) — momentum-dominant, activation de-weighted since it saturates in this cohort.",
      "weights": {
        "team": 10,
        "depth": 15,
        "momentum": 30,
        "activation": 20,
        "engagement": 25
      },
      "core_crm": [
        "contacts",
        "conversations",
        "opportunities"
      ],
      "team_pts": {
        "solo": 5,
        "multi": 10
      },
      "saturation": {
        "engagement_days": 12,
        "depth_feature_cap": 5
      },
      "thresholds": {
        "steady": 25,
        "healthy": 56,
        "thriving": 80
      },
      "segment_filter": {
        "applies_to": "mature_subscription",
        "was_trial_eq": false,
        "tenure_days_min": 91
      },
      "momentum_thresholds": {
        "stable": -0.1,
        "declining": -0.3,
        "improving": 0.1
      }
    }
  • v2Retired
    activated 2025-12-01 · retired 2026-04-20 · by Baptiste · shadow ≥ 0d
    no perf data yet

    V2 4-factor formula. Retired 2026-04-20 after correlation analysis showed near-zero predictive power (corr=0.10 trial conversion). Replaced by v3.

    Definition (JSON)
    {
      "pillars": [
        {
          "max": 25,
          "name": "login"
        },
        {
          "max": 35,
          "name": "features"
        },
        {
          "max": 15,
          "name": "support",
          "constant": true
        },
        {
          "max": 25,
          "name": "revenue"
        }
      ],
      "thresholds": {
        "steady": 25,
        "healthy": 50,
        "thriving": 75
      }
    }
  • v1Retired
    activated 2023-06-01 · retired 2025-12-01 · by Baptiste · shadow ≥ 0d
    AUC (churn, 60d)
    0.736
    n=2394

    Legacy 3-factor formula, retired when M018 introduced v2.

    Definition (JSON)
    {
      "pillars": [
        {
          "max": 50,
          "name": "login"
        },
        {
          "max": 30,
          "name": "features"
        },
        {
          "max": 20,
          "name": "trend"
        }
      ],
      "thresholds": {
        "steady": 25,
        "healthy": 50,
        "thriving": 75
      }
    }