A broker called about a vacant office tower
The building is a four-story cast-in-place concrete office tower on a corner parcel in Midtown Phoenix, with a large subterranean garage under the residential floors. It was on the market; a broker reached out and thought I might be interested. I walked it, and LÏEF put it under contract for $3.85M in December 2024 and closed in September 2025. The plan was adaptive reuse into for-sale luxury condominiums. The frame gives you what an office tower of that era gives you: generous floor-to-floor, which became twelve-foot ceilings in the residences, and a column grid whose bay spacing sets what a residential plan can do before anyone draws a line.
On paper this was a design and entitlement problem: get the zoning answered, get the drawings right, get the permit. That is the frame most conversions run in, and the default path inside it is to hire a full-service architecture firm for pre-development and let the firm's own quality process catch design and code errors before a set goes to permit. Three things made that default wrong for this building. The parcel's C-1 H-R zoning put a question mark over the whole program until it was answered. The quotes for the same scope came in far enough apart that the number had stopped describing the work. And the schedule was the asset: on a conversion, the city's standard plan-review queue is a larger risk than any single code question.
The people in it: LÏEF Development as owner and developer, with me as Principal running the acquisition, entitlement and pre-development directly; an architect of record retained for the professional stamp and the certification rather than for the design; the city's planning, fire and site reviewers; a civil engineer carrying the site plan; outside counsel on the easement and on the architect contracts; and, on the roof, a buyer's team that opened by asking for more roof than the carrier was renting.
Lock the classification, then the unit count
The decision that shaped everything after it was an ordering decision. Most conversions lock the unit program first, because the unit count is what the pro forma runs on, and check the permit classification afterward. I did it the other way around.
A classification is a schedule fact before it is a code fact. The scope here is an existing-building Level 3 alteration under the IEBC with a change of occupancy from Group B, office, to Group R-2, residential. That exact box is the one Phoenix's self-certification program is built around: a registered architect of record certifies the set and the city issues the permit in one to five business days instead of routing it through the standard multi-month queue. Had the unit count locked first, and had the classification check then come back needing something self-certification does not cover, the program would have needed a redesign against a schedule already committed to a fixed count. Locking the classification first meant that failure mode never went live, and it meant the fast path was available by design rather than discovered afterward.
It also changed what I was asking the architect of record to do. Walking in with the classification already established turned the ask from "stake your license on a compressed timeline built around an open question" into "certify a path that is already settled." That is why a licensed architect was willing to put a stamp behind this schedule.
The second decision followed from the first. Once the permit path was settled, the pre-development fee was the next largest line the deal could not carry, and the question I asked was not "can we draft this ourselves" but which half of an architecture fee is the stamp and which half is production. The stamp and the certification are what a license attaches to. The drafting underneath is labor priced as expertise, routinely farmed out by the firm itself, and on an existing concrete shell it is not complex. Twenty years as a general contractor and developer, receiving those invoices, is where that judgment came from. Six months of pushing agentic tools hard across other problems is what made it executable. The advantage was the two things sitting in the same head.
How I came at this one
The question I asked first was which risk the schedule actually carried, the code or the permit queue, and it came from the building rather than a playbook: a permit path is a schedule risk before it is a code question. It fit because a conversion of an existing shell has few true code unknowns and one very large queue.
When quotes for identical scope land that far apart, the price is not measuring the work. You do not move a price like that by negotiating, because negotiating accepts the frame. You move it by changing what you actually need from them.