Australia’s rooftop solar boom — and who got left behind
Five charts on the quiet success story reshaping the grid
Author
Venkatesh Ejjigiri
Published
June 9, 2026
Australia has quietly become one of the world’s rooftop solar superpowers. More than four million homes and businesses now generate their own electricity from the sun — a transformation that happened in barely a decade, largely panel-by-panel, household-by-household. This is a success story. But it is not an evenly shared one.
These five charts trace how the boom unfolded, who drove it, how it matured — and which Australians have been left on the sidelines.
From a standing start, cumulative rooftop solar installations climbed past 3.8 million by early 2025. The curve barely pauses — a rare example of a clean-energy technology achieving mass adoption ahead of schedule.
Source: Clean Energy Regulator (2026), Small scale installation postcode data.
2. The policy levers behind the surge
Show code
policy_events <-tribble(~date, ~label,"2011-07-01", "NSW Solar Bonus closes","2012-07-01", "QLD scheme + RET multiplier cut","2013-01-01", "RET multiplier ends") |>mutate(date =as.Date(date))national_monthly |>plot_ly(x =~month, y =~installations, type ="scatter", mode ="lines",line =list(color = solar_orange, width =2),hovertemplate =paste0("<b>%{x|%b %Y}</b><br>","Installs this month: %{y:,.0f}<extra></extra>"),name ="Monthly installs") |>layout(title =list(text ="<b>Monthly installations & the policy levers behind them</b>",x =0, font =list(size =18)),xaxis =list(title =""), yaxis =list(title ="Installations per month"),margin =list(t =70),shapes =lapply(seq_len(nrow(policy_events)), function(i) {list(type="line", x0=policy_events$date[i], x1=policy_events$date[i],y0=0, y1=1, yref="paper",line=list(color="grey50", width=1, dash="dot"))}),annotations =lapply(seq_len(nrow(policy_events)), function(i) {list(x=policy_events$date[i], y=1, yref="paper",text=policy_events$label[i], showarrow=FALSE, textangle=-90,xanchor="left", yanchor="top",font=list(size=9, color="grey40"))}))
The early years were driven by generous subsidies. The sharpest spikes line up with the months before incentive schemes closed, as households rushed to beat the deadlines. But the more important story is what happened after the subsidies wound back: installations fell, then climbed again to a higher, steadier plateau — this time powered by economics, not incentives, as panel prices collapsed.
Source: Clean Energy Regulator (2026), Small scale installation postcode data.
3. Who drove the boom?
Show code
state_monthly |>arrange(state, month) |>group_by(state) |>mutate(cumulative =cumsum(installations)) |>ungroup() |>plot_ly(x =~month, y =~cumulative, color =~state, colors = state_cols,type ="scatter", mode ="lines",hovertemplate =paste0("<b>%{fullData.name}</b><br>","%{x|%b %Y}: %{y:,.0f} installs<extra></extra>")) |>layout(title =list(text ="<b>Who's driving the boom? Cumulative solar by state</b>",x =0, font =list(size =18)),xaxis =list(title =""), yaxis =list(title ="Cumulative installations"),legend =list(title =list(text ="<b>State</b>")), margin =list(t =70))
Queensland — the “Sunshine State” — led early and stayed ahead, but New South Wales and Victoria have closed the gap. Click any state in the legend to isolate it. The pattern reflects sunshine, electricity prices, and the prevalence of freestanding, owner-occupied homes.
Source: Clean Energy Regulator (2026), Small-scale installation postcode data.
4. Bigger every year
Show code
avg_size_smooth |>plot_ly(x =~month, y =~avg_kw_smooth, color =~state, colors = state_cols,type ="scatter", mode ="lines", line =list(width =2),hovertemplate =paste0("<b>%{fullData.name}</b><br>","%{x|%b %Y}: %{y:.1f} kW (6-mo avg)<extra></extra>")) |>layout(title =list(text ="<b>Bigger every year: average rooftop system size</b><br><sub>6-month rolling average kW per new install, by state</sub>",x =0, font =list(size =16)),xaxis =list(title =""),yaxis =list(title ="Average system size (kW)", rangemode ="tozero"),legend =list(title =list(text ="<b>State</b>")), margin =list(t =80))
The boom isn’t just about more systems — it’s about bigger ones. The average new rooftop system has grown roughly five-fold, from about 2 kW in 2011 to around 10 kW today. As panels became cheaper, households stopped buying token systems and started covering their roofs.
Source: Clean Energy Regulator (2026), Small-scale installation postcode data (installation and capacity).
5. Who got left behind?
Show code
lo <-loess(penetration_disp ~ irsad_score, data = equity_plot, span =0.75)trend <-tibble(irsad_score =seq(min(equity_plot$irsad_score),max(equity_plot$irsad_score), length.out =100))trend$fit <-predict(lo, newdata = trend)plot_ly() |>add_markers(data = equity_plot, x =~irsad_score, y =~penetration_disp,color =~state, colors = state_cols,marker =list(size =6, opacity =0.45),text =~paste0("Postcode ", postcode),hovertemplate =paste0("%{text}<br>IRSAD: %{x:.0f}<br>","Solar penetration: %{y:.0%}<extra></extra>")) |>add_lines(data = trend, x =~irsad_score, y =~fit,line =list(color ="black", width =3, dash ="dash"),name ="Overall trend", hoverinfo ="skip") |>layout(title =list(text ="<b>Who got left behind?</b><br><sub>Rooftop solar penetration vs socioeconomic advantage, by postcode</sub>",x =0, font =list(size =18)),xaxis =list(title ="Socioeconomic advantage (IRSAD score)"),yaxis =list(title ="Solar penetration (% of dwellings)", tickformat =".0%"),legend =list(title =list(text ="<b>State</b>")), margin =list(t =80))
Here the success story turns complicated. Solar adoption doesn’t simply rise with wealth it peaks in the middle. Mortgage-belt suburbs of detached, owner-occupied homes have the highest penetration. Both ends miss out: the most disadvantaged areas face the upfront cost barrier, while the wealthiest areas are dominated by apartments, inner city rentals and heritage roofs where installing solar is hard or impossible. The Australians most often left behind are renters and apartment dwellers the “solar have-nots” of an otherwise world-leading rollout.
Sources: Clean Energy Regulator (2026), Small-scale installation postcode data; Australian Bureau of Statistics (2023), SEIFA 2021 (IRSAD by Postal Area); Australian Bureau of Statistics (2022), 2021 Census General Community Profile (G01, G02) by Postal Area.
Data notes & limitations
Installation and capacity figures come from the Clean Energy Regulator’s Small scale Renewable Energy Scheme postcode data (2011–2025), accessed via the cer R package. Socioeconomic data is the ABS Socio-Economic Indexes for Areas (SEIFA) 2021, IRSAD by Postal Area. Dwelling figures are estimated from the ABS 2021 Census General Community Profile (tables G01 and G02) by Postal Area.
Some limitations apply. Postcode to state assignment is approximate. The most recent 12 months of installation data are excluded because certificate-creation lag understates them. Dwelling counts are estimated as persons in occupied private dwellings divided by average household size; solar penetration compares cumulative installs (2011–2024) against a 2021 dwelling snapshot, so values are approximate and a small number of postcodes exceeding 100% are capped for display. Postcodes that did not match across datasets are excluded (approximately 2,470 of around 2,600 retained).
References
Australian Bureau of Statistics. (2022). Census of Population and Housing 2021: General Community Profile, Postal Areas [Data set]. https://www.abs.gov.au/census/find-census-data/datapacks
Australian Bureau of Statistics. (2023). Socio-Economic Indexes for Areas (SEIFA), Australia, 2021 [Data set]. https://www.abs.gov.au/statistics/people/people-and-communities/socio-economic-indexes-areas-seifa-australia/latest-release
Clean Energy Regulator. (2026). Small-scale installation postcode data [Data set]. Australian Government. https://cer.gov.au/markets/reports-and-data/small-scale-installation-postcode-data
Coverdale, C. (2026). cer: Download and tidy Australian Clean Energy Regulator data. https://cran.r-project.org/package=cer
Sievert, C. (2020). Interactive web-based data visualization with R, plotly, and shiny. Chapman and Hall/CRC. https://plotly-r.com
Wickham, H., Averick, M., Bryan, J., Chang, W., McGowan, L. D., François, R., Grolemund, G., Hayes, A., Henry, L., Hester, J., Kuhn, M., Pedersen, T. L., Miller, E., Bache, S. M., Müller, K., Ooms, J., Robinson, D., Seidel, D. P., Spinu, V., … Yutani, H. (2019). Welcome to the tidyverse. Journal of Open Source Software, 4(43), 1686. https://doi.org/10.21105/joss.01686