teleo-codex/agents/rio/posts/figures/data/vafire.csv
m3taversal 495a710123 rio: add 8 original charts + embed in print edition, regenerate PDF
- 8 matplotlib charts generated from FRED, BEA, and primary 10-K data
- All chart Python scripts committed alongside PNGs for reproducibility
- Source data CSVs and BEA XLS pulled directly from public APIs
- Print MD updated to embed images inline (was: text-only callouts)
- PDF regenerated via tectonic (1.4MB with all charts)

Corrections from v1 prose (verified against actual data):
- Finance share of corporate profits peak: 34.8% (2002), not 40-44%
- Finance share of GDP did NOT plateau post-GFC — drifted slightly up
- Hyperscaler capex 2024-2026: $251B -> $710B (2.8x, not 3x)

Data gaps flagged in chart captions:
- Philippon 130-year unit-cost series replaced with BEA 1997-2025
- Carta middle-bucket percentages estimated from blog text
- Mega-round pre-2018 shares interpolated from round counts

Pentagon-Agent: Rio <244ba05f-3aa3-4079-8c59-6d68a77c76fe>
2026-05-18 16:01:24 +01:00

28 KiB

1<!DOCTYPE html>
2<head>
3<title>Error - St. Louis Fed</title>
4<style>p {
5margin-bottom: 1.5em;
6}</style>
7</head>
8<body>
9<!--googleoff: snippet-->
10<!--googleon: snippet-->
11<!--Move content shift styles internal to boost performance scores-->
12<style>
13#zoom-and-share {
14position:relative;
15min-height: 437px;
16}
17</style>
18<header>
19</a>
20</div>
21</a>
22</div>
23<option></option>
24</select>
25</button>
26</div>
27</button>
28</span>
29<!-- empty alt values handle older screen readers that don't handle WAI-ARIA roles. Both methods allow the screenreader to skip the image and not read the filename to the user. -->
30<hr>
31<div>
32</div>
33<div>
34<p>Tools and resources to find and use economic data worldwide</p>
35</div>
36</a>
37</li>
38<div>
39</div>
40<div>
41</div>
42</a>
43</li>
44<div>
45</div>
46<div>
47<p>Vintages of economic data from specific dates in history</p>
48</div>
49</a>
50</li>
51<div>
52</div>
53<div>
54<p>View banking market concentrations and perform HHI analysis</p>
55</div>
56</a>
57</li>
58</ul>
59</div> </li>
60</div>
61</li>
62</ul>
63</nav>
64</div>
65</div>
66</div>
67</a>
68</div>
69</button>
70</button>
71</button>
72</button>
73</div>
74</div>
75</nav>
76</button>
77</div>
78</li>
79</button>
80</li>
81</li>
82</li>
83</ul>
84</li>
85</li>
86</li>
87</button>
88</li>
89</li>
90Digital Badges
91</a>
92</li>
93</li>
94</ul>
95</li>
96</li>
97Explore Our Apps
98</button>
99<!-- empty alt values handle older screen readers that don't handle WAI-ARIA roles. Both methods allow the screenreader to skip the image and not read the filename to the user. -->
100<hr>
101<div>
102</div>
103<div>
104<p>Tools and resources to find and use economic data worldwide</p>
105</div>
106</a>
107</li>
108<div>
109</div>
110<div>
111</div>
112</a>
113</li>
114<div>
115</div>
116<div>
117<p>Vintages of economic data from specific dates in history</p>
118</div>
119</a>
120</li>
121<div>
122</div>
123<div>
124<p>View banking market concentrations and perform HHI analysis</p>
125</div>
126</a>
127</li>
128</ul>
129</div>
130</li>
131</li>
132</ul>
133</div>
134</div>
135</div>
136</nav>
137</div>
138<div class='navbar navbar-expand-lg sub-header EL-header-and-subheader'>
139
140</li>
141</button>
142</span>
143</li>
144</li>
145</li>
146</ul>
147</div> </li>
148</li>
149</li>
150
151</button>
152</span>
153What is FRED
154</a>
155</li>
156Tutorials
157</a>
158</li>
159Digital Badges
160</a>
161</li>
162Contact Us
163</a>
164</li>
165</ul>
166</div>
167</li>
168</ul>
169</div>
170</nav>
171</div>
172</div>
173</div>
174</div>
175</header>
176<!--BEGIN CONTENT-->
177<h1>Looking for Something?</h1>
178</p>
179</div>
180</form>
181</div>
182<!--END CONTENT-->
183</div>
184</div>
185</div>
186</button>
187Subscribe</button>
188</div>
189</div>
190</form>
191</div>
192</div>
193</div>
194</div>
195Questions or Comments</a></div>
196</div>
197</div>
198</div>
199</div>
200</div>
201<script>
202function getCookie(name) {
203var cookies = document.cookie.split(';');
204for (var i in cookies) {
205var cookie = cookies[i].trim().split('=');
206if (cookie[0] == name) {
207return cookie[1];
208}
209}
210return null;
211}
212// certain pages in FRED set a custom tag variable
213// this gets sent to Google Analytics so we can see what tags people are using
214if (window.tags) {
215dataLayer.push({ 'tags': tags });
216}
217var researchLiruid = getCookie('research-liruid');
218dataLayer.push({ 'userId': researchLiruid });
219</script>
220<script>
221// force expire the .fred.stlouisfed.org _ga cookie
222</script>
223<script>
224var appConfig = {
225};
226appConfig.logged_in = Cookies.get('research-lirua' + (domain_suffix ? '-' + domain_suffix : '')) !== null && Cookies.get('research-lirua' + (domain_suffix ? '-' + domain_suffix : '')) !== undefined;
227var getAuth = function (callback) {
228if (typeof callback === 'function') {
229callback();
230}
231return;
232};
233window.getAuth = getAuth;
234</script>
235<script>
236<!--suppress back to top before scroll-->
237window.onscroll = function(){
238}
239</script>
240// update mobile footer filter bar active filter count to content.tagsDrawers tags-number
241$('.filter-button-inner .badge').text($('.tags-number').text());
242</script>
243</html>