Each row is one filter applied to the raw TTS 2025 file. “Remaining” is the cumulative observation count after the filter.
| Step | Filter | Removed | % at step | Remaining | % of full |
|---|---|---|---|---|---|
| 1 | Missing price | 949,240 | 25.9% | 2,714,957 | 74.1% |
| 2 | Price outliers | 92,397 | 3.4% | 2,622,560 | 71.6% |
| 3 | Third-party owned | 789,321 | 30.1% | 1,833,239 | 50.0% |
| 4 | Self-installed | 34,587 | 1.9% | 1,798,652 | 49.1% |
| 5 | Battery storage | 142,245 | 7.9% | 1,656,407 | 45.2% |
| 6 | Non-residential | 41,135 | 2.5% | 1,615,272 | 44.1% |
| 7 | Size outliers | 25,403 | 1.6% | 1,589,869 | 43.4% |
| 8 | Pre-2010 installations | 53,662 | 3.4% | 1,536,207 | 41.9% |
| 9 | Negative efficiency | 0 | 0.0% | 1,536,207 | 41.9% |
| 10 | Missing module tech | 331,391 | 21.6% | 1,204,816 | 32.9% |
| 11 | Missing required vars | 723,417 | 60.0% | 481,399 | 13.1% |
| Variable | N | Mean | SD | Min | Max |
|---|---|---|---|---|---|
| System size (W) | 481,399 | 6,562.35 | 3,067.18 | 237.78 | 20,000.00 |
| Price per watt (\(/W) </td> <td style="text-align:right;"> 481,399 </td> <td style="text-align:right;"> 4.24 </td> <td style="text-align:right;"> 1.20 </td> <td style="text-align:right;"> 1.00 </td> <td style="text-align:right;"> 10.00 </td> </tr> <tr> <td style="text-align:left;"> Sales tax rate (%) </td> <td style="text-align:right;"> 481,399 </td> <td style="text-align:right;"> 6.85 </td> <td style="text-align:right;"> 1.05 </td> <td style="text-align:right;"> 0.00 </td> <td style="text-align:right;"> 7.50 </td> </tr> <tr> <td style="text-align:left;"> Module efficiency (%) </td> <td style="text-align:right;"> 481,399 </td> <td style="text-align:right;"> 18.40 </td> <td style="text-align:right;"> 2.05 </td> <td style="text-align:right;"> 5.47 </td> <td style="text-align:right;"> 23.26 </td> </tr> <tr> <td style="text-align:left;"> Households (zip) </td> <td style="text-align:right;"> 481,399 </td> <td style="text-align:right;"> 17,389.61 </td> <td style="text-align:right;"> 9,234.59 </td> <td style="text-align:right;"> 90.00 </td> <td style="text-align:right;"> 55,420.00 </td> </tr> <tr> <td style="text-align:left;"> AGI per household (\)) | 481,399 | 93,701.77 | 69,910.90 | 19,955.46 | 2,216,948.56 |
The final estimation sample contains 481,399 residential solar PV installations, spanning 2010–2020 across 17 states. Major states (>20,000 observations each) are CA, NY, AZ, TX, MA; all others are grouped as “Other” in the state fixed effects. California accounts for 74.3% of the final sample. Observations are dropped from the full TTS file (3,664,197 rows) primarily by the residential-only and valid-price filters, with further attrition from the IRS zip-code merge.
The dependent variable is ln(system size in watts). The endogenous regressor is ln(price per watt). The IV instrument is ln(state sales tax rate × 100 + 1), following Bukow (2022) Appendix B2–B3. Both models include the same controls (module efficiency, new construction, tracking, ground-mounted, module technology, MLPE type, ln(households), ln(AGI per household)) and the same fixed effects (state group + installation year). Standard errors are clustered by state.
| OLS | IV: Tax Rate | IV: Polysilicon | IV: Tax + Poly | |
|---|---|---|---|---|
| Price elasticity | -0.436 | +5.269 | -0.269 | +0.527 |
| Standard error | (0.029) | (3.495) | (0.145) | (0.620) |
| First-stage F | — | 59 | 356 | 209 |
| Wu-Hausman p | — | 0.000 | 0.053 | 0.000 |
| Observations | 481,399 | 481,399 | 481,399 | 481,399 |
| R² | 0.268 | 0.217 | 0.216 | 0.216 |
| State FE | Yes | Yes | Yes | Yes |
| Year FE | Yes | Yes | Yes | Yes |
The Bukow replication (IV: Tax + Poly) yields an elasticity of +0.527, compared with OLS at -0.436 and the Bukow (2022) published estimate of −0.443. Examining the instruments separately: the polysilicon-only IV gives -0.269 (first-stage F = 356), while the tax-rate-only IV gives +5.269 (F = 59), suggesting the two instruments identify different variation and the tax instrument may be confounded. The Wu-Hausman test rejects the null of exogeneity for the combined model (p = 0.000), and the first-stage F of 209 exceeds the weak-instrument threshold of 10.