← Performance  /  Case study: coffee
Performance deep dive  |  Coffee (ICE US)  |  1 Jan – 2 Nov 2026

Permutable coffee strategy returned 59% while coffee futures lost 6.8%

Coffee futures finished −6.8% over the period, after falling 26% by 9 June. The Permutable strategy returned +58.8% after an assumed 5 bps bid/offer spread on every trade. It sold the decline and bought within days of the low.

A paper evaluation of Permutable Copilot signals, not a marketed product return. Cumulative, unit-notional returns on roll-adjusted ICE coffee futures, after an assumed bid/offer spread of 5 bps per trade (half on entry, half on exit); before fees, commission, roll costs and financing.

+58.8%Return after costs, 1 Jan – 2 Nov 2026Long-only coffee: −6.8%
2.0Sharpe ratio, after costsLong-only coffee: −0.2
34%Annualised volatility, after costsLong-only coffee: 32%
66 ptsOutperformance, after costsVersus holding coffee futures

Summary

Coffee rose briefly in early January, then fell through the spring to a low on 9 June, 26.5% below where it started, and finished the period −6.8%. A holder of coffee futures finished −6.8%. The Permutable strategy, which reads the direction of coffee news every hour and can be long, short or flat, earned 58.8% after trading costs: it was short for much of the decline, turned long three days after the low, and finished 6 months out of 11 in profit against 4 for coffee. Over the same window the book's own weighted coffee P&L, before this page's assumed spread, was +5.3 points.

This page sets out what the strategy does and how it decides, the decisions that delivered most of the return, where the outperformance came from, and the basis on which the figures are measured.

Cumulative return, 2026

Cumulative return in 2026: Permutable coffee strategy +58.8% after costs against long-only coffee −6.8%Line chart of cumulative return, with the confirmed Buy, Sell and neutral signal shaded behind the lines and in a lane underneath. Numbered markers show the January and May Sell decisions, the June Buy three days after coffee's low, and the August Buy that lost money.−20%0%20%40%60%80%JanFebMarAprMayJunJulAugSepOctNovSignalSellSellSellBuyBuyBuySellBuy+58.8%Strategy−6.8%Long-only coffeeSell from 27 JanTrade +16.0%1Sell from 21 MayTrade +5.7%2Buy from 12 JunTrade +30.2%3Aug: Buy reversesTrade −6.7%4Decision 1Decision 2Decision 3Decision 4
Cumulative return after an assumed 5 bps bid/offer spread per trade, % of unit notional, marked daily; hover the line for daily values, or hover a numbered marker for that decision. Shaded bands and the lane beneath are the confirmed signal. Markers 1–3 are the decisions below; 4 is the main stretch where the strategy struggled: from 10 August the signal turned Buy on adverse weather affecting the Arabica harvest, but coffee kept falling and the Buy lost 6.7% by 3 September, when the signal reversed. Source: Permutable Copilot F Sent signals; roll-adjusted ICE coffee futures prices.

The lines separate in February, when the strategy gained 12.7% while coffee lost 13.0%, and again in June and July, when coffee rose 9.4% and 9.9% and the strategy gained 22.7% and 19.9%. Part of the June and July gap is an effect of position sizing, explained under source of outperformance. All figures are after costs.

Key decisions

A decision is a confirmed change in the strategy's view of coffee. Three decisions delivered about 52 of the strategy's 59 points of return after costs. The Sell decisions beat coffee outright; a Buy can at best match coffee over its own days, and the June Buy did, so its value was the timing. Each trade is recorded in the trade log with its entry and exit dates.

DECISION 1

January: sell as supply builds

+16.0%

Sell from 27 Jan. Trade 27 Jan – 6 Mar.

The signal's explanations cited extra supply: improved crop conditions and large harvest estimates in Brazil, and Guatemala's best harvest in three years, with tariff implications also mentioned. 88% of hourly readings during the trade were Sell.

Coffee fell 16.0% from the entry price over the same days, so the short earned 16.0% where a holder lost. February closed with the strategy up 12.7% and coffee down 13.0%.

DECISION 2

May: sell as Brazilian supply builds

+5.7%

Sell from 21 May. Trade 21 May – 12 Jun.

The explanations cited rising Brazilian supply and recent price declines. Most also noted Colombia's falling output, but still called Sell. 86% of hourly readings during the trade were Sell.

Coffee fell 5.7% from the entry price over the same days, and the short earned 5.7%. The trade closed on 12 June, three days after coffee's low on 9 June, when the signal turned Buy.

DECISION 3

June: buy the rebound

+30.2%

Buy from 12 Jun. Trade 12 Jun – 13 Jul.

The explanations cited the El Niño weather pattern and harvest delays in Brazil. The share of hourly readings that were Buy rose from 8% on 11 June to 75% on 12 June, and 87% of readings during the trade were Buy.

Coffee rose 30.3% from the entry price over the same days and the strategy captured 30.2%: it matched coffee rather than beating it, and its value was the timing, three days after the low. Coffee was then 28% below its level at the start of the year, so this trade held about 1.4 times as many contracts per unit of notional as a holder from January. June closed with the strategy up 22.7% and coffee up 9.4%.

The five largest winning trades

TradeDirectionDatesStrategyCoffee, same daysVersus coffee
June reboundBuy12 Jun – 13 Jul+30.2%+30.3%−0.1
Winter sell-offSell27 Jan – 6 Mar+16.0%−16.0%+32.0
July extensionBuy16 – 28 Jul+7.8%+7.8%−0.1
New Year rallyBuy2 – 7 Jan+7.0%+7.1%−0.1
May sell-offSell21 May – 12 Jun+5.7%−5.7%+11.4

