# China-origin value added in three partners' manufacturing exports: a 2022 benchmark

**Completed original calculation: 2022 accounting evidence.**
This package implements the earlier Statecrafts electronics protocol and its
pre-analysis, nine-cell extension. It uses one historical accounting table,
not a time series, experiment, supplier survey, or 2026 exposure measurement.

## Main result

China-origin basic-price value added exceeds U.S.-origin value added in each of
the nine selected gross-export bundles. The shares are:

| Exporting economy | Industry | China-origin VA | U.S.-origin VA |
| --- | --- | ---: | ---: |
| Japan | C26 — computer, electronic and optical products | 7.55% | 2.90% |
| Japan | C27 — electrical equipment | 6.53% | 2.66% |
| Japan | C28 — machinery and equipment n.e.c. | 3.90% | 2.01% |
| Korea | C26 — computer, electronic and optical products | 9.40% | 3.22% |
| Korea | C27 — electrical equipment | 9.68% | 3.68% |
| Korea | C28 — machinery and equipment n.e.c. | 7.46% | 3.73% |
| Germany | C26 — computer, electronic and optical products | 6.74% | 3.06% |
| Germany | C27 — electrical equipment | 5.13% | 2.74% |
| Germany | C28 — machinery and equipment n.e.c. | 3.20% | 2.45% |

Denominators are each country's industry-specific gross exports to all foreign
destinations, including intermediate and final uses. Monetary results in
[results.csv](results.csv) are **current U.S. dollars, millions**. Shares are
percentages; differences are percentage points. The primary measure excludes
the separately reported taxes less subsidies on intermediate products.

## Frozen question and data provenance

[frozen-scope.json](frozen-scope.json) was saved before matrix acquisition and
before observing estimates. The purposive sample is JPN/KOR/DEU × C26/C27/C28,
2022, with separate CHN and USA origins. It is not an exhaustive allied sample.
The computation retains **all 4,050 production nodes: 81 origins × 50 industries**.

