{ "cells": [ { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import gc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Get all activity info from tools.parquet" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "retention_df = pd.read_parquet(\"../data/retention_activity.parquet\")" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['trader_address', 'request_time', 'market_creator', 'request_date',\n", " 'staking', 'month_year_week'],\n", " dtype='object')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "retention_df.columns" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
trader_addressrequest_timemarket_creatorrequest_datestakingmonth_year_week
00x721de88cee9be146c8f0c7ef1a4188bee36494d62024-10-25 00:00:20+00:00quickstart2024-10-25non_stakingOct-25-2024
10x8a1d5f22b5a3bea34697b85e7b4ad894bf9ee36a2024-10-25 00:00:25+00:00quickstart2024-10-25non_stakingOct-25-2024
20xf839eaf4b42eadd917b46d7b6da0dd0e1fd6f6842024-10-25 00:00:55+00:00quickstart2024-10-25non_stakingOct-25-2024
30x01274796ce41aa8e8312e05a427ffb4b0d2148f62024-10-25 00:00:55+00:00quickstart2024-10-25non_stakingOct-25-2024
40xc20678890f94d0162593c46fe5da67d9a4b7a6fb2024-10-25 00:01:05+00:00quickstart2024-10-25non_stakingOct-25-2024
\n", "
" ], "text/plain": [ " trader_address request_time \\\n", "0 0x721de88cee9be146c8f0c7ef1a4188bee36494d6 2024-10-25 00:00:20+00:00 \n", "1 0x8a1d5f22b5a3bea34697b85e7b4ad894bf9ee36a 2024-10-25 00:00:25+00:00 \n", "2 0xf839eaf4b42eadd917b46d7b6da0dd0e1fd6f684 2024-10-25 00:00:55+00:00 \n", "3 0x01274796ce41aa8e8312e05a427ffb4b0d2148f6 2024-10-25 00:00:55+00:00 \n", "4 0xc20678890f94d0162593c46fe5da67d9a4b7a6fb 2024-10-25 00:01:05+00:00 \n", "\n", " market_creator request_date staking month_year_week \n", "0 quickstart 2024-10-25 non_staking Oct-25-2024 \n", "1 quickstart 2024-10-25 non_staking Oct-25-2024 \n", "2 quickstart 2024-10-25 non_staking Oct-25-2024 \n", "3 quickstart 2024-10-25 non_staking Oct-25-2024 \n", "4 quickstart 2024-10-25 non_staking Oct-25-2024 " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "retention_df.head()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "staking\n", "non_Olas 764956\n", "non_staking 275246\n", "pearl 56487\n", "quickstart 48511\n", "Name: count, dtype: int64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "retention_df.staking.value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Join the two datasets" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "# read trades dataset\n", "traders_df = pd.read_parquet(\"../data/all_trades_profitability.parquet\")\n", "unknown_df = pd.read_parquet(\"../data/unknown_traders.parquet\")\n" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "staking\n", "non_Olas 56266\n", "non_staking 20954\n", "pearl 6084\n", "quickstart 3975\n", "Name: count, dtype: int64" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "traders_df.staking.value_counts()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "traders_df[\"trader_type\"] = traders_df[\"staking\"].apply(\n", " lambda x: \"non_Olas\" if x == \"non_Olas\" else \"Olas\"\n", ")" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "trader_type\n", "non_Olas 56266\n", "Olas 31013\n", "Name: count, dtype: int64" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "traders_df.trader_type.value_counts()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "staking\n", "non_Olas 1654\n", "Name: count, dtype: int64" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "unknown_df.staking.value_counts()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "unknown_df[\"trader_type\"] = \"unclassified\"" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "all_traders = pd.concat([traders_df, unknown_df], ignore_index=True)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "trader_type\n", "non_Olas 56266\n", "Olas 31013\n", "unclassified 1654\n", "Name: count, dtype: int64" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_traders.trader_type.value_counts()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/gp/02mb1d514ng739czlxw1lhh00000gn/T/ipykernel_51242/2488528526.py:5: UserWarning: Converting to PeriodArray/Index representation will drop timezone information.\n", " all_traders[\"creation_timestamp\"].dt.to_period(\"W\").dt.strftime(\"%b-%d-%Y\")\n" ] } ], "source": [ "# First, create week numbers from timestamps\n", "all_traders[\"creation_timestamp\"] = pd.to_datetime(all_traders[\"creation_timestamp\"])\n", "all_traders = all_traders.sort_values(by=\"creation_timestamp\", ascending=True)\n", "all_traders[\"month_year_week\"] = (\n", "all_traders[\"creation_timestamp\"].dt.to_period(\"W\").dt.strftime(\"%b-%d-%Y\")\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# WoW Retention" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "def calculate_wow_retention_by_type(df):\n", " # Get unique traders per week and type\n", " weekly_traders = df.groupby(['month_year_week', 'trader_type'])['trader_address'].nunique().reset_index()\n", " weekly_traders = weekly_traders.sort_values(['trader_type', 'month_year_week'])\n", " \n", " # Calculate retention\n", " retention = []\n", " # Iterate through each trader type\n", " for trader_type in weekly_traders['trader_type'].unique():\n", " type_data = weekly_traders[weekly_traders['trader_type'] == trader_type]\n", " \n", " # Calculate retention for each week within this trader type\n", " for i in range(1, len(type_data)):\n", " current_week = type_data.iloc[i]['month_year_week']\n", " previous_week = type_data.iloc[i-1]['month_year_week']\n", " \n", " # Get traders in both weeks for this type\n", " current_traders = set(df[\n", " (df['month_year_week'] == current_week) & \n", " (df['trader_type'] == trader_type)\n", " ]['trader_address'])\n", " \n", " previous_traders = set(df[\n", " (df['month_year_week'] == previous_week) & \n", " (df['trader_type'] == trader_type)\n", " ]['trader_address'])\n", " \n", " retained = len(current_traders.intersection(previous_traders))\n", " retention_rate = (retained / len(previous_traders)) * 100 if len(previous_traders) > 0 else 0\n", " \n", " retention.append({\n", " 'trader_type': trader_type,\n", " 'week': current_week,\n", " 'retained_traders': retained,\n", " 'previous_traders': len(previous_traders),\n", " 'retention_rate': round(retention_rate, 2)\n", " })\n", " \n", " return pd.DataFrame(retention)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "wow_retention = calculate_wow_retention_by_type(all_traders)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
trader_typeweekretained_tradersprevious_tradersretention_rate
0OlasDec-08-2024939894.90
1OlasDec-15-202418720790.34
2OlasDec-22-202418621387.32
3OlasDec-29-202414320370.44
4OlasJan-05-202511714879.05
\n", "
" ], "text/plain": [ " trader_type week retained_traders previous_traders retention_rate\n", "0 Olas Dec-08-2024 93 98 94.90\n", "1 Olas Dec-15-2024 187 207 90.34\n", "2 Olas Dec-22-2024 186 213 87.32\n", "3 Olas Dec-29-2024 143 203 70.44\n", "4 Olas Jan-05-2025 117 148 79.05" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "wow_retention.head()" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
trader_typeweekretained_tradersprevious_tradersretention_rate
9non_Olas2024-12-08154154100.00
10non_Olas2024-12-1530132492.90
11non_Olas2024-12-2231032196.57
12non_Olas2024-12-2931234191.50
13non_Olas2025-01-0530432693.25
14non_Olas2025-01-1224633373.87
15non_Olas2024-11-105125120.32
16non_Olas2024-11-179010090.00
17non_Olas2024-11-2415118183.43
\n", "
" ], "text/plain": [ " trader_type week retained_traders previous_traders retention_rate\n", "9 non_Olas 2024-12-08 154 154 100.00\n", "10 non_Olas 2024-12-15 301 324 92.90\n", "11 non_Olas 2024-12-22 310 321 96.57\n", "12 non_Olas 2024-12-29 312 341 91.50\n", "13 non_Olas 2025-01-05 304 326 93.25\n", "14 non_Olas 2025-01-12 246 333 73.87\n", "15 non_Olas 2024-11-10 51 251 20.32\n", "16 non_Olas 2024-11-17 90 100 90.00\n", "17 non_Olas 2024-11-24 151 181 83.43" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "non_olas = wow_retention.loc[wow_retention[\"trader_type\"]==\"non_Olas\"]\n", "non_olas" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [], "source": [ "import plotly.express as px\n", "import plotly.graph_objects as go\n", "\n", "def plot_wow_retention_by_type(wow_retention):\n", " wow_retention['week'] = pd.to_datetime(wow_retention['week'])\n", " wow_retention = wow_retention.sort_values(['trader_type', 'week'])\n", " fig = px.line(\n", " wow_retention, \n", " x='week', \n", " y='retention_rate',\n", " color='trader_type',\n", " markers=True,\n", " title='Weekly Retention Rate by Trader Type',\n", " labels={\n", " 'week': 'Week',\n", " 'retention_rate': 'Retention Rate (%)',\n", " 'trader_type': 'Trader Type'\n", " }\n", " )\n", " \n", " fig.update_layout(\n", " hovermode='x unified',\n", " legend=dict(\n", " yanchor=\"middle\",\n", " y=0.5,\n", " xanchor=\"left\",\n", " x=1.02, # Move legend outside\n", " orientation=\"v\"\n", " ),\n", " yaxis=dict(\n", " ticksuffix='%',\n", " range=[0, max(wow_retention['retention_rate']) * 1.1] # Add 10% padding to y-axis\n", " ),\n", " xaxis=dict(\n", " tickformat='%Y-%m-%d'\n", " ),\n", " margin=dict(r=150) # Add right margin to make space for legend\n", " )\n", " \n", " # Add hover template\n", " fig.update_traces(\n", " hovertemplate='%{y:.1f}%
Week: %{x|%Y-%m-%d}'\n", " )\n", " \n", " return fig\n", "\n" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "%{y:.1f}%
Week: %{x|%Y-%m-%d}", "legendgroup": "Olas", "line": { "color": "#636efa", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines+markers", "name": "Olas", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ "2024-11-10T00:00:00", "2024-11-17T00:00:00", "2024-11-24T00:00:00", "2024-12-08T00:00:00", "2024-12-15T00:00:00", "2024-12-22T00:00:00", "2024-12-29T00:00:00", "2025-01-05T00:00:00", "2025-01-12T00:00:00" ], "xaxis": "x", "y": [ 78.57, 92.99, 80, 94.9, 90.34, 87.32, 70.44, 79.05, 51.94 ], "yaxis": "y" }, { "hovertemplate": "%{y:.1f}%
Week: %{x|%Y-%m-%d}", "legendgroup": "non_Olas", "line": { "color": "#EF553B", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines+markers", "name": "non_Olas", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ "2024-11-10T00:00:00", "2024-11-17T00:00:00", "2024-11-24T00:00:00", "2024-12-08T00:00:00", "2024-12-15T00:00:00", "2024-12-22T00:00:00", "2024-12-29T00:00:00", "2025-01-05T00:00:00", "2025-01-12T00:00:00" ], "xaxis": "x", "y": [ 20.32, 90, 83.43, 100, 92.9, 96.57, 91.5, 93.25, 73.87 ], "yaxis": "y" }, { "hovertemplate": "%{y:.1f}%
Week: %{x|%Y-%m-%d}", "legendgroup": "unclassified", "line": { "color": "#00cc96", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines+markers", "name": "unclassified", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ "2024-12-08T00:00:00", "2024-12-15T00:00:00", "2024-12-22T00:00:00", "2024-12-29T00:00:00", "2025-01-05T00:00:00", "2025-01-12T00:00:00" ], "xaxis": "x", "y": [ 100, 75, 90, 19.35, 11.11, 0 ], "yaxis": "y" } ], "layout": { "hovermode": "x unified", "legend": { "orientation": "v", "title": { "text": "Trader Type" }, "tracegroupgap": 0, "x": 1.02, "xanchor": "left", "y": 0.5, "yanchor": "middle" }, "margin": { "r": 150 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Weekly Retention Rate by Trader Type" }, "xaxis": { "anchor": "y", "domain": [ 0, 1 ], "tickformat": "%Y-%m-%d", "title": { "text": "Week" } }, "yaxis": { "anchor": "x", "domain": [ 0, 1 ], "range": [ 0, 110.00000000000001 ], "ticksuffix": "%", "title": { "text": "Retention Rate (%)" } } } } }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Create and show the plot\n", "fig = plot_wow_retention_by_type(wow_retention)\n", "fig.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Cohort retention" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "def calculate_cohort_retention(df, max_weeks=12):\n", " # Get first week for each trader\n", " first_trades = (\n", " df.groupby(\"trader_address\")\n", " .agg({\"creation_timestamp\": \"min\", \"month_year_week\": \"first\"})\n", " .reset_index()\n", " )\n", " first_trades.columns = [\"trader_address\", \"first_trade\", \"cohort_week\"]\n", "\n", " # Get ordered list of unique weeks - converting to datetime for proper sorting\n", " all_weeks = df[\"month_year_week\"].unique()\n", " weeks_datetime = pd.to_datetime(all_weeks)\n", " sorted_weeks_idx = weeks_datetime.argsort()\n", " all_weeks = all_weeks[sorted_weeks_idx]\n", "\n", " # Create mapping from week string to numeric index\n", " week_to_number = {week: idx for idx, week in enumerate(all_weeks)}\n", "\n", " # Merge back to get all activities\n", " cohort_data = pd.merge(\n", " df, first_trades[[\"trader_address\", \"cohort_week\"]], on=\"trader_address\"\n", " )\n", "\n", " # Calculate week number since first activity\n", " cohort_data[\"cohort_number\"] = cohort_data[\"cohort_week\"].map(week_to_number)\n", " cohort_data[\"activity_number\"] = cohort_data[\"month_year_week\"].map(week_to_number)\n", " cohort_data[\"week_number\"] = (\n", " cohort_data[\"activity_number\"] - cohort_data[\"cohort_number\"]\n", " )\n", "\n", " # Calculate retention by cohort\n", " cohort_sizes = cohort_data.groupby(\"cohort_week\")[\"trader_address\"].nunique()\n", " retention_matrix = cohort_data.groupby([\"cohort_week\", \"week_number\"])[\n", " \"trader_address\"\n", " ].nunique()\n", " retention_matrix = retention_matrix.unstack(fill_value=0)\n", "\n", " # Convert to percentages\n", " retention_matrix = retention_matrix.div(cohort_sizes, axis=0) * 100\n", "\n", " # Sort index (cohort_week) chronologically\n", " retention_matrix.index = pd.to_datetime(retention_matrix.index)\n", " retention_matrix = retention_matrix.sort_index()\n", "\n", " # Limit to max_weeks if specified\n", " if max_weeks is not None and max_weeks < retention_matrix.shape[1]:\n", " retention_matrix = retention_matrix.iloc[:, :max_weeks]\n", "\n", " return retention_matrix.round(2)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "first_trades = (\n", " all_traders.groupby(\"trader_address\")\n", " .agg({\"creation_timestamp\": \"min\", \"month_year_week\": \"first\"})\n", " .reset_index()\n", ")\n", "first_trades.columns = [\"trader_address\", \"first_trade\", \"cohort_week\"]" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
trader_addressmarket_creatortrade_idcreation_timestamptitlemarket_statuscollateral_amountoutcome_indextrade_fee_amountoutcomes_tokens_traded...earningsredeemedredeemed_amountnum_mech_callsmech_fee_amountnet_earningsroistakingtrader_typemonth_year_week
159310x006f70b4e3c3a3648f31ec16b2e7106fc58166f2pearl0x0d72a8dcb46ea982ad9c82c5a6f03cba72a6b71d0x00...2024-11-12 00:36:55+00:00Will the Chancay mega port in Peru be virtuall...CLOSED0.110.0010.224338...0.000000False0.020.02-0.121000-1.000000pearlOlasNov-17-2024
159330x006f70b4e3c3a3648f31ec16b2e7106fc58166f2pearl0xa7392614f48e129f6796f523a47777a5f36dd7030x00...2024-11-20 07:37:10+00:00Will Google issue a public apology regarding t...CLOSED0.100.0010.213349...0.213349False0.010.010.1023490.922059pearlOlasNov-24-2024
159320x006f70b4e3c3a3648f31ec16b2e7106fc58166f2pearl0x8984bfbca1805f7355a49c261832043cb39b519e0x00...2024-11-20 07:41:00+00:00Will Tesla confirm a location for the installa...CLOSED0.100.0010.228212...0.000000False0.010.01-0.111000-1.000000pearlOlasNov-24-2024
\n", "

3 rows × 23 columns

\n", "
" ], "text/plain": [ " trader_address market_creator \\\n", "15931 0x006f70b4e3c3a3648f31ec16b2e7106fc58166f2 pearl \n", "15933 0x006f70b4e3c3a3648f31ec16b2e7106fc58166f2 pearl \n", "15932 0x006f70b4e3c3a3648f31ec16b2e7106fc58166f2 pearl \n", "\n", " trade_id \\\n", "15931 0x0d72a8dcb46ea982ad9c82c5a6f03cba72a6b71d0x00... \n", "15933 0xa7392614f48e129f6796f523a47777a5f36dd7030x00... \n", "15932 0x8984bfbca1805f7355a49c261832043cb39b519e0x00... \n", "\n", " creation_timestamp \\\n", "15931 2024-11-12 00:36:55+00:00 \n", "15933 2024-11-20 07:37:10+00:00 \n", "15932 2024-11-20 07:41:00+00:00 \n", "\n", " title market_status \\\n", "15931 Will the Chancay mega port in Peru be virtuall... CLOSED \n", "15933 Will Google issue a public apology regarding t... CLOSED \n", "15932 Will Tesla confirm a location for the installa... CLOSED \n", "\n", " collateral_amount outcome_index trade_fee_amount \\\n", "15931 0.1 1 0.001 \n", "15933 0.1 0 0.001 \n", "15932 0.1 0 0.001 \n", "\n", " outcomes_tokens_traded ... earnings redeemed redeemed_amount \\\n", "15931 0.224338 ... 0.000000 False 0.0 \n", "15933 0.213349 ... 0.213349 False 0.0 \n", "15932 0.228212 ... 0.000000 False 0.0 \n", "\n", " num_mech_calls mech_fee_amount net_earnings roi staking \\\n", "15931 2 0.02 -0.121000 -1.000000 pearl \n", "15933 1 0.01 0.102349 0.922059 pearl \n", "15932 1 0.01 -0.111000 -1.000000 pearl \n", "\n", " trader_type month_year_week \n", "15931 Olas Nov-17-2024 \n", "15933 Olas Nov-24-2024 \n", "15932 Olas Nov-24-2024 \n", "\n", "[3 rows x 23 columns]" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "one_trader = all_traders.loc[all_traders[\"trader_address\"]==\"0x006f70b4e3c3a3648f31ec16b2e7106fc58166f2\"]\n", "one_trader.head()" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
trader_addressfirst_tradecohort_week
00x006f70b4e3c3a3648f31ec16b2e7106fc58166f22024-11-12 00:36:55+00:00Nov-17-2024
10x00897abcbbefe4f558956b7a9d1b7819677e4d902024-11-12 09:10:25+00:00Nov-17-2024
20x01274796ce41aa8e8312e05a427ffb4b0d2148f62024-11-08 00:26:05+00:00Nov-10-2024
30x01c72d0743a22b70d73c76c5e16ba7524e20e0c02024-11-08 19:12:20+00:00Nov-10-2024
40x0244169d0fe1014b9e71f71070099d9c2364af282024-11-16 06:20:25+00:00Nov-17-2024
\n", "
" ], "text/plain": [ " trader_address first_trade \\\n", "0 0x006f70b4e3c3a3648f31ec16b2e7106fc58166f2 2024-11-12 00:36:55+00:00 \n", "1 0x00897abcbbefe4f558956b7a9d1b7819677e4d90 2024-11-12 09:10:25+00:00 \n", "2 0x01274796ce41aa8e8312e05a427ffb4b0d2148f6 2024-11-08 00:26:05+00:00 \n", "3 0x01c72d0743a22b70d73c76c5e16ba7524e20e0c0 2024-11-08 19:12:20+00:00 \n", "4 0x0244169d0fe1014b9e71f71070099d9c2364af28 2024-11-16 06:20:25+00:00 \n", "\n", " cohort_week \n", "0 Nov-17-2024 \n", "1 Nov-17-2024 \n", "2 Nov-10-2024 \n", "3 Nov-10-2024 \n", "4 Nov-17-2024 " ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "first_trades.head()" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [], "source": [ "all_weeks = all_traders[\"month_year_week\"].unique()\n", "weeks_datetime = pd.to_datetime(all_weeks)\n", "sorted_weeks_idx = weeks_datetime.argsort()\n", "all_weeks = all_weeks[sorted_weeks_idx]" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array(['Nov-10-2024', 'Nov-17-2024', 'Nov-24-2024', 'Dec-01-2024',\n", " 'Dec-08-2024', 'Dec-15-2024', 'Dec-22-2024', 'Dec-29-2024',\n", " 'Jan-05-2025', 'Jan-12-2025'], dtype=object)" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "all_weeks" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [], "source": [ "# Create mapping from week string to numeric index\n", "week_to_number = {week: idx for idx, week in enumerate(all_weeks)}\n", "\n", "# Merge back to get all activities\n", "cohort_data = pd.merge(\n", " all_traders, first_trades[[\"trader_address\", \"cohort_week\"]], on=\"trader_address\"\n", ")" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [], "source": [ "cohort_data[\"cohort_number\"] = cohort_data[\"cohort_week\"].map(week_to_number)\n", "cohort_data[\"activity_number\"] = cohort_data[\"month_year_week\"].map(week_to_number)\n", "cohort_data[\"week_number\"] = (\n", " cohort_data[\"activity_number\"] - cohort_data[\"cohort_number\"]\n", ")" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
trader_addressmarket_creatortrade_idcreation_timestamptitlemarket_statuscollateral_amountoutcome_indextrade_fee_amountoutcomes_tokens_traded...mech_fee_amountnet_earningsroistakingtrader_typemonth_year_weekcohort_weekcohort_numberactivity_numberweek_number
00x1c1bb5398ba525c5bca07eeade45958e455de4b3quickstart0x50ac9248cf115f69238d9c506f22c223cc9ec20d0x1c...2024-11-08 00:01:05+00:00Will any new information regarding the selecti...CLOSED0.77272600.0077272.087857...0.06-0.840453-1.000000non_stakingOlasNov-10-2024Nov-10-2024000
10x2db124224a640765df2842325ab1ab3ec45ebd47quickstart0xcd00e854ebc743b8a023c9c780d68cb5610fb2160x2d...2024-11-08 00:01:15+00:00Will the CDC confirm the source of the E. coli...CLOSED1.53441800.0153443.814142...0.022.2443801.429758non_stakingOlasNov-10-2024Nov-10-2024000
20xa156f5e98383c3e2a70faef71cc420780809e130quickstart0x50ac9248cf115f69238d9c506f22c223cc9ec20d0xa1...2024-11-08 00:04:25+00:00Will any new information regarding the selecti...CLOSED0.41501310.0041500.672596...0.020.2334330.531542non_stakingOlasNov-10-2024Nov-10-2024000
30x211957119a92bd2bb22f835aefae66683428ddd7quickstart0xcd00e854ebc743b8a023c9c780d68cb5610fb2160x21...2024-11-08 00:12:05+00:00Will the CDC confirm the source of the E. coli...CLOSED0.60031110.0060031.069992...0.02-0.626314-1.000000non_stakingOlasNov-10-2024Nov-10-2024000
40xd71b78ce490776a8f0cad6876ea79bc190f7bccepearl0x868c0dd6983e9b33543471779ff52c814db90fe30xd7...2024-11-08 00:15:55+00:00Will a peer-reviewed journal publish a follow-...CLOSED0.02500010.0002500.050876...0.010.0156260.443287pearlOlasNov-10-2024Nov-10-2024000
\n", "

5 rows × 27 columns

\n", "
" ], "text/plain": [ " trader_address market_creator \\\n", "0 0x1c1bb5398ba525c5bca07eeade45958e455de4b3 quickstart \n", "1 0x2db124224a640765df2842325ab1ab3ec45ebd47 quickstart \n", "2 0xa156f5e98383c3e2a70faef71cc420780809e130 quickstart \n", "3 0x211957119a92bd2bb22f835aefae66683428ddd7 quickstart \n", "4 0xd71b78ce490776a8f0cad6876ea79bc190f7bcce pearl \n", "\n", " trade_id \\\n", "0 0x50ac9248cf115f69238d9c506f22c223cc9ec20d0x1c... \n", "1 0xcd00e854ebc743b8a023c9c780d68cb5610fb2160x2d... \n", "2 0x50ac9248cf115f69238d9c506f22c223cc9ec20d0xa1... \n", "3 0xcd00e854ebc743b8a023c9c780d68cb5610fb2160x21... \n", "4 0x868c0dd6983e9b33543471779ff52c814db90fe30xd7... \n", "\n", " creation_timestamp \\\n", "0 2024-11-08 00:01:05+00:00 \n", "1 2024-11-08 00:01:15+00:00 \n", "2 2024-11-08 00:04:25+00:00 \n", "3 2024-11-08 00:12:05+00:00 \n", "4 2024-11-08 00:15:55+00:00 \n", "\n", " title market_status \\\n", "0 Will any new information regarding the selecti... CLOSED \n", "1 Will the CDC confirm the source of the E. coli... CLOSED \n", "2 Will any new information regarding the selecti... CLOSED \n", "3 Will the CDC confirm the source of the E. coli... CLOSED \n", "4 Will a peer-reviewed journal publish a follow-... CLOSED \n", "\n", " collateral_amount outcome_index trade_fee_amount outcomes_tokens_traded \\\n", "0 0.772726 0 0.007727 2.087857 \n", "1 1.534418 0 0.015344 3.814142 \n", "2 0.415013 1 0.004150 0.672596 \n", "3 0.600311 1 0.006003 1.069992 \n", "4 0.025000 1 0.000250 0.050876 \n", "\n", " ... mech_fee_amount net_earnings roi staking trader_type \\\n", "0 ... 0.06 -0.840453 -1.000000 non_staking Olas \n", "1 ... 0.02 2.244380 1.429758 non_staking Olas \n", "2 ... 0.02 0.233433 0.531542 non_staking Olas \n", "3 ... 0.02 -0.626314 -1.000000 non_staking Olas \n", "4 ... 0.01 0.015626 0.443287 pearl Olas \n", "\n", " month_year_week cohort_week cohort_number activity_number week_number \n", "0 Nov-10-2024 Nov-10-2024 0 0 0 \n", "1 Nov-10-2024 Nov-10-2024 0 0 0 \n", "2 Nov-10-2024 Nov-10-2024 0 0 0 \n", "3 Nov-10-2024 Nov-10-2024 0 0 0 \n", "4 Nov-10-2024 Nov-10-2024 0 0 0 \n", "\n", "[5 rows x 27 columns]" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cohort_data.head()" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
trader_addressmarket_creatortrade_idcreation_timestamptitlemarket_statuscollateral_amountoutcome_indextrade_fee_amountoutcomes_tokens_traded...mech_fee_amountnet_earningsroistakingtrader_typemonth_year_weekcohort_weekcohort_numberactivity_numberweek_number
889280xa8efa5bb5c6ad476c9e0377dbf66cc41cb6d5bddquickstart0xfc75b4d9aadde4ca459b64fb51088ef38bf442830xa8...2025-01-07 10:54:40+00:00Will a recall of Tesla Cybertruck vehicles be ...CLOSED1.969849e+0001.969849e-024.510793...0.02.521246e+001.267246non_OlasunclassifiedJan-12-2025Dec-08-2024495
889290x3e013a3ca156032005c239de6d84badd3f9b13a9quickstart0x0b2f7c5f872b9f0323422f3b5c3b44676baf26ca0x3e...2025-01-07 12:17:25+00:00Will Gazprom announce a new pipeline project a...CLOSED5.098594e-0305.098594e-050.007520...0.02.370460e-030.460321non_OlasunclassifiedJan-12-2025Dec-08-2024495
889300xd4fc4305dc1226c38356024c26cde985817f137fquickstart0x0b2f7c5f872b9f0323422f3b5c3b44676baf26ca0xd4...2025-01-07 13:55:00+00:00Will Gazprom announce a new pipeline project a...CLOSED2.000000e+0002.000000e-021.980169...0.0-3.983078e-02-0.019718non_OlasunclassifiedJan-12-2025Dec-22-2024693
889310xc918c15b87746e6351e5f0646ddcaaca11af8568quickstart0x0b2f7c5f872b9f0323422f3b5c3b44676baf26ca0xc9...2025-01-07 15:14:50+00:00Will Gazprom announce a new pipeline project a...CLOSED5.566732e-0715.566732e-091.081069...0.0-5.622399e-07-1.000000non_OlasunclassifiedJan-12-2025Dec-08-2024495
889320xf758c18402ddef2d231911c4c326aa46510788f0quickstart0x0b2f7c5f872b9f0323422f3b5c3b44676baf26ca0xf7...2025-01-07 22:00:55+00:00Will Gazprom announce a new pipeline project a...CLOSED1.000000e-0511.000000e-070.820458...0.0-1.010000e-05-1.000000non_OlasunclassifiedJan-12-2025Dec-08-2024495
\n", "

5 rows × 27 columns

\n", "
" ], "text/plain": [ " trader_address market_creator \\\n", "88928 0xa8efa5bb5c6ad476c9e0377dbf66cc41cb6d5bdd quickstart \n", "88929 0x3e013a3ca156032005c239de6d84badd3f9b13a9 quickstart \n", "88930 0xd4fc4305dc1226c38356024c26cde985817f137f quickstart \n", "88931 0xc918c15b87746e6351e5f0646ddcaaca11af8568 quickstart \n", "88932 0xf758c18402ddef2d231911c4c326aa46510788f0 quickstart \n", "\n", " trade_id \\\n", "88928 0xfc75b4d9aadde4ca459b64fb51088ef38bf442830xa8... \n", "88929 0x0b2f7c5f872b9f0323422f3b5c3b44676baf26ca0x3e... \n", "88930 0x0b2f7c5f872b9f0323422f3b5c3b44676baf26ca0xd4... \n", "88931 0x0b2f7c5f872b9f0323422f3b5c3b44676baf26ca0xc9... \n", "88932 0x0b2f7c5f872b9f0323422f3b5c3b44676baf26ca0xf7... \n", "\n", " creation_timestamp \\\n", "88928 2025-01-07 10:54:40+00:00 \n", "88929 2025-01-07 12:17:25+00:00 \n", "88930 2025-01-07 13:55:00+00:00 \n", "88931 2025-01-07 15:14:50+00:00 \n", "88932 2025-01-07 22:00:55+00:00 \n", "\n", " title market_status \\\n", "88928 Will a recall of Tesla Cybertruck vehicles be ... CLOSED \n", "88929 Will Gazprom announce a new pipeline project a... CLOSED \n", "88930 Will Gazprom announce a new pipeline project a... CLOSED \n", "88931 Will Gazprom announce a new pipeline project a... CLOSED \n", "88932 Will Gazprom announce a new pipeline project a... CLOSED \n", "\n", " collateral_amount outcome_index trade_fee_amount \\\n", "88928 1.969849e+00 0 1.969849e-02 \n", "88929 5.098594e-03 0 5.098594e-05 \n", "88930 2.000000e+00 0 2.000000e-02 \n", "88931 5.566732e-07 1 5.566732e-09 \n", "88932 1.000000e-05 1 1.000000e-07 \n", "\n", " outcomes_tokens_traded ... mech_fee_amount net_earnings roi \\\n", "88928 4.510793 ... 0.0 2.521246e+00 1.267246 \n", "88929 0.007520 ... 0.0 2.370460e-03 0.460321 \n", "88930 1.980169 ... 0.0 -3.983078e-02 -0.019718 \n", "88931 1.081069 ... 0.0 -5.622399e-07 -1.000000 \n", "88932 0.820458 ... 0.0 -1.010000e-05 -1.000000 \n", "\n", " staking trader_type month_year_week cohort_week cohort_number \\\n", "88928 non_Olas unclassified Jan-12-2025 Dec-08-2024 4 \n", "88929 non_Olas unclassified Jan-12-2025 Dec-08-2024 4 \n", "88930 non_Olas unclassified Jan-12-2025 Dec-22-2024 6 \n", "88931 non_Olas unclassified Jan-12-2025 Dec-08-2024 4 \n", "88932 non_Olas unclassified Jan-12-2025 Dec-08-2024 4 \n", "\n", " activity_number week_number \n", "88928 9 5 \n", "88929 9 5 \n", "88930 9 3 \n", "88931 9 5 \n", "88932 9 5 \n", "\n", "[5 rows x 27 columns]" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cohort_data.tail()" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "cohort_retention = calculate_cohort_retention(all_traders)" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
week_number0123456789
cohort_week
2024-11-10100.091.8381.7156.4286.7782.8880.5470.0464.5941.25
2024-11-17100.075.0045.0066.8867.5067.5051.2548.1233.750.00
2024-11-24100.051.7275.8672.4175.8665.5262.0751.720.000.00
2024-12-01100.0100.0090.4880.9566.6771.4352.380.000.000.00
2024-12-08100.088.8286.4785.8878.2470.590.000.000.000.00
\n", "
" ], "text/plain": [ "week_number 0 1 2 3 4 5 6 7 8 \\\n", "cohort_week \n", "2024-11-10 100.0 91.83 81.71 56.42 86.77 82.88 80.54 70.04 64.59 \n", "2024-11-17 100.0 75.00 45.00 66.88 67.50 67.50 51.25 48.12 33.75 \n", "2024-11-24 100.0 51.72 75.86 72.41 75.86 65.52 62.07 51.72 0.00 \n", "2024-12-01 100.0 100.00 90.48 80.95 66.67 71.43 52.38 0.00 0.00 \n", "2024-12-08 100.0 88.82 86.47 85.88 78.24 70.59 0.00 0.00 0.00 \n", "\n", "week_number 9 \n", "cohort_week \n", "2024-11-10 41.25 \n", "2024-11-17 0.00 \n", "2024-11-24 0.00 \n", "2024-12-01 0.00 \n", "2024-12-08 0.00 " ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cohort_retention.head()" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
week_number0123456789
cohort_week
Dec-01-2024100.0100.0090.4880.9566.6771.4352.380.00.00.0
Dec-08-2024100.088.8286.4785.8878.2470.590.000.00.00.0
Dec-15-2024100.068.7537.5025.009.380.000.000.00.00.0
Dec-22-2024100.059.3850.0025.000.000.000.000.00.00.0
Dec-29-2024100.069.230.000.000.000.000.000.00.00.0
\n", "
" ], "text/plain": [ "week_number 0 1 2 3 4 5 6 7 8 9\n", "cohort_week \n", "Dec-01-2024 100.0 100.00 90.48 80.95 66.67 71.43 52.38 0.0 0.0 0.0\n", "Dec-08-2024 100.0 88.82 86.47 85.88 78.24 70.59 0.00 0.0 0.0 0.0\n", "Dec-15-2024 100.0 68.75 37.50 25.00 9.38 0.00 0.00 0.0 0.0 0.0\n", "Dec-22-2024 100.0 59.38 50.00 25.00 0.00 0.00 0.00 0.0 0.0 0.0\n", "Dec-29-2024 100.0 69.23 0.00 0.00 0.00 0.00 0.00 0.0 0.0 0.0" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cohort_retention.head()" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
week_number0123456789
cohort_week
Jan-05-2025100.042.860.000.000.000.000.000.000.000.00
Jan-12-2025100.00.000.000.000.000.000.000.000.000.00
Nov-10-2024100.091.8381.7156.4286.7782.8880.5470.0464.5941.25
Nov-17-2024100.075.0045.0066.8867.5067.5051.2548.1233.750.00
Nov-24-2024100.051.7275.8672.4175.8665.5262.0751.720.000.00
\n", "
" ], "text/plain": [ "week_number 0 1 2 3 4 5 6 7 8 \\\n", "cohort_week \n", "Jan-05-2025 100.0 42.86 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", "Jan-12-2025 100.0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 \n", "Nov-10-2024 100.0 91.83 81.71 56.42 86.77 82.88 80.54 70.04 64.59 \n", "Nov-17-2024 100.0 75.00 45.00 66.88 67.50 67.50 51.25 48.12 33.75 \n", "Nov-24-2024 100.0 51.72 75.86 72.41 75.86 65.52 62.07 51.72 0.00 \n", "\n", "week_number 9 \n", "cohort_week \n", "Jan-05-2025 0.00 \n", "Jan-12-2025 0.00 \n", "Nov-10-2024 41.25 \n", "Nov-17-2024 0.00 \n", "Nov-24-2024 0.00 " ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cohort_retention.tail()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Visualization of the cohort matrix" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "import seaborn as sns\n", "import matplotlib.pyplot as plt\n", "from matplotlib.ticker import PercentFormatter\n", "\n", "def plot_cohort_retention_heatmap(retention_matrix):\n", " # Create a copy of the matrix to avoid modifying the original\n", " retention_matrix = retention_matrix.copy()\n", " \n", " # Convert index to datetime and format to date string\n", " retention_matrix.index = pd.to_datetime(retention_matrix.index).strftime('%a-%b %d')\n", " \n", " # Create figure and axes with specified size\n", " plt.figure(figsize=(12, 8))\n", " \n", " # Create mask for NaN values\n", " mask = retention_matrix.isna()\n", " \n", " # Create heatmap\n", " ax = sns.heatmap(\n", " data=retention_matrix,\n", " annot=True, # Show numbers in cells\n", " fmt='.1f', # Format numbers to 1 decimal place\n", " cmap='YlOrRd', # Yellow to Orange to Red color scheme\n", " vmin=0,\n", " vmax=100,\n", " center=50,\n", " cbar_kws={'label': 'Retention Rate (%)', 'format': PercentFormatter()},\n", " mask=mask,\n", " annot_kws={'size': 8}\n", " )\n", " \n", " # Customize the plot\n", " plt.title('Cohort Retention Analysis', pad=20, size=14)\n", " plt.xlabel('Weeks Since First Trade', size=12)\n", " plt.ylabel('Cohort Starting Week', size=12)\n", " \n", " # Format week numbers on x-axis\n", " x_labels = [f'Week {i}' for i in retention_matrix.columns]\n", " ax.set_xticklabels(x_labels, rotation=45, ha='right')\n", " \n", " # Set y-axis labels rotation\n", " plt.yticks(rotation=0)\n", " \n", " # Add gridlines\n", " ax.set_axisbelow(True)\n", " \n", " # Adjust layout to prevent label cutoff\n", " plt.tight_layout()\n", " \n", " return plt\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABGwAAAMWCAYAAACk7hB1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3QU1fvH8feWVBISIJBCSSgSinSkCFKVXkREQVSaCEhRkS71K0gR7IUiAiqKqIioP0FaUBAVUKR3Qg0hCSSBhNSd3x+BhZiEpmQ34fM6Z89hZ+7cee7sskmefe4dk2EYBiIiIiIiIiIi4jTMjg5AREREREREREQyU8JGRERERERERMTJKGEjIiIiIiIiIuJklLAREREREREREXEyStiIiIiIiIiIiDgZJWxERERERERERJyMEjYiIiIiIiIiIk5GCRsRERERERERESejhI2IiIiIiIiIiJNRwkZERO46PXv2xGQyER4e7uhQ5BaEh4djMpno2bOno0Nxarn5/p44cSImk4mwsLA7fi4REZG7jRI2IiLilLZt20afPn245557KFCgAB4eHpQtW5annnqK1atXOzq8fyUsLAyTycTEiRNv67hrH25uboSEhNCrVy8OHjz4r2Nr0qQJJpPpX/dzu0JCQggJCXHY+f+N3r17YzKZKFKkCMnJyY4OR0RERPI4q6MDEBERuZbNZmPYsGG88cYbWK1WmjVrRocOHXBxceHIkSP88MMPfPrpp/zvf/9j3Lhxjg7XIWrVqkW7du0AiIuLY9OmTSxcuJBly5bxxx9/EBoa6uAI74zixYuzd+9efHx8HB1KFhcuXGDp0qWYTCbOnTvH8uXLefzxxx0d1h03aNAgunbtSqlSpRwdioiISL6jhI2IiDiVsWPH8sYbb1C9enW++uorypYtm2n/pUuXePfdd4mJiXFQhI5Xu3btLNU5/fv3Z86cObz66qssWrTIMYHdYS4uLlSoUMHRYWTriy++ICEhgaFDh/Lmm28yf/78uyJh4+fnh5+fn6PDEBERyZc0JUpERJzGoUOHmDFjBkWKFGHlypVZkjUAHh4eDB8+nEmTJmXaHh0dzQsvvEDp0qVxc3OjWLFiPPbYY+zatSvH8xmGwdtvv02FChVwc3MjODiYSZMmYbPZsrRNS0vj9ddfp1q1anh4eODj40PTpk357rvvsrRduHAhJpOJhQsX8t1339GgQQO8vb0JCQlh4sSJNG3aFIBJkyZlmt70b9Yc6dOnD5AxleyfLly4wIQJE6hcuTIeHh74+vrSsmVLNm7cmKmdyWRiw4YN9n9fefxzzZgdO3bQtWtXAgMDcXV1JTg4mMGDB2dJol275syhQ4fo1KkThQoVokCBAjz44IP8/fffWdoeO3aMY8eOZTr/leTU9dawOXbsGH369KF48eK4urpSokQJ+vTpw/Hjx7O0vTLtKzU1lYkTJxISEoKbmxvly5fn/fffv+G1zs78+fOxWq2MGDGCpk2bsnbtWo4dO5Zt2yvTvi5evMjzzz9PUFAQbm5uVK1ala+++ipL+wMHDjBixAhq1qxJkSJFcHd3p3z58owaNYqLFy/eMLY1a9ZgMpl47rnnst1/+PBhzGYzLVu2tG+LiIjg+eef55577rG/ZypWrEj//v2Ji4uzt8tpDZv169fTunVr+9j8/f154IEHmDt37g3jFRERkQyqsBEREaexcOFC0tPT6devH/7+/tdt6+bmZv93VFQU9evX5/DhwzRp0oSuXbty9OhRvvrqK3744QdWrVpFw4YNs/QxfPhwNmzYQLt27WjZsiXLly9n4sSJpKSkMGXKFHs7wzB49NFH+fbbbylfvjwDBw4kISGBL774gg4dOvD666/z4osvZun/yy+/5KeffqJdu3Y899xzxMfH06RJE8LDw1m0aBGNGzemSZMm9va+vr63ftH+wWrN/KP93LlzNGrUiN27d9OgQQP69+9PfHw83377LU2bNuXLL7/k4YcfBmDChAksXLiQY8eOMWHCBHsf1atXt/97xYoVPPbYY5jNZjp27EjJkiXZs2cP7777LqtWreL333+nUKFCmWIIDw+nXr16VK5cmd69e3P48GH7+ffu3Yu/vz++vr5MmDCBN998E4AXXnjBfvy11yg7Bw4coGHDhkRFRdG+fXsqV67Mrl27+Oijj/juu+/YuHEj5cuXz3Jct27d+OOPP2jdujUWi4WlS5cycOBAXFxc6Nu3740v9mV79uzht99+o02bNvj7+/P000+zdu1aFixYkOM6RampqbRo0YLz58/TuXNnEhMTWbJkCY899hgrV66kRYsW9rbLli1j/vz5NG3alCZNmmCz2fjtt9+YPn06GzZs4Oeff8bFxSXH+Jo3b07ZsmX57LPPmDlzJp6enpn2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RERERETEyShhIyIiIiIiIiLiZJSwERERERERERFxMkrYiIiIiIiIiIg4GSVsREREREREREScjBI2IiIiIiIiIiJORgkbEREREREREREno4SNiIiIiIiIiIiTUcJGRERERERERMTJKGEjIiIiIiIiIuJklLAREREREREREXEyStiIiIiIiIiIiDgZJWxERERERERERJyMEjYiIiIiIiIiIk5GCRsRERERERERESejhI2IiIiIiIiIOIWff/6Z9u3bExQUhMlkYvny5Zn2G4bB+PHjCQwMxMPDgwcffJCDBw9manPu3Dm6d+9OwYIF8fX1pU+fPly8eNG+Pzw8nEaNGlGgQAEaNWpEeHh4puPbtWvH119/faeGeNOUsBERERERERERp5CQkEC1atV47733st0/Y8YM3n77bWbPns3vv/9OgQIFaNmyJUlJSfY23bt3Z/fu3axevZrvv/+en3/+mWeffda+/6WXXqJ48eJs376dwMBAhg0bZt/3xRdfYDab6dy5850b5E0yGYZhODoIEREREREREZFrmUwmvvnmGx5++GEgo7omKCiIl156yZ5kiYuLw9/fn4ULF9K1a1f27t1LpUqV2LJlC7Vr1wZg5cqVtGnThpMnTxIUFESlSpV4/fXXadWqFT/++CPDhg1j9+7dxMbGct9997Fu3TpKlizpqGHbqcJGRERERERERJze0aNHOXPmDA8++KB9m4+PD3Xr1mXz5s0AbN68GV9fX3uyBuDBBx/EbDbz+++/A1CtWjXWrFmDzWbjp59+omrVqgAMHz6cgQMHOkWyBpSwEREREREREZE7KDk5mfj4+EyP5OTkW+7nzJkzAPj7+2fa7u/vb9935swZihUrlmm/1WqlcOHC9jYzZ85k3759hISEcPDgQWbOnMnPP//M9u3befrpp3nssccoU6YM/fv3JyUl5XaG/J+wOuzM4hCTTKGODuGu84CjA7hLNX7G09Eh3JW2fHLB0SHcldxcNLvZEVytNkeHcFcKruzi6BDuSukper87gkcRvd8dwfXHvY4O4T/n6L8DjQndmDRpUqZtEyZMYOLEiQ6Jp3jx4nz//ff258nJybRs2ZJFixYxefJkvL292b9/P61atWLOnDkMHjzYIXGqwkZERERERERE7pjRo0cTFxeX6TF69Ohb7icgIACAyMjITNsjIyPt+wICAjh79mym/WlpaZw7d87e5p9effVVWrRoQa1atQgLC6Nz5864uLjwyCOPEBYWdstx/ldUYSMiIiIiIiKSjzm6UsPNzQ03N7d/3U/p0qUJCAhg7dq1VK9eHYD4+Hh+//13BgwYAED9+vWJjY1l27Zt1KpVC4B169Zhs9moW7dulj737t3LZ599xvbt2wFIT08nNTUVgNTUVNLT0/913LdLCRsRERERERERcQoXL17k0KFD9udHjx5l+/btFC5cmFKlSvHCCy8wefJk7rnnHkqXLs24ceMICgqy30mqYsWKtGrVir59+zJ79mxSU1MZNGgQXbt2JSgoKNO5DMPg2Wef5Y033qBAgQIANGjQgHnz5lG+fHk+/vhjunXrlmtj/ydHJ9pERERERERERADYunUrNWrUoEaNGgAMHTqUGjVqMH78eABGjBjB4MGDefbZZ7nvvvu4ePEiK1euxN3d3d7H4sWLqVChAs2bN6dNmzY0bNiQuXPnZjnX3Llz8ff3p127dvZtEydOJCkpibp161KuXDkGDhx4h0ecM5NhGFqp8C7i6MWm7kZadNgxtOiwY2jRYcfQosOOoUWHHUOLDjuGFh12DC067Bj5cdHhKQ7+O/BlY79Dz59XqcJGRERERERERMTJaA0bERERERERkXxMlRp5k143EREREREREREno4SNiIiIiIiIiIiT0ZQoERERERERkXxMlRp5k143EREREREREREnowobERERERERkXxMlRp5k143EREREREREREno4SNiIiIiIiIiIiT0ZQoERERERERkXzM5OgA5LaowkZERERERERExMmowkZEREREREQkH1OlRt6k101ERERERERExMkoYSMiIiIiIiIi4mQ0JUpEREREREQkH1OlRt6k101ERERERERExMkoYSMiIiIiIiIi4mQ0JUpEREREREQkH1OlRt6k101ERERERERExMmowkZEREREREQkH1OlRt6k101ERERERERExMkoYSMiIiIiIiIi4mQ0JUpEREREREQkH1OlRt6k101ERERERERExMk4VcImKiqKAQMGUKpUKdzc3AgICKBly5Zs2rTpjp974sSJmEwm+vfvn2n79u3bMZlMhIeH39HzT5kyhfvvvx9PT098fX2z7F+4cCEmkynbx9mzZ+9obCIiIiIiIpJ3mR38kNvjVFOiOnfuTEpKCosWLaJMmTJE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lLAREREREREREXEymhIlIiIiIiIiko+pUiNv0usmIiIiIiIiIuJkVGEjIiIiIiIiko+pUiNv0usmIiIiIiIiIuJklLAREREREREREXEymhIlIiIiIiIiko+pUiNv0usmIiIiIiIiIuJklLAREREREREREXEymhIlIiIiIiIiko+pUiNv0usmIiIiIiIiIuJkVGEjIiIiIiIiko+pUiNv0usmIiIiIiIiIuJklLAREREREREREXEymhIlIiIiIiIiko+pUiNv0usmIiIiIiIiIuJkVGEjIiIiIiIiko+pUiNv0usmIiIiIiIiIuJklLAREREREREREXEymhIlIiIiIiIiko+pUiNvUsJG5A5r8k6go0O4K+0fH+7oEO5KISUMR4dwV0pNtDk6hLtSUO2Cjg7hrpQUm+roEO5KXuU8HR3CXcny2QJHhyAiDqSEjYiIiIiIiEg+ZnJ0AHJbVBklIiIiIiIiIuJklLAREREREREREXEymhIlIiIiIiIiko+pUiNv0usmIiIiIiIiIuJkVGEjIiIiIiIiko+pUiNv0usmIiIiIiIiIuJklLAREREREREREXEymhIlIiIiIiIiko+pUiNv0usmIiIiIiIiIuJkVGEjIiIiIiIiko+ZTI6OQG6HKmxERERERERERJyMEjYiIiIiIiIiIk5GU6JERERERERE8jGzyXB0CHIbVGEjIiIiIiIiIuJkVGEjIiIiIiIiko9p0eG8SRU2IiIiIiIiIiJORgkbEREREREREREnoylRIiIiIiIiIvmYZkTlTaqwERERERERERFxMqqwEREREREREcnHTLqtd56kChsRERERERERESejhI2IiIiIiIiIiJPRlCgRERERERGRfMykVYfzJFXYiIiIiIiIiIg4GVXYiIiIiIiIiORjqrDJm1RhIyIiIiIiIiLiZJSwERERERERERFxMpoSJSIiIiIiIpKPmU2Go0OQ2+BUFTZRUVEMGDCAUqVK4ebmRkBAAC1btmTTpk13/NwTJ07EZDLRv3//TNu3b9+OyWQiPDz8jp07PDycPn36ULp0aTw8PChbtiwTJkwgJSUl2/aHDh3C29sbX1/fOxaTiIiIiIiIiDiOU1XYdO7cmZSUFBYtWkSZMmWIjIxk7dq1xMTE5Mr53d3dmT9/Pi+99BL33HNPrpwTYN++fdhsNubMmUO5cuXYtWsX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jpCaaHN0CHeloNoFHR3CXSkpNtXRIdyV3Eu437iR/Ocsny1wdAh3qVqODuA/t7dwiEPPX/FcuEPPn1epwkZEREREREQkHzM5etVhuS1aw0ZERERERERExMkoYSMiIiIiIiIi4mQ0JUpEREREREQkHzNrSlSepAobEREREREREREnowobERERERERkXwsL93WW65ShY2IiIiIiIiIiJNRwkZERERERERExMloSpTIHfbK4AhHh3BXqoSbo0O4K5VOTnN0CHelMuUdHcHdKfLvC44O4a5U+B5PR4dwV7J8tsDRIYjIv6A1h/MmVdiIiIiIiIiIiDgZJWxERERERERERJyMpkSJiIiIiIiI5GMmzYnKk1RhIyIiIiIiIiLiZFRhIyIiIiIiIpKPmUyGo0OQ26AKGxERERERERERJ6OEjYiIiIiIiIiIk9GUKBEREREREZF8zKxFh/MkVdiIiIiIiIiIiDgZVdiIiIiIiIiI5GO6rXfepAobEREREREREREno4SNiIiIiIiIiIiT0ZQoERERERERkXxMU6LyJlXYiIiIiIiIiIg4GVXYiIiIiIiIiORjJgxHhyC3QRU2IiIiIiIiIiJORgkbEREREREREREnoylRIiIiIiIiIvmYFh3Om1RhIyIiIiIiIiLiZFRhIyIiIiIiIpKPmcwqscmLVGEjIiIiIiIiIuJklLAREREREREREXEymhIlIiIiIiIiko+ZVKqRJ+llExERERERERFxMqqwEREREREREcnHdFvvvEkVNiIiIiIiIiIiTkYJGxERERERERERJ6MpUSIiIiIiIiL5mVlzovIiVdiIiIiIiIiIiDgZp0rYREVFMWDAAEqVKoWbmxsBAQG0bNmSTZs23fFzT5w4EZPJhMlkwmq14ufnR6NGjXjzzTdJTk6+4+ffsWMHDzzwAO7u7pQsWZIZM2Zk2r979246d+5MSEgIJpOJN998847HJCIiIiIiInmfyezYh9wep5oS1blzZ1JSUli0aBFlypQhMjKStWvXEhMTkyvnr1y5MmvWrMFmsxETE0NYWBiTJ0/mk08+ISwsDG9v7zty3vj4eFq0aMGDDz7I7Nmz2blzJ71798bX15dnn30WgMTERMqUKUOXLl148cUX70gcuaHVWy8T2qEZviElmF29I5F/7wOgcLlgHl40DU+/QiTFXeTbnqOI2nPohvv+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OP0aNiIiIiIiIiIidxslbEREREREREREnIwzr/QkIiIiIiIiIv+SyWxydAhyG1RhIyIiIiIiIiLiZJSwERERERERERFxMpoSJSIiIiIiIpKPmTQjKk9ShY2IiIiIiIiIiJNRhY2IiIiIiIhIPmZSqUaepJdNRERERERERMTJKGEjIiIiIiIiIuJkNCVKREREREREJD8za9XhvEgVNiIiIiIiIiIiTkYVNiIiIiIiIiL5mG7rnTepwkZERERERERExMkoYSMiIiIiIiIi4mQ0JUpEREREREQkHzNp0eE8SRU2IiIiIiIiIiJORhU2IiIiIiIiIvmYSaUaeZJeNhERERERERERJ6OEjYiIiIiIiIiIk9GUKBEREREREZF8zGTSosN5kSpsREREREREREScjCpsRERERERERPIzlWrkSXrZREREREREREScjBI2IiIiIiIiIiJORlOiRERERERERPIxrTmcN6nCRkRERERERETEyajCRkRERERERCQfM5lVYpMXqcJGRERERERERMTJKGEjIiIiIiIiIuJkNCVKREREREREJB8zqVQjT1LCRuQOq+noAO5SBRwdwF3qUrLF0SHclY4fSnN0CHellDRXR4dwVwo6ttjRIYiIiOQKJWxERERERERE8jPd1ztPUmGUiIiIiIiIiIiTUcJGRERERERERMTJaEqUiIiIiIiISD6mRYfzJr1sIiIiIiIiIiJORhU2IiIiIiIiIvmYyaxFh/MiVdiIiIiIiIiIiDgZJWxERERERERERJyMpkSJiIiIiIiI5GMmzYjKk1RhIyIiIiIiIiLiZFRhIyIiIiIiIpKPadHhvEkVNiIiIiIiIiIiTkYJGxERERERERERJ6MpUSIiIiIiIiL5mWZE5UmqsBERERERERERcTJK2IiIiIiIiIiIOBlNiRIRERERERHJx0wq1ciT9LKJiIiIiIiIiDgZVdiIiIiIiIiI5GMms1Ydzotuq8Lmt99+u2GbDz744Ha6FhERERERERG5691WwqZ169b8+eefOe6fOnUqgwYNuu2gRERERERERETuZreVsGnQoAEtWrRg586dWfaNHj2al19+meHDh//r4ERERERERETk3zGZHPuQ23NbCZtly5ZRs2ZNHnzwQfbt22ffPnDgQKZPn86UKVOYNm3afxakiIiIiIiIiMjd5LYSNq6urqxYsYKK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amSti3Lw4EF9//33Kl26tKZOnWpXQAAAAAAAIB/dHE0ulho5cqQyMzPVrl07Xbp0SS1btpSnp6eGDx+uoUOH2jWmXYsOS1JcXJwmT56sL7/8UseOHZOU9Riru+++WyNHjlTp0qXtCggFi0WHCx+LDluDRYdxM2HRYQAA8lMRXHR4eSdLr288cPM8RTotLU2HDh3ShQsXFBoaKl9fX/3555/y9s777yd2ddhIUunSpTVjxgzNmDHD3iEAAAAAAACKDA8PD4WGhkqSUlNT9corr2jatGmF95QoAAAAAADgJFh0uMCkpqZq1KhRatiwoZo1a6ZVq1ZJkhYsWKDKlStrxowZeuaZZ+wa2+4OmwMHDmjBggX6/fffde7cOf1zZpVhGFq3bp29wwMAAAAAADi0F198UXPnzlX79u21ZcsWRUZGqm/fvtq2bZteeeUVRUZGytXV1a6x7eqweffdd1WnTh299tprOnTokDIzM2WaZrYtMzPTroAAAAAAAEA+Mize7DRlyhQZhqGnn37ati8lJUVPPPGESpYsKV9fX0VEROj06dO242fPnlXXrl3l6+ursLAw/fjjj9nGfOKJJzR9+nT7g/qHDz74QIsXL9aHH36or776ShkZGbp8+bL27NmjBx54wO5ijWRnh8348eMVFhamL7/8UqVKlbL74gAAAAAAAP/0ww8/aO7cuapbt262/c8884w+//xzffDBB/L399eQIUN07733avPmzZKkSZMmKTk5Wbt27dKbb76pAQMGaMeOHZKkbdu2afv27Xr11fx7YMPx48fVoEHWQtW1a9eWp6ennnnmGRn5MBXMrg6bkydPql+/fhRrAAAAAABAvrpw4YIeeughzZs3T8WLF7ftT0pK0vz58/XKK6+obdu2atCggRYsWKAtW7Zo27ZtkrKWb3nggQd06623auDAgTpw4IAkKT09XYMGDdKcOXNuqOvlnzIyMuTh4WF77ebmJl9f33wZ264Om7p16+rkyZP5EgAAAAAAAChALtYu/JuamqrU1NRs+zw9PeXp6XnV85944gl17txZ7du318SJE237d+7cqfT0dLVv3962r2bNmqpQoYK2bt2qJk2a6Pbbb9f69ev16KOPau3atbYOnWnTpql169Zq2LBhvt6baZrq06eP7V5SUlI0aNAgFStWLNt5K1euzPPYdnXYvPLKK5o/f762bNliz9sBAAAAAMBNYvLkyfL398+2TZ48+arnLl++XLt27brq8VOnTsnDw0MBAQHZ9pcpU8b22OyRI0fKzc1NVatW1ccff6z58+frt99+06JFizR27FgNGjRIVapU0f3336+kpKQbvrdHHnlEpUuXtt1Xr169FBISkuN+7ZGrDptu3brl2Ofv768777xToaGhqlChQo6WIsMw9Mknn9gVFAAAAAAAyCcWP1l71KhRGjZsWLZ9V+uu+eOPP/TUU0/p66+/lpeXl13X8vf319KlS7Pta9u2rf773/9qyZIl+v3333Xw4EENGDBAEyZMuOEFiBcsWHBD77+eXHXY7N27Vz/99FO2LSUlRRUqVNCFCxe0f//+HMd/+umnPAcTHx+vwYMHq0KFCvL09FRQUJDCw8NtiwcVpPHjx8swDBmGITc3N5UqVUotW7bUzJkzc7Ru5bfo6Gh1795dwcHBKlasmOrVq6clS5ZkO2fevHm68847Vbx4cRUvXlzt27fX999/X6BxAQAAAABwozw9PXXLLbdk265WsNm5c6fi4uJUv359ubm5yc3NTRs3btSrr74qNzc3lSlTRmlpaUpMTMz2vtOnTysoKOiq116wYIECAgLUvXt3RUdH65577pG7u7siIyMVHR1dAHebf3LVYXP06NECDiNLRESE0tLStGjRIlWpUkWnT5/WunXrlJCQUCjXr1Wrlr755htlZmYqISFB0dHRmjhxot59911FR0fLz8+vQK67ZcsW1a1bV88//7zKlCmjzz77TL1795a/v7+6dOkiKauo07NnTzVr1kxeXl6aOnWqOnbsqJ9//llly5YtkLgKQqdZY1SjW1sFVCqnOfW66/SeXyRJJapV1D2LpsinVHGlJF3QJ31GKn7/oX899k9h/e5T85EDZLi46Oj6bfr88ShlXr5caPfnLFwmfSZdTpPSs4qR5poFMg9sl8szc/46ycNLKlVWmcPbS5fO5xykeJBcHhwpla4gZWbK/PYDmRveL6Q7cE7G4A+ljHTp8v/nfeu70oF1Mjo8LVVrISMgWJnz+0hxv119gAphMu6fLp2Nse0yFw/M+lzimsi79Y4ejdXIkXN07lyyfH19NGXKIFWvXi7HeR98sEHz5q1WZqapJk1qady4vnJ3t2u5PYi8W4W8W4O8W4O8I7+1a9cuR/NH3759VbNmTT3//PMqX768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2DAMZWZmqmrVqho0aJA++OADHT9+3MLoirZBgwbpv//9ryTp5MmTeuqpp/Sf//xHgYGBaty4sTp27KiNGzey6DZQQPipCYUqKChIvXv3Vlpamp577jn98ssvcnPLWkopJCREt9xyC48kLUBX5njXrVtXTz75pFq0aKGXXnpJ7du31+uvv64aNWpYHGHR9PdfUN3d3W2/aI0ZM0bDhw+Xt7e3VaEVaa6urho1apRatmxpy/n58+cVGBjIWioF4Mr3l1tvvVU7duxQjx49tG7dOq1du1affvqpEhIS1KVLF36ozydXpjmZpqkePXro008/VVhYmKS/nlZUrFgxhYSEqESJElaGWiT16dNHHTt2VFJSknbu3Ckp63vOlf+GhIRYGV6Rd+Xf1VatWumnn37SoUOHJPGkroLg6empZ555RjNnzpSHh4dKlSol6a+icXp6umrUqEExHiggLDqMQnPlr6/33XefLl26pMWLF+vee+/VtGnTFBAQoC+++EJnzpxR/fr1rQ61SLvyeahTp44GDRqkr7/+WidOnNDu3btVt25dq8Mrsq7k/dy5c/Lw8NCMGTP0yiuv6IcffrA9YQT570rerxQTZs2apTNnzqhRo0YWR1Z0lSlTRp988omCg4P1+eef24oIa9askYeHBz/U56O/L7T690Vur+R40aJFcnd3t3WdIf80bNhQTz/9tP7880/16NFDkydPVunSpfXLL79o586dmjVrltUh3hS6d++uDh06aNSoUfrmm294cEUBq1evnt544w21a9dOt9xyi959911t375d06ZNszo0oMiiYIMCceWXpIyMDNtfnK60sLq4uKh3796qXLmyFi9erMjISFWpUkWS9OWXX9rauZF3V8v7P135AT8jI0PLli3T6dOn9cMPP6h27dqFGWqRkpe8lypVSi+++KLS0tL03XffUaC8AXnJ+65du7Rw4UK99957Wr9+vcqVK1eYoRYp/5b39u3ba+LEiWrdunW2YmTNmjULM8wiJzdf71fs2LFDCxcu1NKlS7VhwwaejGana+X8yv5WrVrZfpZ566235OfnJ19fX61du1bVq1e3MHLnltuv9b9Pw1y2bJlSU1Mp2NyA3OS9c+fO+umnn9SgQQPVrl1baWlpWrNmDR3aQAEyTJMl1ZF/rnyzl6QvvvhCCQkJtnU8rnaOJP3+++/y8fGRu7t7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AgMDsXr1aixduhSVlZWIi4tDr169cPbsWezZswfz5s3DW2+9BScnJ/z+97+HXq/HyJEjMXfuXDzyyCOoqqrCwYMH4enpidzcXKt1OTk54ZNPPkFcXBzi4+Px5ZdfYvLkycjPz8eCBQswc+ZMDB06FC0tLdi+fTs0Gg1mzJjR7s/Z2NiIsLAwPPXUU4iNjcXAgQNx7do15OTkoKCgAHFxcQgNDX3gnpMmTcKLL76IjRs3oqKiQn2Up6CgAJMmTcKCBQs63M4WOtpTp9PBYDBg/fr18PPzQ0BAAMaPH9+pa/H09ERkZCTeeecd3Lx5E4888gj279+Ps2fPWl2bnp6Offv2YcKECXj11VfR0tKC9957DyNHjsTx48fV6+ypNREREd0bDmyIiMjhRUREoKCgQH0E6lbh4eHIzMxEr169EBISYnFuyZIlGDp0KDZs2KDeUTJw4EBMnToV06dPV6+bOHEiiouLsWrVKmzatAnXr1+Hr68vxo8f3+YeNWYuLi7485//DL1ej+effx4GgwEhISGIiYlBbm4uqqqq4O7ujpCQEOzdu1f9bUJt6d27N373u9/hiy++QFZWFi5dugSNRoPHH38ca9euxaJFi+4nXZuysrIQHByMjz76CIsXL4aXlxfGjBljcfdSR9s9bB3tuX79esybNw/Lli1DU1MTEhMTO31gAwA7d+7EwoULsXnzZgghMHXqVOzduxd+fn4W1wUHByMvLw9vvvkmli9fDn9/f6Snp+OHH36wGNgA9tOaiIiI7o0ibr8/loiIiIiIiIiIpOIeNkREREREREREdoYDGyIiIiIiIiIiO8OBDRERERERERGRneHAhoiIiIiIiIjIznBgQ0RERERERERkZziwISIiIiIiIiKyMxzYEBERERERERHZGQ5siIiIiIiIiIjsDAc2RERERERERER2hgMbIiIiIiIiIiI7w4ENEREREREREZGd4cCGiIiIiIiIiMjOcGBDRERERERERGRn/g8w0CKSbf1YlgAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = plot_cohort_retention_heatmap(cohort_retention)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "hf_dashboards", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.2" } }, "nbformat": 4, "nbformat_minor": 2 }