Afonso_DiazRetention Rate
    Updated 2024-08-09
    with

    main as (
    select
    tx_id,
    block_timestamp,
    nvl(from_amount_usd, to_amount_usd) as amount_usd,
    from_address as user,
    from_asset as symbol_in,
    to_asset as symbol_out,
    iff(symbol_in > symbol_out, symbol_in || ' - ' || symbol_out, symbol_out || ' - ' || symbol_in) as pair
    from thorchain.defi.fact_swaps
    where block_timestamp::date between '{{ start_date }}' and '{{ end_date }}'
    and amount_usd <= 1e6
    and affiliate_address = 'lifi'
    ),

    user_activity AS (
    SELECT
    user,
    date_trunc('{{ period }}', block_timestamp) AS date_start
    FROM main
    GROUP BY user, date_start
    )

    SELECT
    a.date_start AS start_date,
    COUNT(DISTINCT a.user) AS active_users,
    COUNT(DISTINCT b.user) AS retained_users,
    (COUNT(DISTINCT b.user) * 100.0 / COUNT(DISTINCT a.user)) AS retention_rate
    FROM user_activity a
    LEFT JOIN user_activity b
    ON a.user = b.user
    AND a.date_start = b.date_start + INTERVAL '1 {{ period }}'
    GROUP BY a.date_start
    ORDER BY a.date_start
    QueryRunArchived: QueryRun has been archived