What a Canadian experiment tells us about cash transfers and homelessness

By Charles Bauman and Max Ghenis, 2020-12-14

35,000 Canadians experience homelessness each night, violating their right to adequate housing and threatening their health, safety and access to education. The Covid-19 pandemic exacerbates the issue, given crowded living conditions and comorbidities, and the Canadian government has taken new steps to address it, such as moving people experiencing homelessness into hotels.

Prior to the pandemic, a Vancouver nonprofit, Foundations for Social Change, worked with the University of British Columbia to test a novel homelessness intervention: unconditional cash transfers. In spring 2018, their New Leaf Project (NLP) granted a lump sum cash transfer to Lower Mainland residents experiencing homelessness, and compared their outcomes to a control group. While some questions remain, the findings reveal that unconditional cash transfers, which are otherwise shown to improve health, education, and other outcomes, offer potential to reduce homelessness.

Study overview

NLP selected 115 long-term residents or citizens of Canada aged 19 to 64 who had experienced homelessness within the previous six months. This group is fairly representative of Canada’s homeless population, given only about 10 percent of people experiencing homelessness in a year were homeless for more than a month, and about four percent are aged 65 or older. People with severe substance abuse or mental health disorders were ineligible for NLP.

At the beginning of the experiment, NLP deposited CAD 7,5001 into the bank accounts of 50 participants, randomly selected from the full group of 115. Each cash recipient was also provided access to workshops, and 25 also had access to coaching. Of the 65 who did not receive cash, 19 were provided access to workshops and coaching, while the other 46 were not.2 Workshops focused on the development of a personal financial plan and self-affirmation exercises, and the coaching was offered for six months, aiming to develop and sustain life skills and strategies. Researchers tracked participants over twelve months, filling out questionnaires at one, three, six, nine and twelve months and open-ended qualitative interviews at six and twelve months.

import pandas as pd
import plotly.express as px

design = pd.DataFrame(
    {
        "Workshop": [25, 0],
        "Workshop + coaching": [25, 19],
        "Neither": [0, 46]
    },
    index=["Cash", "No cash"],
)
design
Workshop Workshop + coaching Neither
Cash 25 25 0
No cash 0 19 46

Results

Spending

The cash group spent an average of CAD 426 per month more than the non cash group over the course of the year. This amounts to 42 percent more than the non-cash group, or 6 percent of the total CAD 7,500 lump sum transfer. This extra spending covered a diverse range of categories: 54 percent more on transit, 113 percent more on clothing, 34 percent more on food, and so on. Of the treatment groups, the cash group increased its expenditure on alcohol, drugs, and cigarettes by the smallest proportion (11 percent).3 It also increased its expenditure on food and clothing for the children of recipients by the largest proportion (171 percent).

# Construct data from report.
raw = pd.read_csv("new_leaf_homeless_expenditures.csv")
raw.set_index('spending_category', inplace=True)
# Sum food and clothing categories.
food_clothes_kids = raw.loc[['Food for kids', 'Clothes for kids']].sum()
food_clothes_self = raw.loc[['Food', 'Clothes']].sum()
spending = raw.drop(["Food", "Clothes", "Food for kids", "Clothes for kids"])
spending.loc["Food and clothes for self"] = food_clothes_self
spending.loc["Food and clothes for kids"] = food_clothes_kids

# Add total row and label total for graph.
spending.loc['TOTAL'] = spending.sum()
spending['is_total'] = spending.index == 'TOTAL'

spending.index.rename('Category', inplace=True)
spending['% difference'] = (
    100 * (spending.cash / spending.non_cash - 1)).round()


import plotly.graph_objects as go

# Plot % difference.
BLUE = '#1976D2'
DARK_BLUE = '#0D47A1'
COLOR_MAP = {True: DARK_BLUE, False: BLUE}  # Total vs non-total.
spending_order = spending.sort_values('% difference')
spending_order.rename({'cash': 'Cash', 'non_cash': 'Non-cash',
                       'is_total': 'Total'},
                      axis=1, inplace=True)
fig = px.bar(spending_order, y=spending_order.index, x='% difference',
             color='Total', color_discrete_map=COLOR_MAP,
             orientation='h', hover_data=['Cash', 'Non-cash'])

fig.update_layout(font=dict(family='Roboto'),
                  plot_bgcolor='white',
                  paper_bgcolor='white',
                  showlegend=False,
                  xaxis_title='Difference between cash and non-cash group',
                  yaxis_title='',
                  xaxis_ticksuffix='%',
                  yaxis={'categoryorder': 'array',
                         'categoryarray': spending_order.index},
                  title='Spending differences between cash and non-cash groups'
                  )
fig.add_layout_image(
    dict(
        source="https://raw.githubusercontent.com/UBICenter/blog/master/jb/_static/ubi_center_logo_wide_blue.png",
        # See https://github.com/plotly/plotly.py/issues/2975.
        # source="../_static/ubi_center_logo_wide_blue.png",
        xref="paper", yref="paper",
        x=1.04, y=-0.13,
        sizex=0.12, sizey=0.12,
        xanchor="right", yanchor="bottom"
    )
)
fig.show(config={'displayModeBar': False})