Computed 2026-08-05 against hypothesis.md (commits cd26894, 6ace438,
pre-registered before any monthly value was pulled). Every number below is
reproducible: python -m src.domains.domain_e_eu_waste_oil_transparency.compute
regenerates results.json from the staged fixtures in data/.
Read this before the numbers below: this is a monitor, not a verdict. Nothing here proves mislabeling, fraud, or circumvention. It flags patterns that match the shape of what real investigative and regulatory scrutiny of this sector has looked for. A flag is a prompt to look closer, never a conclusion — see Antithesis for the alternative explanations that must be ruled out before reading any of this as more than that.
The pre-registered threshold was a waste_price / virgin_price ratio
above 0.70, sustained for 3+ consecutive available months.
| Reporter | Months compared | Mean ratio | Max ratio | Months above 0.70 | 3+ month streaks |
|---|---|---|---|---|---|
| Spain | 32 | 1.01 | 1.25 | 31 of 32 | 2 streaks (24 months, then 7 months) |
| Belgium | 5 | 0.98 | 1.13 | 5 of 5 | 1 streak (all 5) |
| Netherlands | 19 | 0.97 | 1.27 | 19 of 19 | 1 streak (all 19) |
| Italy | 0 | — | — | — | — (no months where both series had data) |
Spain is the standout. Its "waste" import price from China ran at parity with, and often above, virgin technical-grade palm oil from Indonesia for essentially the entire observed window (mean ratio 1.01 — the waste category was, on average, not discounted at all). The lowest reading in the whole series (0.59, March 2025) is the only material dip; every other month sits at or above the flagged threshold. Belgium and the Netherlands show the same pattern on thinner data. Italy's two series never had overlapping months in this window, so H1 could not be evaluated for it at all — reported as a gap, not a zero.
This is the single most notable result in this domain: genuine waste/residue material is not supposed to price like virgin oil. That it does, consistently, across three independent reporters, is exactly the shape of signal this monitor was built to surface.
"Waste" (CN8 15180095) import value grew faster than the virgin-oil benchmark in every one of the 4 core reporters, 2023 → 2025:
| Reporter | Waste growth | Benchmark growth |
|---|---|---|
| Spain | +75% | −29% |
| Belgium | +514% | −100% (benchmark went to zero) |
| Netherlands | +199% | +144% (both grew — waste still grew faster) |
| Italy | +26% | −100% (benchmark went to zero) |
As declared in advance, this has no fixed pass/fail threshold — it's a comparison, not a test. But the direction is unanimous: in every reporter checked, the "waste" category is growing faster than, or moving opposite to, the legitimate virgin-oil trade it's nominally a byproduct of.
Using quantity (kg), not value, as the reconciliation metric — this avoids currency mismatches, since China reports in USD and the EU reporters in EUR:
| Reporter | Overlap months | Average relative difference | Reconciles (≤20%)? |
|---|---|---|---|
| Spain | 33 | 52.1% | No |
| Belgium | 21 | 65.5% | No |
| Netherlands | 36 | 48.0% | No |
| Italy | 6 | 42.5% | No |
Same qualitative finding as Domain B's gas check: China's declared export quantity and each EU reporter's declared import quantity for the same nominal flow do not reconcile. But the pattern is different — gas showed a consistently large gap every month; this shows high variance, swinging between near-perfect matches (Spain: 1.5% in March 2026, 4.1% in May 2025) and near-total mismatches (Spain: 89% in April 2026) in adjacent or nearby months. That variance pattern is more consistent with shipment-timing misalignment (a single large cargo recorded by the exporter in one month and the importer in the next) than with a stable measurement-convention offset — a real, different-shaped finding from Domain B's, not the same one repeated.
Unlike Domain B's gas finding, none of the reporters checked anonymize
this specific trade line. Every reporter's series for CN8 1518 00 95
carries real, named partner attribution — including Germany, which
suppressed gas partner data completely but discloses this product
normally (just at negligible volume, €21,875/month average).
Confirmed immaterial. 5 observations from China (avg €15,034/month), 1 from India (€50 total). China Customs has no dedicated export series to Ireland at all for this HS code. Ireland's real, indexed trade in biodiesel-adjacent products is intra-EU petroleum blending stock from Spain/Netherlands/France (a different CN8 family entirely), not this waste-oil line. Included in the disclosure map, not the core analysis.
1518 00 95 comingles
genuine waste cooking oil, palm fatty acid distillate, and other
inedible fat/oil blends of varying legitimate quality and price. A
price at parity with virgin oil could mean a higher-value sub-blend
within this code, not necessarily virgin oil relabeled as waste. This
analysis cannot distinguish those cases — it can only say the average
declared price for the whole code doesn't look like cheap waste.1511 10 10)
was chosen as the closer comparator to non-food-grade waste material,
but it is still a specific, single benchmark. A different reference
(rapeseed oil, tallow, a blended feedstock index) could shift the ratio
materially. This should be treated as a first pass, not a settled
benchmark choice.search_news, not found) — none is used here as a
reference marker.Computed 2026-10-28 against the addendum in hypothesis.md (commit 229deff,
pre-registered before these values were pulled). Source: Eurostat Comext via
FactIQ, CN8 1518 00 95 imports, annual 2019–2025. Weights in kt, unit
values (UV) in €/kg. Not vintage-aware (Phase 1 caveat applies).
Read first: this is a monitor, not a verdict. Nothing here shows
mislabelling. See the antithesis section of hypothesis.md.
Asian share of each hub's 1518 00 95 imports (A_h, by weight; Asian set
CN MY ID IN SG TH VN KR; AE excluded from both sides):
| Year | A_NL | A_BE | IE from NL (kt) | IE from BE (kt) | Observable Asian-attributed (kt) | % of IE imports | UK leg, unobservable (%) |
|---|---|---|---|---|---|---|---|
| 2019 | 0.28 | 0.35 | 0.89 | – | 0.25 | 3.5% | 87% |
| 2020 | 0.17 | 0.22 | 0.76 | – | 0.13 | 0.9% | 90% |
| 2021 | 0.19 | 0.04 | 7.57 | – | 1.45 | 3.7% | 80% |
| 2022 | 0.24 | 0.18 | 4.10 | 0.55 | 1.08 | 1.7% | 89% |
| 2023 | 0.18 | 0.10 | 1.59 | 2.29 | 0.52 | 1.6% | 88% |
| 2024 | 0.08 | 0.16 | 9.54 | 2.95 | 1.23 | 9.5% | 3% |
| 2025 | 0.21 | 0.15 | 1.11 | 0.47 | 0.30 | 3.1% | 83% |
Result: no year flagged. The pre-declared rule needs A_h ≥ 0.50; the
highest observed is 0.35 (BE, 2019, a year BE supplied nothing to Ireland).
Observable Asian-attributed exposure is 1–10% of Ireland's imports under
proportional attribution (an upper-bound-style indicator). The dominant
finding is the gap: in six of seven years, 80–90% of Ireland's supply came
through the UK, which Comext cannot decompose. H5 cannot speak to that leg.
Caveat surfaced by the data: hubs' intra-EU imports (e.g. NL 0.6–1.0 Mt/yr)
are counted as non-Asian here, but may themselves contain Asian-origin
material re-routed within the EU, so A_h may understate Asian content.
Asian-origin UV by reporter (cells < 0.5 kt excluded):
| Year | NL | BE | ES | IT | DE | Median |
|---|---|---|---|---|---|---|
| 2019 | 0.58 | 0.62 | 0.60 | – | – | 0.60 |
| 2020 | 0.72 | 0.74 | 0.72 | – | – | 0.72 |
| 2021 | 0.98 | 1.12 | 0.99 | 1.16 | – | 1.06 |
| 2022 | 1.44 | 1.47 | 1.43 | 1.41 | – | 1.44 |
| 2023 | 0.99 | 1.07 | 1.05 | 0.89 | 1.09 | 1.05 |
| 2024 | 0.94 | 0.90 | 0.95 | – | 0.80 | 0.92 |
| 2025 | 1.02 | 1.01 | 1.02 | 1.04 | – | 1.02 |
1511 10 10 CPO UV from ID+MY):| Year | CPO €/kg | NL Asian | NL non-Asian | ES Asian | ES non-Asian | DE non-Asian |
|---|---|---|---|---|---|---|
| 2019 | 0.54 | 1.07 | 1.04 | 1.11 | 1.02 | 0.76 |
| 2020 | 0.61 | 1.18 | 1.05 | 1.18 | 1.15 | 0.85 |
| 2021 | 0.88 | 1.11 | 1.07 | 1.13 | 1.13 | 0.84 |
| 2022 | 1.38 | 1.04 | 1.01 | 1.04 | 0.95 | 0.79 |
| 2023 | 0.97 | 1.02 | 1.05 | 1.08 | 1.02 | 0.67 |
| 2024 | 0.94 | 1.00 | 0.95 | 1.01 | 1.14 | 0.57 |
| 2025 | 1.18 | 0.86 | 0.84 | 0.86 | 0.95 | 0.70 |
Key result — the H1 antithesis holds. Non-Asian waste fats imported into NL and ES price at or above virgin palm just as Asian-origin material does. H1's parity flag therefore fires on a market-wide condition, not an origin-specific one. H1's Spain/BE/NL flags should be read as "waste fats trade at a premium in the EU", which is consistent with the Annex IX double-counting premium, and not as evidence about Asian origin. H1's threshold is not edited (pre-registration), but this result supersedes its interpretation.
Antithesis for the two H6 flags: - DE: Asian volumes are tiny (1.1 kt in 2023, 0.73 kt in 2024, just above the 0.5 kt floor), and DE's non-Asian extra-EU comparator is anomalously cheap against every other reporter (0.57–0.85 × CPO). A composition effect (e.g. lower-grade animal fats) is the more likely reading. - BE: the 2019 comparator is small (1.56 kt); 2021 Asian volume is 6.2 kt. Neither year is recent. BE's later years (2022–2025) show ratios of 1.00–1.09.
Status: PRE-REGISTERED, 2026-08-05. No monthly price/volume panel has been pulled at the time this file is committed — only series existence, reporter coverage, and magnitude checks (metadata, not results). Per project principle, this hypothesis will not be edited after results are computed; if a check finds nothing notable, that is recorded as the result, not adjusted.
This is explicitly not a trading domain, unlike A–D. No output of this domain will ever claim to prove fraud, mislabeling, or circumvention. The purpose is narrower and different: build a reproducible, ongoing monitor of publicly-derived trade patterns in a sector (EU imports of "waste"-classified fats/oils and biodiesel from Asia) that has already drawn real regulatory and investigative scrutiny, using the same quantitative techniques that scrutiny has used — price-benchmark comparison, volume-plausibility comparison, mirror-statistic reconciliation, and disclosure-transparency mapping — and to say plainly, every time, what the data does and does not show. A flagged pattern is a prompt for a human to look further, never a conclusion.
Because this is a monitor, not a one-off backtest, it will be wired
into the existing daily harvester (src/harvest/) after this initial
pass, so the same pre-declared method re-applies to new data as it
arrives — future monthly updates are not new hypotheses, they are the
same method run again.
"Waste"/residue proxy — FactIQ eu_comext_<iso2> schemas:
CN8 1518 00 95 — "Inedible mixtures or preparations of animal fats and
oils and their fractions, whether or not containing vegetable or
microbial fats or oils." This is the specific line real-world reporting
on suspected mislabeled UCO/palm-residue imports has used. Value (_eur)
and quantity (_kg) both available.
Biodiesel — same schemas:
CN8 3826 00 10 (pure FAME, ≥96.5% ester content) and 3826 00 90
(biodiesel mixtures, <70% petroleum content). Value and quantity both
available.
Virgin-oil benchmark — same schemas, from Indonesia:
CN8 1511 10 10 (crude palm oil, technical/industrial use — the closer
comparator, since "waste" material is itself non-food-grade) and
1511 10 90 (crude palm oil, standard/food-adjacent grade — secondary
comparator). Confirmed present for the Netherlands, 2002–2025/2026, value
and quantity both available.
Reporters — confirmed via direct coverage check (COUNT/AVG/date
range on each reporter's own data_points), not assumed:
| Reporter | CN8 15180095 from China | Verdict |
|---|---|---|
Spain (es) |
129 obs, 2011-09 → 2026-05 | Core reporter — strongest coverage |
Belgium (be) |
55 obs, 2018-08 → 2026-03 | Core reporter |
Netherlands (nl) |
20+ obs confirmed 2023–2024, real data | Core reporter |
Italy (it) |
28 obs, 2008-10 → 2026-05 | Core reporter |
Germany (de) |
16 obs, avg €21,875/month | Checked, found immaterial — real series exist (52 partner series total, not anonymized like Domain B's gas finding), but average trade value is negligible next to the four core reporters (millions/month). Included in the disclosure map, excluded from the core price/volume analysis. |
France (fr) |
2 obs total (2012, 2024) | Checked, found unusable — too sparse for any trend statement. Included in the disclosure map only. |
Ireland (ie) |
5 obs, avg €15,034/month; from India: 1 obs, €50 | Checked (2026-08-05 addendum, before any monthly panel pulled), found immaterial — despite Ireland's real-world public profile in biofuel/UCO policy debates, its declared CN8 15180095 trade from China is negligible and from India essentially nil. China Customs has no dedicated export series to Ireland at all for HS 15180000 (no partner match found), consistent with genuinely minimal flow rather than a suppressed/anonymized one. Included in the disclosure map only. |
Core reporter set for H1–H3: ES, BE, NL, IT. DE, FR, and IE are carried into H4 (the disclosure map) only, with their thinness stated as the finding, not hidden.
Partners: China (cn) primary; India (in) secondary, checked but
not yet quantified. Indonesia and Malaysia have no FactIQ trade schema of
their own (Phase 0 finding, still true) and cannot be observed directly
as EU-side partners — but China's own customs data discloses partner
country by name for this exact HS code, including Indonesia, on both
its import and export sides, which is the closest available window onto
that leg of the chain.
Mirror-statistic data — FactIQ china_customs schema:
China's HS8 15180000 export series are partner-disaggregated. Confirmed
exact series IDs exist for exports to Spain, Netherlands, Belgium, Italy,
Germany, France, Poland, and Lithuania (value in USD, plus a _qty
companion in kg), e.g. china_customs_X_8d_15180000_312 = China's
exports to Spain.
Method: for each core reporter, compute implied unit price
(value ÷ quantity, €/kg) monthly for (a) CN8 1518 00 95 from China and
(b) CN8 1511 10 10 from Indonesia (the technical-grade virgin
benchmark, same reporter). Compute the ratio waste_price / virgin_price
each month.
Pre-declared monitoring threshold (not a classical falsification criterion, since this is a monitor, not a backtest — but declared now, in writing, before any monthly value is pulled, for the same no-p-hacking reason): genuine waste/residue material is expected to trade at a real discount to virgin oil. A ratio above 0.70, sustained for 3 or more consecutive months, is flagged as notable in this monitor — worth a human's attention, not proof of anything. This threshold is informed by publicly documented historical UCO-to-virgin-oil discount ranges (typically 20–40% below virgin vegetable oil); it is a round, conservative number chosen in advance, not fitted to this data.
Method: for each core reporter, compute the year-over-year growth
rate of CN8 1518 00 95 import value from China, and separately the
year-over-year growth rate of CN8 1511 10 10/90 (virgin palm oil) and
CN8 3826 00 10/90 (biodiesel) import value from the same or
comparable partners, over the same window. Flag: any period where the
"waste" category's growth rate exceeds every one of these comparators by
a wide margin — no fixed numeric threshold is pre-declared here, since
there is no independently verified "plausible waste generation" series in
FactIQ to calibrate one against; this leg is reported as a relative
comparison chart, not a pass/fail test, and that limitation is stated
here in advance rather than papered over with a fabricated threshold.
Method: identical to Domain B's approach. For each core reporter, compare
China's declared export value/quantity (china_customs_X_8d_15180000_<partner>)
against that reporter's declared import value/quantity
(eu_comext_M_<reporter>_cn_te_p1_cn8_15180095_<eur|kg>) for the same
nominal flow, month by month where both sides report. Relative difference
= |export − import| / max(export, import). Domain B found this method
fails to reconcile for gas (69.7% average gap) — this domain re-runs the
same test on a structurally different commodity (bulk liquid moved by
tanker, not a piped grid commodity), with no assumption about whether it
will reconcile better or worse.
Method: repeat Domain B's anonymization-discovery method (scan the
dimensions table for every partner code attached to the relevant import
series) across a broader reporter set: the 4 core reporters plus DE, FR
(already found thin, checked for anonymization status regardless), and
PL, LT, PT, RO, DK, SE, AT — for both CN8 1518 00 95 and 3826 00 10/90.
Output is a standing table: which reporters disclose real partner data
for this trade, which anonymize, refreshed on every harvest. A reporter
that changes status between harvests is itself the notable event.
search_news), which will
divert palm oil toward domestic use and reduce export availability
going forward. A future decline in Indonesia-linked feedstock volume,
or a future price rise in genuine palm oil, should be read against this
policy first, not assumed to indicate anything about the waste-oil
question.1511 10 10 (technical-grade) and
1511 10 90 (food-grade) crude palm oil carry different legitimate
price levels; the benchmark choice must be stated on every chart, and
both should be shown if they diverge meaningfully.Status: PRE-REGISTERED, 2026-10-28, committed before any H5/H6 result is computed. The same rule applies as for H1–H4: this text will not be edited after results exist. If nothing notable is found, that is the result.
What had already been seen when this was written (disclosed, so the
reader can judge contamination): an exploratory pull of Ireland's own
imports of CN8 1518 00 95 and 3826 00 10 by partner and year,
2019–2026. That showed: near-zero direct trade with China/India/Malaysia;
~80% of 2021–2023 volume from the UK (GB + XI), the rest mainly NL and
BE; a rise from 7.1 kt (2019) to 62.9 kt (2022) and a fall to 9.6 kt
(2025); a one-year UAE flow in 2022 (2.5 kt at €1.56/kg); and several
implausible unit values (e.g. NL→IE FAME 2021 at €0.33/kg). Not yet
seen: any NL/BE import breakdown by origin, any other reporter's unit
values, any benchmark comparison for H6.
Question: how much of Ireland's 1518 00 95 supply arrives through
hubs whose own imports come from Asia and carry the H1 flag?
Method (annual, 2019–2025):
1. For hub h ∈ {NL, BE}, Asian share A_h(y) = hub's 1518 00 95
import weight from the fixed Asian set {CN, MY, ID, IN, SG, TH, VN,
KR} ÷ hub's import weight from all partners. The UAE (AE) is reported
separately as a transshipment partner, never folded into either side.
2. Ireland's exposure via hub h: E_h(y) = Ireland's import weight from
h × A_h(y). This is proportional attribution: it assumes a hub's
re-exports have the same origin mix as its imports. That is a strong
assumption (hubs also collect domestically and blend), so E is an
upper-bound-style indicator, never an estimate of actual Asian content.
3. Report E_NL + E_BE as a share of Ireland's total 1518 00 95
imports, alongside the share that is unobservable (the UK leg,
which Comext cannot decompose because the UK is not a reporter).
Pre-declared notability rule: a year is flagged if A_h(y) ≥ 0.50
for a hub that supplied ≥ 1 kt to Ireland that year and that hub
carried an H1 flag (Asian-origin waste/virgin ratio > 0.70 for 3+
consecutive months) in the same year. Otherwise the result is recorded
as "no notable exposure observable".
Question: do EU member states pay materially different prices for the same CN8 line, and does Asian-origin material price differently from non-Asian material?
Method (annual, 2019–2025): for every EU reporter with ≥ 1 kt of
1518 00 95 imports in at least one year (threshold fixed now), compute
annual unit value (€/kg) for (a) imports from the Asian set, (b) imports
from non-Asian extra-EU partners (US, GB, others), (c) intra-EU imports.
Cells under 500 t in a year are excluded as noise and listed, not hidden.
1511 10 10
import unit value from ID+MY where ≥ 500 t exists, otherwise NL's.Pre-declared notability rule: a reporter is flagged if its Asian- origin unit value is ≥ 25% above that year's cross-reporter median in 2 or more years, or its Asian/non-Asian ratio is ≥ 1.15 in 2 or more years. Both are round numbers chosen before any value was pulled.
Independent personal project by Ian Bergin. Not affiliated with, endorsed by or sponsored by FactIQ, which is used as one of several data sources.
Password required.