Opening1=TEXT("Guns, Germs, and Steel: How Good Data Becomes Bad Analysis") Opening2=TEXT("I started with a command to calculate sunlight and ended up thinking about poverty, history and how easily a true statistic can become a false accusation.") Opening3=TEXT("The experiment began innocently. RainbowStats now has two new functions: GEO_LOCATION defines a location using latitude and longitude, with optional elevation and time zone. SOLAR uses that location and the observation dates of an existing series to calculate daylight, sunrise, sunset, solar noon, declination, maximum solar elevation and extraterrestrial radiation. The input series supplies the calendar; its measured values do not drive the solar calculation.") Dates=SERIES_BETWEEN(DGS10,20250101,20251231) Equator=SET_NAME(EXTRACT(SOLAR(Dates,GEO_LOCATION(0,0)),"RADIATION"),"Equator 0 degrees") North25=SET_NAME(EXTRACT(SOLAR(Dates,GEO_LOCATION(25,0)),"RADIATION"),"25 degrees N") Seattle=SET_NAME(EXTRACT(SOLAR(Dates,GEO_LOCATION(47.6,0)),"RADIATION"),"Seattle latitude 47.6 degrees N") North65=SET_NAME(EXTRACT(SOLAR(Dates,GEO_LOCATION(65,0)),"RADIATION"),"65 degrees N") LatitudeChart=SET_TITLE(LINE_CHART(LIST(Equator,North25,Seattle,North65)),"Daily extraterrestrial solar radiation by latitude (MJ/m2/day), 2025") SolarExplanation1=TEXT("The first chart shows the seasonal pattern. Seattle can receive more daily solar energy above the atmosphere than the equator in June because its summer days are longer. Winter is where we pay for it. These are astronomical calculations, not measurements of sunlight reaching the ground. Clouds, aerosols and local shading are outside this calculation.") SolarExplanation2=TEXT("Then I asked: could we compare solar radiation with poverty?") RowTemplate=SERIES_BETWEEN(UNRATE,20190101,20231101) Poverty=SET_NAME(MAKE_SIMILAR_SERIES(RowTemplate,TO_ARRAY(16.4,56.9,1,0.3,16.5,23.3,4.4,39.1,15.3,2,0.1,0.8,0.6,16.9,30.8,29.9,1.3,0.4,0.3,49.1,3.2,47.3,53.3,80,69.6,36,28,0.3,1.9,52,72.1,2.8,3.2,0.2,1.1,20.4,0.4,19.8,22.8,38.3,58.7,1.1,2.2,5.1,0.9,89.8,9,4.1,0.1,2.3,1.5,0.3,55.7,9.9,4.1,93.6,2.1,6.6,24.6)),"Population below $8.30/day (2021 PPP), %, 2023") SolarMean=SET_NAME(MAKE_SIMILAR_SERIES(RowTemplate,TO_ARRAY(30.505442,28.170983,25.081976,24.015409,35.151346,34.900636,27.231237,35.893545,35.503525,26.041494,29.888918,24.323174,21.997506,34.22161,36.031806,35.006909,20.424145,20.126343,24.824821,27.604437,28.942069,34.872213,34.794408,31.861666,35.880234,29.717933,30.476997,22.974876,27.535683,36.012802,27.165521,21.464344,22.411607,24.51848,29.646232,25.563673,20.22804,35.567281,33.064003,35.383547,34.883226,23.426606,28.688067,26.569845,21.964126,36.024547,26.432919,25.110844,25.944217,28.078054,20.468265,25.590985,28.729967,35.003021,28.330598,36.027933,28.623913,30.417143,27.753765)),"Annual mean extraterrestrial radiation (MJ/m2/day)") PovertyChart=SET_TITLE(SCATTER_PLOT(Poverty,SolarMean),"Poverty vs solar radiation: 59 countries, 2023; reference-latitude proxy") Interpretation1=TEXT("Across 59 countries with usable 2023 poverty observations and reference coordinates, higher calculated solar radiation is associated with higher poverty. The correlation is about 0.62; the simple linear fit has an R-squared of about 0.38. Poverty here means the share living below $8.30 per person per day in 2021 purchasing-power terms. It is one common threshold, not each country's national poverty definition.") Interpretation2=TEXT("Jared Diamond's Guns, Germs, and Steel came to mind. His account examines geography, food production, domesticable plants and animals, disease and the spread of technology. Our scatter plot does not test that account. A familiar explanation is still only a hypothesis.") Interpretation3=TEXT("Our solar variable is largely a transformation of latitude. We have not separated geography from institutions, colonial history, education, disease, conflict or industrial development. We use one reference latitude per country, not a population-weighted national measure. The sample includes many European countries but only two African countries. A common year avoids mixing dates; it does not create a representative sample.") Conclusion1=TEXT("Now imagine someone presents this chart as proof that people in sunny countries are lazy, or as proof that one government, population or ideology caused their poverty. The plotted numbers can be accurate while the accusation remains unsupported. We measured neither work effort nor responsibility. The same chart cannot tell us whether a particular historical explanation is right, either.") Conclusion2=TEXT("That is how a half-truth works: keep the accurate statistic, omit what it cannot establish, and let the audience supply the accusation. Sometimes this is deliberate; sometimes we simply believe the first story that fits. The temptation applies to my own preferred explanations as much as anyone else's.") Conclusion3=TEXT("A useful chart should start a question. It should not end a trial.") Notes1=TEXT("Sources and reproduction notes") Notes2=TEXT("Sources: https://data.worldbank.org/indicator/SI.POV.UMIC ; https://api.worldbank.org/v2/country?format=json&per_page=400 ; https://www.pbs.org/gunsgermssteel/show/episode1.html . Poverty data: World Bank, World Development Indicators, CC BY 4.0; snapshot retrieved October 27, 2026. This is a critique of our inference, not an accusation against Diamond or the World Bank.") Notes3=TEXT("Methods and the 59 country observations") Notes4=TEXT("The seasonal chart uses 2025 Treasury-yield observation dates only as a calendar; yield values are irrelevant. The scatter uses fixed 2023 poverty observations and the World Bank reference latitudes supplied by the country API. Reference coordinates are not country centroids or national averages. Solar values were calculated independently using the FAO-56 daily extraterrestrial-radiation formula implemented in SolarOperator, then averaged equally over all 365 days of 2023. Rounded values are embedded for reproducibility. SOLAR itself is used directly in the first chart.") Notes5=TEXT("There are 59 paired observations, each country weighted equally. Canada and Mexico have no 2023 poverty observation in this extract. Rwanda and Uganda are the only African countries represented. Countries without usable coordinates are excluded. The 59 monthly dates in RowTemplate are matching row identifiers only: the scatter is cross-sectional, not an unemployment model or a 59-month poverty series. Poverty and solar arrays follow the same alphabetical country order. The straight line is descriptive; its negative fitted values and bands have no literal interpretation as poverty rates.") SLIDE(Opening1,Opening2,Opening3,LatitudeChart,SolarExplanation1,SolarExplanation2,PovertyChart,Interpretation1,Interpretation2,Interpretation3,Conclusion1,Conclusion2,Conclusion3,Notes1,Notes2,Notes3,Notes4,Notes5)