MONTH | TOTAL_USERS | RETAINED_USERS | RETENTION_RATE | |
---|---|---|---|---|
1 | 2024-01-01 00:00:00.000 | 70021 | 0 | |
2 | 2024-02-01 00:00:00.000 | 39326 | 9891 | 14.13 |
3 | 2024-03-01 00:00:00.000 | 35880 | 6206 | 15.78 |
4 | 2024-04-01 00:00:00.000 | 47520 | 7393 | 20.6 |
5 | 2024-05-01 00:00:00.000 | 46027 | 10071 | 21.19 |
6 | 2024-06-01 00:00:00.000 | 36375 | 9980 | 21.68 |
7 | 2024-07-01 00:00:00.000 | 47129 | 9976 | 27.43 |
8 | 2024-08-01 00:00:00.000 | 28853 | 9531 | 20.22 |
9 | 2024-09-01 00:00:00.000 | 20047 | 6594 | 22.85 |
10 | 2024-10-01 00:00:00.000 | 26008 | 6210 | 30.98 |
11 | 2024-11-01 00:00:00.000 | 22304 | 5319 | 20.45 |
12 | 2024-12-01 00:00:00.000 | 35350 | 4912 | 22.02 |
13 | 2025-01-01 00:00:00.000 | 28124 | 5418 | 15.33 |
14 | 2025-02-01 00:00:00.000 | 25942 | 4139 | 14.72 |
15 | 2025-03-01 00:00:00.000 | 12770 | 2478 | 9.55 |
Haisenbergretention rate
Updated 2025-03-29Copy Reference Fork
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
›
⌄
WITH daily_prices AS (
SELECT
date_trunc(day, hour)::date AS price_date,
token_address,
avg(price) AS token_price
FROM crosschain.price.ez_prices_hourly
WHERE date_trunc(day, hour)::date BETWEEN '{{start_date}}' AND '{{end_date}}'
GROUP BY 1, 2
),
-- Step 1: Get monthly active users
monthly_active_users AS (
SELECT DISTINCT
date_trunc('month', block_timestamp) AS month,
sender AS address
FROM axelar.defi.ez_bridge_squid
WHERE block_timestamp::date BETWEEN '{{start_date}}' AND '{{end_date}}'
),
-- Step 2: Calculate retained users
retained_users AS (
SELECT
current_month.month,
COUNT(DISTINCT current_month.address) AS total_users,
COUNT(DISTINCT previous_month.address) AS retained_users
FROM
monthly_active_users current_month
LEFT JOIN
monthly_active_users previous_month
ON current_month.address = previous_month.address
AND current_month.month = previous_month.month + INTERVAL '1 month'
GROUP BY
current_month.month
)
-- Step 3: Calculate retention rate
Last run: 3 months ago
15
671B
2s