Qipudata
San Francisco · v0.7.1
qipu data›San Francisco›Datasets›x_permits_block

Building permits by block

x_permits_blockrelease v0.7.1CC0 1.0

About

One assessor block and one kind of building permit (DataSF i98e-djp9, PDDL), filed 1982-2026: distinct permit numbers and the first year of that kind. kind=all is every permit. Not from the Internet Archive (DataSF open data, PDDL).

How far to trust it
The release passed its automatic checks before it was published (what is checked). A hand check by the editor of qipu data is under way: 36 of 38 items checked so far were right, on votes, money, places and the map. A row says what the record states; the scanned page is the authority. Details
Licence
CC0 1.0: use it for anything, no permission needed. The scans and other sources keep their own rights.
Version
v0.7.1, published 21 October 2026. A published release is never changed; corrections come as a new release.
Technical details
Table
x_permits_block
Rows
28,708
Columns
4
Parquet
x_permits_block.parquet, < 0.1 MB
Version
v0.7.1, 21 October 2026
Licence
CC0 1.0. Sources keep their own rights.

Rows

Rows by kind

ValueRowsShare
reroof4,78416.7%
kitchen_bath4,76816.6%
seismic4,01014.0%
change_use3,64712.7%
more_units2,98810.4%
fire2,1797.6%
adu1,7596.1%
sign1,6835.9%
soft_story1,5305.3%
solar1,3604.7%

Method and accuracy

No accuracy measure for this table yet.

The release passed its automatic checks before it was published (what is checked). A hand check by the editor of qipu data is under way: 36 of 38 items checked so far were right, on votes, money, places and the map. A row says what the record states; the scanned page is the authority.

Methodology · Accuracy

Columns 4

ColumnTypeCan be emptyPrivacyPublic copyDescription
blockVARCHARyesnoneas isAssessor block.
Can be empty yes · Privacy none · Public copy as is
kindVARCHARnononeas isall, reroof, kitchen_bath, solar, soft_story, seismic, adu, more_units, fire, sign, change_use (keyword and field rules in permits_blocks.py).
Values adu, all, change_use, fire, kitchen_bath, more_units, reroof, seismic, sign, soft_story, solar
Can be empty no · Privacy none · Public copy as is
permitsBIGINTyesnoneas isDistinct permit numbers filed since 1982.
Can be empty yes · Privacy none · Public copy as is
first_yearBIGINTyesnoneas isYear the first permit of that kind was filed.
Can be empty yes · Privacy none · Public copy as is

Privacy: what kind of text the column holds. Public copy: what the published file does with it; the embargo covers records after 1951.

Preview

blockkindpermitsfirst_year
qipu:sf/place/block/0767kitchen_bath52007
qipu:sf/place/block/1616change_use31990
qipu:sf/place/block/1680change_use72015
qipu:sf/place/block/3604soft_story12019
qipu:sf/place/block/4792kitchen_bath131986
qipu:sf/place/block/6090change_use92008
qipu:sf/place/block/6471adu22021
qipu:sf/place/block/7102reroof12004

Eight rows sampled at build time. Hover a shortened value for all of it.

Download

FormatFileSize
Parquetx_permits_block.parquet ↗< 0.1 MB
SQLite (all tables)qipu_sf.db ↗6.44 GB

SQL

SELECT * FROM x_permits_block LIMIT 100

Run in the SQL console (DuckDB in the browser, over the Parquet file).

Python

import duckdb duckdb.sql("SELECT * FROM 'https://tiles.qipu.org/data/releases/v0.7.1/parquet/x_permits_block.parquet' LIMIT 5").show()