bricks self-service data platform · Twin Cities

Brick & Mortar · datasets

What sold, and for how much per square foot

What commercial property in this market actually changed hands for, per parcel, with the date and the land area behind every figure. The comp set a broker builds by hand and an assessor's ratio study is built from.

The file

sale of record on 34,302 indexed parcels

34,302 rows

Counties in this file: Anoka, Carver, Dakota, Hennepin, Ramsey, Scott, Washington · 24 columns available · free, no account, no rate limit.

Joins to an address on parcel_id, so it can be pointed at one property rather than read whole.

What the rows look like

10 real rows from this file, spread evenly across it rather than taken off the top — every file here is written in some order, so its first rows are never a fair sample of it. These are the default columns, which is what the download button hands over.

addresssale monthpricelot sq ft$ / lot sq ft$ / building sq ftbuilding sq ft (derived)how the building area was derivedfootprint sq ft (measured)useparcel id
9905 10th Ave N, Plymouth2026-07700,00034,84120.09306.882,2811 storey x measured footprint (median err 12.2%)2,295INDUSTRIAL-PREFERRED3611822130008
2633 Minnehaha Ave, Minneapolis2024-0510,000,000147,40767.84126.7178,9181 storey x measured footprint (median err 12.2%)79,395INDUSTRIAL-PREFERRED3602924310035
2022-0415,300,0004,5453,366.343003302921340028
571 Earl Street, Saint Paul2020-0635,0007,3514.763A COMMERCIAL LAND AND BUILDING332922240220
2018-01119,00014,8108.043a INDUSTIAL PREFERENTIAL033024440055
1000 Essex St SE, Minneapolis2014-121,000,3634,398227.461,961VACANT LAND-APARTMENT3002923230134
2821 1st Ave S, Minneapolis2010-1168,0003,80417.881,006LOW INCOME RENTAL3402924430115
842 3rd Ave, Excelsior2005-054,700,00030,037156.476,596APARTMENT3511723130005
1815 Greeley Street South, Stillwater1999-06930,000252,3223.6937,5143053303020320003
1899-122,214,000195,84711.31103302921130037

An em dash means the record is blank, and that is the source's gap rather than ours. Across the whole file: $ / building sq ft is blank on 66.1% of rows, building sq ft (derived) is blank on 66.1% of rows, how the building area was derived is blank on 66.1% of rows, footprint sq ft (measured) is blank on 26.3% of rows, address is blank on 8.9% of rows.

The cuts of this file

Every cut is the same columns, filtered. Pick one and the row count changes; the file does not.

5 scopes
CutRowsFile
every sale of record 34,302 CSV
arms length only 29,949 CSV
sold since 2019 13,670 CSV
usable comps only 21,741 CSV
sales with a building area 11,558 CSV

Every column in this file

Columns marked default come down unless you pick your own with &columns=.

24 columns
ColumnWhat it isIn the default file
address address default
sale_month sale month default
price price default
lot_sqft lot sq ft default
price_per_lot_sqft $ / lot sq ft default
price_per_building_sqft $ / building sq ft default
building_sqft building sq ft (derived) default
building_sqft_method how the building area was derived default
footprint_sqft footprint sq ft (measured) default
stories storeys (inferred) optional
structures structures on the parcel optional
all_footprint_sqft footprint sq ft, all structures optional
use use default
year_built year built optional
assessed assessed today optional
parcel_id parcel id default
owner owner of record optional
taxpayer taxpayer of record optional
owner_type owner type optional
arms_length arms length optional
multi_parcel_deed one deed, several parcels optional
shares_price_and_month price and month not unique optional
usable_comp usable as a comp optional
county county optional

Where it comes from

Hennepin County, Ramsey County, Dakota County, Anoka County, Washington County, Scott County and Carver County assessor sale of record

Records retrieved 2026-08-18 — the oldest capture date among the layers behind this file, because data is no fresher than its stalest input.

What this layer cannot answer is stated in full on the system card — read it before quoting a figure.

What you may do with it

Creative Commons Attribution 4.0 International (CC BY 4.0). Share it, change it, build a product on it, sell that product — all fine. The one condition is credit: say it came from Brick & Mortar and link back.

Records published by county assessors. Government data held by a Minnesota state agency or political subdivision, presumed public under the Minnesota Government Data Practices Act (Minn. Stat. ch. 13) and published by the agency itself.

Read the full licence · how we license every dataset, and the two we do not

Without the page

/api/export?dataset=sales&format=csv returns the same file. Call /api/export with no arguments for the whole catalogue.

Point an AI at it

Every file carries its own source, its capture date and the layer's own warnings in the header, so a model reading one gets the caveats with the numbers rather than the numbers alone. Paste this at an assistant that can fetch a URL:

Read https://brickandmortar.dev/api/export?dataset=sales&format=csv
Everything above the header row is provenance and limits. Read it first,
then answer using only what the rows support.

llms.txt describes the whole warehouse the same way — what each dataset holds, which counties it really covers, and what it cannot answer.