bobby_daniel2_Liquidity Provider - Churn Rate
    Updated 2025-04-03
    WITH new_lps AS (
    SELECT
    provider_address as provider,
    MIN(block_timestamp) AS first_deposit
    FROM solana.defi.ez_liquidity_pool_actions
    WHERE block_timestamp >= DATEADD(day, -30, CURRENT_TIMESTAMP())
    AND action_type = 'deposit'
    GROUP BY provider_address
    ),
    exit_check AS (
    SELECT
    nl.provider,
    nl.first_deposit,
    CASE WHEN MIN(e.block_timestamp) IS NOT NULL
    AND DATEDIFF(day, nl.first_deposit, MIN(e.block_timestamp)) <= 7
    THEN TRUE ELSE FALSE END as exit_within_week
    FROM new_lps nl
    LEFT JOIN solana.defi.ez_liquidity_pool_actions e
    ON nl.provider = e.provider_address
    AND e.block_timestamp > nl.first_deposit
    AND e.block_timestamp <= DATEADD(day, 7, nl.first_deposit)
    AND e.action_type = 'withdraw'
    GROUP BY nl.provider, nl.first_deposit
    )
    SELECT
    COUNT(DISTINCT CASE WHEN exit_within_week THEN provider END) as users_churned,
    COUNT(DISTINCT provider) as total_users,
    ROUND(COUNT(DISTINCT CASE WHEN exit_within_week THEN provider END) * 100.0 /
    NULLIF(COUNT(DISTINCT provider), 0), 2) AS churn_rate_percentage
    FROM exit_check;
    Last run: about 2 months ago
    USERS_CHURNED
    TOTAL_USERS
    CHURN_RATE_PERCENTAGE
    1
    18098520684287.5
    1
    22B
    7s