Taha Ashtiani bio photo

Taha Ashtiani

Searching for EV in the tails.

This is mostly inspired by enrichment products from flinks.com/enrichment. I got curious and explored wealth management and robo advising companies. Here are some brief notes and ideas:

These companies always have the option of pouring money into customer acquisition bucket, but fixing the leak of high churn and low retention is the key to real growth. Investors migrate between discount brokerages, full-service brokerages, and robo-advisors looking for specific products or fee structures. for example from BMO smartfolio to Moka looking for a monthly flat fee. in the middle of this fierce competition, a “Highly Personalized Portfolio and Advice” could be a reliable way for wining over and retaining market share. It increases LTV and prevents churn. it can be implemented using attributes built on top of user’s banking transactions (asking for consent by explaining how this access to their investment behavioural data is going to benefit them) The rest of this document is examples of this.

A Robo-Advisor for Example

WealthSimple, RBC InvestEase, BMO adviceDirect | SmartFolio, Moka … At the core of robo-advising they do portfolio rebalancing and tax-loss harvesting. They make money through:

  • wrap fee on their AUM(since they charge %0. 5 (wealthsimple) vs. %1 of a human advisor, the key to their revenue is to acquire a large number of smaller accounts. )
  • interest on cash balances of users
  • rebate for providing liquidity to HFTs
  • targeting mortgage, credit card, or insurance products to their users. since they already know a lot about them.

A robo-advisor’s revenue is proportional to its AUM. To increase your AUM you can:

  1. acquire more customers (which I don’t see how flinks could help with)
  2. work on churn prevention and retention, which increases your LTV

