adriaparcerisasflow users interval retention
    Updated 2025-04-28
    WITH user_activity AS (
    -- First get all user activity from both chains with daily granularity
    SELECT
    CAST(value AS VARCHAR) AS user_address,
    DATE_TRUNC('day', b.block_timestamp) AS activity_day
    FROM
    flow.core.ez_transaction_actors AS b,
    LATERAL FLATTEN(INPUT => b.actors) AS a
    WHERE
    block_timestamp >= DATEADD(month, -4, CURRENT_DATE)
    UNION ALL
    SELECT
    from_address AS user_address,
    DATE_TRUNC('day', block_timestamp) AS activity_day
    FROM
    flow.core_evm.fact_transactions
    WHERE
    block_timestamp >= DATEADD(month, -4, CURRENT_DATE)
    ),

    user_first_day AS (
    -- Get each user's first day of activity
    SELECT
    user_address,
    MIN(activity_day) AS first_activity_day
    FROM user_activity
    GROUP BY 1
    ),

    base_cohort_size AS (
    SELECT
    first_activity_day,
    COUNT(DISTINCT user_address) as cohort_size
    FROM user_first_day
    Last run: 25 days ago
    RETENTION_DAY
    AVG_RETENTION_RATE
    1
    0100
    2
    18.02933333
    3
    23.74965517
    4
    32.74285714
    5
    41.30740741
    6
    51.40384615
    7
    61.3252
    8
    72.20458333
    9
    81.98869565
    10
    91.15
    11
    100.99
    12
    110.8955
    13
    120.98421053
    14
    130.92666667
    15
    140.94470588
    16
    150.87375
    17
    161.21066667
    18
    172.93642857
    19
    181.31153846
    20
    191.58333333
    31
    422B
    7s