The NMTC program aims to attract private capital to low-income communities that would typically experience a lack of investment in an effort to revitalize struggling economies. The program allows investors to receive a tax credit against their federal income tax in exchange for making equity investments in Community Development Entities. The credit totals 39% of the investment amount and is claimed over a 7 year period.
You can download the full national dataset for New Markets Tax Credits for years 2003-2014 from https://www.cdfifund.gov/news-events/news/Pages/news-detail.aspx?NewsID=225&Category=Press%20Releases in the form of a spreadsheet. A Data Point Description on the first tab of the spreadsheet explains each variable. You can save the second tab of the spreadsheet “Financial Notes 1 - Data Set PU” off as a csv file to then manipulate in R.
The data has a row for each project ID and you can filter based on a variety of location variables and the year placed in service (Yr_PIS) or the allocation year (Yr_Alloc)
# Load relevant libraries
library( maptools )
library( sp )
library( dplyr )
library( pander )
library( rgdal )
library(geojsonio)
# Read in raw data with csv file
NMTC.full.dat <- read.csv( "https://raw.githubusercontent.com/lecy/SyracuseLandBank/master/DATA/RAW_DATA/NMTC_raw.csv", header=TRUE)
# Select only the rows for the city of Syracuse
NMTC.syr <- subset (NMTC.full.dat, City == "Syracuse")
# Select the census tract, origination year and amount columns to work with
NMTC.syr.year.dol<- select(NMTC.syr, X2010.Census.Tract, Origination.Year, QLICI.Amount)
# Clean values
NMTC.syr.year.dol$QLICI.Amount<-substring(NMTC.syr.year.dol$QLICI.Amount,2)
NMTC.syr.year.dol$QLICI.Amount <- as.numeric(gsub(",","",NMTC.syr.year.dol$QLICI.Amount))
#NMTC.syr.year.dol
# Aggregate dollars by census tract
NMTC.ct.group<- group_by(NMTC.syr.year.dol, X2010.Census.Tract, Origination.Year, QLICI.Amount)
#NMTC.ct.group
NMTC.agg <-aggregate(NMTC.ct.group$QLICI.Amount, by=list(NMTC.ct.group$X2010.Census.Tract, NMTC.ct.group$Origination.Year), FUN=sum, na.rm=TRUE)
colnames(NMTC.agg) <- c("TRACT","YEAR","NMTC_DOLLARS")
NMTC.agg
# Read in parcel geojson file from Github
syr.parcel <- geojson_read("https://raw.githubusercontent.com/lecy/SyracuseLandBank/master/SHAPEFILES/syr_parcels.geojson", method="local", what="sp" )
# Convert geojson file to data frame and identify neighborhoods in census tracts that have NMTC
syr.parcel.dat<-as.data.frame(syr.parcel)
syr2<-select(syr.parcel.dat, CensusTrac, Nhood)
# Sort by dollars and create a bar plot by neighborhood
NMTC.bp<-NMTC.agg[order(NMTC.agg$NMTC_DOLLARS),]
NMTC.round <- round(NMTC.bp$NMTC_DOLLARS/1000000)
NMTC.labels <- paste0("$",NMTC.round)
barplot<-barplot(NMTC.bp$NMTC_DOLLARS, width=1, names.arg=c("Northside", "Downtown", "Near Westside", "Park Ave"),
main="Amount of NMTC Investments in Syracuse, by Neighborhood",
col= "lightgreen", axes=F, border="gray", ylim=c(0, 21500000))
text(x = barplot, y = 1300000,labels = NMTC.labels, pos = 3, cex = .9, font = 2, col = "white")
text(x = barplot, y = 0,labels = "million", pos = 3, cex = .9, font = 2, col = "white")
# Plot Syracuse parcels and highlight those that receive NMTC
select.tracts <- syr.parcel[syr.parcel$CensusTrac=="15"|syr.parcel$CensusTrac=="32"| syr.parcel$CensusTrac=="30"| syr.parcel$CensusTrac=="21.01",]
plot(syr.parcel, col = "grey", border = F)
plot(select.tracts, add = T, col = "lightgreen", border = F)
title(main="Location of New Markets Tax Credits in Syracuse")
# Generate a .CSV file
setwd( "../../DATA/AGGREGATED_DATA" )
write.csv( NMTC.agg, "NMTC_aggregated.csv", row.names=F )