@sdelsad/commodity-desk-daily 1.0.41 → 1.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/ep07.html +744 -0
  2. package/ep11.html +754 -0
  3. package/feed.xml +8 -11
  4. package/package.json +2 -2
package/ep11.html ADDED
@@ -0,0 +1,754 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-theme="light">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>Ep 11 — Storage, Elevation and Trade Flows · Soft Commodity Trading</title>
7
+ <meta name="description" content="An elevator is not long grain — it is long space, and the basis is what space costs.">
8
+ <meta name="author" content="Sébastien Delsad">
9
+ <link rel="canonical" href="https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/ep11.html">
10
+ <meta property="og:type" content="article">
11
+ <meta property="og:site_name" content="Soft Commodity Trading">
12
+ <meta property="og:title" content="Ep 11 — Storage, Elevation and Trade Flows">
13
+ <meta property="og:description" content="An elevator is not long grain — it is long space, and the basis is what space costs.">
14
+ <meta property="og:url" content="https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/ep11.html">
15
+ <meta property="og:image" content="https://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.15/cover.jpg">
16
+ <meta property="og:image:alt" content="Soft Commodity Trading cover art">
17
+ <meta property="og:audio" content="https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/ep11v2.mp3">
18
+ <meta property="og:audio:type" content="audio/mpeg">
19
+ <meta property="article:published_time" content="2026-08-24">
20
+ <meta name="twitter:card" content="summary_large_image">
21
+ <meta name="twitter:title" content="Ep 11 — Storage, Elevation and Trade Flows">
22
+ <meta name="twitter:description" content="An elevator is not long grain — it is long space, and the basis is what space costs.">
23
+ <meta name="twitter:image" content="https://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.15/cover.jpg">
24
+ <meta name="theme-color" content="#faf7f1" media="(prefers-color-scheme: light)">
25
+ <meta name="theme-color" content="#14110e" media="(prefers-color-scheme: dark)">
26
+ <link rel="alternate" type="application/rss+xml" title="Soft Commodity Trading" href="https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/feed.xml">
27
+ <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Crect width='64' height='64' rx='12' fill='%231d4032'/%3E%3Ctext x='32' y='44' font-family='Georgia,serif' font-size='34' fill='%23c9a45c' text-anchor='middle'%3ES%3C/text%3E%3C/svg%3E">
28
+ <script type="application/ld+json">
29
+ {
30
+ "@context": "https://schema.org",
31
+ "@type": "PodcastEpisode",
32
+ "url": "https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/ep11.html",
33
+ "name": "Ep 11 — Storage, Elevation and Trade Flows",
34
+ "episodeNumber": 11,
35
+ "duration": "PT14M00S",
36
+ "description": "An elevator is not long grain — it is long space, and the basis is what space costs.",
37
+ "image": "https://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.15/cover.jpg",
38
+ "inLanguage": "en",
39
+ "author": {
40
+ "@type": "Person",
41
+ "name": "Sébastien Delsad"
42
+ },
43
+ "associatedMedia": {
44
+ "@type": "MediaObject",
45
+ "contentUrl": "https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/ep11v2.mp3",
46
+ "encodingFormat": "audio/mpeg"
47
+ },
48
+ "partOfSeries": {
49
+ "@type": "PodcastSeries",
50
+ "name": "Soft Commodity Trading",
51
+ "url": "https://storage.googleapis.com/podcast-audio-2647223968/index.html",
52
+ "image": "https://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.15/cover.jpg",
53
+ "webFeed": "https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/feed.xml"
54
+ },
55
+ "datePublished": "2026-08-24"
56
+ }
57
+ </script>
58
+ <style>
59
+ :root{
60
+ --ink:#16110c; --ink-soft:#4a4238; --line:#e3ddd2; --paper:#faf7f1;
61
+ --accent:#1d4032; --gold:#a8813c; --spoiler:#8a2f2f;
62
+ --tint:rgba(128,110,70,.07); --tint-2:rgba(128,110,70,.045);
63
+ --up:#215c44; --down:#8a2f2f; --shadow:rgba(22,17,12,.14);
64
+ --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
65
+ --serif:Georgia,"Iowan Old Style","Times New Roman",serif;
66
+ --col:680px;
67
+ }
68
+ html[data-theme="dark"]{
69
+ --ink:#ece6dc; --ink-soft:#a49c90; --line:#2f2a24; --paper:#14110e;
70
+ --accent:#7fae95; --gold:#c9a45c; --spoiler:#d98a8a;
71
+ --tint:rgba(200,180,130,.06); --tint-2:rgba(200,180,130,.035);
72
+ --up:#7fae95; --down:#d98a8a; --shadow:rgba(0,0,0,.55);
73
+ color-scheme:dark;
74
+ }
75
+ *{box-sizing:border-box}
76
+ html{scroll-behavior:smooth;scroll-padding-top:64px}
77
+ html,body{transition:background-color .25s ease,color .25s ease}
78
+ body{margin:0;background:var(--paper);color:var(--ink);
79
+ font:18px/1.72 var(--serif);-webkit-font-smoothing:antialiased;
80
+ text-rendering:optimizeLegibility}
81
+ .wrap{max-width:var(--col);margin:0 auto;padding:0 24px 40px}
82
+ .vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
83
+ white-space:nowrap}
84
+
85
+ /* ---------- reading progress ---------- */
86
+ #bar{position:fixed;top:0;left:0;height:2px;width:0;z-index:30;
87
+ background:var(--gold);transition:width .12s linear}
88
+
89
+ /* ---------- masthead ---------- */
90
+ header{padding:52px 0 30px}
91
+ .masthead{display:flex;justify-content:space-between;align-items:baseline;gap:16px;
92
+ padding-bottom:12px;border-bottom:1px solid var(--ink);
93
+ font:600 13px/1 var(--sans);letter-spacing:.13em;text-transform:uppercase}
94
+ .masthead a{color:inherit;text-decoration:none}
95
+ .masthead .epno{color:var(--gold);letter-spacing:.1em}
96
+ h1{font-size:clamp(31px,5.6vw,44px);line-height:1.12;margin:26px 0 0;
97
+ letter-spacing:-.017em;font-weight:400;text-wrap:balance}
98
+ .dek{color:var(--ink-soft);font-size:20px;line-height:1.5;margin:16px 0 0;
99
+ max-width:34em;text-wrap:pretty}
100
+ .meta{margin-top:22px;font:12.5px/1.6 var(--sans);color:var(--ink-soft);
101
+ letter-spacing:.05em;text-transform:uppercase}
102
+ .meta b{font-weight:600;color:var(--ink)}
103
+
104
+ /* ---------- listen ---------- */
105
+ .listen{margin-top:26px;border:1px solid var(--line);border-radius:12px;
106
+ background:var(--tint-2);padding:16px 18px 14px}
107
+ audio{width:100%;height:38px;display:block}
108
+ .listenrow{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;
109
+ margin-top:12px;font:12.5px/1 var(--sans);color:var(--ink-soft)}
110
+ .listenrow a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line)}
111
+ .listenrow a:hover{color:var(--accent);border-color:var(--accent)}
112
+ .rates{display:flex;gap:6px;margin-right:auto}
113
+ .rate{background:none;border:1px solid var(--line);color:var(--ink-soft);
114
+ border-radius:99px;padding:4px 10px;cursor:pointer;
115
+ font:600 11.5px/1 var(--sans);letter-spacing:.04em;transition:all .2s}
116
+ .rate:hover{border-color:var(--gold);color:var(--ink)}
117
+ .rate[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
118
+
119
+ /* ---------- contents ---------- */
120
+ .toc{margin:34px 0 6px;padding:16px 0 4px;border-top:1px solid var(--line);
121
+ border-bottom:1px solid var(--line)}
122
+ .tochead{font:600 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;
123
+ color:var(--gold);margin:0 0 12px}
124
+ .toc ol{list-style:none;margin:0 0 12px;padding:0;
125
+ font:14.5px/1.5 var(--sans);columns:2;column-gap:26px}
126
+ .toc li{margin:0 0 7px;break-inside:avoid}
127
+ .toc li.t3{padding-left:12px;font-size:13.5px}
128
+ .toc a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid transparent}
129
+ .toc a:hover{color:var(--ink);border-color:var(--gold)}
130
+ .toc li.on>a{color:var(--ink);font-weight:600}
131
+
132
+ /* ---------- body ---------- */
133
+ main{padding-top:8px}
134
+ h2{font:400 27px/1.25 var(--serif);color:var(--gold);margin:56px 0 18px;
135
+ font-variant-caps:all-small-caps;letter-spacing:.045em;
136
+ padding-bottom:9px;border-bottom:1px solid var(--line)}
137
+ h3{font-size:23px;line-height:1.3;margin:38px 0 10px;letter-spacing:-.012em;
138
+ font-weight:400}
139
+ h4{font:600 17px/1.4 var(--sans);margin:26px 0 6px;letter-spacing:-.005em}
140
+ p{margin:0 0 18px}
141
+ h2+p,h3+p,h4+p{margin-top:0}
142
+ ul,ol{margin:0 0 18px;padding-left:24px}
143
+ li{margin:0 0 9px}
144
+ li::marker{color:var(--gold)}
145
+ strong{font-weight:700}
146
+ a{color:var(--accent);text-underline-offset:2px;text-decoration-thickness:1px}
147
+ .anchor{float:right;margin-left:12px;color:var(--line);text-decoration:none;
148
+ font:400 16px/1 var(--sans);opacity:0;transition:opacity .2s}
149
+ h2:hover .anchor,h3:hover .anchor,.anchor:focus{opacity:1;color:var(--gold)}
150
+ .secnote{font:14.5px/1.6 var(--sans);color:var(--ink-soft);margin:-4px 0 18px}
151
+ code{background:var(--tint);padding:1px 5px;border-radius:3px;
152
+ font:15px/1 ui-monospace,Menlo,Consolas,monospace}
153
+ blockquote{border-left:2px solid var(--gold);margin:26px 0;padding:6px 0 6px 20px;
154
+ font-style:italic;color:var(--ink-soft);font-size:17.5px}
155
+ blockquote strong{font-style:normal;color:var(--ink);font-weight:600}
156
+ hr{border:none;border-top:1px solid var(--line);margin:40px 0}
157
+ .charterr{color:var(--spoiler);font:14px/1.5 var(--sans)}
158
+
159
+ /* ---------- tables ---------- */
160
+ .tablewrap{margin:26px 0;overflow-x:auto;overscroll-behavior-x:contain;
161
+ background:
162
+ linear-gradient(to right,var(--paper) 34%,rgba(255,255,255,0)) left center,
163
+ linear-gradient(to left,var(--paper) 34%,rgba(255,255,255,0)) right center,
164
+ radial-gradient(farthest-side at 0 50%,var(--shadow),rgba(255,255,255,0)) left center,
165
+ radial-gradient(farthest-side at 100% 50%,var(--shadow),rgba(255,255,255,0)) right center;
166
+ background-repeat:no-repeat;
167
+ background-size:44px 100%,44px 100%,13px 100%,13px 100%;
168
+ background-attachment:local,local,scroll,scroll}
169
+ .tablewrap:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
170
+ table{width:100%;border-collapse:collapse;font:15.5px/1.5 var(--sans);
171
+ font-variant-numeric:tabular-nums lining-nums}
172
+ th{text-align:left;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
173
+ color:var(--ink-soft);border-bottom:1px solid var(--ink);padding:0 14px 9px 0;
174
+ font-weight:600;white-space:nowrap}
175
+ td{padding:10px 14px 10px 0;border-bottom:1px solid var(--line);vertical-align:top}
176
+ th:last-child,td:last-child{padding-right:0}
177
+ th.num,td.num{text-align:right;white-space:nowrap}
178
+ tbody tr:last-child td{border-bottom:none}
179
+ tr td:first-child{font-weight:600;padding-right:20px;min-width:9em}
180
+ .mv{font-weight:600;font-variant-numeric:tabular-nums}
181
+ .mv.up{color:var(--up)} .mv.down{color:var(--down)} .mv.flat{color:var(--ink-soft)}
182
+
183
+ /* ---------- quiz and solutions ---------- */
184
+ .qq{scroll-margin-top:70px}
185
+ .solnbar{display:flex;gap:8px;margin:0 0 16px}
186
+ .ghost{background:none;border:1px solid var(--line);color:var(--ink-soft);
187
+ border-radius:99px;padding:6px 14px;cursor:pointer;
188
+ font:600 11.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;
189
+ transition:all .2s}
190
+ .ghost:hover{border-color:var(--gold);color:var(--ink)}
191
+ details.soln{margin:0 0 10px;scroll-margin-top:70px}
192
+ details.soln>summary{cursor:pointer;list-style:none;display:flex;align-items:center;
193
+ gap:12px;border:1px solid var(--line);border-left:3px solid var(--spoiler);
194
+ border-radius:7px;padding:11px 16px;transition:all .2s;background:var(--tint-2)}
195
+ summary::-webkit-details-marker{display:none}
196
+ details.soln>summary:hover{border-color:var(--spoiler);background:var(--tint)}
197
+ .qn{font:700 13px/1 var(--sans);letter-spacing:.08em;color:var(--spoiler);
198
+ text-transform:uppercase}
199
+ .sl{font:500 12.5px/1 var(--sans);color:var(--ink-soft);letter-spacing:.05em}
200
+ details[open]>summary .sl{opacity:.6}
201
+ .solnbody{border-left:2px solid var(--accent);margin:14px 0 22px 3px;
202
+ padding:2px 0 2px 20px;font-size:17.5px}
203
+ .backq{font:12.5px/1 var(--sans);margin:0}
204
+ .backq a{color:var(--ink-soft);text-decoration:none}
205
+ .backq a:hover{color:var(--accent)}
206
+
207
+ /* ---------- glossary ---------- */
208
+ details.gloss>summary,details.archive>summary{cursor:pointer;list-style:none;
209
+ display:flex;align-items:baseline;justify-content:space-between;gap:14px;
210
+ border:1px solid var(--line);border-radius:8px;padding:13px 18px;
211
+ font:600 14px/1 var(--sans);letter-spacing:.03em;transition:all .2s;
212
+ background:var(--tint-2)}
213
+ details.gloss>summary:hover,details.archive>summary:hover{border-color:var(--gold)}
214
+ .glossbody{padding:22px 2px 6px}
215
+ .gsearch input{width:100%;padding:11px 14px;border:1px solid var(--line);
216
+ border-radius:8px;background:var(--paper);color:var(--ink);
217
+ font:15px/1 var(--sans)}
218
+ .gsearch input:focus{outline:none;border-color:var(--gold)}
219
+ .gchips{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 0}
220
+ .gchip{background:none;border:1px solid var(--line);color:var(--ink-soft);
221
+ border-radius:99px;padding:6px 12px;cursor:pointer;display:flex;align-items:center;
222
+ gap:6px;font:600 12px/1 var(--sans);letter-spacing:.04em;transition:all .2s}
223
+ .gchip:hover{border-color:var(--gold);color:var(--ink)}
224
+ .gchip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
225
+ .gn{font-weight:400;opacity:.65;font-variant-numeric:tabular-nums}
226
+ dl{margin:20px 0 0}
227
+ .gterm{padding:11px 0;border-top:1px solid var(--line)}
228
+ .gterm dt{font:600 15.5px/1.4 var(--sans)}
229
+ .gterm dd{margin:3px 0 0;font-size:16.5px;color:var(--ink-soft)}
230
+ .gep{font:600 10.5px/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;
231
+ color:var(--ink-soft);border:1px solid var(--line);border-radius:99px;
232
+ padding:3px 7px;white-space:nowrap;margin-left:4px}
233
+ .gep.now{color:var(--gold);border-color:var(--gold)}
234
+ .gnone{font:15px/1.5 var(--sans);color:var(--ink-soft);padding:16px 0}
235
+
236
+ /* ---------- episode navigation ---------- */
237
+ .epnav{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:56px 0 20px;
238
+ padding-top:26px;border-top:1px solid var(--ink)}
239
+ .epnav a{display:flex;flex-direction:column;gap:5px;text-decoration:none;
240
+ border:1px solid var(--line);border-radius:10px;padding:16px 18px;
241
+ color:var(--ink);transition:all .25s}
242
+ .epnav a:hover{border-color:var(--gold);background:var(--tint-2)}
243
+ .epnav .epnext{text-align:right}
244
+ .epnav .dir{font:600 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;
245
+ color:var(--gold)}
246
+ .epnav .ept{font:19px/1.3 var(--serif)}
247
+ .epnav .epn{font:12px/1 var(--sans);color:var(--ink-soft);letter-spacing:.05em}
248
+ .epnav a:only-child{grid-column:1/-1;max-width:60%}
249
+ .epnav .epnext:only-child{margin-left:auto}
250
+ details.archive{margin:0 0 12px}
251
+ .arclist{list-style:none;margin:18px 0 6px;padding:0;font:15px/1.5 var(--sans)}
252
+ .arclist li{margin:0;border-top:1px solid var(--line)}
253
+ .arclist a{display:flex;gap:14px;padding:11px 4px;text-decoration:none;
254
+ color:var(--ink);transition:background .2s}
255
+ .arclist a:hover{background:var(--tint-2)}
256
+ .arclist b{color:var(--gold);font-variant-numeric:tabular-nums;font-weight:600}
257
+ .arclist li.here a{color:var(--ink-soft)}
258
+ .arclist li.here b:after{content:" · you are here";font-weight:400;
259
+ font-size:11px;letter-spacing:.1em;text-transform:uppercase}
260
+
261
+ /* ---------- theme button + footer ---------- */
262
+ .themebtn{position:fixed;top:14px;right:14px;z-index:20;background:var(--paper);
263
+ color:var(--ink-soft);border:1px solid var(--line);border-radius:99px;
264
+ padding:8px 14px;cursor:pointer;font:500 12px/1 var(--sans);letter-spacing:.06em;
265
+ display:flex;align-items:center;gap:7px;box-shadow:0 1px 4px var(--shadow);
266
+ transition:all .2s}
267
+ .themebtn:hover{color:var(--ink);border-color:var(--gold)}
268
+ .themebtn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;
269
+ stroke-linecap:round;stroke-linejoin:round}
270
+ html[data-theme="dark"] .themebtn{box-shadow:none}
271
+ .themebtn .moon{display:block} .themebtn .sun{display:none}
272
+ html[data-theme="dark"] .themebtn .moon{display:none}
273
+ html[data-theme="dark"] .themebtn .sun{display:block}
274
+ .themebtn .lbl:after{content:"Dark"}
275
+ html[data-theme="dark"] .themebtn .lbl:after{content:"Light"}
276
+ footer{margin-top:40px;padding:24px 0 70px;border-top:1px solid var(--line);
277
+ font:14px/1.7 var(--sans);color:var(--ink-soft);
278
+ display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:space-between}
279
+ footer a{color:var(--ink-soft)}
280
+ footer a:hover{color:var(--accent)}
281
+ footer .sig b{color:var(--ink);font-weight:600}
282
+
283
+ /* ---------- wide screens: the rail, and the breakout ---------- */
284
+ @media (min-width:1240px){
285
+ .toc{position:fixed;top:96px;left:max(24px,calc(50% - 596px));width:216px;
286
+ max-height:74vh;overflow-y:auto;margin:0;padding:0;border:none;
287
+ border-left:1px solid var(--line);padding-left:18px;z-index:5}
288
+ .toc ol{columns:1;font-size:14px}
289
+ .toc li{margin-bottom:9px}
290
+ /* charts break out of the measure; tables stay aligned with the prose,
291
+ because a table that starts left of the paragraph above it reads as a
292
+ layout fault rather than as emphasis */
293
+ .chartfig{margin-left:-38px;margin-right:-38px;
294
+ padding-left:26px;padding-right:26px}
295
+ }
296
+ @media (min-width:1240px) and (max-height:620px){ .toc{display:none} }
297
+
298
+ /* ---------- phones ---------- */
299
+ @media (max-width:640px){
300
+ body{font-size:17px;line-height:1.68}
301
+ .wrap{padding:0 18px 32px}
302
+ header{padding-top:34px}
303
+ .dek{font-size:18px}
304
+ h2{font-size:24px;margin-top:44px}
305
+ h3{font-size:20.5px}
306
+ /* a phone gets the sections, not every subhead: eleven rows of contents
307
+ is a screenful of scrolling before the article even starts */
308
+ .toc li.t3{display:none}
309
+ .toc ol{columns:2;column-gap:18px;font-size:14px}
310
+ .themebtn{top:9px;right:9px;padding:7px 11px}
311
+ table{font-size:14.5px}
312
+ th{font-size:10.5px;padding-right:12px}
313
+ td{padding-right:12px}
314
+ tr td:first-child{min-width:7.5em;padding-right:14px}
315
+ .epnav{grid-template-columns:1fr}
316
+ .epnav .epnext{text-align:left}
317
+ .epnav a:only-child{max-width:none}
318
+ .solnbody{font-size:17px;padding-left:15px}
319
+ /* charts earn the full width of a phone */
320
+ .chartfig{margin-left:-18px;margin-right:-18px;border-radius:0;
321
+ border-left:none;border-right:none;padding:16px 14px 12px}
322
+ }
323
+
324
+ /* ---------- print ---------- */
325
+ @page{margin:16mm 14mm}
326
+ @media print{
327
+ :root{--ink:#000;--ink-soft:#333;--line:#bbb;--paper:#fff;--tint:#f4f2ec;
328
+ --tint-2:#f8f7f3;--gold:#7a5c24;--accent:#123024;--up:#123024;
329
+ --down:#7a1f1f;--shadow:transparent}
330
+ html[data-theme="dark"]{--ink:#000;--ink-soft:#333;--line:#bbb;--paper:#fff;
331
+ --tint:#f4f2ec;--tint-2:#f8f7f3;--gold:#7a5c24;--accent:#123024}
332
+ body{font-size:11pt;line-height:1.5;background:#fff}
333
+ .wrap{max-width:none;padding:0}
334
+ #bar,.themebtn,.toc,.listen,.solnbar,.gsearch,.epnav,.anchor,.backq{display:none!important}
335
+ header{padding-top:0}
336
+ .masthead{border-color:#000}
337
+ h1{font-size:23pt;margin-top:14pt}
338
+ .dek{font-size:12pt}
339
+ h2{font-size:15pt;margin:22pt 0 8pt;break-after:avoid}
340
+ h3{font-size:13pt;margin:14pt 0 5pt;break-after:avoid}
341
+ p,li{orphans:3;widows:3}
342
+ .tablewrap{overflow:visible;background:none;break-inside:avoid}
343
+ .chartfig{break-inside:avoid;border-color:#ccc;background:none}
344
+ details{break-inside:avoid;margin:0}
345
+ /* the answers print open, labelled by question, without a button */
346
+ details.soln>summary{display:flex;border:none;background:none;
347
+ padding:10pt 0 2pt;border-top:1px solid #ddd}
348
+ summary .sl{display:none}
349
+ .solnbody{border-color:#999;margin:2pt 0 8pt;padding-left:0}
350
+ /* the cumulative glossary is a reference, not part of the article:
351
+ eighty-odd terms would add pages to every printout */
352
+ .glossec,details.archive{display:none}
353
+ a{color:#000;text-decoration:none}
354
+ footer{border-color:#000}
355
+ }
356
+ @media (prefers-reduced-motion:reduce){
357
+ html{scroll-behavior:auto}
358
+ *{animation-duration:.001ms!important;transition-duration:.001ms!important}
359
+ }
360
+
361
+ .chartfig{margin:36px 0;padding:22px 22px 16px;border:1px solid var(--line);
362
+ border-radius:10px;background:var(--tint-2,var(--tint))}
363
+ .charttitle{font:600 17.5px/1.3 var(--serif,Georgia,serif);color:var(--ink);
364
+ margin:0 0 16px;letter-spacing:-.012em}
365
+ .chartcap{font:italic 15.5px/1.55 var(--serif,Georgia,serif);color:var(--ink-soft);
366
+ margin:14px 2px 0;text-wrap:pretty}
367
+ .chartsrc{display:block;font:500 11.5px/1.5 var(--sans,ui-sans-serif,system-ui,sans-serif);
368
+ font-style:normal;letter-spacing:.05em;opacity:.8;margin-top:7px}
369
+ .chart{display:block;overflow:visible;font-variant-numeric:tabular-nums}
370
+ @media (max-width:640px){
371
+ .charttitle{font-size:16.5px;margin-bottom:12px}
372
+ .chartcap{font-size:15px}
373
+ }
374
+ </style>
375
+ <script>
376
+ try{
377
+ var s = localStorage.getItem('cdd-theme');
378
+ if(s){ document.documentElement.setAttribute('data-theme', s); }
379
+ else if(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches){
380
+ document.documentElement.setAttribute('data-theme','dark');
381
+ }
382
+ }catch(e){}
383
+ </script>
384
+ </head>
385
+ <body>
386
+ <div id="bar" aria-hidden="true"></div>
387
+ <button class="themebtn" type="button" aria-label="Switch colour theme">
388
+ <svg class="moon" viewBox="0 0 24 24" aria-hidden="true"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg>
389
+ <svg class="sun" viewBox="0 0 24 24" aria-hidden="true"><circle cx="12" cy="12" r="4.2"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/></svg>
390
+ <span class="lbl"></span>
391
+ </button>
392
+ <div class="wrap">
393
+ <header>
394
+ <div class="masthead">
395
+ <a href="https://storage.googleapis.com/podcast-audio-2647223968/index.html">Soft Commodity Trading</a>
396
+ <span class="epno">Ep 11</span>
397
+ </div>
398
+ <h1>Storage, Elevation and Trade Flows</h1>
399
+ <p class="dek">An elevator is not long grain — it is long space, and the basis is what space costs.</p>
400
+ <div class="meta">Monday 24 August 2026 · <b>14 min 00</b></div>
401
+ <div class="listen">
402
+ <audio controls preload="none" src="https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/ep11v2.mp3"></audio>
403
+ <div class="listenrow">
404
+ <span class="rates" role="group" aria-label="Playback speed">
405
+ <button type="button" class="rate" data-rate="1" aria-pressed="true">1×</button>
406
+ <button type="button" class="rate" data-rate="1.25" aria-pressed="false">1.25×</button>
407
+ <button type="button" class="rate" data-rate="1.5" aria-pressed="false">1.5×</button>
408
+ </span>
409
+ <a href="https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/ep11v2.mp3" download>Download</a>
410
+ <a href="https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/feed.xml">Subscribe · RSS</a>
411
+ </div>
412
+ </div>
413
+ <nav class="toc" id="toc" aria-label="Contents"><p class="tochead">Contents</p><ol><li class="t2"><a href="#market-pulse">Market pulse</a></li><li class="t2"><a href="#key-takeaways">Key takeaways</a></li><li class="t2"><a href="#vocabulary">Vocabulary</a></li><li class="t2"><a href="#quiz">Quiz</a></li><li class="t2"><a href="#solutions">Solutions</a></li><li class="t2"><a href="#the-written-edition">The written edition</a></li><li class="t3"><a href="#an-elevator-is-not-a-warehouse">An elevator is not a warehouse</a></li><li class="t3"><a href="#the-bid-that-is-not-a-price">The bid that is not a price</a></li><li class="t3"><a href="#the-trade-worked">The trade, worked</a></li><li class="t3"><a href="#the-shed-that-was-never-built">The shed that was never built</a></li><li class="t3"><a href="#form-the-cheapest-transformation-there-is">Form: the cheapest transformation there is</a></li><li class="t3"><a href="#the-part-that-gets-people-fired">The part that gets people fired</a></li><li class="t3"><a href="#flows-replacement-value-and-the-bottleneck">Flows, replacement value, and the bottleneck</a></li><li class="t2"><a href="#glossary">Glossary</a></li></ol></nav>
414
+ </header>
415
+ <main>
416
+ <h2 id="market-pulse">Market pulse<a class="anchor" href="#market-pulse" aria-label="Link to this section">#</a></h2>
417
+ <p><strong>Pro Farmer walked out of the fields with seven and a half bushels less corn than USDA, and December corn went to a two-and-a-half-year high.</strong></p>
418
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Commodity</th><th>Contract</th><th>Price</th><th class="num">Change</th><th class="num">Change on week</th></tr></thead><tbody><tr><td>Corn</td><td>Dec (CBOT)</td><td>508½ c/bu</td><td class="num"><span class="mv up">+5¢</span></td><td class="num"><span class="mv up">+25¼¢</span></td></tr><tr><td>Soybeans</td><td>Nov (CBOT)</td><td>1239½ c/bu</td><td class="num"><span class="mv up">+3¢</span></td><td class="num"><span class="mv up">+47¢</span></td></tr><tr><td>Soymeal</td><td>Sep (CBOT)</td><td>$317.70/st</td><td class="num"><span class="mv up">+$2.00</span></td><td class="num"><span class="mv up">+$7.50</span></td></tr><tr><td>Soyoil</td><td>Sep (CBOT)</td><td>69.35 c/lb</td><td class="num"><span class="mv down">−183 pts</span></td><td class="num"><span class="mv down">−9 pts</span></td></tr><tr><td>Wheat SRW</td><td>Sep (CBOT)</td><td>681½ c/bu</td><td class="num"><span class="mv down">−1¼¢</span></td><td class="num"><span class="mv up">+6¾¢</span></td></tr><tr><td>Wheat HRW</td><td>Sep (KC)</td><td>756¼ c/bu</td><td class="num"><span class="mv down">−6¢</span></td><td class="num"><span class="mv up">+2¢</span></td></tr><tr><td>Wheat HRS</td><td>Sep (MGE)</td><td>698¼ c/bu</td><td class="num"><span class="mv down">−2½¢</span></td><td class="num"><span class="mv up">+20¢</span></td></tr></tbody></table></div>
419
+ <p>Pro Farmer closed its four-day tour on Friday evening with a national corn yield of <strong>173.2 bu/ac</strong> and a crop of 15.344 bn bu. USDA said 180.7 three weeks ago. That gap — more than four percent of the crop — is what carried December corn through five dollars and to its highest close since early 2024. Soybeans went the other way: Pro Farmer has 53.3 bu/ac against USDA&#x27;s 52.7, a slightly <em>bigger</em> bean crop, yet November beans still added 47 cents on the week on flooding in the eastern belt, a weaker dollar and a solid week of export sales.</p>
420
+ <p>Wheat was the quiet one. All three exchanges gave a little back on Friday after a firm week, with Minneapolis spring wheat the best of them at +20 cents.</p>
421
+ <p>The number worth carrying into this week is not the yield. It is the crop. Even on Pro Farmer&#x27;s reduced figure, the United States is about to harvest more than fifteen billion bushels of corn into a storage system that stopped being built six years ago.</p>
422
+ <p><strong>The geopolitical read: when the export door shuts, the grain does not vanish — it queues.</strong> More than 90% of Russia&#x27;s grain export capacity in the Azov–Black Sea basin is currently offline. Three Novorossiysk terminals suspended last week, Taman stopped in late July, and navigation in the Sea of Azov has been suspended since July, leaving one working deepwater grain terminal in a basin that moved 46.3 mt last season. The transmission this time is not freight and it is not war-risk premium. It is storage. Russia has harvested about 140 mt, exporters have stopped buying because they cannot ship, and the grain is backing up inland. Fourth-class Russian wheat is around <strong>12,000 roubles/t</strong>, against 15,000 a year ago. The world price of wheat is rising and the Russian farmer&#x27;s price is falling, in the same crop, at the same time. What sits between those two prices is storage and the ability to move.</p>
423
+ <figure class="chartfig">
424
+ <figcaption class="charttitle">Corn and beans took the week</figcaption>
425
+ <svg class="chart" viewBox="0 0 640 330" width="100%" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">
426
+ <style>.chart{--c-a:var(--accent,#1d4032);--c-b:var(--gold,#a8813c);--c-c:#4a6f8c;font-family:inherit}html[data-theme="dark"] .chart{--c-c:#7ba3c4}.chart .grid{stroke:var(--line,#ddd6c9);stroke-width:1}.chart .axis{fill:var(--ink-soft,#4a4238);font-size:12px}.chart .unit{fill:var(--ink-soft,#4a4238);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.chart .ln{fill:none;stroke-width:2.25;stroke-linejoin:round;stroke-linecap:round}.chart .lg{fill:var(--ink,#16110c);font-size:12.5px}.chart .vlabel{fill:var(--ink,#16110c);font-size:11.5px;font-weight:600}@media (max-width:900px){.chart .axis{font-size:14px}.chart .unit{font-size:13px}.chart .lg{font-size:14.5px}.chart .vlabel{font-size:13.5px}.chart .ln{stroke-width:2.6}}@media (max-width:640px){.chart .axis{font-size:16px}.chart .unit{font-size:14px}.chart .lg{font-size:16px}.chart .vlabel{font-size:15px}.chart .ln{stroke-width:3.1}}</style>
427
+ <line class="grid" x1="56" y1="286.0" x2="622" y2="286.0"/>
428
+ <text class="axis" x="46" y="290.0" text-anchor="end">0</text>
429
+ <line class="grid" x1="56" y1="234.0" x2="622" y2="234.0" opacity=".45"/>
430
+ <text class="axis" x="46" y="238.0" text-anchor="end">10</text>
431
+ <line class="grid" x1="56" y1="182.0" x2="622" y2="182.0" opacity=".45"/>
432
+ <text class="axis" x="46" y="186.0" text-anchor="end">20</text>
433
+ <line class="grid" x1="56" y1="130.0" x2="622" y2="130.0" opacity=".45"/>
434
+ <text class="axis" x="46" y="134.0" text-anchor="end">30</text>
435
+ <line class="grid" x1="56" y1="78.0" x2="622" y2="78.0" opacity=".45"/>
436
+ <text class="axis" x="46" y="82.0" text-anchor="end">40</text>
437
+ <line class="grid" x1="56" y1="26.0" x2="622" y2="26.0" opacity=".45"/>
438
+ <text class="axis" x="46" y="30.0" text-anchor="end">50</text>
439
+ <text class="unit" x="622" y="16" text-anchor="end">cents per bushel</text>
440
+ <text class="axis" x="112.6" y="306" text-anchor="middle">Corn Dec</text>
441
+ <text class="axis" x="225.8" y="306" text-anchor="middle">Beans Nov</text>
442
+ <text class="axis" x="339.0" y="306" text-anchor="middle">SRW Sep</text>
443
+ <text class="axis" x="452.2" y="306" text-anchor="middle">HRW Sep</text>
444
+ <text class="axis" x="565.4" y="306" text-anchor="middle">HRS Sep</text>
445
+ <rect x="92.4" y="154.7" width="40.5" height="131.3" rx="2" fill="var(--c-a)" opacity=".85"/>
446
+ <rect x="205.6" y="41.6" width="40.5" height="244.4" rx="2" fill="var(--c-a)" opacity=".85"/>
447
+ <rect x="318.8" y="250.9" width="40.5" height="35.1" rx="2" fill="var(--c-a)" opacity=".85"/>
448
+ <rect x="432.0" y="275.6" width="40.5" height="10.4" rx="2" fill="var(--c-a)" opacity=".85"/>
449
+ <rect x="545.2" y="182.0" width="40.5" height="104.0" rx="2" fill="var(--c-a)" opacity=".85"/>
450
+ <line class="grid" x1="56" y1="286.0" x2="622" y2="286.0"/>
451
+ </svg>
452
+ <figcaption class="chartcap">Beans added the most cents, but corn added the most meaning: a 25-cent week that ended at a two-and-a-half-year high, on a tour result four percent under USDA. Wheat went along for the ride. <span class="chartsrc">CBOT, KC and Minneapolis settlements, week ending Friday 21 August 2026.</span></figcaption>
453
+ </figure>
454
+ <h2 id="key-takeaways">Key takeaways<a class="anchor" href="#key-takeaways" aria-label="Link to this section">#</a></h2>
455
+ <ul><li>An elevator is not long grain and it is not a speculator. It buys at the posted bid and sells the board within minutes. What it owns is space and the right to move grain through it.</li><li>A posted bid can be a refusal. When space is the binding constraint, the bid stops being a price and becomes a queue-management tool.</li><li>Measure both ends of a storage trade against <strong>one</strong> futures month and the arithmetic collapses to a single number: the basis you bought, against the basis you sold.</li><li>The carry in the curve can only be collected by somebody who has a bin. Without space, contango is a number on a screen that someone else will earn.</li><li>US storage capacity has been flat at roughly 25.3 bn bu since 2019, against a twenty-year trend that would have put it at 27.5 bn. That missing 2.2 bn bushels of shed is why harvest basis behaves the way it does.</li><li>On-farm storage ran at a record 80% of capacity on 1 December 2025, and system-wide surplus capacity was about 5% against a century average of 15% — the tightest since 1988.</li><li>Blending is the cheapest form change in the business: no chemistry, no plant, just a weighted average and two tanks.</li><li>The discount lot is cheap because most buyers physically cannot use it, which is why the blender usually sets the discount rather than taking it.</li><li>Protein, moisture and test weight average. Aflatoxin, live infestation and an unapproved genetic event do not — those are pass/fail on the whole lot, and pouring contaminated grain into clean grain gives you a bigger contaminated lot.</li><li>Replacement value — what it would cost to buy back right now what you just sold — is the only question that tells you whether you can do the trade again tomorrow.</li><li>Whoever controls the bottleneck sets replacement value. In a congested port in harvest week, no view on flat price competes with owning the space.</li></ul>
456
+ <h2 id="vocabulary">Vocabulary<a class="anchor" href="#vocabulary" aria-label="Link to this section">#</a></h2>
457
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Term</th><th>Meaning</th></tr></thead><tbody><tr><td><strong>Country elevator</strong></td><td>The first commercial storage point off the farm, buying from growers and shipping onward by truck, rail or barge</td></tr><tr><td><strong>Terminal elevator</strong></td><td>Large storage at a port, river or rail hub, whose business is blending, load-out speed and access rather than farm origination</td></tr><tr><td><strong>Elevation margin</strong></td><td>The toll an elevator earns for taking grain in, conditioning it and loading it out, separate from any gain on the basis</td></tr><tr><td><strong>Throughput</strong></td><td>The volume moved through a facility in a period, the number that actually pays for a fixed asset — capacity earns nothing standing still</td></tr><tr><td><strong>Receiving capacity</strong></td><td>How fast an elevator can take grain in, in bushels or tonnes per hour, which is a different constraint from how much it can hold</td></tr><tr><td><strong>Load-out capacity</strong></td><td>How fast an elevator can ship grain out, and the lever that decides whether a full house is a crisis or a rotation</td></tr><tr><td><strong>Storage tariff</strong></td><td>The published charge for commercial storage, quoted in cents per bushel per month or per day, or in dollars per tonne per month</td></tr><tr><td><strong>Shrink</strong></td><td>Weight lost when grain is dried to a safe keeping moisture, deducted as a percentage and a real cost to whoever owns the grain</td></tr><tr><td><strong>Harvest basis</strong></td><td>The seasonal low in the cash-minus-futures spread, set when a year&#x27;s crop arrives in six weeks into a pipe sized to move it over twelve months</td></tr><tr><td><strong>Temporary storage</strong></td><td>Ground piles, bunkers and bags used when permanent capacity is full, cheap per bushel to build and expensive per bushel in spoilage and rehandling</td></tr><tr><td><strong>Capacity utilisation</strong></td><td>The share of storage capacity actually occupied, and the single best leading indicator of what harvest basis is about to do</td></tr><tr><td><strong>Blending</strong></td><td>Combining lots of different quality so the weighted average meets a contract specification, creating value from material nobody else can use</td></tr><tr><td><strong>Segregation</strong></td><td>Keeping identities and grades physically apart in separate bins, the precondition for being able to blend deliberately later</td></tr><tr><td><strong>Discount schedule</strong></td><td>The published table of price deductions for grain that falls outside a contract&#x27;s grade limits, and the raw material of every blending trade</td></tr><tr><td><strong>Pass/fail specification</strong></td><td>A contract term that cannot be met on average — contamination, infestation, unapproved events — where blending increases the affected tonnage instead of diluting it</td></tr><tr><td><strong>Replacement value</strong></td><td>What it would cost to buy back today what you have just sold, the test of whether a price was genuinely good</td></tr><tr><td><strong>Arb window</strong></td><td>The period during which a route&#x27;s economics work, opening and shutting on freight, differentials and FX rather than on flat price</td></tr><tr><td><strong>Bottleneck asset</strong></td><td>A facility with no near substitute at the moment it is needed, whose owner sets the price rather than quoting one</td></tr></tbody></table></div>
458
+ <h2 id="quiz">Quiz<a class="anchor" href="#quiz" aria-label="Link to this section">#</a></h2>
459
+ <p id="q1" class="qq"><strong>Q1.</strong> A country elevator buys 3,000,000 bu of corn at harvest at 45 under the December, hedges by selling December futures, and plans to sell in late February at 15 under the March with March trading 18 cents over December. Compute the gross basis gain per bushel and in total. Now change two things: the Dec–March spread narrows to 6 cents by January, and the cash basis only recovers to 25 under the March. Recompute. State which of the two changes cost more, and explain why the elevator has meaningful influence over one of them and almost none over the other.</p>
460
+ <p id="q2" class="qq"><strong>Q2.</strong> A blender holds 45,000 t of milling wheat at 11.6% protein bought at $238/t, and 25,000 t at 13.0% bought at $259/t. He has a sale of 70,000 t against a 12.0% protein minimum at $251/t. Compute the blended protein, the weighted cost, and the margin per tonne and in total, before and after $3.00/t of elevation and handling. Then: the 45,000 t lot returns a falling number of 180 seconds against a contractual minimum of 250. Say whether the trade still works, and explain precisely why that test behaves differently from the protein test.</p>
461
+ <p id="q3" class="qq"><strong>Q3.</strong> A country elevator holds 3,000,000 bu of licensed space. It can receive 40,000 bu/hour and runs 12 hours a day for the 22 working days of harvest, over which its draw area will deliver 4,200,000 bu. Compute the receiving capacity for the period and say whether the binding constraint is throughput or space. Then compute the minimum daily load-out, in bushels a day, that would keep the house from filling. Finally, say what the posted bid has to do if that load-out is not achievable, and why that is not the same thing as the elevator having a bearish view on corn.</p>
462
+ <p id="q4" class="qq"><strong>Q4.</strong> <em>(Ep 10)</em> Ep 10 established that a Panamax was earning $18,964/day and that selling CFR with no vessel fixed leaves you structurally short freight. A desk instead buys FOB at origin, sells FOB at origin, and never touches the ocean — but the export berth is congested and its nominated vessel waits eight days beyond laytime on a 66,000 t cargo. Compute the demurrage-equivalent cost in dollars and in dollars per tonne at that day rate. Then explain why this is a storage problem wearing freight clothes, and which party carries it under FOB as against CFR.</p>
463
+ <p id="q5" class="qq"><strong>Q5.</strong> <em>(Ep 10)</em> Ep 10 said an FFA hedges a basket of named Baltic routes rather than your voyage. An elevator signs a twelve-month throughput agreement committing it to move 900,000 t through a port terminal it does not own. Explain why that exposure cannot be hedged with an FFA at all — be specific about what the exposure actually is — and name the instrument or arrangement that does cover it.</p>
464
+ <p id="q6" class="qq"><strong>Q6.</strong> <em>(Ep 8)</em> Using ep 8&#x27;s board crush arithmetic, compute Friday&#x27;s September board crush from meal at $317.70/short ton, oil at 69.35 c/lb and beans at $12.25/bu. Give the crush in dollars per bushel and the oil share as a percentage. Then explain how today&#x27;s storage lesson changes where a crusher&#x27;s real margin sits, given that the beans arrive in eight weeks and the plant runs for fifty-two.</p>
465
+ <p id="q7" class="qq"><strong>Q7.</strong> <em>(Ep 8)</em> Ep 8 argued that a wide crush is competed away through the bean basis at the gate rather than through new plant construction, because capacity takes two to three years to build. Explain why a crush plant sitting in a region with a storage deficit faces a structurally different bean basis in October than in June, say which direction that pushes its October run rate, and name the one thing that would reverse the conclusion.</p>
466
+ <p id="q8" class="qq"><strong>Q8 — Conversion drill.</strong> A US mill quotes long-grain rough rice at <strong>$13.85 per cwt</strong>. A competing Vietnamese cargo is offered at <strong>$348.00 per tonne</strong>. Put both on dollars per tonne, and say which is cheaper and by how much. Then: the terminal holding 8,400 t of that rough rice charges storage at <strong>4.5 cents per cwt per month</strong>. Convert that tariff to dollars per tonne per month and compute the monthly storage bill on the whole parcel.</p>
467
+ <h2 id="solutions">Solutions<a class="anchor" href="#solutions" aria-label="Link to this section">#</a></h2><p class="secnote">One reveal per question — check your answer to Q1 without spoiling the rest.</p><div class="solnbar"><button type="button" class="ghost" data-solnall="open">Reveal all</button><button type="button" class="ghost" data-solnall="close">Hide all</button></div>
468
+ <details class="soln" id="a1"><summary><span class="qn">Q1</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>Put both ends against December and the arithmetic becomes one subtraction.</p>
469
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th></th><th class="num">Base case</th><th class="num">Revised</th></tr></thead><tbody><tr><td>Basis bought (vs Dec)</td><td class="num">−45¢</td><td class="num">−45¢</td></tr><tr><td>Basis sold (vs Mar)</td><td class="num">−15¢</td><td class="num">−25¢</td></tr><tr><td>Mar over Dec</td><td class="num">+18¢</td><td class="num">+6¢</td></tr><tr><td>Basis sold, restated vs Dec</td><td class="num">+3¢</td><td class="num">−19¢</td></tr><tr><td><strong>Gross gain</strong></td><td class="num"><strong>48¢</strong></td><td class="num"><strong>26¢</strong></td></tr><tr><td><strong>On 3,000,000 bu</strong></td><td class="num"><strong>$1,440,000</strong></td><td class="num"><strong>$780,000</strong></td></tr></tbody></table></div>
470
+ <p>A swing of <strong>$660,000</strong>, with the flat price hedged throughout.</p>
471
+ <p>Splitting the damage: the spread narrowing from 18 to 6 costs 12 cents, and the weaker cash basis costs another 10. The <strong>spread</strong> cost more, and it is also the one the elevator cannot do anything about. The Dec–March spread is a market-wide statement about how much the market is willing to pay for storage, set by everybody&#x27;s inventory and everybody&#x27;s space. One elevator&#x27;s decisions do not move it.</p>
472
+ <p>The <strong>cash basis</strong> is the half the elevator genuinely works. It chooses who to bid, when to bid, which end-users and which shippers to court, whether to hold for a rail programme or a river bid, and whether to spend elevation margin to reach a better market. That is the business. The trap in the question is that the line an operator obsesses over — &quot;am I getting my basis back?&quot; — was the smaller of the two losses. The larger one arrived silently, on a screen, as the market told everyone at once that storage was worth less than it had been.</p>
473
+ <p class="backq"><a href="#q1">↑ Back to question 1</a></p></div></details>
474
+ <details class="soln" id="a2"><summary><span class="qn">Q2</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>Protein first, because if it does not blend there is nothing to price.</p>
475
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Lot</th><th class="num">Tonnes</th><th class="num">Protein</th><th class="num">Protein tonne-%</th><th class="num">Cost $/t</th><th class="num">Cost $</th></tr></thead><tbody><tr><td>A</td><td class="num">45,000</td><td class="num">11.6%</td><td class="num">522,000</td><td class="num">238.00</td><td class="num">10,710,000</td></tr><tr><td>B</td><td class="num">25,000</td><td class="num">13.0%</td><td class="num">325,000</td><td class="num">259.00</td><td class="num">6,475,000</td></tr><tr><td><strong>Blend</strong></td><td class="num"><strong>70,000</strong></td><td class="num"><strong>12.10%</strong></td><td class="num">847,000</td><td class="num"><strong>245.50</strong></td><td class="num">17,185,000</td></tr></tbody></table></div>
476
+ <p>12.10% clears a 12.0% minimum with a tenth of a point to spare. The sale is at $251.00/t.</p>
477
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Line</th><th class="num">$/t</th><th class="num">Total</th></tr></thead><tbody><tr><td>Sale</td><td class="num">251.00</td><td class="num">17,570,000</td></tr><tr><td>Weighted cost</td><td class="num">−245.50</td><td class="num">−17,185,000</td></tr><tr><td><strong>Gross margin</strong></td><td class="num"><strong>5.50</strong></td><td class="num"><strong>385,000</strong></td></tr><tr><td>Elevation and handling</td><td class="num">−3.00</td><td class="num">−210,000</td></tr><tr><td><strong>Net margin</strong></td><td class="num"><strong>2.50</strong></td><td class="num"><strong>175,000</strong></td></tr></tbody></table></div>
478
+ <p>Now the falling number. <strong>The trade does not work, and the arithmetic above is irrelevant.</strong></p>
479
+ <p>Protein is a <em>concentration</em>. Mix two concentrations by weight and the result is the weighted mean, reliably and linearly. Falling number is not a concentration of anything — it is the Hagberg test&#x27;s measure of how fast a flour-and-water slurry loses viscosity, which is a measure of <strong>alpha-amylase enzyme activity</strong> in sprout-damaged grain. Enzymes are catalysts. A small quantity of highly active material degrades starch far out of proportion to its weight share, and the test&#x27;s response is strongly non-linear: a blend of a 180 lot and a 350 lot lands well below the weighted average, and the direction of the error is always against the seller.</p>
480
+ <p>The practical rule on a desk is that falling number blends <em>down</em> much faster than it blends up, so a low-FN parcel is treated as contaminating rather than diluting. It also matters that ep 5 already priced this: a low falling number demotes milling wheat to feed at roughly $40/t. That is the real value of lot A, not a $13 protein discount — and at feed value the blend was never a $2.50/t margin. It was a $2.50/t margin sitting on top of an unrecognised $40/t writedown.</p>
481
+ <p class="backq"><a href="#q2">↑ Back to question 2</a></p></div></details>
482
+ <details class="soln" id="a3"><summary><span class="qn">Q3</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>Receiving capacity for the harvest window:</p>
483
+ <p>40,000 bu/hr × 12 hr × 22 days = <strong>10,560,000 bu</strong></p>
484
+ <p>Against 4,200,000 bu of deliveries, receiving is not remotely the constraint — the house could take the whole crop two and a half times over. <strong>Space is the constraint.</strong> 4.2 m bu of deliveries into 3.0 m bu of licensed space leaves 1,200,000 bu with nowhere to go.</p>
485
+ <p>Minimum load-out to stay level: 1,200,000 ÷ 22 = <strong>54,545 bu/day</strong>, call it two and a half unit trains a month, or a barge every few days.</p>
486
+ <p>If that load-out is not achievable — no rail cars allocated, river levels down, the terminal downstream full of its own crop — the posted bid has to widen until deliveries slow to what the house can absorb, or until the widened bid pays for ground piles and their rehandling. Either way the bid is doing physical work, not expressing a view.</p>
487
+ <p>This is the distinction worth keeping. A bearish view says <em>corn is worth less than the board implies</em>. A full house says <em>corn delivered to me, this week, at this location, is worth less to me than corn delivered next month, because I have nowhere to put it.</em> The first is a statement about corn. The second is a statement about a building. They look identical on a bid sheet and they are completely different trades — which is exactly why a merchant who reads country bids as sentiment gets the direction of the next basis move wrong.</p>
488
+ <p class="backq"><a href="#q3">↑ Back to question 3</a></p></div></details>
489
+ <details class="soln" id="a4"><summary><span class="qn">Q4</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>Eight days at $18,964:</p>
490
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th></th><th class="num"></th></tr></thead><tbody><tr><td>Days over laytime</td><td class="num">8</td></tr><tr><td>Rate</td><td class="num">$18,964/day</td></tr><tr><td><strong>Demurrage-equivalent</strong></td><td class="num"><strong>$151,712</strong></td></tr><tr><td>Cargo</td><td class="num">66,000 t</td></tr><tr><td><strong>Per tonne</strong></td><td class="num"><strong>$2.30/t</strong></td></tr></tbody></table></div>
491
+ <p>It is a storage problem in freight clothes because a berth is storage in motion. Congestion at the export elevator means grain cannot get out of the house and into the hold, so the queue that forms is a queue for <em>space and load-out capacity</em>, not for ocean tonnage. The vessel is simply the meter that is running while the problem is somewhere else — in the silo, on the conveyor, in the rail allocation.</p>
492
+ <p>Who carries it depends on the term of sale, and this is the ep 4 point made concrete. Under <strong>FOB</strong>, the buyer charters, so the buyer&#x27;s vessel is on demurrage — but the seller has undertaken to load within an agreed laytime, so the demurrage claim comes straight back at the seller under the sale contract. Under <strong>CFR</strong>, the seller charters and simply wears it directly against the shipowner. The economics are similar; the paperwork and the timing are not, and the difference is where the argument happens. Note also the asymmetry the question is really testing: a desk that never buys a tonne of freight can still lose $2.30/t to freight, because it sold an obligation to <em>load at a rate</em>, and loading rate is a property of a building it may not even own.</p>
493
+ <p class="backq"><a href="#q4">↑ Back to question 4</a></p></div></details>
494
+ <details class="soln" id="a5"><summary><span class="qn">Q5</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>The throughput agreement is not a freight exposure at all, which is why no freight instrument touches it.</p>
495
+ <p>What the elevator has sold is a <strong>volume commitment</strong>: 900,000 t must move through a terminal over twelve months. The risks attached to it are, in order: that the grain does not exist to move (a short crop in the draw area), that it exists but flows to a competing outlet (a rival bid, a rail programme, a better river basis), that the terminal cannot take it when it arrives (congestion, breakdown, a queue), and that the take-or-pay clause bites for the tonnes not moved. Those are origination, competition and access risks.</p>
496
+ <p>An FFA settles against the average of a basket of Baltic route assessments over a calendar month. It pays out when <em>ocean freight rates</em> move. Ocean freight rates can be perfectly flat for the whole year while every one of the risks above destroys the contract — and conversely, freight can double without changing the elevator&#x27;s obligation by a tonne. The correlation is not weak. It is close to structurally absent, and hedging with it would be adding a naked freight position to an unhedged throughput position.</p>
497
+ <p>What actually covers it is <strong>contractual, not financial</strong>: a take-or-pay with a shortfall cap or a carry-forward of unused tonnes, a matching origination programme (forward or deferred-price purchases sized to the commitment), and a berth or window guarantee with the terminal operator giving priority access. Where a financial hedge helps at all, it is on the <em>basis</em> — the elevator can buy origin basis forward to lock the acquisition cost of the tonnes it has promised to move. The honest summary: an access risk is hedged by buying access.</p>
498
+ <p class="backq"><a href="#q5">↑ Back to question 5</a></p></div></details>
499
+ <details class="soln" id="a6"><summary><span class="qn">Q6</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>The two multipliers, in the fixed order.</p>
500
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Leg</th><th class="num">Price</th><th>Multiplier</th><th class="num">$/bu</th></tr></thead><tbody><tr><td>Meal</td><td class="num">$317.70/short ton</td><td>× 0.022</td><td class="num">6.9894</td></tr><tr><td>Oil</td><td class="num">69.35 c/lb</td><td>× 0.11</td><td class="num">7.6285</td></tr><tr><td><strong>Gross product value</strong></td><td class="num"></td><td></td><td class="num"><strong>14.6179</strong></td></tr><tr><td>Beans</td><td class="num">$12.25/bu</td><td></td><td class="num">−12.2500</td></tr><tr><td><strong>Board crush</strong></td><td class="num"></td><td></td><td class="num"><strong>$2.368/bu</strong></td></tr></tbody></table></div>
501
+ <p>Oil share = 7.6285 ÷ 14.6179 = <strong>52.2%</strong>. Oil is again more than half the value of the bushel.</p>
502
+ <p>The storage point changes where that margin actually lives. The board crush is a <em>simultaneous</em> quote: three prices observed at the same instant. The plant&#x27;s real problem is that its raw material arrives in an eight-week window and its output is sold across fifty-two weeks. So the crusher is, structurally, a storage business with a processing plant attached. It must either own the bins to carry beans from harvest through to summer, or buy them month by month from someone who does — and the price of doing that is the bean basis plus the carry in the bean curve.</p>
503
+ <p>That means a crusher hedging only the board crush has hedged the smaller half of its problem. It has locked a margin per bushel and left open the question of whether it can source bushels at that basis for the other forty-four weeks. In a year where storage is scarce, the carry the crusher must pay to hold beans, or the basis premium it must pay to buy them later, comes straight out of a margin that the screen still shows as $2.37.</p>
504
+ <p class="backq"><a href="#q6">↑ Back to question 6</a></p></div></details>
505
+ <details class="soln" id="a7"><summary><span class="qn">Q7</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>In <strong>June</strong> the bean is somebody&#x27;s carried inventory. It has already been stored, financed and priced; the seller&#x27;s alternative to selling is another month of storage cost, and the plant is competing against the <em>carry</em> in the curve. In <strong>October</strong> the bean is arriving on a truck from a field into a region with nowhere to put it. The plant&#x27;s alternative bidder is a full elevator, and a full elevator bids to repel.</p>
506
+ <p>So in October a crush plant in a storage-deficit region gets its beans <strong>cheaper on the basis</strong> — sometimes dramatically so — because it is one of the very few buyers in the county that can take delivery and immediately consume the grain rather than store it. A plant is a hole in the ground that never fills. That is a genuine competitive asset for six weeks a year.</p>
507
+ <p>Direction: it pushes the October <strong>run rate up</strong>, toward capacity, and it makes the plant want to be running flat out precisely when the basis is at its seasonal low. This is the seasonal shape of crush margins that ep 8&#x27;s board-crush arithmetic cannot see, because the board crush contains no basis.</p>
508
+ <p>The one thing that reverses it: <strong>meal</strong>. Meal cannot be stored economically or for long — it degrades, it takes volume, and it has to be sold into a local feed market. If the plant runs flat out in October it must place October meal, and if the feed market in its own draw area is also flooded with a big local corn crop and cheap local feed alternatives, the meal basis collapses faster than the bean basis improves. At that point cheap beans buy you nothing, because the constraint has moved from the intake to the outlet — which is the same lesson as the elevator&#x27;s, standing on its head.</p>
509
+ <p class="backq"><a href="#q7">↑ Back to question 7</a></p></div></details>
510
+ <details class="soln" id="a8"><summary><span class="qn">Q8</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p><strong>Conversion drill.</strong> One tonne is 2,204.62 lb, which is <strong>22.0462 cwt</strong>.</p>
511
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th></th><th class="num">Quote</th><th>Conversion</th><th class="num">$/tonne</th></tr></thead><tbody><tr><td>US rough rice</td><td class="num">$13.85/cwt</td><td>× 22.0462</td><td class="num"><strong>$305.34</strong></td></tr><tr><td>Vietnamese cargo</td><td class="num">$348.00/t</td><td>—</td><td class="num">$348.00</td></tr></tbody></table></div>
512
+ <p>The US rice is cheaper by <strong>$42.66/t</strong>, or in the other currency of the trade, $348.00 ÷ 22.0462 = $15.79/cwt against $13.85 — a <strong>$1.94/cwt</strong> advantage. Both statements are the same fact; which one you say out loud depends on who you are talking to, and getting that wrong in front of a counterparty is how you sound like you have never traded rice.</p>
513
+ <p>Now the storage tariff:</p>
514
+ <p>4.5 c/cwt/month × 22.0462 = <strong>$0.9921/t/month</strong>, call it 99 cents.</p>
515
+ <p>On 8,400 t: 8,400 × 0.9921 = <strong>$8,333 per month</strong>.</p>
516
+ <p>Worth noticing how small that is relative to the parcel. The rice at $305.34/t is worth $2,564,856, so a month of storage is 0.32% of the value — while a month of interest at 5% is 0.42%, and larger. On a low-value, high-bulk commodity the tariff dominates; on rice it does not, and the financing does. That is why the store-or-sell answer is different for rice than for corn even when the curve looks the same shape.</p>
517
+ <p class="backq"><a href="#q8">↑ Back to question 8</a></p></div></details><h2 id="the-written-edition">The written edition<a class="anchor" href="#the-written-edition" aria-label="Link to this section">#</a></h2>
518
+ <p>Last year the United States built almost no new grain storage. This autumn it will harvest something over fifteen billion bushels of corn. Those two facts meet in September, and the place where they meet has a name. It is called the basis.</p>
519
+ <h3 id="an-elevator-is-not-a-warehouse">An elevator is not a warehouse<a class="anchor" href="#an-elevator-is-not-a-warehouse" aria-label="Link to this section">#</a></h3>
520
+ <p>The most common mistake about country elevators is to think of them as speculators with buildings, or as warehouses with a price list. They are neither.</p>
521
+ <p>An elevator buys grain at the posted bid and sells futures against it within minutes. Flat price is dead on arrival — the same discipline the whole show has been describing since ep 2. What the elevator owns is <strong>space</strong>, and the right to move grain through that space.</p>
522
+ <p>That produces two revenue lines, and they are genuinely separate businesses:</p>
523
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Line</th><th>What it is</th><th>What pays for it</th></tr></thead><tbody><tr><td><strong>Elevation margin</strong></td><td>Taking grain in, drying and conditioning it, loading it out</td><td>Throughput — volume moved, regardless of price</td></tr><tr><td><strong>Basis and carry</strong></td><td>Buying the basis cheap at harvest, selling it back later</td><td>Ownership of space when space is scarce</td></tr></tbody></table></div>
524
+ <p>Two units of the trade are worth stating precisely, because they are where the money hides. <strong>Commercial storage</strong> is quoted in cents per bushel per month, sometimes per day, and outside the US in dollars per tonne per month. <strong>Shrink</strong> is quoted in percent: it is the weight that disappears when wet grain is dried down to a moisture at which it will keep. Neither of them is a price view. Both of them are deductions taken from someone, and the argument about which someone is most of what an origination contract is for.</p>
525
+ <h3 id="the-bid-that-is-not-a-price">The bid that is not a price<a class="anchor" href="#the-bid-that-is-not-a-price" aria-label="Link to this section">#</a></h3>
526
+ <p>Here is how a posted bid gets given in the third week of October.</p>
527
+ <blockquote><strong>FARMER:</strong> What are you bid, October corn?<br><strong>ELEVATOR:</strong> Forty-five under the December.<br><strong>FARMER:</strong> That&#x27;s ugly.<br><strong>ELEVATOR:</strong> I&#x27;ve got eleven days of receiving and nine months of crop coming at me. Forty-five under is me telling you not to bring it.<br><strong>FARMER:</strong> And if I store it with you instead?<br><strong>ELEVATOR:</strong> Then I charge you rent instead of paying you a bid. Same conversation, other direction.</blockquote>
528
+ <p>A bid can be a refusal. Forty-five under is not an opinion about corn; it is a statement about how much room is left in the house. When space is the binding constraint, the posted bid stops functioning as a price and starts functioning as a queue-management tool — and a merchant who reads country bids as market sentiment will get the direction of the next basis move exactly wrong.</p>
529
+ <p>The second half of the exchange matters as much as the first. The elevator offers the farmer a choice between a bad bid and a storage tariff. Those are the same transaction viewed from opposite ends: in one, the elevator buys the grain cheaply and owns the space problem; in the other, the farmer keeps the grain and rents the space problem. The elevator is indifferent to which, because it is selling the same thing either way.</p>
530
+ <h3 id="the-trade-worked">The trade, worked<a class="anchor" href="#the-trade-worked" aria-label="Link to this section">#</a></h3>
531
+ <p>Take the elevator&#x27;s side of it, using Friday&#x27;s December corn at $5.08½.</p>
532
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Step</th><th class="num"></th><th class="num"></th></tr></thead><tbody><tr><td>Harvest: buy cash corn</td><td class="num">45 under Dec</td><td class="num">$4.63½</td></tr><tr><td>Sell December futures</td><td class="num"></td><td class="num">flat price hedged</td></tr><tr><td>Late February: sell cash</td><td class="num">15 under Mar</td><td class="num"></td></tr><tr><td>Assume Mar–Dec spread</td><td class="num">+18¢</td><td class="num"></td></tr></tbody></table></div>
533
+ <p>The trick that makes this readable is to restate both ends against a single month. Fifteen under March, when March is eighteen over December, is <strong>three cents over December</strong>.</p>
534
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th></th><th class="num">vs December</th></tr></thead><tbody><tr><td>Basis bought</td><td class="num">−45¢</td></tr><tr><td>Basis sold</td><td class="num">+3¢</td></tr><tr><td><strong>Gross gain</strong></td><td class="num"><strong>48¢/bu</strong></td></tr><tr><td>Interest, $4.63½ at 5% for 4 months</td><td class="num">−7½¢</td></tr><tr><td>Shrink, drying, turning the pile</td><td class="num">−3¢</td></tr><tr><td><strong>Net</strong></td><td class="num"><strong>37½¢/bu</strong></td></tr></tbody></table></div>
535
+ <p>On a three-million-bushel house that turns its space once, that is a little over <strong>$1.1 m</strong>. The elevator never had a view on corn. Not once. It was paid for owning room in the six weeks of the year when nobody else had any.</p>
536
+ <p>Which gives the sentence worth keeping: <strong>the carry in the futures curve can only be collected by somebody who has a bin.</strong> Ep 3 said a carry market pays you to store. That was half of it. It pays you to store <em>if you have somewhere to store</em>. If you do not, the carry is a number on a screen that somebody else is going to earn, and the store-or-sell decision that looked like an optimisation was never available to you at all.</p>
537
+ <h3 id="the-shed-that-was-never-built">The shed that was never built<a class="anchor" href="#the-shed-that-was-never-built" aria-label="Link to this section">#</a></h3>
538
+ <p>Now put the fifteen billion bushels back on the table.</p>
539
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th></th><th class="num">Bushels</th></tr></thead><tbody><tr><td>Total US grain storage capacity, 2025</td><td class="num">~25.3 bn</td></tr><tr><td>Same, 2019</td><td class="num">~25.0 bn</td></tr><tr><td>On the 2000–2019 trend</td><td class="num">27.5 bn</td></tr><tr><td>On-farm</td><td class="num">13.6 bn</td></tr><tr><td>Off-farm commercial</td><td class="num">11.9 bn</td></tr></tbody></table></div>
540
+ <p>Between 2000 and 2019 the US added an average of 349 m bu of capacity a year. Since 2020 it has added essentially nothing — about 337 m bu in six years, which is less than one year of the old trend. Production did not stop growing.</p>
541
+ <figure class="chartfig">
542
+ <figcaption class="charttitle">The shed that was never built</figcaption>
543
+ <svg class="chart" viewBox="0 0 640 330" width="100%" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">
544
+ <style>.chart{--c-a:var(--accent,#1d4032);--c-b:var(--gold,#a8813c);--c-c:#4a6f8c;font-family:inherit}html[data-theme="dark"] .chart{--c-c:#7ba3c4}.chart .grid{stroke:var(--line,#ddd6c9);stroke-width:1}.chart .axis{fill:var(--ink-soft,#4a4238);font-size:12px}.chart .unit{fill:var(--ink-soft,#4a4238);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.chart .ln{fill:none;stroke-width:2.25;stroke-linejoin:round;stroke-linecap:round}.chart .lg{fill:var(--ink,#16110c);font-size:12.5px}.chart .vlabel{fill:var(--ink,#16110c);font-size:11.5px;font-weight:600}@media (max-width:900px){.chart .axis{font-size:14px}.chart .unit{font-size:13px}.chart .lg{font-size:14.5px}.chart .vlabel{font-size:13.5px}.chart .ln{stroke-width:2.6}}@media (max-width:640px){.chart .axis{font-size:16px}.chart .unit{font-size:14px}.chart .lg{font-size:16px}.chart .vlabel{font-size:15px}.chart .ln{stroke-width:3.1}}</style>
545
+ <line class="grid" x1="56" y1="286.0" x2="622" y2="286.0"/>
546
+ <text class="axis" x="46" y="290.0" text-anchor="end">0</text>
547
+ <line class="grid" x1="56" y1="199.3" x2="622" y2="199.3" opacity=".45"/>
548
+ <text class="axis" x="46" y="203.3" text-anchor="end">10</text>
549
+ <line class="grid" x1="56" y1="112.7" x2="622" y2="112.7" opacity=".45"/>
550
+ <text class="axis" x="46" y="116.7" text-anchor="end">20</text>
551
+ <line class="grid" x1="56" y1="26.0" x2="622" y2="26.0" opacity=".45"/>
552
+ <text class="axis" x="46" y="30.0" text-anchor="end">30</text>
553
+ <text class="unit" x="622" y="16" text-anchor="end">billion bushels</text>
554
+ <text class="axis" x="150.3" y="306" text-anchor="middle">2019 actual</text>
555
+ <text class="axis" x="339.0" y="306" text-anchor="middle">2025 actual</text>
556
+ <text class="axis" x="527.7" y="306" text-anchor="middle">2025 on trend</text>
557
+ <rect x="130.1" y="69.3" width="40.5" height="216.7" rx="2" fill="var(--c-a)" opacity=".85"/>
558
+ <rect x="318.8" y="66.7" width="40.5" height="219.3" rx="2" fill="var(--c-a)" opacity=".85"/>
559
+ <rect x="507.4" y="47.7" width="40.5" height="238.3" rx="2" fill="var(--c-a)" opacity=".85"/>
560
+ <line class="grid" x1="56" y1="286.0" x2="622" y2="286.0"/>
561
+ </svg>
562
+ <figcaption class="chartcap">Six years of building added 0.3 bn bushels where the previous two decades' trend would have added 2.5. That missing capacity is not an abstraction — it is why harvest basis goes where it goes, and who gets paid when it does. <span class="chartsrc">farmdoc daily, University of Illinois, February 2026, from USDA capacity series.</span></figcaption>
563
+ </figure>
564
+ <p>The consequences show up in the utilisation numbers rather than the capacity numbers. On 1 December 2025 on-farm storage was running at <strong>80% of capacity</strong>, a record, and off-farm at 65%. System-wide surplus capacity was about <strong>5%</strong>, against a century average of 15%. That is the tightest since 1988.</p>
565
+ <p>Five percent is not a cushion. It is a rounding error, and it means the marginal bushel in a good year has no home at any basis — which is precisely when temporary storage appears: ground piles, bunkers and bags, cheap per bushel to build and expensive per bushel in spoilage, rehandling and quality loss. The cost of the pile is what sets the floor under how wide the basis has to go.</p>
566
+ <h3 id="form-the-cheapest-transformation-there-is">Form: the cheapest transformation there is<a class="anchor" href="#form-the-cheapest-transformation-there-is" aria-label="Link to this section">#</a></h3>
567
+ <p>Ep 2 said merchants are paid for three transformations: space, time and form. Freight is space. Storage is time. Blending is form — and it is the cheapest form change in the business. No chemistry, no plant, no conversion cost worth the name. Just a weighted average and two tanks.</p>
568
+ <p>Take a 60,000 t cargo of milling wheat sold against a 12.0% protein minimum.</p>
569
+ <div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Lot</th><th class="num">Tonnes</th><th class="num">Protein</th><th class="num">Cost $/t</th></tr></thead><tbody><tr><td>A</td><td class="num">40,000</td><td class="num">12.4%</td><td class="num">250.00</td></tr><tr><td>B</td><td class="num">20,000</td><td class="num">11.2%</td><td class="num">232.00</td></tr><tr><td><strong>Blend</strong></td><td class="num"><strong>60,000</strong></td><td class="num"><strong>12.0%</strong></td><td class="num"><strong>244.00</strong></td></tr></tbody></table></div>
570
+ <p>Lot B is off-spec and nobody wants it, which is why it was $18 cheap. Blended, the cargo is exactly on spec and worth the full $250.00/t.</p>
571
+ <figure class="chartfig">
572
+ <figcaption class="charttitle">Blending a cargo onto spec</figcaption>
573
+ <svg class="chart" viewBox="0 0 640 330" width="100%" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">
574
+ <style>.chart{--c-a:var(--accent,#1d4032);--c-b:var(--gold,#a8813c);--c-c:#4a6f8c;font-family:inherit}html[data-theme="dark"] .chart{--c-c:#7ba3c4}.chart .grid{stroke:var(--line,#ddd6c9);stroke-width:1}.chart .axis{fill:var(--ink-soft,#4a4238);font-size:12px}.chart .unit{fill:var(--ink-soft,#4a4238);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.chart .ln{fill:none;stroke-width:2.25;stroke-linejoin:round;stroke-linecap:round}.chart .lg{fill:var(--ink,#16110c);font-size:12.5px}.chart .vlabel{fill:var(--ink,#16110c);font-size:11.5px;font-weight:600}@media (max-width:900px){.chart .axis{font-size:14px}.chart .unit{font-size:13px}.chart .lg{font-size:14.5px}.chart .vlabel{font-size:13.5px}.chart .ln{stroke-width:2.6}}@media (max-width:640px){.chart .axis{font-size:16px}.chart .unit{font-size:14px}.chart .lg{font-size:16px}.chart .vlabel{font-size:15px}.chart .ln{stroke-width:3.1}}</style>
575
+ <line class="grid" x1="56" y1="286.0" x2="622" y2="286.0"/>
576
+ <text class="axis" x="46" y="290.0" text-anchor="end">0</text>
577
+ <line class="grid" x1="56" y1="199.3" x2="622" y2="199.3" opacity=".45"/>
578
+ <text class="axis" x="46" y="203.3" text-anchor="end">100</text>
579
+ <line class="grid" x1="56" y1="112.7" x2="622" y2="112.7" opacity=".45"/>
580
+ <text class="axis" x="46" y="116.7" text-anchor="end">200</text>
581
+ <line class="grid" x1="56" y1="26.0" x2="622" y2="26.0" opacity=".45"/>
582
+ <text class="axis" x="46" y="30.0" text-anchor="end">300</text>
583
+ <text class="unit" x="622" y="16" text-anchor="end">USD per tonne</text>
584
+ <text class="axis" x="126.8" y="306" text-anchor="middle">Sale value, 12.0% cargo</text>
585
+ <text class="axis" x="268.2" y="306" text-anchor="middle">Weighted cost of blend</text>
586
+ <text class="axis" x="409.8" y="306" text-anchor="middle">Elevation and handling</text>
587
+ <text class="axis" x="551.2" y="306" text-anchor="middle">Margin</text>
588
+ <rect x="89.8" y="69.3" width="74.0" height="216.7" rx="2" fill="var(--c-a)" opacity=".92"/>
589
+ <text class="vlabel" x="126.8" y="62.3" text-anchor="middle">250</text>
590
+ <line class="grid" x1="163.8" y1="69.3" x2="231.2" y2="69.3" stroke-dasharray="3 3" opacity=".5"/>
591
+ <rect x="231.2" y="69.3" width="74.0" height="211.5" rx="2" fill="#8a3b2f" opacity=".78"/>
592
+ <text class="vlabel" x="268.2" y="62.3" text-anchor="middle">-244</text>
593
+ <line class="grid" x1="305.2" y1="280.8" x2="372.8" y2="280.8" stroke-dasharray="3 3" opacity=".5"/>
594
+ <rect x="372.8" y="280.8" width="74.0" height="2.6" rx="2" fill="#8a3b2f" opacity=".78"/>
595
+ <text class="vlabel" x="409.8" y="273.8" text-anchor="middle">-3</text>
596
+ <line class="grid" x1="446.8" y1="283.4" x2="514.2" y2="283.4" stroke-dasharray="3 3" opacity=".5"/>
597
+ <rect x="514.2" y="283.4" width="74.0" height="2.6" rx="2" fill="var(--c-b)" opacity=".92"/>
598
+ <text class="vlabel" x="551.2" y="276.4" text-anchor="middle">3</text>
599
+ </svg>
600
+ <figcaption class="chartcap">Neither lot could be sold as a 12% cargo alone. Six dollars a tonne appears out of a weighted average, and three of it survives the handling cost — $180,000 on the cargo, created by arithmetic. <span class="chartsrc">Worked example, episode 11.</span></figcaption>
601
+ </figure>
602
+ <p>Six dollars a tonne out of nothing but a weighted average. Take $3.00/t for elevation and handling and $3.00/t survives: <strong>$180,000</strong> on the cargo.</p>
603
+ <p>The discount lot was cheap for a specific reason worth naming. Most buyers physically cannot use 11.2% wheat — their contracts, their mills or their customers will not take it. That thins the bidding to the handful of operators with segregated space and a blending sale to put it into, which is why the blender frequently <em>sets</em> the discount rather than taking it. Blending value is not really a quality trade. It is a trade on being one of very few people able to bid.</p>
604
+ <h3 id="the-part-that-gets-people-fired">The part that gets people fired<a class="anchor" href="#the-part-that-gets-people-fired" aria-label="Link to this section">#</a></h3>
605
+ <p>Protein averages. Moisture averages. Test weight averages.</p>
606
+ <p>Aflatoxin does not average. Neither does a live insect infestation, nor an unapproved genetic event, nor — as a practical matter — a falling number.</p>
607
+ <p>These are not quality specifications with a discount schedule attached. They are <strong>pass/fail conditions on the whole lot</strong>. Pour 10,000 t of contaminated corn into a 50,000 t bin of clean corn and you have not diluted anything. You have 60,000 t of contaminated corn, and you have converted a containable problem into a cargo-sized one.</p>
608
+ <p>Falling number deserves its own line because it looks like a number that should average and does not. The Hagberg test measures how fast a flour-and-water slurry loses viscosity, which is a proxy for alpha-amylase activity in sprout-damaged grain. Enzymes are catalysts, so a small weight share of highly active material degrades starch far out of proportion to its tonnage, and the blend lands below the weighted mean — always in the direction that costs the seller. Ep 5 priced the consequence: a low falling number demotes milling wheat to feed at roughly $40/t.</p>
609
+ <p>And ep 4&#x27;s rule closes the loop: the quality certificate is final at load. The blend has to be right before the grain is on the ship, because after it is, the arithmetic is no longer a commercial question. It is a claim.</p>
610
+ <h3 id="flows-replacement-value-and-the-bottleneck">Flows, replacement value, and the bottleneck<a class="anchor" href="#flows-replacement-value-and-the-bottleneck" aria-label="Link to this section">#</a></h3>
611
+ <p>The last piece ties the two halves together.</p>
612
+ <p>Traders talk about <strong>replacement value</strong>: what it would cost, right now, to buy back what has just been sold. It is a better question than whether the price was good, because it is the only one that answers whether the trade can be done again tomorrow. A sale at a record price into a market where the replacement is unavailable at any price is not a good trade. It is the end of a business line.</p>
613
+ <p>Replacement value is set by whoever controls the bottleneck. In a congested port during harvest week, the operator with space names the price and everybody else takes it — and no view on flat price competes with that. This is also why elevation margin is quietly counter-cyclical to trading margin: the weeks when the basis is at its worst and the trading book is grinding are exactly the weeks when the space is worth the most.</p>
614
+ <p>Ep 10 closed by asking why merchants rent ships but own elevators. That is the answer. A ship is one of many; if the owner will not fix at your number, there is another vessel behind it, and the Baltic assessment tells you roughly what it should cost. A berth in a congested terminal in the week everybody needs it is one of one, and there is no index for it because there is no substitute to average against.</p>
615
+ <p>Which is the same shape as the Russian story in this morning&#x27;s pulse, at national scale. Something like 140 mt of grain exists, the world wants it, and more than 90% of the export capacity that would move it is offline. The crop did not shrink. The bottleneck closed. And the price of the same wheat split into two prices — a world price going up, and a domestic price at roughly 12,000 roubles a tonne going down — with storage and the ability to move sitting in the gap between them.</p>
616
+ <p>That gap is the business.</p>
617
+ <section class="glossec"><h2 id="glossary">Glossary<a class="anchor" href="#glossary" aria-label="Link to this section">#</a></h2><p class="secnote">Every unit, convention and desk expression the show had introduced by episode 11. Nothing said in the audio should ever be unrecoverable.</p><details class="gloss"><summary>Open the glossary<span class="sl">185 terms</span></summary><div class="glossbody"><label class="gsearch"><span class="vh">Search the glossary</span><input type="search" id="gfilter" placeholder="Search terms…" autocomplete="off"></label><div class="gchips" role="group" aria-label="Filter by episode"><button type="button" class="gchip on" data-gep="all">All<span class="gn">185</span></button><button type="button" class="gchip" data-gep="1">Ep 1<span class="gn">37</span></button><button type="button" class="gchip" data-gep="2">Ep 2<span class="gn">15</span></button><button type="button" class="gchip" data-gep="3">Ep 3<span class="gn">11</span></button><button type="button" class="gchip" data-gep="4">Ep 4<span class="gn">13</span></button><button type="button" class="gchip" data-gep="5">Ep 5<span class="gn">12</span></button><button type="button" class="gchip" data-gep="6">Ep 6<span class="gn">13</span></button><button type="button" class="gchip" data-gep="7">Ep 7<span class="gn">14</span></button><button type="button" class="gchip" data-gep="8">Ep 8<span class="gn">16</span></button><button type="button" class="gchip" data-gep="9">Ep 9<span class="gn">18</span></button><button type="button" class="gchip" data-gep="10">Ep 10<span class="gn">18</span></button><button type="button" class="gchip" data-gep="11">Ep 11<span class="gn">18</span></button></div><dl id="glist"><div class="gterm" data-ep="8"><dt>45Z</dt><dd>the US clean fuel production credit, one of the two policy levers that sets American soybean oil demand <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="6"><dt>abandonment</dt><dd>planted area never harvested for grain, lost to drought, flood or a switch to silage <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="2"><dt>ABCD</dt><dd>the four historic majors, Archer Daniels Midland, Bunge, Cargill and Louis Dreyfus <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="2"><dt>arb</dt><dd>the full economics of moving a cargo, buy price plus freight and costs against the sale <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="11"><dt>arb window</dt><dd>the period during which a route&#x27;s economics work, opening and shutting on freight, differentials and FX rather than on flat price <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="2"><dt>asset-heavy</dt><dd>owning the physical chain, which converts a volatile trading margin into a steadier toll <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="2"><dt>asset-light</dt><dd>renting elevators, terminals and plants rather than owning them <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="1"><dt>at</dt><dd>the small word that introduces the offer side (462 bid, at 462 and a half) <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="9"><dt>B50</dt><dd>a blending mandate requiring 50 percent biodiesel in the diesel pool, the level Indonesia moved to in 2026 <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="1"><dt>bag (coffee)</dt><dd>60 kg, how the coffee trade counts volume <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="7"><dt>balance sheet</dt><dd>the one-page supply and demand statement for one crop and one marketing year, built so that supply minus use equals ending stocks and the page closes <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="10"><dt>Baltic Dry Index (BDI)</dt><dd>the Baltic Exchange headline dry bulk freight index, a weighted composite of the Capesize, Panamax, Supramax and Handysize route assessments <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="1"><dt>bid</dt><dd>the price a buyer will pay <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="4"><dt>bill of lading</dt><dd>receipt, contract of carriage and document of title in one, whoever holds it owns the cargo <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="9"><dt>biomass-based diesel</dt><dd>the RFS category covering biodiesel and renewable diesel made from fats and vegetable oils <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="9"><dt>blend wall</dt><dd>the physical or warranty limit on how much conventional biodiesel an engine or fuel system will tolerate <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="11"><dt>blending</dt><dd>combining lots of different quality so the weighted average meets a contract specification, creating value from material nobody else can use <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="8"><dt>board crush</dt><dd>the processing margin implied purely by futures prices, meal price times 0.022 plus oil price times 0.11 minus the bean price, in dollars per bushel <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="11"><dt>bottleneck asset</dt><dd>a facility with no near substitute at the moment it is needed, whose owner sets the price rather than quoting one <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="10"><dt>bunkers</dt><dd>the vessel&#x27;s fuel, priced separately from the hire and carried by the owner on a voyage charter and by the charterer on a time charter <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="1"><dt>bushel</dt><dd>volume measure standardized into weight, 60 lb for soybeans and wheat, 56 lb for corn <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>bushels per tonne</dt><dd>about 36.7 for soybeans and wheat, 39.4 for corn <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="3"><dt>calendar spread</dt><dd>the price difference between two months of the same contract, traded as one instrument at one price <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="4"><dt>cancelling date</dt><dd>the last day of the laycan, after which the counterparty may cancel <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="11"><dt>capacity utilisation</dt><dd>the share of storage capacity actually occupied, the best leading indicator of what harvest basis is about to do <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="10"><dt>Capesize</dt><dd>a bulk carrier of about 180,000 dwt and up, too large for the Panama Canal, used mainly for iron ore and coal <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="3"><dt>carry market (contango)</dt><dd>a curve with later months above nearer ones, the market pays for storage <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="2"><dt>carry-in</dt><dd>stocks left over from the previous season, the starting point of a balance sheet <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="7"><dt>carryout</dt><dd>ending stocks, the desk&#x27;s one-word name for what is left at the end of the marketing year <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="1"><dt>cents per bushel</dt><dd>Chicago grain quoting unit, 4.39 dollars per bushel is spoken four thirty-nine <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="4"><dt>CFR</dt><dd>cost and freight, the seller pays the voyage to a named destination but risk still passes at loading <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="4"><dt>charter party</dt><dd>the contract hiring the vessel, between charterer and shipowner <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="4"><dt>CIF</dt><dd>cost insurance and freight, CFR plus the seller buys the marine insurance the buyer would claim on <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="8"><dt>conversion cost</dt><dd>the variable cost of turning beans into products, gas, power, hexane, labour and maintenance, typically 35 to 50 cents a bushel at a modern plant <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="1"><dt>conversion factors</dt><dd>36.7 bushels per tonne for wheat and beans and 39.4 for corn, so cents per bushel times 0.367 or 0.394 gives dollars per tonne <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="11"><dt>country elevator</dt><dd>the first commercial storage point off the farm, buying from growers and shipping onward by truck, rail or barge <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="9"><dt>CPO</dt><dd>crude palm oil, the unrefined oil pressed from the fruit of the oil palm and the benchmark grade traded internationally <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="7"><dt>Crop Production</dt><dd>the USDA report published alongside WASDE carrying the survey-based yield and area figures <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="5"><dt>cross-hedge</dt><dd>hedging with a contract that is not your grade or your origin, which removes flat price and adds correlation risk <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="8"><dt>crush capacity</dt><dd>installed daily processing volume, a physical constraint that cannot be expanded inside a marketing year <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="1"><dt>cwt</dt><dd>hundredweight, 100 lb, the quoting unit for US rice and cattle <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>cwt (hundredweight)</dt><dd>100 lb, the quoting unit for US rice <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="10"><dt>deadweight (dwt)</dt><dd>the total weight a vessel can carry including cargo, fuel, water, stores and crew, so always more than the cargo she can load <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="3"><dt>Dec over</dt><dd>spread quoting convention that names the expensive leg, December fifteen over means December is 15 cents above the other month <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="1"><dt>deferred</dt><dd>months or shipment windows further out <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="10"><dt>demand-to-supply ratio</dt><dd>the Baltic measure of tonne-mile demand growth against fleet growth, above 1.0 when cargo is outrunning ships <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="2"><dt>demurrage</dt><dd>the penalty owed when a vessel is held beyond the agreed laytime <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="4"><dt>despatch</dt><dd>the reward paid when loading beats laytime, customarily half the demurrage rate <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="1"><dt>differential</dt><dd>the premium or discount to a named futures month, as in November plus 80, the negotiated part of a physical quote <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>differential (basis)</dt><dd>the premium or discount to a named futures month, quoted as plus 80 or minus 20 <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="11"><dt>discount schedule</dt><dd>the published table of price deductions for grain outside a contract&#x27;s grade limits, and the raw material of every blending trade <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="9"><dt>discretionary blending</dt><dd>blending vegetable oil into the fuel pool purely because it is cheaper than gasoil, with no mandate and no subsidy behind it <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="6"><dt>distillers grains</dt><dd>DDGS, the protein co-product of ethanol production, sold back into the feed market <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="1"><dt>done</dt><dd>the word that seals a trade <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="10"><dt>draft</dt><dd>the depth of hull below the waterline, which rises as the ship loads and is the hard physical limit on which berths and rivers a vessel can enter <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="4"><dt>draft survey</dt><dd>weighing a cargo by reading the ship&#x27;s displacement before and after loading <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="8"><dt>draw area</dt><dd>the geographic catchment a crush plant buys its beans from, whose size sets how hard it must bid the local basis <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="5"><dt>durum</dt><dd>the pasta wheat, a separate species with its own thin market <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="11"><dt>elevation margin</dt><dd>the toll an elevator earns for taking grain in, conditioning it and loading it out, separate from any gain on the basis <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="6"><dt>ethanol grind</dt><dd>the rate at which ethanol plants consume corn, which slows when the plant margin turns negative and removes corn demand in steps <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="9"><dt>export levy</dt><dd>a tax charged on a commodity leaving the country, used in Indonesia both to discourage exports of crude palm oil and to fund the domestic blending subsidy <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="5"><dt>falling number</dt><dd>the sprout-damage test, a low number demotes milling wheat to feed wheat <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="9"><dt>FAME</dt><dd>fatty acid methyl ester, the chemical name for conventional biodiesel made by reacting a vegetable oil with methanol <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="9"><dt>FCPO</dt><dd>the Bursa Malaysia Derivatives crude palm oil futures contract, 25 tonnes per lot, quoted in Malaysian ringgit per tonne with a one ringgit tick <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="7"><dt>feed and residual</dt><dd>the inferred demand line that carries livestock feeding together with every measurement error in the rest of the sheet <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="6"><dt>feed floor</dt><dd>the price at which feed substitution demand appears under a grain, corn setting the floor under feed wheat <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="6"><dt>feed wheat</dt><dd>wheat sold on energy and protein rather than milling specification, priced relationally against corn rather than at a flat price <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="1"><dt>firm</dt><dd>a tradable quote that binds if accepted, often with a time limit <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>five percent more or less</dt><dd>the contractual tolerance on cargo size, exercised at the seller&#x27;s option <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="10"><dt>fixing</dt><dd>agreeing the charter of a specific vessel, the moment a freight exposure stops being open <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="1"><dt>flat price</dt><dd>the full outright price level <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="2"><dt>flat price exposure</dt><dd>outright price risk, removed deliberately by hedging so only the basis remains <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="2"><dt>FOB</dt><dd>free on board, the cargo is priced at the load port with the buyer taking it from the ship&#x27;s rail <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="10"><dt>forward freight agreement (FFA)</dt><dd>a cash-settled swap on a Baltic index route or basket over a calendar month, the only liquid way to hedge freight <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="3"><dt>front month</dt><dd>the nearest actively traded contract month, where liquidity is deepest <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="3"><dt>full carry</dt><dd>storage plus interest per month of holding grain, the practical ceiling on a carry spread <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="9"><dt>gasoil</dt><dd>the traded middle distillate that diesel prices off, and the reference against which discretionary blending economics are judged <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="10"><dt>geared vessel</dt><dd>a ship carrying its own cranes, which can therefore discharge at a berth with no shore equipment <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="7"><dt>Grain Stocks</dt><dd>the quarterly USDA survey of physical inventories, from which the feed and residual line is backed out <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="8"><dt>gross processing margin</dt><dd>the industry name for product value minus raw material cost, the crush stated as a margin <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="10"><dt>Handysize</dt><dd>the smallest mainstream dry bulk class at roughly 10,000 to 40,000 dwt, geared and able to work berths larger ships cannot reach <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="5"><dt>hard red spring (HRS)</dt><dd>the 13.5 percent plus Minneapolis wheat bought to lift the protein of a grist <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="5"><dt>hard red winter (HRW)</dt><dd>the 11 to 12.5 percent bread wheat priced at Kansas City, the US wheat that competes with the Black Sea <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="11"><dt>harvest basis</dt><dd>the seasonal low in the cash-minus-futures spread, set when a year of crop arrives in six weeks into a pipe sized to move it over twelve months <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="6"><dt>harvested acres</dt><dd>area actually cut for grain, roughly 8 million acres below planted for US corn, and the denominator that yield is quoted against <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="8"><dt>hexane</dt><dd>the solvent used to extract the last of the oil from the flaked bean, and a real line in the conversion cost <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="1"><dt>hit</dt><dd>your bid was taken by a seller <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>hit the bid</dt><dd>to sell into someone else&#x27;s bid <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="7"><dt>implied disappearance</dt><dd>use derived by subtraction rather than by measurement, the technique that produces the residual lines of a balance sheet <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="6"><dt>inclusion rate</dt><dd>the share of a single ingredient in a feed ration, capped by nutrition and by anti-nutritional factors <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="4"><dt>Incoterms</dt><dd>the standard three-letter trade terms that allocate cost and risk between buyer and seller <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="1"><dt>indication</dt><dd>a guide price that is not firm <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="3"><dt>initial margin</dt><dd>the deposit the clearing house takes per lot when a position is opened <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="5"><dt>inter-exchange spread</dt><dd>the price gap between two exchanges pricing related but different goods, such as Kansas City over Chicago <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="3"><dt>inverse (backwardation)</dt><dd>a curve with nearer months above later ones, the market pays a premium for immediate delivery <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="8"><dt>joint product</dt><dd>two outputs produced in fixed proportion from one input, so that neither can be made without the other <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="9"><dt>kilolitre</dt><dd>one thousand litres, the volume unit Asian governments state biofuel mandates in, converted to tonnes using the fuel&#x27;s density of about 0.88 t per cubic metre for biodiesel <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="1"><dt>laycan</dt><dd>the window during which a vessel may present for loading <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="4"><dt>laytime</dt><dd>the contractually allowed time to load or discharge before demurrage begins <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="1"><dt>lift the offer</dt><dd>to buy from someone else&#x27;s offer <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>lifted</dt><dd>your offer was taken by a buyer <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="3"><dt>limit move</dt><dd>an exchange-set maximum daily price change, trading pauses beyond it <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="2"><dt>line-up</dt><dd>the queue of vessels waiting to load at a port, a key driver of origin basis <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="11"><dt>load-out capacity</dt><dd>how fast an elevator can ship grain out, the lever that decides whether a full house is a crisis or a rotation <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="1"><dt>lot</dt><dd>one futures contract, 5,000 bushels for Chicago grains, the unit desks count positions in <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="7"><dt>marketing year</dt><dd>the accounting year a crop is measured in, September to August for US corn and soybeans and June to May for US wheat <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="5"><dt>Matif milling wheat (EBM)</dt><dd>the Paris contract, 50 tonnes a lot quoted in euros per tonne and delivered into Rouen and Dunkirk <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="8"><dt>meal contract</dt><dd>CBOT soybean meal, 100 short tons, quoted in dollars per short ton <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="1"><dt>metric tonne</dt><dd>2,204.6 lb, the grain trading weight unit outside the US <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>month codes</dt><dd>F G H J K M N Q U V X Z for January through December, the Z is December <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="7"><dt>NASS</dt><dd>USDA&#x27;s National Agricultural Statistics Service, the body running the surveys behind the published numbers <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="7"><dt>new crop</dt><dd>the marketing year about to begin, priced by the contract months that follow the coming harvest <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="4"><dt>nomination</dt><dd>formally naming the performing vessel under a cargo contract <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="8"><dt>NOPA</dt><dd>the National Oilseed Processors Association, whose monthly published crush figure makes US soybean crush a measured line rather than an inferred one <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="4"><dt>notice of readiness (NOR)</dt><dd>the master&#x27;s formal declaration that the vessel has arrived and is ready, it starts the laytime clock <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="1"><dt>offer</dt><dd>the price a seller will accept <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="8"><dt>oil contract</dt><dd>CBOT soybean oil, 60,000 pounds, quoted in cents per pound <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="8"><dt>oil share</dt><dd>soybean oil&#x27;s percentage of the combined value of the meal and oil produced from one bushel <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="9"><dt>oil share trade</dt><dd>long soybean oil against short soybean meal, the clean expression of a view on a fuel policy because it isolates relative product value from the bean basis <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="7"><dt>old crop</dt><dd>the marketing year now ending, priced by the contract months before the new harvest arrives <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="9"><dt>olein and stearin</dt><dd>the liquid and solid fractions palm separates into when refined, sold into cooking oil and into fats respectively <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="10"><dt>P7 and P8</dt><dd>Baltic Panamax route codes for US Gulf to Qingdao and Santos to Qingdao, the two assessments that set the soybean origin arb <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="10"><dt>Panamax and Kamsarmax</dt><dd>the 75,000 to 82,000 dwt workhorse of the grain and coal trades, usually gearless and drawing about fourteen metres fully loaded <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="2"><dt>paper</dt><dd>exchange futures and options, used by a physical desk to hedge rather than to speculate <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="10"><dt>part cargo</dt><dd>loading a vessel below capacity because the berth, river or canal cannot take her full draft <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="11"><dt>pass-fail specification</dt><dd>a contract term that cannot be met on average, such as contamination, infestation or an unapproved genetic event, where blending increases the affected tonnage instead of diluting it <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="2"><dt>physical (cash)</dt><dd>real cargoes under contract with specs and load windows, as opposed to paper <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="8"><dt>plant crush</dt><dd>what a physical plant actually earns, the board crush adjusted for bean, meal and oil basis and net of conversion cost <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="6"><dt>planted acres</dt><dd>area sown, the number that moves on farmer decisions and USDA area surveys <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="1"><dt>point</dt><dd>one hundredth of a cent per pound, how softs desks count moves <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>point (softs)</dt><dd>one hundredth of a cent per pound, so up 300 points means up 3 cents <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="6"><dt>pollination</dt><dd>the roughly one-week corn window in mid-July in the northern hemisphere after which the ear count is fixed and no forecast can change it <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="5"><dt>price assessment</dt><dd>a published daily price built by surveying brokers and exporters, used where no futures contract exists <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="1"><dt>prompt</dt><dd>the nearby month or shipment window, ready to move now <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="5"><dt>protein spec</dt><dd>the contractual protein percentage that turns the word wheat into a price <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="8"><dt>putting on the crush</dt><dd>buying bean futures and selling meal and oil futures against them in a 10-11-9 lot ratio, which fixes the processing margin <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="5"><dt>quality basis</dt><dd>the spread between the grade you own and the grade the futures contract delivers <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="6"><dt>ration</dt><dd>the formulated feed mix a mill grinds, in which every ingredient carries an inclusion limit and a substitution price against the others <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="11"><dt>receiving capacity</dt><dd>how fast an elevator can take grain in, in bushels or tonnes per hour, a different constraint from how much it can hold <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="9"><dt>renewable diesel</dt><dd>hydrotreated vegetable oil or HVO, a drop-in diesel chemically identical to fossil diesel and not limited by a blend wall, unlike FAME <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="11"><dt>replacement value</dt><dd>what it would cost to buy back today what you have just sold, the test of whether a price was genuinely good <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="2"><dt>residual</dt><dd>a figure obtained by subtraction, such as ending stocks, which absorbs any error in the larger numbers almost in full <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="8"><dt>reverse crush</dt><dd>the opposite position, short beans and long products, used when a processor expects to idle capacity rather than run it <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="9"><dt>RFS</dt><dd>the US Renewable Fuel Standard, the rule that sets annual minimum volumes of renewable fuel that must be blended into American transport fuel <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="9"><dt>RIN</dt><dd>renewable identification number, the tradable compliance certificate generated with each gallon of renewable fuel, at 1.5 RINs per gallon of biodiesel, which is why a mandate volume must be checked for basis before it is multiplied by a feedstock factor <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="10"><dt>river-sea vessel</dt><dd>a small shallow-draft ship built to work both inland waterways and short sea legs, the only class able to load in the Sea of Azov <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="3"><dt>roll</dt><dd>closing a hedge in one month and reopening it further out, executed as a spread trade <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="8"><dt>run rate</dt><dd>the share of installed capacity a plant is actually operating at, the lever a crusher pulls when margins move <span class="gep">ep 8</span></dd></div><div class="gterm" data-ep="9"><dt>RVO</dt><dd>renewable volume obligation, the share of the national mandate assigned to an individual refiner or importer <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="6"><dt>safrinha</dt><dd>Brazil&#x27;s second corn crop, planted February to March into soybean stubble and pollinating April to May, about three quarters of Brazilian corn production <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="11"><dt>segregation</dt><dd>keeping identities and grades physically apart in separate bins, the precondition for being able to blend deliberately later <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="1"><dt>short ton</dt><dd>2,000 lb, used by US soybean meal, about 10 percent lighter than a metric tonne <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="11"><dt>shrink</dt><dd>weight lost when grain is dried to a safe keeping moisture, deducted as a percentage and a real cost to whoever owns the grain <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="5"><dt>soft red winter (SRW)</dt><dd>the low-protein soft wheat the Chicago contract delivers, used for cakes biscuits and crackers <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="2"><dt>space time form</dt><dd>the three transformations a merchant is paid for, geography, storage and processing <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="9"><dt>standing bid</dt><dd>demand that is present regardless of price because it is created by legal obligation rather than by choice <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="4"><dt>statement of facts</dt><dd>the port log of events both sides use to fight laytime claims <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="2"><dt>stocks-to-use</dt><dd>ending stocks divided by total use, the market&#x27;s tension gauge <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="11"><dt>storage tariff</dt><dd>the published charge for commercial storage, quoted in cents per bushel per month or per day, or in dollars per tonne per month <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="9"><dt>substitution spread</dt><dd>the price gap between two competing vegetable oils, which sets the point at which a refiner reformulates from one to the other <span class="gep">ep 9</span></dd></div><div class="gterm" data-ep="10"><dt>Supramax</dt><dd>a dry bulk vessel of roughly 50,000 to 60,000 dwt, normally carrying its own cranes, working minor bulks and shorter legs <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="11"><dt>temporary storage</dt><dd>ground piles, bunkers and bags used when permanent capacity is full, cheap per bushel to build and expensive per bushel in spoilage and rehandling <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="11"><dt>terminal elevator</dt><dd>large storage at a port, river or rail hub whose business is blending, load-out speed and access rather than farm origination <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="5"><dt>test weight</dt><dd>the density measure telling a miller how much flour comes out of a tonne <span class="gep">ep 5</span></dd></div><div class="gterm" data-ep="11"><dt>throughput</dt><dd>the volume moved through a facility in a period, the number that actually pays for a fixed asset because capacity earns nothing standing still <span class="gep now">ep 11</span></dd></div><div class="gterm" data-ep="1"><dt>tick</dt><dd>smallest price increment, a quarter cent per bushel in Chicago grains, worth 12.50 dollars per lot <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="3"><dt>ticker</dt><dd>the short screen code a contract is spoken by, ZW wheat, ZC corn, ZS soybeans, ZM meal, ZL oil, KC coffee, SB sugar, CT cotton <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="10"><dt>time charter</dt><dd>hiring the vessel itself for a period at a price in dollars per day, with the charterer taking speed, weather, port delay and usually fuel <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="10"><dt>time charter equivalent (TCE)</dt><dd>a voyage&#x27;s economics restated as dollars per day, which is how a shipowner compares one employment against another <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="7"><dt>total supply</dt><dd>carry-in plus production plus imports, the top block of a balance sheet <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="7"><dt>total use</dt><dd>domestic use plus exports, the bottom block of a balance sheet <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="7"><dt>trade average</dt><dd>the published mean of analysts&#x27; pre-report estimates, and therefore the expectation already contained in the price <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="6"><dt>trend yield</dt><dd>the yield a crop would produce on normal weather, the baseline against which a weather premium is measured <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="3"><dt>variation margin</dt><dd>the daily cash settlement of a position mark to market, paid the same day <span class="gep">ep 3</span></dd></div><div class="gterm" data-ep="10"><dt>voyage charter</dt><dd>hiring a vessel to move a stated cargo between named ports for a price in dollars per tonne, with the owner carrying the voyage and delay risk <span class="gep">ep 10</span></dd></div><div class="gterm" data-ep="2"><dt>war-risk premium</dt><dd>an insurance surcharge on a vessel&#x27;s hull value for sailing into a conflict zone, quoted as a percentage <span class="gep">ep 2</span></dd></div><div class="gterm" data-ep="1"><dt>WASDE</dt><dd>the USDA monthly World Agricultural Supply and Demand Estimates report <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>washed out</dt><dd>offsetting trades cancel each other and only the price difference is settled <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>washout</dt><dd>cancelling two offsetting physical contracts by settling the price difference instead of shipping <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="6"><dt>weather premium</dt><dd>the gap between where a crop trades and where it would trade at trend yield, the price of a distribution of outcomes rather than of a forecast <span class="gep">ep 6</span></dd></div><div class="gterm" data-ep="4"><dt>weather working day</dt><dd>a laytime day that counts only when weather permits cargo work <span class="gep">ep 4</span></dd></div><div class="gterm" data-ep="7"><dt>whisper number</dt><dd>the expectation the market is actually trading into a report, which can sit away from the published trade average <span class="gep">ep 7</span></dd></div><div class="gterm" data-ep="1"><dt>work</dt><dd>leave an order resting with a broker <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>work an order</dt><dd>leave an order resting at your price and wait <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="1"><dt>workable</dt><dd>the quoted price is negotiable <span class="gep">ep 1</span></dd></div></dl><p class="gnone" hidden>No term matches that.</p></div></details></section>
618
+ </main>
619
+ <nav class="epnav" aria-label="Episodes">
620
+ <a class="epprev" href="ep10.html"><span class="dir">← Previous</span><span class="ept">Freight: Dry Bulk and Chartering</span><span class="epn">Episode 10</span></a>
621
+ <a class="epnext" href="ep12.html"><span class="dir">Next →</span><span class="ept">Coffee: The Market</span><span class="epn">Episode 12</span></a>
622
+ </nav>
623
+ <details class="archive"><summary>All episodes<span class="sl">13 so far</span></summary><ol class="arclist"><li><a href="ep01.html"><b>01</b> The Units and the Language of the Desk</a></li><li><a href="ep02.html"><b>02</b> What a Merchant Does, and Why Basis Is the Whole Game</a></li><li><a href="ep03.html"><b>03</b> Futures Plumbing and the Shape of the Curve</a></li><li><a href="ep04.html"><b>04</b> The Physical Chain, End to End</a></li><li><a href="ep05.html"><b>05</b> Wheat: The Map and the Screens</a></li><li><a href="ep06.html"><b>06</b> Corn, Crop Calendars and Weather Risk</a></li><li><a href="ep07.html"><b>07</b> WASDE and Building a Balance Sheet</a></li><li><a href="ep08.html"><b>08</b> The Soybean Complex and the Crush</a></li><li><a href="ep09.html"><b>09</b> Vegetable oils and biofuels</a></li><li><a href="ep10.html"><b>10</b> Freight: Dry Bulk and Chartering</a></li><li class="here" aria-current="page"><a href="ep11.html"><b>11</b> Storage, Elevation and Trade Flows</a></li><li><a href="ep12.html"><b>12</b> Coffee: The Market</a></li><li><a href="ep13.html"><b>13</b> Coffee: Differentials, PTBF and Volatility</a></li></ol></details>
624
+ <footer>
625
+ <span class="sig"><b>Soft Commodity Trading</b> — a daily briefing on physical commodity trading.</span>
626
+ <span><a href="https://storage.googleapis.com/podcast-audio-2647223968/index.html">All episodes</a> · <a href="https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/feed.xml">RSS</a></span>
627
+ </footer>
628
+ </div>
629
+ <script>
630
+ (function(){
631
+ var doc = document.documentElement;
632
+
633
+ /* theme */
634
+ var btn = document.querySelector('.themebtn');
635
+ if(btn) btn.addEventListener('click', function(){
636
+ var next = doc.getAttribute('data-theme') === 'dark' ? 'light' : 'dark';
637
+ doc.setAttribute('data-theme', next);
638
+ try{ localStorage.setItem('cdd-theme', next); }catch(e){}
639
+ });
640
+
641
+ /* reading progress */
642
+ var bar = document.getElementById('bar'), ticking = false;
643
+ function progress(){
644
+ var h = doc.scrollHeight - innerHeight;
645
+ bar.style.width = (h > 0 ? Math.min(100, Math.max(0, scrollY / h * 100)) : 0) + '%';
646
+ ticking = false;
647
+ }
648
+ if(bar){
649
+ addEventListener('scroll', function(){
650
+ if(!ticking){ ticking = true; requestAnimationFrame(progress); }
651
+ }, {passive:true});
652
+ addEventListener('resize', progress, {passive:true});
653
+ progress();
654
+ }
655
+
656
+ /* contents: mark the section being read */
657
+ var links = [].slice.call(document.querySelectorAll('.toc a'));
658
+ if(links.length && 'IntersectionObserver' in window){
659
+ var map = {};
660
+ links.forEach(function(a){
661
+ var el = document.getElementById(decodeURIComponent(a.hash.slice(1)));
662
+ if(el) map[el.id] = a.parentNode;
663
+ });
664
+ var seen = [];
665
+ var io = new IntersectionObserver(function(entries){
666
+ entries.forEach(function(en){
667
+ var id = en.target.id, at = seen.indexOf(id);
668
+ if(en.isIntersecting){ if(at < 0) seen.push(id); }
669
+ else if(at >= 0){ seen.splice(at, 1); }
670
+ });
671
+ links.forEach(function(a){ a.parentNode.classList.remove('on'); });
672
+ if(seen.length && map[seen[0]]) map[seen[0]].classList.add('on');
673
+ }, {rootMargin:'-64px 0px -70% 0px'});
674
+ Object.keys(map).forEach(function(id){
675
+ var el = document.getElementById(id); if(el) io.observe(el);
676
+ });
677
+ }
678
+
679
+ /* playback speed */
680
+ var audio = document.querySelector('audio');
681
+ [].forEach.call(document.querySelectorAll('.rate'), function(b){
682
+ b.addEventListener('click', function(){
683
+ if(!audio) return;
684
+ audio.playbackRate = parseFloat(b.dataset.rate);
685
+ [].forEach.call(document.querySelectorAll('.rate'), function(o){
686
+ o.setAttribute('aria-pressed', String(o === b));
687
+ });
688
+ });
689
+ });
690
+
691
+ /* solutions: reveal all / hide all */
692
+ [].forEach.call(document.querySelectorAll('[data-solnall]'), function(b){
693
+ b.addEventListener('click', function(){
694
+ var open = b.dataset.solnall === 'open';
695
+ [].forEach.call(document.querySelectorAll('details.soln'), function(d){
696
+ d.open = open;
697
+ });
698
+ });
699
+ });
700
+
701
+ /* an answer linked to directly should already be open */
702
+ function openTarget(){
703
+ var id = location.hash.slice(1);
704
+ if(!id) return;
705
+ var el = document.getElementById(decodeURIComponent(id));
706
+ while(el){
707
+ if(el.tagName === 'DETAILS') el.open = true;
708
+ el = el.parentElement;
709
+ }
710
+ }
711
+ addEventListener('hashchange', openTarget); openTarget();
712
+
713
+ /* glossary: an episode chip and a search box, which compose */
714
+ var gf = document.getElementById('gfilter'), list = document.getElementById('glist');
715
+ if(list){
716
+ var rows = [].slice.call(list.querySelectorAll('.gterm'));
717
+ var chips = [].slice.call(document.querySelectorAll('.gchip'));
718
+ var none = document.querySelector('.gnone');
719
+ var pick = 'all';
720
+ function apply(){
721
+ var q = gf ? gf.value.trim().toLowerCase() : '', hits = 0;
722
+ rows.forEach(function(r){
723
+ var on = (pick === 'all' || r.dataset.ep === pick) &&
724
+ (!q || r.textContent.toLowerCase().indexOf(q) > -1);
725
+ r.hidden = !on; if(on) hits++;
726
+ });
727
+ if(none) none.hidden = hits > 0;
728
+ }
729
+ if(gf) gf.addEventListener('input', apply);
730
+ chips.forEach(function(c){
731
+ c.addEventListener('click', function(){
732
+ pick = c.dataset.gep;
733
+ chips.forEach(function(o){ o.classList.toggle('on', o === c); });
734
+ apply();
735
+ });
736
+ });
737
+ }
738
+
739
+ /* printing: paper has no disclosure triangles */
740
+ var reopen = [];
741
+ addEventListener('beforeprint', function(){
742
+ reopen = [].filter.call(document.querySelectorAll('details'), function(d){
743
+ return !d.open;
744
+ });
745
+ reopen.forEach(function(d){ d.open = true; });
746
+ });
747
+ addEventListener('afterprint', function(){
748
+ reopen.forEach(function(d){ d.open = false; });
749
+ reopen = [];
750
+ });
751
+ })();
752
+ </script>
753
+ </body>
754
+ </html>