Most buy boxes read like a wish list. "Stabilized multifamily, value-add multifamily, light retail, maybe some flex industrial, $5M to $50M, anywhere in the Sun Belt, 6%+ cap." That kind of mandate doesn't filter anything. It greenlights the entire public listing feed and forces you to read every OM that lands in your inbox. A real CRE buy-box template should reject more than 90% of what hits the market in any given week. If yours doesn't, your client doesn't actually know what they want, and you're the one paying for it in unbillable hours.
Why most buy boxes fail the filter test
The first problem is that buy boxes get written once, at the start of an engagement, and never touched again. The principal sends over a one-page PDF, the analyst saves it to the shared drive, and three months later the team is still forwarding deals that the client passed on twice already. The buy box was never a filter. It was a vibe.
The second problem is that the criteria are written in ranges that are too wide to be useful. A $5M to $50M price band spans three completely different buyer pools: HNW syndicators, mid-market funds, and institutional core. A 5% to 8% cap range covers gateway core and tertiary value-add in the same breath. When every dimension is wide, the joint filter is enormous, and you end up underwriting deals that were never going to clear committee.
The third problem is that buy boxes confuse "interesting" with "actionable". Your client may find a vacant 1980s strip center in Macon interesting. They are not going to close it. The buy box should reflect what they will actually wire equity for in the next 90 days, not the universe of things they'd pull up on CoStar at lunch.
The fix is mechanical. Write the buy box as a sequence of independent filters, each with a binary outcome. If a listing fails any one filter, it's out. No more "let me just check with the principal". The principal already told you what they want; you just wrote it down in a way that made every deal a maybe.
The seven dimensions of a working buy box
Every workable mandate I've seen reduces to seven dimensions. Some clients add an eighth (sponsor co-invest, debt assumption, ground lease) but the core seven cover roughly 95% of rejection logic.
| Dimension | What it filters | Common failure mode |
|---|---|---|
| Asset class | Property type and subtype | "Multifamily" without specifying garden vs. mid-rise |
| Geography | MSA, submarket, sometimes ZIP | Listing whole states instead of submarkets |
| Price band | Total deal size | Ranges that span three buyer pools |
| Cap floor | Minimum in-place or stabilized cap | No floor at all, or one set against the wrong NOI |
| Vintage | Year built, sometimes year renovated | Excluding renovated 1970s product that pencils |
| Tenant credit | Rent roll quality, lease term, guarantor | Vague "credit tenant" language |
| Deal structure | Fee simple, JV, recap, 1031 backfill | Forgetting the client only does 1031 in Q4 |
Asset class is where most buy boxes start too broad. "Industrial" should specify clear height, dock-to-door ratio, and whether you'll look at flex. "Multifamily" should pick a unit count floor (most institutional clients won't touch under 100 units) and a construction type.
Geography is where the asset class filter does most of its real work. A client who says "Sun Belt" usually means four or five MSAs they've actually closed in. Make them name them. Then go a layer deeper: inside Atlanta, are we doing intown or are we doing Gwinnett? Inside Phoenix, is West Valley in or out?
The cap floor is the dimension brokers most often get wrong. A 6% cap floor on T-12 NOI is a different filter than a 6% floor on stabilized year-three NOI, which is a different filter than a 6% floor on broker pro forma. Pick one. Write it down. The pro forma cap floor is usually 50 to 100 bps below the in-place floor.
How to write one in fifteen minutes
You don't need a workshop. You need a call with the principal and a notepad. Run this script:
- "What's the last deal you closed, and what's the last deal you passed on at LOI?" Two anchors, real numbers.
- "Walk me through why the pass was a pass." This gives you the actual rejection logic, which is almost never on the written buy box.
- "If I send you ten deals next week, how many would you want to see?" The answer is almost always one or two. Now you know your filter has to reject 80% to 90%.
- For each of the seven dimensions, ask: hard floor, hard ceiling, instant disqualifier. Write the answers as one-line rules.
- Read the rules back. If any rule contains the word "ideally" or "preferably", rewrite it as a hard line or remove it.
Fifteen minutes. The output should fit on one screen. If it spans two pages, you wrote a memo, not a filter.
A buy box that fits on a Post-it gets used. A buy box that needs scrolling gets ignored.
The version you send to your acquisitions team should be the same version your sourcing tool runs against the public listing feeds. If those two documents don't match, the deals your team sees and the deals your client sees will diverge, and you'll spend Monday mornings reconciling them.
A real example: Atlanta multifamily Q2
Here's a sanitized version of a buy box one of our broker users runs for an Atlanta-focused syndicator. Names changed, numbers in the actual range.
mandate: "Atlanta MF Value-Add Q2"
asset_class:
type: multifamily
subtype: garden
unit_count_min: 120
unit_count_max: 280
geography:
msa: ["Atlanta-Sandy Springs-Alpharetta"]
submarkets_in: ["Smyrna", "Marietta", "Tucker", "Doraville", "East Point"]
submarkets_out: ["Buckhead", "Midtown", "Alpharetta core"]
price_band:
min_total: 18000000
max_total: 42000000
cap_floor:
in_place_min: 0.058
basis: "T-12 NOI net of 5% management"
vintage:
year_built_min: 1978
year_built_max: 2005
renovated_acceptable: true
tenant_credit:
occupancy_min: 0.88
loss_to_lease_min: 0.07
deal_structure:
fee_simple_only: true
assumable_debt_required: false
seller_financing_ok: false
That mandate rejects roughly 94% of Atlanta multifamily that hits the public listing networks in a given week. The 6% of listings it passes through still need an analyst eye, but the volume is manageable: typically four to seven properties a week instead of seventy.
The interesting filter here is the loss-to-lease minimum. The client only wants deals where there's a clear path to NOI growth from rolling leases to market, so a building that's already at market rent is a pass even if the cap clears. That kind of rule never makes it into a one-page PDF buy box, but it's the difference between a deal getting an LOI and a deal getting a polite "not for us right now".
The buy box review cadence
A buy box decays. Cap rates move, the client's appetite shifts, a competing buyer takes the submarket they wanted. If you don't review on a schedule, you're sourcing against a stale mandate within a quarter.
The cadence that works:
- Weekly, 15 minutes. Pull the deals that passed the filter and the deals that failed at the edge. Ask the principal: any of these you'd actually want to see? Any of the rejections look wrong? Adjust one or two thresholds, not the whole document.
- Monthly, 30 minutes. Look at conversion. Of the deals that passed the filter, how many got an LOI? Of those, how many got past first round? If the filter is passing deals that consistently die at LOI, the filter is too loose on a dimension you haven't identified yet.
- Quarterly, 60 minutes. Rewrite from scratch. Don't edit the old version; start with a blank page and the same fifteen-minute script. Compare the new version to the old. The deltas tell you what changed about the client.
Most brokers run 3 to 5 mandates at once. That's a weekly hour, a couple of monthly half-hours, and a quarterly afternoon. Total time investment per client per quarter: under five hours. Compared to the time you currently spend forwarding deals that get a "not quite", it's a net saving from week one.
If your buy box hasn't been edited in 90 days, it isn't being used.
This is also where the rejection reasons matter. A buy box that just says "fail" doesn't help you tune it. You need to know which gate killed each deal. If 80% of your fails are on cap floor, that's a market signal: cap rates have compressed past where your client will play, and you need to either widen the floor or widen the geography. If 80% of your fails are on vintage, you're fighting your client's preference against what's actually trading. Either way, the rejection data is the input to the next quarterly rewrite.
This is the workflow bipsio was built around. Whenever you run a scan, Hugo reads every active listing across the public networks against your mandate's rulebook, and each rule returns PASS, FAIL, or PENDING with the reasoning written out, so when you sit down for the weekly review you trigger a scan and look at a structured rejection log instead of a pile of forwarded emails. The buy-box you wrote in fifteen minutes becomes the filter you run before every review.
A working buy box isn't a marketing document. It's a rejection engine. The goal isn't to describe the perfect deal in flowery language; it's to reject the 94% of listings that will waste your client's time, fast enough that the 6% that remain get a real read. Write it tight, run it weekly, rewrite it quarterly, and your inbox stops being the bottleneck.
If you want to see what a fully gated mandate looks like in practice, take a look at our sample mandate, or sign up and build one of your own in minutes.
