Quickstart Tour
Five pages cover the entire product. Open any of them now and the rest of this manual will read more easily.
Hero search, a 50-state tilegrid shaded by each state’s top LQ industry, four featured regions across the US, and a 9-lens grid that previews every analytical section.
The main analytical page. Sticky 9-section left rail (Demographics first, Economic Impact last), section content on the right. Deep-link to any section via ?section=...
Up to 3 regions side-by-side with shared axes. Pick a lens (LQ, GDP, Wages, etc.) and see all selected regions in parallel.
National county choropleth for a single 6-digit NAICS industry. Top-regions table on the side. Useful for site selection or competitive landscape research.
Aggregate two or more counties into a single analytical region. Useful for commuting zones, multi-county MSAs, and tri-county studies that don’t match Census definitions.
How-To Recipes
Each recipe is a real question someone asks of regional economic data and the click-by-click path through EconBase to answer it.
How do I find which industries my region exports?
- Open the region in
/explore/[fips]. - Click §02 Economic Base in the left rail.
- Filter to LQ > 1.5 in the LQ chart — that’s the export base.
- Cross-check with §03 GDP to confirm dollar scale, not just employment share.
How do I understand why employment changed between two years?
- Open the region. Switch to §07 Shift-Share.
- Pick start and end years in the year-range selectors.
- Read the three columns: National, Mix, Competitive.
- The competitive column is what’s “regional” — independent of national tides and industry mix.
How do I model the ripple effect of a $50M expansion?
- Open §09 Economic Impact for the region.
- Pick the industry receiving the investment in the Impact Simulator.
- Enter the dollar amount in $M; the simulator multiplies by 1e6 internally.
- Read the Direct, Indirect, and Total output rows.
- Check the Methodology Panel at the bottom for the FLQ delta and any quarantined ratios.
How do I compare two metro areas side-by-side?
- Open
/comparefrom the header nav. - Search for the first MSA and add it; repeat for the second.
- Pick the lens (LQ, GDP, Wages, etc.) — the comparison renders side-by-side.
How do I build a multi-county custom region?
- Open
/explore/custom. - Search and add counties one by one — they aggregate live.
- Pick the year and NAICS level to recompute LQ, GDP, and HHI for the aggregate.
- Save the region by sharing the URL — selections live in the query string.
How do I export a PDF report for a region?
- Open the region. Scroll to any analytical section.
- Click the Export PDF button in the top-right of the page.
- Wait 3–5 seconds while the backend renders charts via matplotlib + weasyprint.
What is economic base theory?
The economic base framework divides a region's industries into basic (export-oriented, bringing outside dollars in) and non-basic(serving local residents). Identifying the basic base is the first job of regional economic analysis — the export sectors are what give a region its identity (Detroit's auto cluster, Houston's energy complex, San Diego's defense and life sciences).
Growth in basic industries produces a multiplier effect across the non-basic sector. Every aerospace job supports restaurant, retail, healthcare, and education jobs in the same region. The screening multiplier (§04) and the regionalized I-O multiplier (§11) quantify this from two different directions — the simpler one from employment shares, the richer one from inter-industry purchasing relationships.
The framework has limits. It doesn't cleanly distinguish traded from non-traded services (a hospital can serve both local residents and out-of-state patients), it ignores productivity differences across regions (a basic job in one region may be far more productive than the same job elsewhere), and it assumes local consumption is closed (in reality, residents shop online and travel). Treat the basic-vs-non-basic split as a useful first cut, not a definitive answer.
Analytical Methods
Eleven methods, ordered the same way the Explore page rail orders the nine analytical lenses. Diversification (HHI) and the Economic Base Multiplier sit immediately after Location Quotient because both are derived from LQ output. Three depth tiers — Brief, Standard, Deep — mark how much detail each card carries.
Demographics
| Median household income | Half above, half below — robust to outliers |
| % Bachelor's or higher | Headline education metric (age 25+) |
| Civilian unemployment rate | Active job-seekers, not labor-force participation |
Location Quotient (LQ)
| LQ > 1.5 | Highly specialized — likely export base |
| LQ 1.0 – 1.5 | Above average — possibly export base |
| LQ < 1.0 | Under-represented relative to the nation |
Computed in app/analysis/location_quotient.py from Census County Business Patterns (CBP) employment data at the NAICS level you select (2/3/4-digit).
- NAICS auto-detection: CBP years 2017+ use NAICS2017; earlier years fall back to NAICS2012 (see
app/census/cbp.py). - Suppressed values: CBP returns N / D / S for confidential cells. The client coerces these to null rather than zero.
- Geography: county uses 5-digit FIPS, MSA uses 5-digit CBSA, state uses 2-digit FIPS, ZIP uses 5-digit ZIP code.
- Small-sector noise. An industry with 30 jobs in a small county can swing LQ wildly with one new establishment. Filter sectors below an employment floor before drawing conclusions.
- Single-county MSAs. When an MSA is one county (e.g., Bakersfield), county and MSA LQs are nearly identical and don’t add new information.
- NAICS reclassifications across the 2012/2017 boundary make raw year-over-year LQ comparisons misleading at the boundary year. Use the Trends tab for longitudinal views and read the Shift-Share section’s caveats.
Diversification (HHI)
| < 0.08 | Well-diversified |
| 0.08 – 0.15 | Moderate concentration |
| > 0.15 | Concentrated — more vulnerable to single-sector shocks |
Computed in app/analysis/diversification.py from CBP employment at the 2-digit NAICS sector level. EconBase exposes HHI as a single number plus the diversification class label (well-diversified / moderate / concentrated). The index is borrowed from antitrust analysis but is widely used in regional economics for the same intuition.
Economic Base Multiplier
| 1.5 – 2.0 | Each basic job supports 0.5–1.0 additional non-basic jobs |
| 2.0 – 3.0 | Typical for diversified metro economies |
| > 3.0 | High dependency on a small basic core |
The basic-vs-non-basic split uses LQ > 1 as the cutoff, the standard textbook threshold. EconBase exposes both the headline multiplier and the per-industry contribution. This is a screening multiplier — for ripple-effect modeling of a specific dollar shock, use the I-O Multiplier (§09) instead, which accounts for inter-industry purchasing.
GDP by Industry
| Industry share of GDP | Where the dollars come from, not where the jobs are |
| GDP per capita | Productivity proxy when divided by ACS population |
| Y/Y % change | Watch for current-dollar inflation distortion |
- Source: BEA Regional API, dataset CAGDP2, current-dollar GDP by industry. The BEA client lives in
app/census/bea.py. - Industry codes are not NAICS. BEA uses its own line codes; see
BEA_LINE_TO_NAICSin the same file for the mapping. This matters when joining GDP to CBP employment. - Suppressed values appear as (NA), (D), (NM), (L), or (T). The client coerces all of these to null.
- Geography: county / MSA / state. ZIP-level GDP is not published.
Wage Premium
| +20% premium | Local pay is 20% above the national average for the same industry |
| 0% | On par with national equivalent |
| Negative premium | Local pay below national — common in low-cost regions or branch operations |
- Source: BLS Quarterly Census of Employment and Wages (QCEW), imported via
app/census/qcew.py. - National-level ownership encoding gotcha: at the US aggregate, QCEW splits per-NAICS data across own_code values 1+2+3+5 (federal, state, local, private). EconBase sums these to derive the national denominator. Filtering on own_code=’0’ would return zero at the national level — a real bug we’ve already fixed.
- Lag: ~6 months from quarter end. Annual averages stable around year-end + 9 months.
- Geography: county / MSA / state. ZIP-level wages not published.
Occupations & SOC Percentiles
| Median (50th) | Half of workers in this occupation earn above, half below |
| 10th – 90th spread | Wide spread = career ladder; narrow = compressed wages |
| Employment count | How many workers in the occupation, not the industry |
Industry Trends & CAGR
| CAGR > 0 | Industry has grown over the period (annualized) |
| CAGR < 0 | Industry has contracted |
| 5-year CAGR vs. 10-year | Diverging signs reveal recent regime changes |
Shift-Share Decomposition
| Positive competitive | Region outperforms what its industry mix would predict |
| Negative competitive | Region underperforms — losing share within its mix |
| Mix effect | Region’s exposure to fast- or slow-growing industries |
- Module:
app/analysis/shift_share.pyin the backend. - Inputs: two CBP years (start, end) and a fixed national reference rate. The fixed-rate variant is the most common; growth-rate variant is a small extension.
- Three components sum exactly to the observed change. The competitive component is the residual after national and mix are removed.
- NAICS boundary years. Comparing across the 2012/2017 NAICS boundary mixes two taxonomies. EconBase displays a warning when the start year is ≤ 2016 and the end year is ≥ 2017.
- Geography: all four levels (county / MSA / state / ZIP).
- Sign sensitivity at small base. An industry that goes from 50 to 100 jobs has a 100% growth rate — the mix and competitive components will look outsized relative to the change’s economic significance. Filter tiny industries.
- Reclassification residuals. NAICS revisions move establishments between codes, creating phantom positive/negative competitive components at the boundary year.
- National reference choice. Using national growth as the reference embeds national booms/recessions into the “baseline,” which makes regional outperformance during downturns look exaggerated.
Growth Exposure Score
| Score > national avg | Region is positioned in faster-growing industries |
| Score < national avg | Region’s mix concentrates in slow- or declining industries |
| Per-industry contribution | Identifies which sectors drive the score, up or down |
- Source: BLS Employment Projections (EP) — 10-year national projections, refreshed every ~2 years.
- Granularity: 2-digit NAICS only — projections aren’t published below sector.
- Seed coverage: the bundled CSVs include national plus CA and TX state-level projections. Other states require a manual import via
python -m app.db.projections_import. - Floor: industries below 100 employment are excluded from the score to avoid volatility in tiny sectors.
Type I Input-Output Multiplier (FLQ-regionalized)
| 1.0 | No supplier ripple — pure direct effect |
| 1.85 | $0.85 of indirect activity per $1 direct |
| > 2.0 | Strong supply-chain integration locally |
- Data: BEA Make / Use tables (TableID 259 = Use, 262 = Supply), imported via
app/db/io_seed_api.py. Six PostgreSQL tables back the model. - Regionalization: Flegg’s LQ (FLQ) method, with the delta parameter auto-scaled by geography — county = 0.25, MSA = 0.27, state = 0.30. See
app/analysis/io_model.py. - QCEW employment ratios refresh on startup with stale-on-failure fallback. The methodology panel shows a banner if the last successful refresh is older than the threshold.
- Cache: 1 hour TTL, keyed by (fips, geo_type, year, detail, dataset_version, method_version).
- Screening-level Type I. EconBase classifies this as a screening-level Type I I-O model, not academic-grade. Accuracy bands are deferred until the validation benchmark is complete (see
backend/docs/io_model_validation.md). - Granularity: Summary (~72 industries) auto-seeded; Detail level (~400) requires manual import.
- Structurally biased sectors — ratios are still written but the UI flags them: 531 (real estate, imputed rent), 111CA (farms, QCEW excludes proprietors), 525 (funds), 482 (rail), 813 (personal/household services).
- Type II (induced effect) — household consumption ripple — is deferred. EconBase reports direct + indirect only.
- Geography: county / MSA / state. ZIP not supported.
Geography Types
Federal datasets publish at different geography levels. EconBase exposes county, MSA, state, and ZIP — but not every analytical section is available at every level. The left rail in /explore marks unsupported sections n/a rather than hiding them.
- LQ / Economic Base
- Shift-Share
- Trends
- Wages
- GDP
- Demographics
- Projections
- Economic Impact
- Occupations (BLS OES not published at county level)
Default geography. ~3,143 nationwide.
- All 9 analytical sections
Best resolution for occupation data (OES) and most cross-region comparisons.
- All 9 analytical sections
BEA uses padded 5-digit codes (e.g., 06000 for California). EconBase covers 50 states + DC + Puerto Rico.
- LQ / Economic Base (CBP)
- Shift-Share
- Trends
- Projections
- Demographics (ACS not exposed at ZCTA in EconBase)
- GDP (BEA not published at ZIP)
- Wages (QCEW not at ZIP)
- Occupations (OES not at ZIP)
- Economic Impact (I-O not supported)
Validated on-the-fly — no startup data needed. Use for hyper-local CBP analysis.
Data Sources
Seven federal datasets back every number in EconBase. Each card lists the publisher, the current vintage, the typical lag from quarter / year end, what geography levels it covers, and the most common gotchas we've hit while wiring it up.
- Suppressed values appear as N / D / S — coerce to null, not zero.
- NAICS revisions: years ≥ 2017 use NAICS2017; earlier use NAICS2012. Compare carefully across the boundary.
- 5-year estimates smooth across rolling 5-year windows — short-term changes are dampened.
- ZIP-level demographics aren't exposed in EconBase (ACS publishes ZCTAs, but coverage is uneven).
- Industry codes are BEA line codes — not NAICS. A crosswalk is required when joining to CBP.
- Suppressed cells show as (NA), (D), (NM), (L), or (T). All coerced to null.
- At national aggregate, per-NAICS data splits across own_codes 1+2+3+5 — sum them, don't filter own_code='0' (returns zero).
- Wage data may not have industry-name labels at the lowest aggregation levels — only NAICS codes.
- No county-level data — OES is published at MSA and state only.
- Wages are SOC-coded (occupation), not NAICS — they reflect what people do, not where they work.
- Granularity is 2-digit NAICS sector — no projections below sector level.
- EconBase seed currently includes CA + TX state-level projections; other states need manual import.
- Summary level (~72 industries) is auto-seeded; detail level (~400) requires manual Excel import.
- BEA reports Use / Make values in millions of dollars — emp_per_million ratios derive from this scale.
Industry Taxonomies
Three taxonomies show up across EconBase: NAICS for industries, SOC for occupations, and BEA line codes for GDP and Input-Output. Knowing which is which prevents the most common analytical mistake — comparing employer-side and worker-side numbers as if they were directly equivalent.
NAICS — North American Industry Classification System
NAICS classifies employers by their primary economic activity. The hierarchy goes from broad sectors (2-digit) down to national industries (6-digit). EconBase’s LQ, Shift-Share, and Trends sections operate at the 2/3/4-digit levels by default — 6-digit detail is available where CBP exposes it.
| Digits | Level | Example |
|---|---|---|
| 2 | Sector | 54 · Professional, Scientific & Technical Services |
| 3 | Subsector | 541 · Professional, Scientific & Technical Services |
| 4 | Industry Group | 5415 · Computer Systems Design & Related |
| 5 | NAICS Industry | 54151 · Computer Systems Design |
| 6 | National Industry | 541512 · Computer Systems Design Services |
SOC — Standard Occupational Classification
SOC classifies workers by what they do on the job, not by the industry of their employer. EconBase’s Occupations section is SOC-coded, letting you see which jobs pay well in a region regardless of which NAICS sectors employ those workers.
| Digits | Level | Example |
|---|---|---|
| 2 | Major Group | 15 · Computer & Mathematical Occupations |
| 3 | Minor Group | 15-1 · Computer Occupations |
| 5 | Broad Occupation | 15-1252 · Software Developers |
| 6 | Detailed Occupation | 15-1252.00 · Software Developers |
BEA Line Codes
BEA’s GDP-by-industry and Input-Output tables don’t use NAICS directly. They use BEA line codes — a separate numbering system that aggregates NAICS sectors into BEA’s industry framework. EconBase exposes a crosswalk in backend/app/census/bea.py (see the constant BEA_LINE_TO_NAICS) and uses it to join GDP and CBP data on a consistent industry axis.
Glossary
47 terms organized in six groups. Each definition is one or two lines — enough to recognize a term in context, not a textbook entry. Use ⌘F to find a specific term.
Geography
| FIPS | Federal Information Processing Standards — numeric geographic codes. County uses 5 digits, state uses 2. |
| CBSA | Core-Based Statistical Area — Census umbrella term for both Metropolitan and Micropolitan SAs. |
| MSA | Metropolitan Statistical Area — a CBSA with a core urban area of 50,000+ population. |
| μSA | Micropolitan Statistical Area — a CBSA with a core urban cluster of 10,000–50,000. |
| ZCTA | ZIP Code Tabulation Area — Census's approximation of USPS ZIP codes for tabulating data. |
| County | Primary administrative subdivision of a US state. ~3,143 nationwide. Default geography in EconBase. |
| State | 50 states + DC + territories. EconBase covers 50 states + DC + Puerto Rico. |
| Region (custom) | A user-built aggregation of one or more counties via the Custom Region builder. |
Data Sources
| CBP | Census County Business Patterns — annual establishment, employment, and payroll counts by industry. |
| ACS | American Community Survey — Census's rolling demographic survey. EconBase uses 5-year estimates. |
| BEA | Bureau of Economic Analysis — federal source for GDP, personal income, and Input-Output tables. |
| BLS | Bureau of Labor Statistics — federal labor data, including QCEW, OES, and Employment Projections. |
| QCEW | BLS Quarterly Census of Employment and Wages — covers ~95% of US jobs via UI tax records. |
| OES | BLS Occupational Employment Statistics — wages and employment by SOC occupation, MSA / state only. |
| EP | BLS Employment Projections — 10-year forward outlook by industry, refreshed every ~2 years. |
| Census | US Census Bureau — operates the decennial census, ACS, and CBP datasets EconBase uses. |
Methods & Stats
| Basic / Non-basic | Industries that export goods/services outside the region (basic) vs. serve local residents (non-basic). |
| CAGR | Compound Annual Growth Rate — (End ÷ Start)^(1/years) − 1. Annualizes growth over multiple years. |
| Competitive effect | In shift-share, the residual after national + mix effects — region's outperformance vs. its mix. |
| HHI | Herfindahl-Hirschman Index — sum of squared employment shares. Concentration measure. |
| LQ | Location Quotient — local industry share divided by national share. > 1 = specialized. |
| Mix effect | In shift-share, employment change attributable to the region's exposure to fast/slow industries. |
| Percentile | The value below which a given % of observations fall. 90th percentile = 90% earn less, 10% earn more. |
| Shift-share | Decomposition of regional employment change into national, mix, and competitive components. |
| Suppressed value | A withheld data cell to protect respondent confidentiality. Marked N/D/S in CBP, (D) in BEA. |
| Vintage | The reference year of a dataset. Lag is the gap between vintage and publication date. |
Input-Output
| FLQ | Flegg's Location Quotient — regionalization method that adjusts national I-O coefficients by region size. |
| Induced effect | Type II ripple — household consumption from wages flowing through the local economy. Deferred in EconBase. |
| Leontief inverse | (I − A)⁻¹ where A is the technical-coefficient matrix. Generates the total-requirements multiplier. |
| Make table | BEA matrix showing which industries produce which commodities. Counterpart to the Use table. |
| Regionalization | Adjusting national I-O coefficients to reflect local supply chains. EconBase uses FLQ. |
| Technical coefficient | Dollars of input from industry i required per dollar of output from industry j. |
| Type I multiplier | Direct + indirect effects of a shock — supplier ripple, no household consumption loop. |
| Type II multiplier | Type I + induced effect (household consumption). Higher than Type I; not in EconBase yet. |
| Use table | BEA matrix showing which commodities each industry consumes. Source for technical coefficients. |
Industry Taxonomy
| BEA line code | BEA's own industry numbering used in CAGDP2 and I-O tables. Not NAICS — see the crosswalk. |
| NAICS | North American Industry Classification System. 2- to 6-digit hierarchy: sector → national industry. |
| NAICS2017 vs. NAICS2012 | Two NAICS revisions. CBP years ≥ 2017 use 2017; earlier years use 2012. Boundary years need care. |
| Sector (2-digit) | The top NAICS level. Examples: 54 = Professional Services, 31-33 = Manufacturing. |
| SOC | Standard Occupational Classification — taxonomy for jobs (people-side), not employers (NAICS, business-side). |
| Subsector (3-digit) | Second NAICS level. Example: 541 = Professional, Scientific & Technical Services. |
EconBase Product Terms
| Basic industry threshold | LQ > 1 cutoff used to label an industry as part of the export base. Configurable in backend Settings. |
| Diversification class | Categorical label derived from HHI: well-diversified / moderate / concentrated. |
| Growth Exposure Score | Region's mix-weighted national projected growth rate, sourced from BLS Employment Projections. |
| Quarantined ratio | An I-O emp-per-$M ratio above 500 jobs/$M is set to NULL in the database (data quality guard). |
| Stale Ratios banner | UI warning shown when QCEW employment ratios couldn't refresh on the most recent backend startup. |
| Wage premium | (Local pay − National pay) ÷ National pay, by industry. Positive = above-national. |
Limitations & Caveats
EconBase synthesizes federal data — it doesn't generate it. Knowing the limits of the underlying datasets and our regionalization choices keeps the conclusions honest.
- Data lag. Federal datasets publish on different cadences. Typical lags: CBP 1–2 years, BEA Regional GDP 1–2 years, BLS QCEW ~6 months, ACS 5-year ~1 year, BLS OES annual. Always check the section’s “Source” footer for the specific year shown.
- I-O model is screening-grade, not academic-grade. EconBase’s Economic Impact model is a screening-level Type I I-O model with FLQ regionalization. It’s suitable for comparing scenarios and orienting decisions; it’s not validated for citation in formal economic-impact studies. Type II (induced effects) is deferred. Accuracy bands will be added once the validation benchmark is complete.
- BLS Projections — limited state coverage. The bundled seed includes national projections plus California and Texas at the state level. Other states require a manual import via
python -m app.db.projections_import. The Growth Exposure Score for unlisted states falls back to national projections. - Geography not always universal. Some sections aren’t published at every geography level. OES is MSA / state only — no county-level occupations. ZIP-level GDP and wages are not published by federal sources. The left rail in Explore marks unsupported sections as n/a rather than hiding them.
- Single-source attribution. For citation in formal research, link back to the original BLS, BEA, or Census source — not to EconBase. EconBase is a synthesis layer; the underlying numbers are federal. The “Source” footer on each section names the exact dataset and vintage used.
Further Reading
Five resources to go deeper than this manual: federal-source methodology, foundational papers behind the methods EconBase implements, and the commercial tools EconBase positions itself relative to.
- BEA Regional Methodology Official methodology papers behind the GDP-by-industry, Personal Income, and Make/Use tables EconBase consumes. Read this before citing any number from §03 or §11.https://www.bea.gov/resources/methodologies
- BLS QCEW Handbook of Methods Coverage rules, ownership encoding, and confidentiality treatment for the wage data that powers §04. Explains the “own_code” aggregation gotcha EconBase handles internally.https://www.bls.gov/opub/hom/cew/
- Tiebout (1956), “Exports and Regional Economic Growth” The foundational paper articulating the basic-vs-non-basic dichotomy that underlies §02 and §04. Short, readable, and historically important.https://www.jstor.org/stable/1825881
- Flegg & Webber (2000), the FLQ formula Original derivation of Flegg’s Location Quotient — the regionalization method EconBase’s I-O model uses. Explains the role of the delta parameter EconBase auto-scales by geography.https://www.tandfonline.com/doi/abs/10.1080/00343400050085675
- IMPLAN / RIMS II (commercial I-O tools) For comparison with EconBase’s screening-level model. IMPLAN and RIMS II publish full Type I + Type II multipliers with validated bands; both are paid services used in formal economic-impact studies.https://www.bea.gov/research/papers/2013/rims-ii-online-user-guide-and-data-files