Guide

Two Identical Warehouses, 37.9% Apart: What It Means for a BOV

Two Tampa warehouses of identical size, half a mile apart, filed 2025 incomes 37.9% apart. What that gap is worth in a broker opinion of value, and where our own first pass was wrong.

Two industrial buildings, half a mile apart in Tampa, both 39,155 square feet, both fully leased for all of 2025. One earns $13.56 a square foot. The other earns $9.83. That gap (37.9%, or $146,048 a year) is not a market estimate. It is filed, dated, and free to check.

This piece walks through how we found that gap, what it is worth in a broker opinion of value, and where our own first pass at the data got something wrong. Every number below traces to a filed figure. Nothing here comes from a paid feed, a licensed data product, a client file, or a broker's asking price.

Where the numbers come from

The figures are filed loan-level numbers for the buildings, with no client material. A pull covering 370 filers nationwide returned 39,304 property rows and 17,300 loans with zero parse errors.

Two buildings, one coincidence worth more than an argument

Building A and Building B, two warehouses in the same industrial park in Tampa, FL. Both are 39,155 square feet, both sit on the same street, and both reported 100% occupied for calendar 2025. Physical twins. Their filed 2025 net operating income, divided by square footage:

  • Building A: $13.56/ftΒ²
  • Building B: $9.83/ftΒ²

Gap: $3.73/ftΒ² Γ— 39,155 ftΒ² = $146,048 a year, or 37.9% of the lower figure. A market average for "Tampa industrial", the kind of number a generic comp report hands a broker, would describe neither building. It would sit between two data points that are 37.9% apart and call that the market.

What that gap is worth in a BOV

A broker opinion of value's income approach reduces to three numbers:

  1. The subject's NOI. Filed, named to the address.
  2. A comparable set. Same filed numbers, same county, same property type.
  3. A cap rate. Not in any filing: this is where judgement enters.

Two of the three inputs can be verified. The payoff is in how much the third one matters: for a subject property with a filed 2025 NOI of $530,942, moving the cap rate across a plausible two-point band (6% to 8%) swings the implied value by $2.21M. The measured income gap between the two twins, capitalised at 7%, is worth $2.09M.

The number nobody can source and the number anybody can verify are the same size. That is the sentence worth remembering: cap rate judgement moves value by about as much as a real, filed, checkable income gap between two identical buildings on the same street.

The wider cohort, and the correction we are publishing against ourselves

The same pull covers the full Hillsborough County industrial submarket, not just the two buildings above:

MeasureValue
property rows78
distinct buildings (normalised)43
distinct loans19
total net rentable area2,816,610 ftΒ²
buildings reporting NOI25 of 43; 42% report nothing
NOI/ftΒ²median $8.88, p25 $3.97, p75 $11.49, range βˆ’$5.49 to $13.56
positive-NOI spread9.2Γ— ($1.48 to $13.56, 21 of 25 buildings)
occupancymedian 95%, 11 of 35 below 80%, 5 at zero
DSCRmedian 1.21, 12 of 32 below 1.0, 4 negative

An earlier pass on this same corpus reported 66 distinct buildings. That number was wrong; the correct count is 43. The bug: the same building is filed twice under different capitalisation (one address in title case against the same address in capitals, twice over), and a raw distinct-value count on the address field treats each spelling as a separate building. Twenty-three of the 43 real buildings appeared under both spellings before normalisation.

We are printing that correction here rather than quietly fixing it, because the same pass had already caught an identical case-sensitivity trap on the county field a few steps earlier and fixed it there, and then made the same mistake on addresses two sections later. The rule that mistake earns: a normaliser is not a fix for one field, it is a fix for a join key. Every free-text column you group, count or dedupe on has to be normalised, or the bug just moves.

A second trap surfaced in the same re-derivation. The occupancy field is not a percentage in the 0 to 100 sense; it runs 0.0 to 1.0. Read literally, the cohort's occupancy looks catastrophic (median 0.9%). Read correctly, as the field name implies but does not guarantee, it is a normal industrial cohort with a distressed tail: median 95%, 11 of 35 below 80%, 5 fully vacant. Neither trap changes the twin-building comparison above. Both belong on the record, because a broker who checks the filed numbers will hit the same raw data and can hit the same traps.

What this is not

Not an appraisal, and not advice. Not a statement of what either building or any specific asset is worth: a broker opinion of value is an opinion of value, and that is what is being demonstrated here. The cap rates used above are illustrative and labelled as such; none come from a filing. Every income and occupancy figure is what was filed on the date it was filed, unchecked against the underlying borrower's own accounts. County membership is taken from the filed property city, not independently verified.

No client-identifying material, no client rent roll and no broker-asking-price data appears anywhere in this piece. Every figure above traces to the filed numbers.

See how Titleman sources every number

Request a demo