Coffee's move is the change in the futures price over each trade's days, as % of the trade's own entry price, the same basis as the trade; “versus coffee” is the strategy's return minus that move, in points. A long trade can at best match coffee over its own days, so the Buy trades sit at zero (less costs). Trade returns are unit-notional and after the assumed 5 bps spread.

Source of outperformance

The 9 long trades matched coffee, as any long trade does: they earned 30.8% after costs (31.3% before), the same as coffee over the same days on the same basis. The timing edge came from the 8 short trades, which earned 28.0% after costs (28.4% before) while coffee moved −28.4% from the entry prices over those days, a gain of 56.7 points on holding coffee before costs. On the days the strategy had no position, coffee moved −2.9 points. Trading costs took 0.9 points: 17 round trips at 5 bps each. The book's own weighted coffee P&L over this window is +5.3 points, before the spread assumed here.

A further 6.8 points comes from position sizing. Each trade is one unit of notional at its own entry price, while holding coffee is one unit at the start of the year. By mid-June coffee was 28% below its January level, so the trades after that, notably the 12 June Buy, held about 1.4 times as many contracts per unit of notional as a holder from January. This is a sizing effect, not timing.

The result is concentrated. The 12 June Buy alone earned 30.2 of the 58.8 points; without it the strategy made 28.5% against −6.8% for coffee.

Points versus holding coffee, 1 Jan – 2 Nov 2026, unit notional. The first four rows are before costs; the total is after the assumed 5 bps spread. Components are unrounded, so they may differ from the headline figures by 0.1. Across 218 weekdays the strategy was short on about 45%, long on about 39% and flat on about 16%.

Methodology

The strategy is rules-based. Every step below is fixed in advance and applied the same way throughout the period.

  1. Hourly signalPermutable's Copilot model reads coffee news and market developments each hour and returns Buy, Sell or Neutral for the next day, with a confidence score and a written explanation. The model used is Fundamental Sentiment (F Sent).
  2. ConfirmationA change of view counts only after eight consecutive hourly readings agree. This filters out single-hour reversals.
  3. Daily decisionThe last confirmed view at the 15:00 daily close sets the position from that close until the next one.
  4. PositioningBuy means long, Sell means short, Neutral means flat. A position is held until the confirmed view changes, which gave an average holding period of 15 days.
  5. Risk controlThere is no stop-loss or trailing stop: the only exit is a confirmed change of view. The losing trades are the cost of that rule.
  6. Portfolio weightWithin Permutable's paper commodity book, coffee carries a weight of 7–11% on the trades in this window. The book's own weighted coffee P&L over the window is +5.3 points, before the spread assumed on this page.
  7. MeasurementReturns use roll-adjusted ICE coffee futures, measured as % of entry price per unit of notional, marked to market daily on the 15:00 close. A bid/offer spread of 5 bps is assumed: half is charged when a position opens and half when it closes, so each trade costs 5 bps of notional.

The settings were chosen using data up to 31 December 2025. That window starts in April 2025 and includes 11 trades. The period on this page, 1 January to 2 November 2026, falls after that date and was not used to choose them.

Basis of preparation

NatureA paper evaluation of Copilot signals. Permutable does not trade this strategy and the figures are not a marketed product return.
Period1 January to 2 November 2026. 17 trades, 2 Jan – 30 Oct (9 long, 8 short); 11 were profitable. The book's weighted contribution on this page is the live book's own coffee P&L and does not deduct the spread assumed here.
Out-of-sampleStrategy settings were fixed on data to 31 December 2025, a window from April 2025 with 11 trades. 2026 is out-of-sample.
ComparisonLong-only is a buy-and-hold position in the same roll-adjusted coffee futures, one unit of notional at the start of the year, with no financing, carry or trading costs. Charging it one 5 bps round trip would lower it by 0.05 points. Each strategy trade is one unit of notional at its own entry price, which differs from the holder's basis when the price has moved (see the entry-price effect).
Risk metricsSharpe is a simple daily Sharpe with a zero risk-free rate, and volatility is the standard deviation of daily marks, both annualised by √252. They use unit-notional daily P&L over about ten months, are not GIPS-compliant, and are shown for comparison only.
Return basisUnit notional: each trade is % of entry price. Returns are after an assumed bid/offer spread of 5 bps per round trip (0.85 points over 17 trades); they exclude fees, commission, roll costs and financing. Before costs the strategy returned 59.6%.
Cost sensitivityThe result depends on the assumed spread. At 2.5 bps per round trip the strategy would have returned 59.2%; at 10 bps, 57.9%.
ScopeOne asset, one period. This is the coffee strategy only, not the return of a fund or portfolio.
ConcentrationThe three largest trades contributed about 54 of the 59 points after costs, and the largest alone about 30. The other 14 trades contributed about 5 points in total, and 6 of the 17 trades lost money.
ExplanationsThe drivers quoted for each decision are the model's own written explanations. They describe what the signal cited, not a proven cause of the price move.

Past performance is not a guide to future results. This page is published to show how Permutable's dataset and models behave in a defined evaluation. It is for information only and is not investment advice or a recommendation to buy, sell or allocate capital.

Discuss the dataset or API. Email enquiries@permutable.ai or book a demo. See the live commodity book on the Performance page.

Get in touch