An analysis of the changing food security landscape in San Francisco 2018-2019: Calfresh Cash In

Background

A major policy change in how Supplemental Security Income (SSI) and Calfresh benefits are being administered is on the horizon. As of the Summer of 2019, seniors in San Francisco, as well as across the United States, will become eligible for Calfresh, when, up until this point they not considered eligible. This change was considered nessecary as social security payments have not kept with the increased cost of living, particularily in high cost of living areas such as San Francisco.

The purpose of this module is to examine, using data provided by by FSFT Report (2018), this change from an epidemological perspective. We will estimate how many additional recepients may become eligible for CalFresh because of these changes – citywide, on a district by district basis, and on a neighborhood basis. This could, in theory, be used to guide resource allocation as a key component of these changes will be directing new beneficiaries to enroll in the Calfresh program.

Before we begin, let’s outline basic eligibility guidelines for both programs.

Supplemental Security Income (SSI)

Supplemental Security Income (SSI) is a Federal Income supplement program that is funded by general tax revenues and is designed to help aged, blind, and disable people who have little or no income. It is meant to provide cash to meet basic needs for food, clothing and shelter3

Criteria for eligibility include but are not limited to:

  1. People who are aged (65+), blind or disabled;

and people who have:

  1. limited income and limited resources
  2. is a US citizien or qualified alien
  3. files and application

Other categories apply, but these are the most relevant for the discussion today.

Calfresh

Calfresh is the California version of the Supplemental Nutritional Assistance Program (SNAP). Calfresh provides benefits to low income residents of California using gross hosehold income as a eligibility requirement.

Eligibility is based primarly on income. Benefits are approximately 160 dollars per person per month.

Methods

So in order to estimate the number of SSI recepients that will become newly eligible for SSI benefits in the near future we first need some information demographic information

SFPoverty <- read.csv("SFPoverty.csv", header = T)
SFPoverty
##    ï..Category Under.200.FPL Under.100.FPL
## 1       0 to 5         10311          4467
## 2      6 to 17         21618          9541
## 3     18 to 24         31285         20075
## 4     25 to 64        121388         58639
## 5     65 to 74         18783          7159
## 6 75 and above         23183          9643
## 7        Total       226,520        109524

We see that the data is properly sorted by factor. It’s worth manipulating this table in a couple of ways before further work.

Here is becomes useful to pull the FPL and the Individual Calfresh Eligibility rates in order to translate this data into meaningful information for our purposes.

The FPL measures range between: 12,140 - 42,380 total household income, with the low end being for individuals and the high end being for familes of 8.

Calfresh eligibility rates range from: 2024 - 7064 Gross Monthly Incomes, with allowable deductibles.

It would be useful to convert Calfresh levels more exactly to determine How Calfresh eligiblity translates to FPL guidelines. Using he guidelines for deducibles outlines in link

Calfresh.Vector = c(2024, 2744, 3634, 4184, 4904, 5624, 6344, 7064)
CalfreshEligibility <- function(y) {
  #Minus 20 percent of AGI as a deduction
  y <- y - (y * .2)
  #Vectorizing the Standard Deduction based on household size
  SD <- c(160, 160, 160, 170, 199, 199, 199, 199)
  #Multiply by 12 to get a yearly AGI
  y <- (y - SD) * 12
  return(y)
}

CalfreshEligibility(Calfresh.Vector)
## [1] 17510.4 24422.4 32966.4 38126.4 44690.4 51602.4 58514.4 65426.4

These data results clearly show that familes under 200 percent of FPL should qualitfy for Calfresh benefits. 200 percent FPL is the level that is typically as a rough benchmark to quality for CalFresh and for the purposes of this paper we will use it as a bechmark rate. There are other deductions available, which should expand the minimum rate, but we will set those aside for the time being due to the complexity if implementing them given the constraints of the assignment. The would only further expand the base, so, the figures inside should be looked as a floor.

It’s worth verifying the integrity of the report, since it gives us two ways to measure the number of people over 65 who are under 200 percent of FPL.

x <- 18735 + 23183
x
## [1] 41918
z <- 117064 * (.14 + .22)
z
## [1] 42143.04

The data seems close enough to proceed. The discrepancy is less than 300 people, which maybe accounted for in unverified income.

The next step is to check SSI benefits to approximate how many individuals are receiving SSI benefits. The requirements are monthly income of no more than 2000 per individual or 3000 per household.6. The APA estimates the number of elderly living alone at 26 percent (as of 2014) 7. Good enough for these estimates.

a <- (12 * (1500 * (1 - .27)) + (2000 * (.27)))
a
## [1] 13680

The income threshold is much smaller for SSI recepients. This brings us to our first conundrum. This is far below FPL level. We need a better way to estimate he number of SSI recepients living in the city. Luckily the SSI administration has publicly avaiable data that we can use for that purpose. link.

