The tenant moved in on month nine of a ten-year hold and the investor's basis step-up clock had already been running for seven of those years.
That gap matters because the substantial improvement test and the exclusion benefit operate on different timelines, and most people treat them as the same problem. The improvement test is an early obligation, typically resolved in the first 30 months of ownership. The exclusion of post-acquisition gain requires the full ten-year hold from the date the investment went into the qualified opportunity fund, not from the date the building passed inspection. A deal that took three years to stabilize still gets the same ten-year measurement if the fund was structured correctly from day one, but a deal where the fund's own formation was delayed, or where the original gain reinvestment missed the 180-day window by even a week, starts the clock late, and that lateness compounds at the back end when the exit finally happens. Take a fund formed in month four after the triggering sale, with a stabilization that slips to year four of the hold: the investor is looking at a year six that still has four years of required patience, on a building that a buyer would pay for today. The spread between a sellable asset and a tax-optimal exit is real money sitting in a structure that the documents have locked. What I keep seeing undermodeled is the cost of that gap, meaning the return the investor foregoes by not selling in year six, discounted against the gain exclusion value at year ten. Sometimes the exclusion wins by a lot. Sometimes it wins by less than the opportunity cost of four more years of illiquidity, especially if the zone itself is softening. The number doing the most work in that comparison is the discount rate you apply to the year-ten proceeds, and most zone pitch decks I have seen use a rate that makes the wait look more attractive than it is. What discount rate did your fund's model use for the year-ten exit, and did it stress-test that rate against a flat or declining local market?