Cash Flow Risk
I built a market assessment engine specifically so I wouldn’t have to eyeball spreadsheets and talk myself into deals. So it’s a little embarrassing that, until today, the tool’s price-to-rent grading didn’t actually predict the thing I care about: whether a property cash flows.
Here’s what I mean, using ZIP 07083 — Union, NJ — as the test case, because it happened to be sitting at the top of my recent searches when I made the fix.
The Question
Union scores a 70/100 on my six-metric engine. That’s a B — “good market,” strong buy signal, the whole banner. Tight vacancy (4.1%), healthy unemployment (4.2%), solid income ($114,938 median). On paper, exactly the kind of place I’d tell you to dig deeper on.
But the price-to-rent ratio is 17.9x. And that number was graded an A. Which raises the obvious question: how does a market get an A on four metrics, and an A on a key measure of investment feasibility but would have shaky cash flow. On the surface this was still coming out looking “strong buy”, but represented a much riskier investment profile than the report card illustrated. That mismatch is what sent me back into assessment_engine.py this morning.
What Actually Changed
The underlying price-to-rent calculation didn’t change — it’s still home price divided by annual rent, same Census ACS and HUD FMR inputs as before. What changed is how I score the result, and I tied it directly to something every buy-and-hold investor already uses as a gut check: the 1% rule.
New tiers:
| Grade | Price-to-rent | Score | Monthly rent ÷ price |
|---|---|---|---|
| A | ≤ 8.3x | 20 (100%) | ≥ 1.0% — meets the 1% rule |
| B | ≤ 10.5x | 16 (80%) | ≥ 0.8% |
| C | ≤ 14.0x | 12 (60%) | ≥ 0.6% |
| D | ≤ 18.0x | 7 (35%) | ≥ 0.45% |
| F | > 18.0x | 3 (15%) | < 0.45% |
Here’s the arithmetic behind that top row, since I don’t like handing you a table without showing my work: if monthly rent needs to be at least 1% of purchase price, then price divided by monthly rent has to be 100 or less, which means price divided by annual rent — the ratio my tool actually reports — has to be 100 ÷ 12, or about 8.3x. That’s where the A cutoff comes from. Same logic scales down the table: the D/F line at 18.0x works out to roughly a 0.463% monthly rent-to-price ratio, which is why I rounded it to “≥ 0.45%” in the label.
Now go back to Union NJ. 17.9x. Run that through the same formula — 1 ÷ (17.9 × 12) — and you get 0.466% monthly, call it 5.6% annual. That’s a hair over the 0.45% floor, which is exactly why its A rating raised a warning flag for me. Under the old scoring, a market like this could still post a decent-looking composite score because price-to-rent was just one input among six, weighted the same regardless of how far it missed the mark. Now, missing the 1% rule this badly costs you real points, and it shows.
Why I Also Fixed Population Growth
While I was in there, I made a second change that’s less dramatic but matters more over a hold period: population growth used to be a single year-over-year comparison. One good or bad Census estimate could swing the grade, and ACS 5-year figures already carry enough sampling noise that a one-year snapshot is a shaky thing to underwrite a decade-long hold on.
It’s now a rolling 3-year CAGR instead. Union’s current read is +1.04% annually — in line with the national average — but the number is doing a steadier job now: it’s smoothing across three years of estimates instead of betting the grade on whichever single year happened to land in the data pull. A market that had one weird up-year won’t get an A it doesn’t deserve, and one bad year won’t tank a market that’s actually growing fine.

What This Means for a Market Like Union
Put the pieces together and 07083 tells a more honest story than the old headline did. Demand fundamentals are genuinely strong — tight vacancy, healthy employment, income that supports real rent growth. But you’re paying a lot for that demand, and there’s a heavy supply pipeline on top of it: 59.7 permits per 1,000 units, an F on my sixth metric. New construction at that pace tends to put a ceiling on rent growth right as you’d be counting on it to bail out a thin cash-flow deal.
None of that means don’t buy in Union. It means don’t buy in Union assuming day-one cash flow. Any deal here needs more scrutiny around cash flow. And it also warrants an honest appreciation thesis, or unusually favorable financing, to make the math work — the score is telling you to underwrite it as an appreciation play, not a yield play, and to be skeptical of pro formas that lean on rent growth outpacing a market that’s about to see a wave of new supply.
Where This Could Still Be Wrong
A couple of honest caveats. The 1% rule is a rough screening heuristic, not gospel — plenty of good long-term holds never clear it, especially in high-appreciation coastal and near-coastal metros, and Union sits inside the New York-Newark-Jersey City metro, which is exactly the kind of market where that rule of thumb has always struggled. I’m using it as a scoring anchor because it’s a well-understood shorthand, not because I think 1% is some magic cash-flow line. As always, investors need to do their own homework before making offers and signing on to a deal with less than solid fundamentals.
And the population and price-to-rent inputs are both still running off 2022 ACS data — that’s the most recent 5-year release available, but it means the “3-year CAGR” is really the most recent 3 years the Census has published, not the most recent 3 calendar years. If you’re underwriting a specific deal here, that lag is worth remembering.
Wrap Up
The whole point of building this tool was to stop me from fudging a deal I wanted to like. Today’s fix is a small, unglamorous change — a table of grade cutoffs, a rolling average instead of a single-year snapshot — but it’s exactly the kind of thing that keeps a scoring engine honest. A market can still be worth buying into at a lower price-to-rent. It just shouldn’t be able to hide so easily.
A reminder that we’re not licensed financial or investment professionals — just sharing what we’ve learned building and using this tool. Talk to a qualified advisor before putting real money into a deal.
Read time: ~6 minutes