library(tidyr)
SSI <- read.csv("ca.csv", header = T)
head(SSI)
##           ï..County ANSI.Code     Total    Aged Blind.and.disabled
## 1 Total, California         6 1,261,217 359,988            901,229
## 2           Alameda      6001    50,166  16,397             33,769
## 3            Alpine      6003        36     (X)                (X)
## 4            Amador      6005       722      61                661
## 5             Butte      6007    11,063     853             10,210
## 6         Calaveras      6009     1,026      73                953
##   Under.18 X18â..64 X65.or.older SSI.recipients.also.receiving.OASDI
## 1  104,499  575,635      581,083                             498,298
## 2    3,091   22,511       24,564                              16,879
## 3      (X)       21          (X)                                  20
## 4       38      522          162                                 326
## 5      769    7,822        2,472                               4,632
## 6       88      716          222                                 439
##   Amount.of.payments..thousands.of.dollars..a
## 1                                     808,566
## 2                                      34,231
## 3                                          18
## 4                                         441
## 5                                       7,117
## 6                                         637

This data set gives us a count of recepients who are on SSI, both in the aged and the blind/disabled categories. We have determined that these individuals, based on income criteria, would be eligible for CalFresh. We can easily see by scrolling through the numbers what the eligibility would be here, but why do that when we can use R to find the row and display it ot us properly.

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
SF <- filter(SSI, ï..County == "San Francisco")
SF
##       ï..County ANSI.Code  Total   Aged Blind.and.disabled Under.18
## 1 San Francisco      6075 42,499 19,193             23,306      692
##   X18â..64 X65.or.older SSI.recipients.also.receiving.OASDI
## 1   14,306       27,501                              17,031
##   Amount.of.payments..thousands.of.dollars..a
## 1                                      27,364

This gives us a good idea of the number of people who might newly be eligible for CalFresh in June of next year == 42,499. Two questions remain. First, based on historical trends, what is a realistic range of people who newly enroll? Second, what can we expect on a district by district basis, i.e. in terms of resource allocation where should we direct resources to best serve the needs of the community?

The first question can estimated by taking a look at currently levels of CalFresh enrollment. While that will not give us an initial figure, it might give us an idea of the potential ceiling, given currently known information.

According to the Food Security Task Force, San Francisco enrolls approximately 66 percent of all eligible enrollees.8 Given this information, a quick ceiling check would be:

potential <- 42499 * .66
potential
## [1] 28049.34

Next is calculating the impact by district. By scraping the information that we have on the FSTF report, we can estimate new impact by looking at current Calfresh recpeients by district. While this is not a perfect measure it is a reasonable assumption to infer that current recepients can inform potential new enrollees. Or at least, it’s good enough for this report.

demogs <- read.csv("demogs.csv", header = T)
demogsdf <- data.frame(demogs)
demogsdf$CalfreshPercentage = round(100 * demogsdf$Calfresh.by.Household/42327, digits = 2)
demogsdf$PotentialSSIEnrollees = round(demogsdf$CalfreshPercentage * 28049.34 / 100, digits = 0)
demogsdf
##    District Population Calfresh.by.Household CalfreshPercentage
## 1         1      76640                  1974               4.66
## 2         2      67783                   759               1.79
## 3         3      74827                  3724               8.80
## 4         4      75909                  2359               5.57
## 5         5      81814                  3447               8.14
## 6         6      66230                  7340              17.34
## 7         7      69913                  1596               3.77
## 8         8      71631                  2061               4.87
## 9         9      84493                  5263              12.43
## 10       10      73115                  8614              20.35
## 11       11      85619                  5190              12.26
## 12    Total     826944                 77109             182.17
##    PotentialSSIEnrollees
## 1                   1307
## 2                    502
## 3                   2468
## 4                   1562
## 5                   2283
## 6                   4864
## 7                   1057
## 8                   1366
## 9                   3487
## 10                  5708
## 11                  3439
## 12                 51097

Indeed, although the numbers are not surprising, analysis indicates resources should be concentated in districts 10 and 6. Let’s take a look a the final numbers graphically.

library(ggplot2)
plotdf <- subset.data.frame(demogsdf, District != 'Total')
plotdf$District <- factor(plotdf$District, levels = c('1','2','3', '4', '5', '6', '7', '8', '9', '10', '11'))
pl <- ggplot(plotdf, aes(x = District, y = PotentialSSIEnrollees, fill = District)) + geom_bar(stat = 'identity', color = 'grey') + xlab('District') + ylab('P. Calfresh Enrollees') + ggtitle("Potential New Calfresh Enrollees from SSI by District") 
pl

Note in addition to coloring the data so it’s easy to read, we reordered the bar rchart using factor levels command to make it logically consistent – i.e. the districts appear in ascending order. We removed the total row to make the district data viewable. In order to refine these numbers, we ought to take a look at the percentage of elderly and disabled in each district directly instead of using current Calfresh Enrollment as a proxy. But given the time constraints on this project we’ll leave it at this for now, with the potential to expand in the future.

I hope this is a useful bit of information and sufficient to generate interest in an emerging public health issue in San Francisco. The data analysis, done at a rudiementary level, nontheless points to an urgent need to devote resources towards the conversion of SSI recepients to successful Calfresh enrollees. The data allows us to intuit the need to allocate resources in a stragegic manner in the near future to meet these needs.