The producer is the OECD, using its **regular ICIO, 2025 edition, January 2026
second revision**. This is not the extended firm-split ICIO used for published
OECD GVC indicators. The [OECD landing page](https://www.oecd.org/en/data/datasets/inter-country-input-output-tables.html),
[regular ReadMe workbook](https://webfs-sti.oecd.org/files/STI-PIE/ICIO/2025/ReadMe_ICIO_small.xlsx),
and [2025 annex](https://webfs-sti.oecd.org/files/STI-PIE/ICIO/2025/ICIO2025annex.pdf)
define the data structure, labels and units.

The direct OECD `2016-2022_SML.zip` download was HTTP-403/Cloudflare blocked in
this environment. The actual table was acquired from the
[World Bank's institutional reproducibility archive, catalog 511](https://reproducibility.worldbank.org/catalog/511/study-description)
([download endpoint](https://reproducibility.worldbank.org/catalog/511/download/1471),
DOI [10.60572/00tk-h866](https://doi.org/10.60572/00tk-h866)). Its catalog explicitly
identifies `data_raw/2022_SML.csv` as the January 2026 update of OECD regular ICIO
2025. Its embedded publisher hash report, dated March 20, 2026, agrees with the
extracted table's SHA-256:

`fbab8fd2727bda9fd8c6cfee8227816db82d33bef6aa4b90194ca5dcbc5ad14b`

This establishes identity to that archived file, **not independently verified
byte identity to today's inaccessible direct OECD download**. The World Bank
archive is a retrieval route, not a substitute dataset or a coauthor of these
calculations. No tariff data, aggregation scripts or simulation code from its
package were used. Raw bulk inputs remain outside the application repository.

[source-manifest.json](source-manifest.json) records exact URLs, retrieval times,
filenames, bytes, hashes, ZIP member metadata and the publisher hash comparison.
The dataset license is CC BY 4.0 as documented by the archive; acknowledge OECD
as data producer and Statecrafts for this calculation. Neither institution
endorses these findings. [analysis-decisions.json](analysis-decisions.json)
records the retrieval and source-balance decisions without changing the frozen
substantive scope.

## Calculation

1. Read the official labels rather than relying on positional country codes or
   the ReadMe's stale numeric ID sequence. Check the complete row and column
   label lists against the workbook. Intermediate rows/columns are the same
   4,050 country-industry nodes. The six final-demand uses are HFCE, NPISH, GGFC,
   GFCF, INVNT and DPABR; the latter includes direct purchases abroad.
2. Extract intermediate transactions **Z**, output **x**, basic-price value
   added **v**, and intermediate-product taxes less subsidies **t**. Use the
   published output row; verify that it equals the output column exactly.
3. Form **A = Z diag(1/x)**. There are 51 zero-output nodes. Their transaction,
   final-demand, VA and tax entries are all zero; set their input coefficients
   to zero, without dropping any country or industry. No values are clipped.
4. For each selected node *j*, sum its sales to every foreign intermediate-use
   column and every foreign final-demand column. Exclude domestic uses and the
   provided OUT total. The vector **e** has that gross-export value only at
   node *j* and zero elsewhere.
5. Solve **(I − A) q = e** with SciPy's LU solver. A single factorization solves
   the nine separate right-hand sides; no explicit matrix inverse is formed.
6. Compute **bᵛ = diag(v/x) q**. Sum those contributions over every industry in
   each origin country. Divide the CHN or USA sum by the selected cell's gross
   exports. The domestic-origin sum includes upstream domestic value added
   that may have crossed a border and returned.
7. Compute **bᵗ = diag(t/x) q** separately. Supplementary `*_va_plus_tls_share_pct`
   columns show VA-plus-net-tax accounting; these are not silently substituted
   for headline basic-price VA. The distinction matters when comparing with
   [OECD TiVA methodology](https://stats.oecd.org/wbos/fileview2.aspx?IDFile=2143f34e-6feb-41a9-abaf-cb52132608c4),
   whose factor-income convention includes intermediate-product net taxes.
   Regular-versus-extended ICIO differences must also be reconciled before
   comparing to a published TiVA indicator.

The fixed-proportion input-output model treats an industry as homogeneous. It
traces value origin through the full global upstream network, not only direct
imports. It does not identify individual suppliers or physical components.

## Source-balance warning: explicitly unresolved, not hidden rounding

The source has four-decimal monetary precision: **0.0001 USD million**. A full
token scan is recorded in [source-format.json](source-format.json). The original
conservative rounding tolerances are `(number of summed terms) × 0.00005` USD
million, plus a `1e-7` floating-point allowance. They remain unchanged.

**123 output rows and 26 input columns exceed those rounding envelopes.**
The largest output-row discrepancy is 238.6058 USD million (`USA_L`); the largest
input-column discrepancy is 82.032 USD million (`CHN_L`). These discrepancies
cannot honestly all be called rounding. Their source cause remains unresolved.
The published matrix, output, VA and taxes are left unchanged.

Define the unexplained input-account gap as
**g = x − column_sum(Z) − v − t**. The explicit unallocated account for each
bundle is **sum(diag(g/x) q)**. This is *not* assigned to any country or added to
VA. It is distinct from the final floating-point numerical residual:

`exports = all-origin basic-price VA + explicit net taxes + unallocated source balance + numerical residual`

For the nine selected bundles, the propagated unallocated source balance is
**0.00787049–0.04458313 USD million** (about **$7,870–$44,583**). Its largest share
is **0.00003372% of exports**. To show that cancellation is not concealing a
large accounting gap, the validation also propagates the **absolute** gaps:
`sum(abs(g/x) * abs(q))`; the largest corresponding share is **0.00004788%**.
These are accounting diagnostics, **not confidence intervals or bounds on all
measurement/model error**. They do not establish that the original statistics
are otherwise exact. The two-place percentage rankings are far larger than
these particular residuals.

[source-balance-diagnostics.csv](source-balance-diagnostics.csv) exposes all
4,050 node discrepancies. [validation.json](validation.json) therefore reports
`passed_with_source_balance_warnings`, with a separate numerical pass; it does
**not** claim that source balances passed. It also records all nine reconciliations,
solver residuals, conditioning, and signed-value checks. The source contains
two negative VA entries, 134 negative net-tax entries, and 189 negative final-use
entries (all inventory changes), but no negative intermediate transactions.
They are retained as published; no undocumented clipping or adjustment occurs.

## Reproduce

Use the isolated analysis requirements, not the application's environment or
locks. The reference run used CPython 3.10.19 and two BLAS threads. Package
versions and numerical-library details are in [environment.json](environment.json).
[requirements-analysis.lock](requirements-analysis.lock) lists exact resolved
versions; it is **not** a distribution-hash lock.

From the Statecrafts repository root, with the free `uv` tool available:

```sh
uv venv --python 3.10.19 /tmp/statecrafts-icio-env
uv pip sync --python /tmp/statecrafts-icio-env/bin/python docs/studies/2026-09-23-china-upstream-exposure/requirements-analysis.lock
python3 docs/studies/2026-09-23-china-upstream-exposure/acquire.py --raw-dir /tmp/statecrafts-icio-raw
/tmp/statecrafts-icio-env/bin/python docs/studies/2026-09-23-china-upstream-exposure/analyze.py --raw-dir /tmp/statecrafts-icio-raw --output-dir /tmp/statecrafts-icio-results
```

For existing cached data, add `--offline` to `acquire.py`; it verifies source
hashes and the archive's embedded publisher hash report without network access.
`analyze.py` is always offline and checks the table and ReadMe against the
manifest. The acquired CSV is approximately 90 MB; only one year is extracted.
Raw inputs and rerun outputs are intentionally external to the application
repository.

The network acquisition checks frozen core-source checksums; changed producer
files require explicit review rather than automatic vintage substitution.
A newly retrieved catalog HTML page can change because of page counters; that
metadata refresh is recorded separately and never weakens the matrix hash check.

## Files and use limits

- [results.csv](results.csv): nine cells, full-precision numerators, denominators,
  percentages, separate taxes/source balance and source-table hash.
- [all-origin-reconciliation.csv](all-origin-reconciliation.csv): 729 rows
  (nine bundles × 81 origins), with signed VA and taxes kept separate.
- [summary.json](summary.json): compact findings and machine-readable limits.
- [china-us-shares-2022.png](china-us-shares-2022.png) / [SVG](china-us-shares-2022.svg):
  two-origin comparison, directly backed by `results.csv`.
- [origin-accounting-2022.png](origin-accounting-2022.png) / [SVG](origin-accounting-2022.svg):
  full accounting composition, including the retained source-balance account.
- [mappings.json](mappings.json): official country/industry mappings and labels.
- [acquire.py](acquire.py) / [analyze.py](analyze.py): acquisition and calculation
  entry points. The analysis does not import or execute code from the archive.

**Do not add the nine bundles into a unique coalition value-added total**:
gross exports can include repeated border crossings of the same upstream value.
There is no sampling confidence interval for this single accounting table.
C26/C27/C28 are broad industries, not separate semiconductor, battery, machine-tool,
or military-product measurements. Value-added shares do not establish bottleneck
severity, qualified substitutes, inventories, ownership, delivery time, military
suitability, or wartime availability. Use this historical benchmark to choose
where current supplier-level validation is needed—not to declare current
dependence or count all partner output as independent redundancy.

## Independent verification and portable edition

The [independent verification](independent-verification.md) reconstructs the
source CSV separately and solves transposed origin systems. All nine result
rows and all 729 origin rows agree with the forward calculation; SVG bar
geometry was also checked. The two pure-rounding source-balance tests remain
explicit failures, not silently converted into numerical passes. Its
[hash-bound receipt](verification-receipt.json) distinguishes those conditions.
The [offline rerun receipt](reproduction-check.json) records 11 byte-identical
generated outputs from the original analysis.

The [printable study](study.pdf) and [complete portable package](study-package.zip)
contain the report, policy brief, data, charts, methods, provenance and
independent checks. The ZIP omits raw OECD matrices, unrelated archive data and
local environments. Unzip it and follow the acquisition commands above; use
the independent-verification document for the separate calculation recipe.