The goal is to enrich raw “/investment” transactions to provide investment behavioural attributes to be used for building personalization, segmentation, churn prevention and LTV prediction models. Attributes such as “average returns”, “single largest profit or loss on one holding”, “single largest withdrawal/deposit”, and “least diversified portfolio at one point” are all very significant predictors for accurate segmentation and churn prediction models. A model built with these behavioural attributes is an actionable understanding of individual users at scale.
Here’s a list of the categories of these attributes:

  • Investment products: providing a list of the variety of products user has invested in, with investment size, total returns and risk levels
  • Returns: estimating return expectations based on the history of the returns investor has seen over time
  • Losses: size, type and recency of the losses, and how investor has reacted to it (risk appetite)
  • Deposits: size and count of user’s deposits and investments. and ratios of deposits to available balance
  • Reinvestment: sources of reinvestments(returns, dividends, interest), aggregated with size and frequency
  • Dividend: are the dividends reinvested? kept in the account as cash?, or withdrawn?
  • Interest: size of interests, interest reinvestments and its ratio to total investments
  • Fees: types of fees, total fees paid and its ratio to total portfolio size (flat fees vs percentage fees, account fee, legal fee, fund fee, management fee)
  • Risk: risk level of the products investor has ever invested in. maximum portfolio down user has tollerated and has been comfortable with
  • Loss→Withdrawal: recognizing how one month of small or negative returns has triggered the investor to withdrawal
  • Income→Deposit→Investment: the relationship between government/employer income and investments
  • Time horizon: a categorical estimation of the time horizon of user investments
  • Withdrawals: predicting the possible reasons behind significant withdrawals (need for liquidity, or spending for a goal)
  • Goals and milestones: recognizing investor milestone events using income, transactions, and investments attributes
  • Income relative to investments: this ratio is very important when manging risk levels of a portfolio
  • Tax: total taxes paid, its ratio to total portfolio size, and flagging tax-harvesting transactions

  • Churn: building a model for investor churn prediction, and using segmentation for accurately responding to the interests and needs of individual investors at scale Other investment behavioural attributes: for enriching financial profiles of the customer base. ```

    Implementing the Enrichment Attributes

This is an example of how I think the attributes could be implemented.

"products": {
    "products_invested_in": [
        "TD U.S. Top 500 GIC",
        "Canadian Stocks",
        "BMO U.S. Equity Plus",
        "BMO Emerging Markets Bond Fund",
        "Treasury bills", ...
    ] "products_invested_in_by_user": [
            "product": "TD U.S. Top 500 GIC",
            "total_investments": 128000,
            "overal_growth_percent": + 0.05,
            "overal_growth_amount": 6400,
            "term": "5years"

"Accounts": [
        "type_of_institution": "full_service_brokerage" | "discount_brokerage" | "robo_advisor" | ... 
        "total_invesments_all_time_high": 243000
        "total_invesments_size_trend": "returns_trend": "DECREASING"
"profits_or_losses": {
            "total_profits_or_losses": "average_montly_PnL": 1230
"min_PnL_in_a_month": -300
"max_PnL_in_a_month": 4500
"single_largest_loss_on_one_holding": {
                "Name": "Boeing Co.",
                "size": -16500,
            } "single_largest_profit_on_one_holding": {
                "Name": "TSLA",
                "size": +82500 ,
"sum_total_PnL_current_month": 6450.00,
            "sum_total_PnL_previous_month": 14350.00,
            "sum_total_PnL_2_months_ago": 15350.00,
            "sum_total_PnL_3_months_ago": 17350.00,
"risk_tollerance": {
            "risk_level_of_account": "avoid_loss" | "high_risk_high_return" | "small_steady_returns" | "low_risk_longterm_returns" "max_total_portfolio_down_tollerated": -0.05,
            "max_single_holding_down_tollerated": -0.19,
            "max_value_at_risk": 24000,
            "total_investments_to_total_savings": 0.8,
        } "diversification": {
            "single_largest_holding_at_one_time": {
                "Name": "APPL",
                "size": 46000,
            } "smallest_portfolio_variance": // Portfolio variance = w12σ12 + w22σ22 + 2w1w2Cov1,2 "largest_portfolio_variance":
            "average_number_of_assets_overtime": 8.5
"deposits_reinvestment": {
            "total_deposits": 144000,
            "count_deposits": 19,
            "average_deposit_size": 7,
            "ratio_to_available_balance": 0.15,
            "total_reinvestment": 17000,
            "count_deposits": 25,
            "average_deposit_size": 680,
            "ratio_to_total_investments": 0.09,
"withdrawals": {
            "total_withdrawals": 42000,
            "count_deposits": 9,
            "average_withdrawal_size": 4666,
            "ratio_to_total_investments": 0.25,
            "largest_withdrawal": 29000,
            "date_of_largest_withdrawal": 2020-04-01,
            "smallest_withdrawal": 29000,
            "date_of_smallest_withdrawal": 2020-04-01,
"Positions": [
        "BookValue": 600.00,
        "Quantity": 120,
        "MarketValue": 549.60,
        "GainAmount": -50.40,
        "GainPercent": -0.08,
        "max_down_percent_tollerated": -0.15
"max_down_amount_tollerated": 2300
"investment_length": 274 // days }
"Transactions": [
                "Id": "0e76c626-5771-4277-6c06-08d845f8e6e6",
                "Date": "2020-07-31",
                "Type": "sell",
                "Description": "Sell 3 AAPL on last day of the month",
                "Quantity": -3,
                "Fee": 0.00,
                "Amount": 400.00,
                "available_balance_at_the_time": 48500 "total_month_income_at_the_time": 12500 "total_month_income_at_the_time_compared": "higher" | "lower" | "same" "profit_and_loss": 1200
"predicted_reason_for_transaction": "loss_on_holding" | "cashing_out_all_investments" | "need_liquidity"

All of these behavioural attributes are aggregations of transaction and investment attributes. In case of an investor migrating from one advisor/brokerage to another, allowing for access to investment data is a requirement. Then the next step is asking for user’s permission to access their transactions data. It comes down to choosing the right moment, UX wise, and explaining how we can use your investment behavioural data to create the ideal portfolio based on your needs and preferences ”. and explaining how personalized portfolios are performing better than default not personalized portfolios.

Investor Churn

A churn for a full-service brokerage, discount brokerage, or a robo-advisor could happen under some of these scenarios: low average returns compared to other similar investment products looking for a specific product or fee structure by switching between different types of brokerages/advisors looking for more autonomy and flexibility over their portfolio, hence switching from a robo-advisor to a discount brokererage a recent relatively big loss on the portfolio, or on a single position withdrawing investments during high market volatility or start of a crash (beyond user’s risk tolerance) a significant loss caused by lack of investment experience → switching from a discount brokerage to a robo-advisor user needs liquidity or needs to spend on a goal.

why is it important? Accurate churn prediction helps you target the users who have a high probability of churning, and offer them an interesting and special offer (cashback or exclusive products/fees for example). To spend more advising resources on them, and having your advisors call them for consultation or assessment. Or talking to them about making changes to their portfolio, or switching to other products.

Investor Segmentation

Segmentation can be done differently depending on the purpose. for segmenting low/high priority customers you can build a model with size, frequency and recency of investments. while segmenting investors into “holders, traders, dividend collectors, long-term-low- risk, or high-risk-high-return” would depend more on types of holdings and transactions. These are some significant attributes for segmentation: Types of transactions ⇒ deposit, withdrawal, transfer, interest, dividend, distribution, roc, reinvest, tax, fee, sell, buy, income, unknown Types of holdings ⇒ (equity, fixed_income, cash_equivalent, tangible_asset, other) and category: “Canadian Stocks”, “Us Stocks”, … Diversity of portfolio, count of the variety of holdings over time, and exposure to risk Largest losses tolerated on a single position, or whole portfolio Largest profits and losses experienced over time Relationship between available income and investments over time Returns seen over time Depending on the type of segmentation it can be used for optimizing advisor-time resources or personalizing portfolio/advice. It also will be used for implementing highly personalized and attractive tiered perks and offers.

Investor LTV prediction

In the simplest form, LTV of an investor is (“mean size of investment” “length of time” “management fee percentage”) + (“total transactions” “transaction fees”)

It can be defined as a regression or a classification problem trained with these attributes: Size, frequency and recency of holdings and transactions Size and frequency of deposits and reinvestments Income and available balance over time relationship between income/credits, deposits and investments Time horizon of investments Predicting LTV helps you spot the high value customers, and serve them better. the earlier you spot them, the higher your chances are for retaining them. you’ll have a way to decide how much you should be spending on acquiring new customers vs retention. also when you successfully build a model to predict LTV, you basically develop a good understanding for your customer acquisition and growth.