Methodology
How the Preconstruction Activity Index is built, what it does and does not measure, and where every figure comes from.
Index definition
The Index is a year-over-year momentum measure centered on 100:
Index = 100 × (applications in the latest three complete months) ÷
(applications in the same three months one year earlier)
100 means unchanged. 90 means activity is down 10%. 110 means it is up 10%.
Each city is computed and reported on its own; the two are never combined into a single national score, because their permit systems measure different things. A permit application is an early public indication of intended work, not proof that construction will proceed. PermitPipeline treats it as an early signal.
This edition compares May–July 2026 with May–July 2025.
City universes
New York City
Counted from w9ak-ipjd. The unit is a distinct job_filing_number. An
initial filing is one whose filing number ends -I1; it opens a new DOB job.
Subsequent (-S*), post-approval amendment (-P*) and administrative
(-A*, -B*, -C*) filings attach to a job that already exists and are
excluded from the index, because the project they belong to was already counted. Filing month comes from
filing_date. The dataset excludes electrical, elevator and limited-alteration jobs, which DOB
tracks separately.
San Francisco
Counted from f2jc-ivnc, the city's own deduplicated view, one row per permit. The unit is a
distinct permit_number and the date is filed_date. All applications are
counted regardless of their later status. Filtering out cancelled and withdrawn permits would be
maturity-biased, because an older cohort has had far longer to acquire a cancellation than a recent one: measured
on this edition's windows, 1.36% of the 2025 cohort was cancelled or withdrawn against 0.71% of the 2026 cohort,
so the filter itself would have flattered the current period. Permit
types are classified by permit_type code, never by its description label. A code that appears
without a published definition is reported as "Other/newly introduced permit type, definition pending".
Every build asserts that the deduplicated view reconciles exactly with a distinct count from the raw
i98e-djp9, and that the deduplicated view is not stale relative to it.
Geographic rules
New York uses Neighborhood Tabulation Areas (nta); San Francisco uses Analysis Neighborhoods.
Mapping coverage is published rather than assumed: NTA present on 99.63% of prior-year and
99.62% of current initial filings (75 and
69 filings unmapped, reported as Unknown and included in every city and borough
total); SF neighborhood present on 100.0% and 100.0%.
Mover thresholds. A neighborhood is only described as a mover if it clears all of:
- at least 60 (NYC) or 50 (SF) filings in the prior-year window;
- an absolute change of at least 15 filings;
- the same direction over the preceding six months — November 2025–April 2026 against November 2024–April 2025, periods that do not overlap the reported window, so the check is independent.
The edition displays up to the six largest qualified moves in each direction, ranked by index; the city pages list every row that passes the rule, and the CSVs contain every area including those that do not.
Processing measures
Approval and issuance timing is computed from dated events, never from a status column. New York:
approved_date minus filing_date. San Francisco: issued_date minus
filed_date. Because filing_status holds only a filing's current value, a
day-120 status cannot be reconstructed for a past cohort, and no such breakdown is published.
Cohorts are always compared at identical maturity — April filings measured at 120 days for both years — and segmented by review path, because professionally self-certified filings and standard plan examination follow different review processes. Work-type segments are published where a type has at least 100 filings in both cohorts; changes of at least 10 percentage points are highlighted as exploratory findings. These thresholds will be applied unchanged in future editions.
San Francisco issuance is reported separately for over-the-counter and plan-reviewed permits, since
over-the-counter permits are issued without plan review and a blended median would mislead. Declared-value
statistics cover plan-reviewed work only (permit_type='3'), all statuses, one row per permit:
n=94 in July 2025 and n=75 in July 2026, each 100% with a non-zero declared value.
Values are applicant-declared and unaudited. NYC declared-cost statistics are withheld from this edition: the
median moved to a flat $30,000 from April 2026 and that shift is not yet explained.
Revisions
Every figure in an edition is generated from a single frozen extraction, so the page, the charts and the CSVs cannot disagree. Both cities back-date records, so a closed month's count keeps changing quietly for weeks after it closes.
Published editions are immutable. Each new edition re-extracts the full history and republishes it; a prior reading is never edited in place. A dated revision note is added when a published reading moves by at least 0.5 index points, crosses 100, changes a neighborhood's direction or qualification, or changes any published conclusion.
Sources and licensing
w9ak-ipjd— NYC DOB NOW Job Application Filingsrbx6-tga4— NYC DOB NOW Approved Permitsf2jc-ivnc— SF Building Permits, deduplicated on primary addressi98e-djp9— SF Building Permits, rawftty-kx6y— SF Electrical Permitscw8k-gwb7— SF Building Permit Contacts
The published Index CSVs are licensed under CC BY 4.0. PermitPipeline's proprietary data, firm graph, software and other site content are excluded. Suggested attribution: “PermitPipeline Preconstruction Activity Index,” edition date and source URL.
Downloads: monthly filings · NYC boroughs · NYC neighborhoods · NYC approval by work type · SF neighborhoods
What this is not
Not a construction forecast: no back-test has been published against later issuance or starts. Not seasonally adjusted. Not a national measure. Not comparable between cities. Not a measure of construction spending. And not derived from PermitPipeline's proprietary firm graph — everything in the Index reproduces from public data.