Manhattan
Brooklyn
Queens
Staten Island
Bronx
This project was inspired by my own experience of the malleability (and not) of New York City
rents. I was pleasantly surprised to find in 2018 that writing a persuasive email to my landlord
about the impacts of the proposed L train shutdown was enough to get my rent lowered. Even after
the subway closure was scaled back, my rent remained dropped for another year's lease (I'm not sure if that
was a clerical error or a sign of the market, though). This led me both to wonder about the lasting impacts
of subway infrastructure on the neighborhood, and to worry the day that I would be priced out of my apartment.
Oh the irony of that fear, as a young, college-educated white person living in Bushwick...
The upshot is a tool that allows for exploration of NYC neighborhood median rent data over the last ten years,
with a particular visual focus on comparing neighborhood trends shown in each neighborhood's line graph to the
broader picture of all the data, shown as a scatterplot.
Data were downloaded as a .csv file from the StreetEasy data dashboard in April 2020, and reshaped using Python so that median rent could be visualized over time.
Unsurprisingly, there's a general trend of median rents increasing in New
York. Beyond that, here are 3 interesting finds that emerge from this visualization:
1. Some neighborhoods have developed a noticeable seasonal change in rent, reflecting a broader
trend in NYC. Select "NYC" in the dropdown to see that the line becomes "wavier"
starting around 2016, with a peak each summer and valley each winter. Bushwick,
Crown Heights, the East Village, Gowanus, Greenpoint, Long Island City, Prospect
Park, and Ridgewood rents all show this trend pretty strongly. At least 5 of those
neighborhoods are also undeniably experiencing gentrification, and I hypothesize that
one factor of "wavy" rent lines is that these areas tend to have more young (potentially
first-time or inexperienced renters) who create demand in the summer when they, for example,
graduate college and move to the city, and may then be upsold in the summer given the higher demand and less experience.
StreetEasy definitely targeted millenials / twenty-something young professionals as its
demographic of choice in its recent mass marketing campaign across New York, and I would be curious
to see in which neighborhoods the company experiences its greatest growth in terms of number of properties leased.
I'd suspect that one-year, unrenewed leases are more standard among this young demographic, and therefore
become more common in the neighborhoods that they move to. On the flip side, the Upper East and West sides
of Manhattan, very stable residential markets that are not experiencing gentrification, show almost
no seasonal variation.
Interestingly, SoHo has an extremely strong reverse trend (on the order of a $2,000 dollar per month
more expensive in January than in June), and is pretty much the only neighborhood to show
that pattern. Maybe it's all the rich people fleeing to their summer homes...
2. North Brooklyn median rent increases by over $500 during 2019, despite
the L-train construction significantly impacting subway travel in that area of the city
during that time. One answer is that the proposed shut down had been much worse, so the January
of 2019 announcement of only a partial shutdown made neighborhoods all along L viable options
once more, leading to a sharper than usual increase in demand and a price hike.
3. Finally, it's interesting to observe which neighborhoods "arrive" on the visualization:
Fordham, Morris Park, Mott Haven, Tremont, and several other Bronx neighborhoods. It's hard to say whether
Streeteasy's increasing reach is due to an expanding consumer base or to the expanding geographic range of
existing consumers. Are people who already lived in the Bronx are now using StreetEasy to look for
apartments in the Bronx, or are StreetEasy users who didn't used to look at apartments in the Bronx
now looking there?
Assignment 1 | Assignment 2 | Assignment 3 | Assignment 4 | Assignment 5 | Assignment 6 - freeform Python | Activity 6 - in class | Assignment 7 | Assignment 8 | Assignment 9 | Assignment 10 - writeup | Assignment 10 - code