@sdelsad/commodity-desk-daily 1.0.37 → 1.0.38
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.
- package/covered.md +1 -1
- package/ep13.html +728 -0
- package/ep13_chart1.png +0 -0
- package/ep13_chart2.png +0 -0
- package/ep13_chart3.png +0 -0
- package/feed.xml +7 -4
- package/package.json +1 -1
package/covered.md
CHANGED
|
@@ -14,4 +14,4 @@ Running log. Read before writing a new episode: avoid repeating material, and on
|
|
|
14
14
|
- **Ep 10** (Fri) — *Freight: Dry Bulk and Chartering*: Freight and chartering (see ep10 notes). Pulse: Thu 20 Aug CBOT closes, corn led with Dec above five dollars, Pro Farmer Illinois corn 184.2 vs 199.6 year-ago, BDI 2791; Pulse: Sea of Azov closed to Russian grain, read as a vessel-class constraint rather than a tonnage constraint.
|
|
15
15
|
- **Ep 11** (Mon) — *Storage, Elevation and Trade Flows*: Ep 11 — Storage, Elevation and Trade Flows: the elevator as a seller of space rather than a speculator; elevation margin versus basis-and-carry as two separate businesses; storage tariff in cents per bushel per month and shrink as a percentage; the posted bid as a queue-management tool rather than a price; worked example buying corn at 45 under Dec and selling at 15 under Mar with Mar 18 over Dec, restated against one month as a 48c basis gain less 7.5c interest and 3c shrink for 37.5c net on 3m bu; the carry belongs only to whoever has a bin (ep 3 callback); US storage capacity flat at 25.3 bn bu since 2019 against a 27.5 bn trend, on-farm 13.6 and off-farm 11.9, 80% on-farm utilisation at 1 Dec 2025 and ~5% system surplus, tightest since 1988; temporary storage as the cost that floors the basis; blending as the cheapest form change, worked example 40kt at 12.4% and 20kt at 11.2% blending to exactly 12.0% at 244 against a 250 sale for 6 USD/t gross and 3 net = 180,000 on the cargo; why the blender sets the discount; protein moisture and test weight average while aflatoxin, infestation, unapproved events and falling number do not; replacement value and the bottleneck asset as the answer to why merchants rent ships but own elevators. Pulse: Fri 21 Aug closes Dec corn 508.5 +5 (2.5-year high, +25.25 on week), Nov beans 1239.5 +3 (+47 on week), Sep meal 317.70, Sep oil 69.35, Chi Sep wheat 681.5, KC 756.25, MGE 698.25; Pro Farmer final tour corn 173.2 bu/ac and 15.344 bn bu against USDA 180.7, beans 53.3 against 52.7; GEO escalation on the Black Sea — the storage transmission: 90%+ of Russian Azov-Black Sea export capacity offline, three Novorossiysk terminals suspended, Taman since late July, Azov navigation suspended since July, one working deepwater terminal in a basin that moved 46.3 mt last season, ~140 mt harvested, exporters stopped buying, grain backing up inland and 4th-class Russian wheat at ~12,000 roubles/t against 15,000 a year ago — world price up and farmgate price down in the same crop.
|
|
16
16
|
- **Ep 12** (Wed) — *Coffee: The Market*: Arabica and robusta are two different plants on two different exchanges in two different units, and on Monday one settled at 2.2 times the other. Then certified stocks: why 226,242 bags, under half a day of world consumption, can move a global market five percent in a session.
|
|
17
|
-
- **Ep 13** (Fri) — *Coffee: Differentials, PTBF and Volatility*:
|
|
17
|
+
- **Ep 13** (Fri) — *Coffee: Differentials, PTBF and Volatility*: A coffee contract does not name a price, it names a differential — and an exporter's entire business fits inside eleven cents a pound. Then price-to-be-fixed: how one trade becomes two decisions, and why fixing risk is sold as market risk and settled as credit risk.
|
package/ep13.html
ADDED
|
@@ -0,0 +1,728 @@
|
|
|
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 13 — Coffee: Differentials, PTBF and Volatility · Soft Commodity Trading</title>
|
|
7
|
+
<meta name="description" content="A coffee contract does not name a price — it names a differential, and that is where the entire business lives.">
|
|
8
|
+
<meta name="author" content="Sébastien Delsad">
|
|
9
|
+
<link rel="canonical" href="https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/ep13.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 13 — Coffee: Differentials, PTBF and Volatility">
|
|
13
|
+
<meta property="og:description" content="A coffee contract does not name a price — it names a differential, and that is where the entire business lives.">
|
|
14
|
+
<meta property="og:url" content="https://storage.googleapis.com/podcast-audio-2647223968/commodity-desk-daily/ep13.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://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.37/ep13.mp3">
|
|
18
|
+
<meta property="og:audio:type" content="audio/mpeg">
|
|
19
|
+
<meta property="article:published_time" content="2026-08-28">
|
|
20
|
+
<meta name="twitter:card" content="summary_large_image">
|
|
21
|
+
<meta name="twitter:title" content="Ep 13 — Coffee: Differentials, PTBF and Volatility">
|
|
22
|
+
<meta name="twitter:description" content="A coffee contract does not name a price — it names a differential, and that is where the entire business lives.">
|
|
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/ep13.html",
|
|
33
|
+
"name": "Ep 13 — Coffee: Differentials, PTBF and Volatility",
|
|
34
|
+
"episodeNumber": 13,
|
|
35
|
+
"duration": "PT11M07S",
|
|
36
|
+
"description": "A coffee contract does not name a price — it names a differential, and that is where the entire business lives.",
|
|
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://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.37/ep13.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-28"
|
|
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 13</span>
|
|
397
|
+
</div>
|
|
398
|
+
<h1>Coffee: Differentials, PTBF and Volatility</h1>
|
|
399
|
+
<p class="dek">A coffee contract does not name a price — it names a differential, and that is where the entire business lives.</p>
|
|
400
|
+
<div class="meta">Friday 28 August 2026 · <b>11 min 07</b></div>
|
|
401
|
+
<div class="listen">
|
|
402
|
+
<audio controls preload="none" src="https://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.37/ep13.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://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.37/ep13.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="#solutions">Solutions</a></li><li class="t2"><a href="#the-number-in-the-contract-is-not-a-price">The number in the contract is not a price</a></li><li class="t2"><a href="#how-it-is-quoted">How it is quoted</a></li><li class="t2"><a href="#price-to-be-fixed">Price to be fixed</a></li><li class="t2"><a href="#three-things-he-is-not-flat-on">Three things he is not flat on</a></li><li class="t2"><a href="#the-anatomy-of-a-rally-and-two-ways-to-lose-on-i">The anatomy of a rally, and two ways to lose on it</a></li><li class="t2"><a href="#glossary">Glossary</a></li></ol></nav>
|
|
414
|
+
</header>
|
|
415
|
+
<main>
|
|
416
|
+
<p><strong>Coffee's visible inventory fell to a twenty-seven-year low on Thursday, and the price fell four percent on the same tape.</strong></p>
|
|
417
|
+
<div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Market</th><th>Contract</th><th>Price</th><th class="num">Change</th></tr></thead><tbody><tr><td>Arabica (ICE)</td><td>Dec 26</td><td>309.65 c/lb</td><td class="num"><span class="mv down">−12.50c / −3.88%</span></td></tr><tr><td>Robusta (ICE)</td><td>Nov 26</td><td>$3,555/t</td><td class="num"><span class="mv down">−$59 / −1.63%</span></td></tr><tr><td>Chicago wheat</td><td>Sep 26</td><td>742.75 c/bu</td><td class="num"><span class="mv up">+12¼c</span></td></tr><tr><td>KC wheat</td><td>Sep 26</td><td>803.50 c/bu</td><td class="num"><span class="mv up">+11½c</span></td></tr><tr><td>Corn (CBOT)</td><td>Sep 26</td><td>510.25 c/bu</td><td class="num"><span class="mv down">−3¾c</span></td></tr><tr><td>Soybeans (CBOT)</td><td>Sep 26</td><td>1256.50 c/bu</td><td class="num"><span class="mv up">+2¼c</span></td></tr></tbody></table></div>
|
|
418
|
+
<p>Certified arabica stocks at the exchange fell again, to <strong>224,011 bags</strong> — the lowest in twenty-seven years. On Monday that same story was worth five percent to the upside. By Thursday it was worth nothing, and December arabica has given back thirty-two cents in three sessions.</p>
|
|
419
|
+
<p>What changed is not the warehouse. It is the crop. Brazil is finishing late but finishing large, and the forecasts now say record. Cooxupé, the country's largest cooperative, had members 87.5% harvested at 21 August against 91.3% a year earlier — late, but no longer alarming. Safras & Mercado put the whole 2026/27 harvest at 90% done on 12 August against 97% last year. Vietnam supplies the other half of the divergence: January-to-July robusta exports ran 21.1% above last year, and certified robusta stocks are at a nine-month high while arabica's are at a generational low. Same drink, opposite warehouses.</p>
|
|
420
|
+
<figure class="chartfig">
|
|
421
|
+
<figcaption class="charttitle">The warehouse stopped mattering</figcaption>
|
|
422
|
+
<svg class="chart" viewBox="0 0 640 356" width="100%" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">
|
|
423
|
+
<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>
|
|
424
|
+
<line class="grid" x1="56" y1="312.0" x2="622" y2="312.0" opacity=".45"/>
|
|
425
|
+
<text class="axis" x="46" y="316.0" text-anchor="end">87.5</text>
|
|
426
|
+
<line class="grid" x1="56" y1="264.3" x2="622" y2="264.3" opacity=".45"/>
|
|
427
|
+
<text class="axis" x="46" y="268.3" text-anchor="end">90</text>
|
|
428
|
+
<line class="grid" x1="56" y1="216.6" x2="622" y2="216.6" opacity=".45"/>
|
|
429
|
+
<text class="axis" x="46" y="220.6" text-anchor="end">92.5</text>
|
|
430
|
+
<line class="grid" x1="56" y1="168.9" x2="622" y2="168.9" opacity=".45"/>
|
|
431
|
+
<text class="axis" x="46" y="172.9" text-anchor="end">95</text>
|
|
432
|
+
<line class="grid" x1="56" y1="121.2" x2="622" y2="121.2" opacity=".45"/>
|
|
433
|
+
<text class="axis" x="46" y="125.2" text-anchor="end">97.5</text>
|
|
434
|
+
<line class="grid" x1="56" y1="73.5" x2="622" y2="73.5" opacity=".45"/>
|
|
435
|
+
<text class="axis" x="46" y="77.5" text-anchor="end">100</text>
|
|
436
|
+
<text class="unit" x="622" y="42" text-anchor="end">rebased to 100 at 24 August</text>
|
|
437
|
+
<text class="axis" x="56.0" y="332" text-anchor="middle">24 Aug</text>
|
|
438
|
+
<text class="axis" x="622.0" y="332" text-anchor="end">27 Aug</text>
|
|
439
|
+
<path class="ln" d="M56.0 73.5 L622.0 252.3" stroke="var(--c-a)"/>
|
|
440
|
+
<circle cx="622.0" cy="252.3" r="3.4" fill="var(--c-a)"/>
|
|
441
|
+
<path class="ln" d="M56.0 73.5 L622.0 92.3" stroke="var(--c-b)"/>
|
|
442
|
+
<circle cx="622.0" cy="92.3" r="3.4" fill="var(--c-b)"/>
|
|
443
|
+
<rect x="56" y="22" width="18" height="3" rx="1.5" fill="var(--c-a)"/>
|
|
444
|
+
<text class="lg" x="81" y="29">Dec arabica</text>
|
|
445
|
+
<rect x="175.2" y="22" width="18" height="3" rx="1.5" fill="var(--c-b)"/>
|
|
446
|
+
<text class="lg" x="200.2" y="29">Certified stock</text>
|
|
447
|
+
</svg>
|
|
448
|
+
<figcaption class="chartcap">Certified stock barely moved while the price fell nine percent. When an inventory story stops moving the tape, the market has started pricing something else — here, the crop. <span class="chartsrc">ICE arabica December settlements and ICE certified arabica stocks, 24 and 27 August 2026</span></figcaption>
|
|
449
|
+
</figure>
|
|
450
|
+
<p>In the grains, wheat took the lead again, with Chicago and Kansas City both up more than eleven cents and corn slipping.</p>
|
|
451
|
+
<p><strong>The policy read: a tariff line that never touches the board.</strong> The United States imposed a 25% Section 301 tariff on Brazilian goods on 22 July, and coffee sits among more than 1,600 exempt lines. The mechanism matters more than the headline. A tariff is levied on delivered value, so it can never appear in a New York settlement — it appears in the differential a US buyer will pay for a Brazilian bag. With the exemption, that bag costs a New York roaster what it costs a Hamburg roaster, and American buyers stop bidding Colombian and Central American coffee away from Europe. Watch the same channel in December, when the EU deforestation rules finally apply and split every origin differential into compliant and non-compliant.</p>
|
|
452
|
+
<h1>Key takeaways</h1>
|
|
453
|
+
<ul><li>A coffee contract does not name a price. It names a differential against a futures month, and that differential is the only number the two parties actually negotiated.</li><li>The board prices arabica in general. The differential prices <em>this</em> coffee — this crop, this screen, this shipment month, these roads.</li><li>An exporter's whole business fits inside eleven cents a pound. After milling, freight and finance he keeps about three. The flat price never enters the calculation.</li><li>Price-to-be-fixed splits one trade into two decisions: the differential now, the futures price later. A desk that believes it is hedged is frequently hedged on only one of them.</li><li>A properly hedged exporter is flat on price whenever the buyer fixes. What he is not flat on is cash, the roll and credit.</li><li>The right to fix is an option, and it is granted for free. Its value is the whole distance the market travels before fixation.</li><li>Fixing risk is sold as market risk and settled as credit risk. The exposure grows every cent the market moves against the unfixed party, and that party has posted nothing.</li><li>Rolling a short hedge into a cheaper month costs money cent for cent. In an inverse, waiting for a buyer to fix has a price tag.</li><li>A frost rally prices the worst plausible case immediately and gives it back slowly. That asymmetry is why the rally is vertical and the retracement is a slope.</li><li>The fund loses on the way down; the physical desk loses on the way up. Direction is the fund's risk. Margin, differentials and timing are the desk's.</li></ul>
|
|
454
|
+
<h1>Vocabulary</h1>
|
|
455
|
+
<div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Term</th><th>What it means</th></tr></thead><tbody><tr><td><strong>price-to-be-fixed (PTBF)</strong></td><td>A physical contract where quantity, quality, shipment and differential are agreed now and the futures price is set later</td></tr><tr><td><strong>fixation</strong></td><td>The act of setting the futures leg of a PTBF contract, which converts the differential into a flat price</td></tr><tr><td><strong>buyer's call</strong></td><td>A PTBF contract in which the buyer holds the right to choose the moment of fixation</td></tr><tr><td><strong>seller's call</strong></td><td>A PTBF contract in which the seller holds that right</td></tr><tr><td><strong>fixation window</strong></td><td>The period inside which the fixing party must declare, normally ending before the referenced contract's notice period</td></tr><tr><td><strong>outright</strong></td><td>A contract agreed at a flat price rather than as a differential, with no fixation to come</td></tr><tr><td><strong>fixing risk</strong></td><td>The exposure created by the gap between agreeing a differential and setting the price, carried as market risk by the fixing party and as credit risk by the other</td></tr><tr><td><strong>first notice day</strong></td><td>The first day on which the holder of a short futures position may tender delivery, and the practical deadline for rolling a hedge</td></tr><tr><td><strong>roll cost</strong></td><td>The gain or loss from moving a hedge to a later month, equal to the spread between them and negative for a short hedge in an inverted market</td></tr><tr><td><strong>green coffee</strong></td><td>Unroasted milled coffee beans, the form in which all internationally traded coffee moves</td></tr><tr><td><strong>farmgate price</strong></td><td>What the grower is actually paid at the farm, after the intermediary's margin and inland costs are taken out of the export value</td></tr><tr><td><strong>cooperative (co-op)</strong></td><td>A grower-owned body that pools, mills and markets members' coffee, and often the counterparty an exporter actually buys from</td></tr><tr><td><strong>managed money</strong></td><td>Speculative funds reported as non-commercial in the exchange's positioning data, which trade direction rather than physical</td></tr><tr><td><strong>net length</strong></td><td>A fund category's long positions less its short positions, the number that says how much of a rally is positioning</td></tr><tr><td><strong>retracement</strong></td><td>The partial give-back of a price move once the fear that produced it fails to be confirmed</td></tr><tr><td><strong>Section 301</strong></td><td>The US statute under which country-specific tariffs are imposed after a trade-practice investigation, applied to Brazilian goods from 22 July 2026 with coffee exempt</td></tr><tr><td><strong>EUDR</strong></td><td>The EU deforestation regulation, which from December 2026 requires proof that a shipment's land was not deforested, and which will split origin differentials into compliant and non-compliant</td></tr></tbody></table></div>
|
|
456
|
+
<h1>Quiz</h1>
|
|
457
|
+
<p id="q1" class="qq"><strong>Q1.</strong> On Monday 24 August a Rotterdam roaster buys 25 lots of Brazilian natural — 937,500 lb — from an exporter at <strong>December plus 22.00</strong>, buyer's call, fixation any time up to 15 November. December arabica settled 341.65 that day. The exporter hedges the same afternoon by selling 25 December futures at 341.65. On Thursday 27 August December settles 309.65 and the roaster fixes there.</p>
|
|
458
|
+
<p>(a) What does the roaster pay, in cents per pound and in dollars, and what would he have paid had he fixed on Monday?</p>
|
|
459
|
+
<p>(b) Set out the exporter's flat-price profit and loss across both legs and show what it comes to.</p>
|
|
460
|
+
<p>(c) The roaster's risk system has shown "25 lots of coffee bought" since Monday. State the position he was actually carrying between Monday and Thursday, and how it should have appeared on the sheet.</p>
|
|
461
|
+
<p>(d) Now run the same structure backwards. Suppose the contract had instead been signed in late June, when December was 255.25, and was still unfixed on Monday at 341.65. Compute the exporter's mark-to-market credit exposure to that unfixed buyer, and say why it is not a market risk.</p>
|
|
462
|
+
<p id="q2" class="qq"><strong>Q2.</strong> An exporter has sold 10 lots price-to-be-fixed against December and hedged by selling 10 December futures. In mid-November the buyer still has not fixed, so the hedge must be rolled into March. March is trading 12.00 cents under December. What does that roll do to the exporter's hedge, in cents per pound and in dollars?</p>
|
|
463
|
+
<p id="q3" class="qq"><strong>Q3.</strong> <em>(Ep 12)</em> Certified arabica stocks fell to a twenty-seven-year low of 224,011 bags on Thursday. Using the valve from episode 12, say what that number tells you about the physical differentials for the deliverable origins.</p>
|
|
464
|
+
<p id="q4" class="qq"><strong>Q4.</strong> <em>(Ep 10)</em> Episode 10 established that a Baltic index is a broker panel's route assessments converted into a time charter equivalent, and that an FFA hedges that basket rather than your voyage. A coffee exporter moves his crop in 20-foot containers on liner services out of Santos. Say whether a Panamax FFA would hedge his freight cost, and why.</p>
|
|
465
|
+
<p><strong>Conversion drill.</strong> A container is loaded with 320 bags of green coffee at 60 kg each. Convert the load to pounds using the mental method.</p>
|
|
466
|
+
<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>
|
|
467
|
+
<details class="soln" id="a1"><summary><span class="qn">Q1</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>The whole question is built on one idea: in a PTBF contract the differential and the price are two separate decisions, taken on two different days, by two different parties.</p>
|
|
468
|
+
<p><em>(a) What the roaster pays.</em></p>
|
|
469
|
+
<div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Fixing date</th><th class="num">December</th><th class="num">Differential</th><th>Flat price</th><th class="num">On 937,500 lb</th></tr></thead><tbody><tr><td>Monday 24 Aug</td><td class="num">341.65</td><td class="num"><span class="mv up">+22.00</span></td><td>363.65 c/lb</td><td class="num">$3,409,218.75</td></tr><tr><td>Thursday 27 Aug</td><td class="num">309.65</td><td class="num"><span class="mv up">+22.00</span></td><td>331.65 c/lb</td><td class="num">$3,109,218.75</td></tr></tbody></table></div>
|
|
470
|
+
<p>Waiting three days saved <strong>32.00 c/lb, or $300,000</strong>. The differential did not move. Only the leg he had not yet fixed moved.</p>
|
|
471
|
+
<p><em>(b) The exporter's flat-price P&L.</em></p>
|
|
472
|
+
<div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Leg</th><th class="num">Movement</th><th class="num">Result</th></tr></thead><tbody><tr><td>Short 25 Dec futures at 341.65, bought back at 309.65</td><td class="num"><span class="mv up">+32.00 c/lb</span></td><td class="num">+$300,000</td></tr><tr><td>Physical sale fixed 32.00 lower than Monday's level</td><td class="num"><span class="mv down">−32.00 c/lb</span></td><td class="num">−$300,000</td></tr><tr><td><strong>Net</strong></td><td class="num"></td><td class="num"><strong>$0</strong></td></tr></tbody></table></div>
|
|
473
|
+
<p>That is not luck, it is the design. The hedge is unwound at the same price that sets the physical, so the two legs cancel whenever the buyer chooses to fix. The exporter never had a view and never needed one.</p>
|
|
474
|
+
<p><em>(c) What the roaster was actually carrying.</em></p>
|
|
475
|
+
<p>He was <strong>long 25 lots of December futures</strong> — 937,500 lb of unhedged flat-price exposure — plus a fixed differential and a delivery obligation. Buying coffee PTBF and not fixing is economically identical to buying the futures, because the flat price he will eventually pay moves cent for cent with December until he declares.</p>
|
|
476
|
+
<p>On the sheet it should appear as two lines, not one: a <strong>differential position</strong> of +22.00 on 25 lots, which is closed, and an <strong>unfixed futures exposure</strong> of 25 lots long December, which is open and should sit in the same book as any other outright. A risk system that shows "coffee bought" and stops there is hiding the only position in the trade that can still move.</p>
|
|
477
|
+
<p><em>(d) The credit exposure.</em></p>
|
|
478
|
+
<p>December ran from 255.25 to 341.65, so <strong>86.40 c/lb</strong>. On 937,500 lb that is <strong>$810,000</strong>.</p>
|
|
479
|
+
<p>That is what the unfixed buyer is under water by, and it is why the exposure is not market risk to the exporter. The exporter is hedged: whenever the buyer fixes, his own two legs cancel as in (b). The $810,000 is the amount the buyer must swallow when he declares — and therefore the amount he has an incentive to walk away from. He has posted no margin, because a physical contract has no clearing house behind it.</p>
|
|
480
|
+
<p>So the exporter's real question is not where coffee is going. It is whether a counterparty who is $810,000 offside is good for it. This is the trap in the whole structure: a desk grants the fixing option for free, prices nothing for it, and then discovers it was writing unsecured credit all along. Desks that have been through it cap unfixed tonnage per counterparty and call for margin once the mark passes a threshold, exactly as a clearing house would.</p>
|
|
481
|
+
<p class="backq"><a href="#q1">↑ Back to question 1</a></p></div></details>
|
|
482
|
+
<details class="soln" id="a2"><summary><span class="qn">Q2</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>The roll costs <strong>12.00 c/lb, or $45,000</strong> on 375,000 lb.</p>
|
|
483
|
+
<p>Rolling a short means buying back the near month and selling the deferred. Buy December, sell March at 12.00 under, and the short has been re-established twelve cents lower — every cent of which is a loss when it is eventually covered. In a carry market the same mechanic pays a short hedger; in an inverse it charges him.</p>
|
|
484
|
+
<p>The trap is that nothing recovers it. The differential was fixed in the contract at signature and cannot be reopened because the buyer was slow. The 12 cents comes straight out of a margin that, on the numbers in today's episode, was about 3 cents a pound gross of the roll. One deferred fixation can turn a profitable cargo into a loss without the price of coffee moving at all.</p>
|
|
485
|
+
<p>The honest counter-argument: the exporter holds physical coffee, and in an inverted market physical prompt coffee is worth the spot premium. True — but only if he can sell it prompt. He cannot, because it is already committed to a November-shipment contract. The inverse pays whoever is free to deliver now, and a PTBF seller is not.</p>
|
|
486
|
+
<p class="backq"><a href="#q2">↑ Back to question 2</a></p></div></details>
|
|
487
|
+
<details class="soln" id="a3"><summary><span class="qn">Q3</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>It tells you that physical differentials for the deliverable origins are <strong>above</strong> the exchange's fixed origin differentials — that roasters are outbidding the exchange for the same bags.</p>
|
|
488
|
+
<p>Episode 12's valve runs in one direction at a time. Coffee walks into a licensed warehouse only when delivering it to the exchange is worth more than selling it to a roaster, which happens when the physical differential falls below the contract's fixed number for that origin. When roasters bid up, the coffee never reaches the warehouse; it goes to a plant. A twenty-seven-year low in certified stocks therefore says nothing about whether coffee exists. It says the deliverable float is being outbid, which is exactly what you expect with Brazil's arabica harvest running behind and buyers covering nearby needs.</p>
|
|
489
|
+
<p>The corollary is the useful part, and it is today's lesson from the other end: certified stock is a <em>differential</em> statistic wearing the clothes of a supply statistic. That is why it can print a generational low on a day the flat price falls four percent. The two numbers are measuring different markets.</p>
|
|
490
|
+
<p class="backq"><a href="#q3">↑ Back to question 3</a></p></div></details>
|
|
491
|
+
<details class="soln" id="a4"><summary><span class="qn">Q4</span><span class="sl">Reveal the answer</span></summary><div class="solnbody"><p>No, it would not hedge him, and the reason is worth being precise about.</p>
|
|
492
|
+
<p>A Panamax FFA settles against a basket of named dry bulk routes assessed by a broker panel and expressed as a time charter equivalent. The exporter's cost is a container slot rate on a liner service, set by carrier tariffs, box availability and equipment repositioning. The two prices are not driven by the same thing: dry bulk rates move on tonne-mile demand for grain, coal and ore against fleet growth, while box rates move on manufactured-goods trade, blanked sailings and schedule reliability. There are stretches where they move together, and those stretches are coincidence, not structure.</p>
|
|
493
|
+
<p>This is the cross-hedge test from episode 5 taken past its breaking point. Hedging Black Sea wheat with Matif at least works on quiet days, because both are wheat and the world price is a common driver. Here there is no common driver, so the "hedge" is simply a second, unrelated position — the classic way a desk turns one risk into two.</p>
|
|
494
|
+
<p>What the exporter actually does is put the freight into the differential. Containerised coffee has no liquid freight hedge, so the cost is estimated, loaded into the number he quotes, and revisited when it moves. That is the general answer for any freight exposure without a paper market: if you cannot hedge it, you must price it, and you must reprice it more often than you would like.</p>
|
|
495
|
+
<p><strong>Conversion drill.</strong> <strong>42,240 lb.</strong></p>
|
|
496
|
+
<p>320 bags × 60 kg = 19,200 kg. Then the method: double it, 38,400; add ten percent, 3,840; total <strong>42,240 lb</strong>. The exact figure is 42,329 lb, so the mental version runs about 0.2% light — close enough to quote a number on the phone, never close enough to invoice on.</p>
|
|
497
|
+
<p>Worth carrying: at Thursday's 309.65 plus a twenty-two-cent differential, that single container of coffee is worth roughly $140,000. A twenty-foot box holding a hundred and forty thousand dollars is one reason coffee logistics is guarded like it is.</p>
|
|
498
|
+
<h1>The written edition</h1>
|
|
499
|
+
<p class="backq"><a href="#q4">↑ Back to question 4</a></p></div></details><h2 id="the-number-in-the-contract-is-not-a-price">The number in the contract is not a price<a class="anchor" href="#the-number-in-the-contract-is-not-a-price" aria-label="Link to this section">#</a></h2>
|
|
500
|
+
<p>A coffee contract does not say what coffee costs. It says <strong>December plus twenty-five</strong>: twenty-five cents a pound over the December New York contract, for a named origin, a named screen size and a named shipment month.</p>
|
|
501
|
+
<p>That plus twenty-five is the <strong>differential</strong>, and it is the only part of the deal the two people on the phone negotiated. Everything the exporter knows sits inside it — how the crop cupped this year, whether the roads out of the Cerrado are moving, what the co-op is paying its members, how many bags are already committed to somebody else. The New York board knows none of that. New York prices arabica in general. The differential prices this coffee.</p>
|
|
502
|
+
<p>The clearest way to see how much of the business lives there is to build an exporter's margin and notice what is missing from it.</p>
|
|
503
|
+
<div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th>Line</th><th class="num">c/lb</th></tr></thead><tbody><tr><td>Sold to roaster, December plus 25</td><td class="num">+25.00</td></tr><tr><td>Bought from the co-op, December plus 14</td><td class="num">−14.00</td></tr><tr><td>Drying, milling, bagging, inland to Santos</td><td class="num">−4.50</td></tr><tr><td>Ocean freight and insurance to a New York warehouse</td><td class="num">−2.00</td></tr><tr><td>Finance until the roaster pays</td><td class="num">−1.20</td></tr><tr><td><strong>Net margin</strong></td><td class="num"><strong>3.30</strong></td></tr></tbody></table></div>
|
|
504
|
+
<p>Ten lots is 375,000 lb, so 3.30 c/lb is <strong>$12,375</strong> on the cargo.</p>
|
|
505
|
+
<figure class="chartfig">
|
|
506
|
+
<figcaption class="charttitle">Where an exporter's money actually is</figcaption>
|
|
507
|
+
<svg class="chart" viewBox="0 0 640 330" width="100%" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">
|
|
508
|
+
<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>
|
|
509
|
+
<line class="grid" x1="56" y1="286.0" x2="622" y2="286.0"/>
|
|
510
|
+
<text class="axis" x="46" y="290.0" text-anchor="end">0</text>
|
|
511
|
+
<line class="grid" x1="56" y1="199.3" x2="622" y2="199.3" opacity=".45"/>
|
|
512
|
+
<text class="axis" x="46" y="203.3" text-anchor="end">10</text>
|
|
513
|
+
<line class="grid" x1="56" y1="112.7" x2="622" y2="112.7" opacity=".45"/>
|
|
514
|
+
<text class="axis" x="46" y="116.7" text-anchor="end">20</text>
|
|
515
|
+
<line class="grid" x1="56" y1="26.0" x2="622" y2="26.0" opacity=".45"/>
|
|
516
|
+
<text class="axis" x="46" y="30.0" text-anchor="end">30</text>
|
|
517
|
+
<text class="unit" x="46" y="16" text-anchor="end">c/lb</text>
|
|
518
|
+
<text class="axis" x="103.2" y="306" text-anchor="middle">Sold, Dec +25</text>
|
|
519
|
+
<text class="axis" x="197.5" y="306" text-anchor="middle">Bought, Dec +14</text>
|
|
520
|
+
<text class="axis" x="291.8" y="306" text-anchor="middle">Milling and inland</text>
|
|
521
|
+
<text class="axis" x="386.2" y="306" text-anchor="middle">Freight and insurance</text>
|
|
522
|
+
<text class="axis" x="480.5" y="306" text-anchor="middle">Finance</text>
|
|
523
|
+
<text class="axis" x="574.8" y="306" text-anchor="middle">Net margin</text>
|
|
524
|
+
<rect x="73.9" y="69.3" width="58.5" height="216.7" rx="2" fill="var(--c-a)" opacity=".92"/>
|
|
525
|
+
<text class="vlabel" x="103.2" y="62.3" text-anchor="middle">25</text>
|
|
526
|
+
<line class="grid" x1="132.4" y1="69.3" x2="168.3" y2="69.3" stroke-dasharray="3 3" opacity=".5"/>
|
|
527
|
+
<rect x="168.3" y="69.3" width="58.5" height="121.3" rx="2" fill="#8a3b2f" opacity=".78"/>
|
|
528
|
+
<text class="vlabel" x="197.5" y="62.3" text-anchor="middle">-14</text>
|
|
529
|
+
<line class="grid" x1="226.7" y1="190.7" x2="262.6" y2="190.7" stroke-dasharray="3 3" opacity=".5"/>
|
|
530
|
+
<rect x="262.6" y="190.7" width="58.5" height="39.0" rx="2" fill="#8a3b2f" opacity=".78"/>
|
|
531
|
+
<text class="vlabel" x="291.8" y="183.7" text-anchor="middle">-4.5</text>
|
|
532
|
+
<line class="grid" x1="321.1" y1="229.7" x2="356.9" y2="229.7" stroke-dasharray="3 3" opacity=".5"/>
|
|
533
|
+
<rect x="356.9" y="229.7" width="58.5" height="17.3" rx="2" fill="#8a3b2f" opacity=".78"/>
|
|
534
|
+
<text class="vlabel" x="386.2" y="222.7" text-anchor="middle">-2</text>
|
|
535
|
+
<line class="grid" x1="415.4" y1="247.0" x2="451.3" y2="247.0" stroke-dasharray="3 3" opacity=".5"/>
|
|
536
|
+
<rect x="451.3" y="247.0" width="58.5" height="10.4" rx="2" fill="#8a3b2f" opacity=".78"/>
|
|
537
|
+
<text class="vlabel" x="480.5" y="240.0" text-anchor="middle">-1.2</text>
|
|
538
|
+
<line class="grid" x1="509.7" y1="257.4" x2="545.6" y2="257.4" stroke-dasharray="3 3" opacity=".5"/>
|
|
539
|
+
<rect x="545.6" y="257.4" width="58.5" height="28.6" rx="2" fill="var(--c-b)" opacity=".92"/>
|
|
540
|
+
<text class="vlabel" x="574.8" y="250.4" text-anchor="middle">3.3</text>
|
|
541
|
+
</svg>
|
|
542
|
+
<figcaption class="chartcap">The whole business fits inside an eleven-cent differential and keeps about three. Thursday's 309.65 appears nowhere in it. <span class="chartsrc">Worked example, episode 13</span></figcaption>
|
|
543
|
+
</figure>
|
|
544
|
+
<p>Thursday's 309.65 appears nowhere in that table. The exporter is not in the coffee price business. He is in the eleven-cent business.</p>
|
|
545
|
+
<h2 id="how-it-is-quoted">How it is quoted<a class="anchor" href="#how-it-is-quoted" aria-label="Link to this section">#</a></h2>
|
|
546
|
+
<blockquote><strong>BUYER:</strong> Brazil naturals, seventeen-eighteen screen, November shipment. Where are you?<br><strong>SELLER:</strong> Plus twenty-eight against December.<br><strong>BUYER:</strong> I did plus twenty-two last week.<br><strong>SELLER:</strong> Last week you were buying September shipment. Boats are full in November.<br><strong>BUYER:</strong> Plus twenty-five, price to be fixed, my call.<br><strong>SELLER:</strong> Done.</blockquote>
|
|
547
|
+
<p>Neither of them said what coffee costs. They negotiated a differential, defended it with a shipment month rather than a market view, and then the buyer asked for one more thing: <em>my call</em>.</p>
|
|
548
|
+
<h2 id="price-to-be-fixed">Price to be fixed<a class="anchor" href="#price-to-be-fixed" aria-label="Link to this section">#</a></h2>
|
|
549
|
+
<p><strong>Price-to-be-fixed</strong> means the physical is agreed now and the flat price is set later. The contract names a futures month and a window, and one side holds the right to declare the price by buying or selling that month. <strong>Buyer's call</strong> means the roaster fixes; <strong>seller's call</strong> means the exporter does.</p>
|
|
550
|
+
<p>Run this week through it. The contract is signed on Monday 24 August at December plus twenty-five, buyer's call, fixation to 15 November.</p>
|
|
551
|
+
<div class="tablewrap" tabindex="0" role="region" aria-label="Table, scrolls sideways"><table><thead><tr><th></th><th class="num">December</th><th class="num">Flat price</th><th class="num">On 10 lots (375,000 lb)</th></tr></thead><tbody><tr><td>Fix Monday 24 Aug</td><td class="num">341.65</td><td class="num">366.65</td><td class="num">$1,374,937.50</td></tr><tr><td>Fix Thursday 27 Aug</td><td class="num">309.65</td><td class="num">334.65</td><td class="num">$1,254,937.50</td></tr></tbody></table></div>
|
|
552
|
+
<p>The roaster waited three days and paid <strong>$120,000 less</strong> for the same coffee. He did not trade. He declined to.</p>
|
|
553
|
+
<figure class="chartfig">
|
|
554
|
+
<figcaption class="charttitle">Same coffee, three fixing dates</figcaption>
|
|
555
|
+
<svg class="chart" viewBox="0 0 640 330" width="100%" preserveAspectRatio="xMidYMid meet" xmlns="http://www.w3.org/2000/svg" role="img">
|
|
556
|
+
<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>
|
|
557
|
+
<line class="grid" x1="56" y1="286.0" x2="622" y2="286.0"/>
|
|
558
|
+
<text class="axis" x="46" y="290.0" text-anchor="end">0</text>
|
|
559
|
+
<line class="grid" x1="56" y1="221.0" x2="622" y2="221.0" opacity=".45"/>
|
|
560
|
+
<text class="axis" x="46" y="225.0" text-anchor="end">100</text>
|
|
561
|
+
<line class="grid" x1="56" y1="156.0" x2="622" y2="156.0" opacity=".45"/>
|
|
562
|
+
<text class="axis" x="46" y="160.0" text-anchor="end">200</text>
|
|
563
|
+
<line class="grid" x1="56" y1="91.0" x2="622" y2="91.0" opacity=".45"/>
|
|
564
|
+
<text class="axis" x="46" y="95.0" text-anchor="end">300</text>
|
|
565
|
+
<line class="grid" x1="56" y1="26.0" x2="622" y2="26.0" opacity=".45"/>
|
|
566
|
+
<text class="axis" x="46" y="30.0" text-anchor="end">400</text>
|
|
567
|
+
<text class="unit" x="622" y="16" text-anchor="end">c/lb paid by the buyer</text>
|
|
568
|
+
<text class="axis" x="150.3" y="306" text-anchor="middle">Fixed 23 Jun</text>
|
|
569
|
+
<text class="axis" x="339.0" y="306" text-anchor="middle">Fixed 24 Aug</text>
|
|
570
|
+
<text class="axis" x="527.7" y="306" text-anchor="middle">Fixed 27 Aug</text>
|
|
571
|
+
<rect x="130.1" y="103.8" width="40.5" height="182.2" rx="2" fill="var(--c-a)" opacity=".85"/>
|
|
572
|
+
<rect x="318.8" y="47.7" width="40.5" height="238.3" rx="2" fill="var(--c-a)" opacity=".85"/>
|
|
573
|
+
<rect x="507.4" y="68.5" width="40.5" height="217.5" rx="2" fill="var(--c-a)" opacity=".85"/>
|
|
574
|
+
<line class="grid" x1="56" y1="286.0" x2="622" y2="286.0"/>
|
|
575
|
+
</svg>
|
|
576
|
+
<figcaption class="chartcap">The differential was agreed once and never moved. Everything in this chart is the leg the buyer had not fixed yet. <span class="chartsrc">ICE arabica December settlements 23 June, 24 and 27 August 2026, plus a 25-cent differential</span></figcaption>
|
|
577
|
+
</figure>
|
|
578
|
+
<p>So who paid for the roaster's $120,000? Not the exporter, and this is the part people get wrong.</p>
|
|
579
|
+
<p>The exporter sold 10 December futures on Monday at 341.65 to hedge himself. When the roaster fixes on Thursday, those futures are bought back at 309.65. The hedge makes 32 cents; the physical sale is 32 cents lower. Net, zero. He is flat on price whenever the buyer chooses to declare — exactly as designed.</p>
|
|
580
|
+
<h2 id="three-things-he-is-not-flat-on">Three things he is not flat on<a class="anchor" href="#three-things-he-is-not-flat-on" aria-label="Link to this section">#</a></h2>
|
|
581
|
+
<p><strong>Cash.</strong> He is short futures. Had the market rallied 32 cents rather than fallen, he would have wired variation margin against a physical gain that does not become cash until the coffee ships and the documents are paid. Episode 3 called that liquidity risk. It is the same animal in a different market.</p>
|
|
582
|
+
<p><strong>The roll.</strong> If the buyer has not fixed by the time December approaches first notice day, the short hedge has to move to March. Moving a short into a cheaper month costs the spread, cent for cent, and in an inverted market that spread can be a multiple of the whole margin. Nothing recovers it, because the differential was fixed at signature.</p>
|
|
583
|
+
<p><strong>Credit.</strong> This is the one that bites. The buyer's right to fix is an option, and the exporter granted it for nothing. Every cent the market moves against an unfixed buyer is a cent that buyer would rather not pay. When December ran from 255.25 in late June to 341.65 on Monday, a buyer who signed at the bottom and never fixed was 86.40 c/lb offside — $810,000 on twenty-five lots, owed by a counterparty who has posted no margin because a physical contract has no clearing house behind it.</p>
|
|
584
|
+
<p>Fixing risk is sold as market risk and settled as credit risk. That sentence is the whole reason serious desks cap unfixed tonnage per counterparty and call for margin once the mark passes a threshold.</p>
|
|
585
|
+
<h2 id="the-anatomy-of-a-rally-and-two-ways-to-lose-on-i">The anatomy of a rally, and two ways to lose on it<a class="anchor" href="#the-anatomy-of-a-rally-and-two-ways-to-lose-on-i" aria-label="Link to this section">#</a></h2>
|
|
586
|
+
<p>In late June, December arabica was 255.25 and the funds had flipped from net long to net short — 3,557 lots of net selling in the week to 9 June alone. Then the harvest ran late, the frost watch came on in southern Minas, the Cerrado and São Paulo, and the certified warehouse kept draining. By Monday the contract was 341.65, up a third.</p>
|
|
587
|
+
<p>A frost rally is not a supply number. It is the price of a distribution, and the distribution is drawn by a handful of weather models. Nobody can know what was damaged for two or three weeks, because frost damage shows up as leaf loss and then as next year's flowering. So the market prices the worst plausible case immediately and gives it back slowly, as each week fails to confirm the fear. That asymmetry is the shape: the rally is vertical, the retracement is a slope. This week's three sessions — 341.65 down to 309.65 against record Brazilian forecasts — are the slope.</p>
|
|
588
|
+
<p>The fund loses on the way down. That much is obvious: it was long, and long is wrong when the crop turns out fine.</p>
|
|
589
|
+
<p>The physical desk loses on the way <strong>up</strong>, which is not obvious at all. Three things happen to it at once during a rally:</p>
|
|
590
|
+
<ul><li>It is short futures against coffee it already owns, so it funds daily margin calls out of working capital while the offsetting gain sits in unsold inventory.</li><li>Its unfixed customers all fix near the top, which is their right and costs the desk its cheapest fixations.</li><li>Farmers stop selling. The differential the exporter must pay to replace his coffee climbs, while the differential he already sold is written into a contract at last month's number.</li></ul>
|
|
591
|
+
<p>The fund's risk is direction. The desk's risk is margin, differentials and timing. Neither of them is really trading the price of coffee — which is why, on a day when certified stocks hit a twenty-seven-year low and the board fell four percent, the two of them were looking at completely different screens.</p>
|
|
592
|
+
<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 13. Nothing said in the audio should ever be unrecoverable.</p><details class="gloss"><summary>Open the glossary<span class="sl">217 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">217</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><button type="button" class="gchip" data-gep="12">Ep 12<span class="gn">15</span></button><button type="button" class="gchip" data-gep="13">Ep 13<span class="gn">17</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="12"><dt>arabica</dt><dd>the high-altitude coffee species, aromatic and acidic, lower-yielding and more fragile, priced on ICE in New York <span class="gep">ep 12</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's economics work, opening and shutting on freight, differentials and FX rather than on flat price <span class="gep">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">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">ep 11</span></dd></div><div class="gterm" data-ep="10"><dt>bunkers</dt><dd>the vessel'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="13"><dt>buyer's call</dt><dd>a price-to-be-fixed contract in which the buyer holds the right to choose the moment of fixation <span class="gep now">ep 13</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">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'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="12"><dt>certified stock</dt><dd>coffee sampled, graded and stamped as deliverable against the futures contract and held in an exchange-licensed warehouse, the deliverable float rather than world inventory <span class="gep">ep 12</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="12"><dt>Coffee C (KC)</dt><dd>the ICE arabica futures contract, 37,500 lb quoted in US cents per pound with a 0.05 cent tick worth 18.75 dollars <span class="gep">ep 12</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="13"><dt>cooperative (co-op)</dt><dd>a grower-owned body that pools, mills and markets its members' coffee, and often the counterparty an exporter actually buys from <span class="gep now">ep 13</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">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="12"><dt>defect count</dt><dd>the number of black, broken, insect-damaged or foreign items in a fixed sample weight, the primary coffee grading measure <span class="gep">ep 12</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="12"><dt>deliverable float</dt><dd>the quantity actually available to settle a futures delivery, which sets how far a front month can travel regardless of world supply <span class="gep">ep 12</span></dd></div><div class="gterm" data-ep="12"><dt>deliverable origin differential</dt><dd>the fixed premium or discount the contract assigns to each approved origin, unchanged whatever the physical market does <span class="gep">ep 12</span></dd></div><div class="gterm" data-ep="12"><dt>delivery notice period</dt><dd>the window in which shorts may tender certified stock against the expiring contract <span class="gep">ep 12</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's grade limits, and the raw material of every blending trade <span class="gep">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'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">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="13"><dt>EUDR</dt><dd>the EU deforestation regulation, which from December 2026 requires proof that a shipment's land was not deforested and which splits origin differentials into compliant and non-compliant <span class="gep now">ep 13</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="13"><dt>farmgate price</dt><dd>what the grower is actually paid at the farm, after the intermediary's margin and inland costs are taken out of the export value <span class="gep now">ep 13</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="13"><dt>first notice day</dt><dd>the first day on which a short futures position may be tendered for delivery, and the practical deadline for rolling a hedge <span class="gep now">ep 13</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's option <span class="gep">ep 1</span></dd></div><div class="gterm" data-ep="13"><dt>fixation</dt><dd>the act of setting the futures leg of a price-to-be-fixed contract, which converts a differential into a flat price <span class="gep now">ep 13</span></dd></div><div class="gterm" data-ep="13"><dt>fixation window</dt><dd>the period inside which the fixing party must declare, normally ending before the referenced contract's notice period <span class="gep now">ep 13</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="13"><dt>fixing risk</dt><dd>the exposure created by the gap between agreeing a differential and setting the price, carried as market risk by the fixing party and as credit risk by the other <span class="gep now">ep 13</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'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="12"><dt>grading</dt><dd>the exchange pass-fail examination of a sample covering defect count, screen size and a clean cup <span class="gep">ep 12</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="13"><dt>green coffee</dt><dd>unroasted milled coffee beans, the form in which all internationally traded coffee moves <span class="gep now">ep 13</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">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'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'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="12"><dt>licensed warehouse</dt><dd>a storage facility the exchange approves to hold deliverable stock, at named ports only <span class="gep">ep 12</span></dd></div><div class="gterm" data-ep="1"><dt>lift the offer</dt><dd>to buy from someone else'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">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="13"><dt>managed money</dt><dd>speculative funds reported as non-commercial in exchange positioning data, which trade direction rather than physical <span class="gep now">ep 13</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'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="12"><dt>natural process</dt><dd>coffee dried with the fruit still attached, giving a sweeter, heavier and more variable cup <span class="gep">ep 12</span></dd></div><div class="gterm" data-ep="13"><dt>net length</dt><dd>a fund category's long positions less its short positions, the number that says how much of a rally is positioning <span class="gep now">ep 13</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'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'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="13"><dt>outright</dt><dd>a contract agreed at a flat price rather than as a differential, with no fixation to come <span class="gep now">ep 13</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">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="13"><dt>price-to-be-fixed (PTBF)</dt><dd>a physical contract where quantity, quality, shipment and differential are agreed now and the futures price is set later <span class="gep now">ep 13</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">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">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="13"><dt>retracement</dt><dd>the partial give-back of a price move once the fear that produced it fails to be confirmed <span class="gep now">ep 13</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="12"><dt>robusta</dt><dd>the low-altitude coffee species, hardier and higher-yielding, about double the caffeine and a flatter cup, priced in London <span class="gep">ep 12</span></dd></div><div class="gterm" data-ep="12"><dt>robusta contract (RC)</dt><dd>the London robusta futures contract, 10 tonnes quoted in dollars per tonne with a one dollar tick worth 10 dollars <span class="gep">ep 12</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="13"><dt>roll cost</dt><dd>the gain or loss from moving a hedge to a later month, equal to the spread between the two months and negative for a short hedge in an inverted market <span class="gep now">ep 13</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'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="12"><dt>screen size</dt><dd>bean size measured by the mesh it will not fall through, part of the deliverable specification <span class="gep">ep 12</span></dd></div><div class="gterm" data-ep="13"><dt>Section 301</dt><dd>the US statute under which country-specific tariffs are imposed after a trade-practice investigation, applied to Brazilian goods from 22 July 2026 with coffee exempt <span class="gep now">ep 13</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">ep 11</span></dd></div><div class="gterm" data-ep="13"><dt>seller's call</dt><dd>a price-to-be-fixed contract in which the seller holds the right to choose the moment of fixation <span class="gep now">ep 13</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">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="12"><dt>soluble solids</dt><dd>the share of the coffee bean that dissolves in water, higher in robusta, which is why robusta dominates instant coffee <span class="gep">ep 12</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'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">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">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">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">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'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' 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'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="12"><dt>washed process</dt><dd>coffee with the fruit stripped off before drying, giving a cleaner and more consistent cup <span class="gep">ep 12</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>
|
|
593
|
+
</main>
|
|
594
|
+
<nav class="epnav" aria-label="Episodes">
|
|
595
|
+
<a class="epprev" href="ep12.html"><span class="dir">← Previous</span><span class="ept">Coffee: The Market</span><span class="epn">Episode 12</span></a>
|
|
596
|
+
</nav>
|
|
597
|
+
<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><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 class="here" aria-current="page"><a href="ep13.html"><b>13</b> Coffee: Differentials, PTBF and Volatility</a></li></ol></details>
|
|
598
|
+
<footer>
|
|
599
|
+
<span class="sig"><b>Soft Commodity Trading</b> — a daily briefing on physical commodity trading.</span>
|
|
600
|
+
<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>
|
|
601
|
+
</footer>
|
|
602
|
+
</div>
|
|
603
|
+
<script>
|
|
604
|
+
(function(){
|
|
605
|
+
var doc = document.documentElement;
|
|
606
|
+
|
|
607
|
+
/* theme */
|
|
608
|
+
var btn = document.querySelector('.themebtn');
|
|
609
|
+
if(btn) btn.addEventListener('click', function(){
|
|
610
|
+
var next = doc.getAttribute('data-theme') === 'dark' ? 'light' : 'dark';
|
|
611
|
+
doc.setAttribute('data-theme', next);
|
|
612
|
+
try{ localStorage.setItem('cdd-theme', next); }catch(e){}
|
|
613
|
+
});
|
|
614
|
+
|
|
615
|
+
/* reading progress */
|
|
616
|
+
var bar = document.getElementById('bar'), ticking = false;
|
|
617
|
+
function progress(){
|
|
618
|
+
var h = doc.scrollHeight - innerHeight;
|
|
619
|
+
bar.style.width = (h > 0 ? Math.min(100, Math.max(0, scrollY / h * 100)) : 0) + '%';
|
|
620
|
+
ticking = false;
|
|
621
|
+
}
|
|
622
|
+
if(bar){
|
|
623
|
+
addEventListener('scroll', function(){
|
|
624
|
+
if(!ticking){ ticking = true; requestAnimationFrame(progress); }
|
|
625
|
+
}, {passive:true});
|
|
626
|
+
addEventListener('resize', progress, {passive:true});
|
|
627
|
+
progress();
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
/* contents: mark the section being read */
|
|
631
|
+
var links = [].slice.call(document.querySelectorAll('.toc a'));
|
|
632
|
+
if(links.length && 'IntersectionObserver' in window){
|
|
633
|
+
var map = {};
|
|
634
|
+
links.forEach(function(a){
|
|
635
|
+
var el = document.getElementById(decodeURIComponent(a.hash.slice(1)));
|
|
636
|
+
if(el) map[el.id] = a.parentNode;
|
|
637
|
+
});
|
|
638
|
+
var seen = [];
|
|
639
|
+
var io = new IntersectionObserver(function(entries){
|
|
640
|
+
entries.forEach(function(en){
|
|
641
|
+
var id = en.target.id, at = seen.indexOf(id);
|
|
642
|
+
if(en.isIntersecting){ if(at < 0) seen.push(id); }
|
|
643
|
+
else if(at >= 0){ seen.splice(at, 1); }
|
|
644
|
+
});
|
|
645
|
+
links.forEach(function(a){ a.parentNode.classList.remove('on'); });
|
|
646
|
+
if(seen.length && map[seen[0]]) map[seen[0]].classList.add('on');
|
|
647
|
+
}, {rootMargin:'-64px 0px -70% 0px'});
|
|
648
|
+
Object.keys(map).forEach(function(id){
|
|
649
|
+
var el = document.getElementById(id); if(el) io.observe(el);
|
|
650
|
+
});
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
/* playback speed */
|
|
654
|
+
var audio = document.querySelector('audio');
|
|
655
|
+
[].forEach.call(document.querySelectorAll('.rate'), function(b){
|
|
656
|
+
b.addEventListener('click', function(){
|
|
657
|
+
if(!audio) return;
|
|
658
|
+
audio.playbackRate = parseFloat(b.dataset.rate);
|
|
659
|
+
[].forEach.call(document.querySelectorAll('.rate'), function(o){
|
|
660
|
+
o.setAttribute('aria-pressed', String(o === b));
|
|
661
|
+
});
|
|
662
|
+
});
|
|
663
|
+
});
|
|
664
|
+
|
|
665
|
+
/* solutions: reveal all / hide all */
|
|
666
|
+
[].forEach.call(document.querySelectorAll('[data-solnall]'), function(b){
|
|
667
|
+
b.addEventListener('click', function(){
|
|
668
|
+
var open = b.dataset.solnall === 'open';
|
|
669
|
+
[].forEach.call(document.querySelectorAll('details.soln'), function(d){
|
|
670
|
+
d.open = open;
|
|
671
|
+
});
|
|
672
|
+
});
|
|
673
|
+
});
|
|
674
|
+
|
|
675
|
+
/* an answer linked to directly should already be open */
|
|
676
|
+
function openTarget(){
|
|
677
|
+
var id = location.hash.slice(1);
|
|
678
|
+
if(!id) return;
|
|
679
|
+
var el = document.getElementById(decodeURIComponent(id));
|
|
680
|
+
while(el){
|
|
681
|
+
if(el.tagName === 'DETAILS') el.open = true;
|
|
682
|
+
el = el.parentElement;
|
|
683
|
+
}
|
|
684
|
+
}
|
|
685
|
+
addEventListener('hashchange', openTarget); openTarget();
|
|
686
|
+
|
|
687
|
+
/* glossary: an episode chip and a search box, which compose */
|
|
688
|
+
var gf = document.getElementById('gfilter'), list = document.getElementById('glist');
|
|
689
|
+
if(list){
|
|
690
|
+
var rows = [].slice.call(list.querySelectorAll('.gterm'));
|
|
691
|
+
var chips = [].slice.call(document.querySelectorAll('.gchip'));
|
|
692
|
+
var none = document.querySelector('.gnone');
|
|
693
|
+
var pick = 'all';
|
|
694
|
+
function apply(){
|
|
695
|
+
var q = gf ? gf.value.trim().toLowerCase() : '', hits = 0;
|
|
696
|
+
rows.forEach(function(r){
|
|
697
|
+
var on = (pick === 'all' || r.dataset.ep === pick) &&
|
|
698
|
+
(!q || r.textContent.toLowerCase().indexOf(q) > -1);
|
|
699
|
+
r.hidden = !on; if(on) hits++;
|
|
700
|
+
});
|
|
701
|
+
if(none) none.hidden = hits > 0;
|
|
702
|
+
}
|
|
703
|
+
if(gf) gf.addEventListener('input', apply);
|
|
704
|
+
chips.forEach(function(c){
|
|
705
|
+
c.addEventListener('click', function(){
|
|
706
|
+
pick = c.dataset.gep;
|
|
707
|
+
chips.forEach(function(o){ o.classList.toggle('on', o === c); });
|
|
708
|
+
apply();
|
|
709
|
+
});
|
|
710
|
+
});
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
/* printing: paper has no disclosure triangles */
|
|
714
|
+
var reopen = [];
|
|
715
|
+
addEventListener('beforeprint', function(){
|
|
716
|
+
reopen = [].filter.call(document.querySelectorAll('details'), function(d){
|
|
717
|
+
return !d.open;
|
|
718
|
+
});
|
|
719
|
+
reopen.forEach(function(d){ d.open = true; });
|
|
720
|
+
});
|
|
721
|
+
addEventListener('afterprint', function(){
|
|
722
|
+
reopen.forEach(function(d){ d.open = false; });
|
|
723
|
+
reopen = [];
|
|
724
|
+
});
|
|
725
|
+
})();
|
|
726
|
+
</script>
|
|
727
|
+
</body>
|
|
728
|
+
</html>
|
package/ep13_chart1.png
ADDED
|
Binary file
|
package/ep13_chart2.png
ADDED
|
Binary file
|
package/ep13_chart3.png
ADDED
|
Binary file
|
package/feed.xml
CHANGED
|
@@ -20,10 +20,13 @@
|
|
|
20
20
|
</image>
|
|
21
21
|
<item>
|
|
22
22
|
<title>Ep 13 — Coffee: Differentials, PTBF and Volatility</title>
|
|
23
|
-
<
|
|
24
|
-
<
|
|
25
|
-
<
|
|
26
|
-
|
|
23
|
+
<link>https://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.38/ep13.md</link>
|
|
24
|
+
<description><![CDATA[<p>A coffee contract does not name a price, it names a differential — and an exporter's entire business fits inside eleven cents a pound. Then price-to-be-fixed: how one trade becomes two decisions, and why fixing risk is sold as market risk and settled as credit risk.</p><p><a href="https://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.38/ep13.md">Read this episode, with the charts, the glossary and the quiz →</a></p>]]></description>
|
|
25
|
+
<itunes:summary>A coffee contract does not name a price, it names a differential — and an exporter's entire business fits inside eleven cents a pound. Then price-to-be-fixed: how one trade becomes two decisions, and why fixing risk is sold as market risk and settled as credit risk.
|
|
26
|
+
|
|
27
|
+
Read this episode: https://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.38/ep13.md</itunes:summary>
|
|
28
|
+
<enclosure url="https://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.38/ep13.mp3" length="8010477" type="audio/mpeg"/>
|
|
29
|
+
<guid isPermaLink="false">https://cdn.jsdelivr.net/npm/@sdelsad/commodity-desk-daily@1.0.38/ep13.mp3</guid>
|
|
27
30
|
<pubDate>Fri, 28 Aug 2026 05:00:00 GMT</pubDate>
|
|
28
31
|
<itunes:duration>667</itunes:duration>
|
|
29
32
|
</item>
|