Arte SheetsLearn. Try. Understand.

Regional Economics & Public Policy Analytics

Regional Shift-Share Growth Decomposition Formula

Decompose local employment change Delta_E_i = NS_i + IM_i + RS_i into National Growth Effect, Industry Mix Effect, and Regional Competitive Shift with zero residual.

Separate macro tailwinds and industry composition from genuine local competitiveness!

When a metropolitan area adds jobs faster than the national average, did local economic-development policy outperform — or did the city merely inherit a boom in software while underperforming national software peers? Edgar Dunn’s (1960) Classic Shift-Share Analysis partitions Base-Year Sectoral Employment E_i0’s observed change Delta_E_i = E_i1 - E_i0 into three exact additive components using National Aggregate Growth g_N, National Sector-i Growth g_iN, and Regional Sector-i Growth g_iR = (E_i1 - E_i0) / E_i0: (1) National Growth Share NS_i = E_i0 * g_N, (2) Industry Mix (Proportional Shift) IM_i = E_i0 * (g_iN - g_N), and (3) Regional Competitive Shift (Differential Effect) RS_i = E_i0 * (g_iR - g_iN) — summing identically to NS_i + IM_i + RS_i = E_i0 * g_iR = E_i1 - E_i0!

Verify on exact integers across a 2-sector metro economy (National Overall Growth g_N = 0.05 = 5.0% in H2): Sector_1_Tech (Base E_10 = 10,000 in B2, End E_11 = 11,800 in C2 -> g_1R = +18.0%; National Tech Growth g_1N = 0.15 = +15.0% in D2) and Sector_2_Manufacturing (Base E_20 = 20,000 in B3, End E_21 = 20,600 in C3 -> g_2R = +3.0%; National Mfg Growth g_2N = -0.02 = -2.0% in D3): Total Metro Job Gain is +2,400 (+8.0%). National Growth explains (10,000 + 20,000) * 0.05 = +1,500.00 jobs; Industry Mix explains 10,000*(0.15 - 0.05) + 20,000*(-0.02 - 0.05) = +1,000 - 1,400 = -400.00 jobs (heavy legacy manufacturing mix dragged the city down!); and Regional Competitive Shift is 10,000*(0.18 - 0.15) + 20,000*(0.03 - (-0.02)) = +300 + 1,000 = +1,300.00 jobs (proving BOTH local sectors beat their national benchmarks: 1,500 - 400 + 1,300 = 2,400 exact!)!

Metro Shift-Share Component (Base = 30k, End = 32.4k, g_N = 5%)FormulaVerified Jobs
Total Observed Regional Job ChangeSUM(C2:C3) - SUM(B2:B3)+2,400.00 jobs (+8.00%)
National Growth Share (NS)SUM(B2:B3) * g_N+1,500.00 jobs
Industry Mix Effect (IM)SUMPRODUCT(B2:B3, D2:D3) - NS-400.00 jobs (Unfavorable Mix)
Regional Competitive Shift (RS)(SUM(C2:C3) - SUM(B2:B3)) - SUMPRODUCT(B2:B3, D2:D3)+1,300.00 jobs (Local Outperformance!)

Aggregate Industry Mix Effect (IM) Without Array Broadcasting Formula

Rewrite SUM(E_i0 * (g_iN - g_N)) cleanly as SUMPRODUCT(B2:B3, D2:D3) - SUM(B2:B3) * H2 so every spreadsheet engine evaluates it natively!

=IF(OR(MIN(B2:B3) <= 0, MIN(C2:C3) < 0), "Invalid Employment Input", ROUND(SUMPRODUCT(B2:B3, D2:D3) - SUM(B2:B3) * H2, 2))

Aggregate Regional Competitive Shift (RS) Formula

Since E_i0 * g_iR = E_i1 - E_i0 identically, Total Competitive Shift equals Observed Regional Change minus Expected National-Sector Change: (SUM(C2:C3) - SUM(B2:B3)) - SUMPRODUCT(B2:B3, D2:D3)!

=IF(OR(MIN(B2:B3) <= 0, MIN(C2:C3) < 0), "Invalid Employment Input", ROUND((SUM(C2:C3) - SUM(B2:B3)) - SUMPRODUCT(B2:B3, D2:D3), 2))

Try the example

Use the original values or change them to test your understanding.

Further reading