The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Introduction to gvcAnalyzer: BM 2023 and BM 2025 GVC Decomposition

gvcAnalyzer Package

2025-12-02

Introduction

The gvcAnalyzer package implements two complementary methodologies for measuring global value chain (GVC) participation:

  1. BM 2023: Measuring what matters in value-added trade (Bilateral Focus).
  2. BM 2025: Economic consequences of trade and global value chain integration (Tripartite & Output Focus).

This vignette demonstrates both frameworks using a four-country, three-sector input–output table. The example includes China, India, Japan, and Rest of World (ROW), each with Primary, Manufacturing, and Service sectors.

References

Borin, A., & Mancini, M. (2023). Measuring what matters in value-added trade. Economic Systems Research, 35(4), 586–613

Borin, A., Mancini, M., & Taglioni, D. (2025). Economic consequences of trade and global value chain integration: A measurement perspective. The World Bank Economic Review

Data and Setup

Toy Multi-Regional Input–Output Table

The package includes a minimal MRIO table for demonstration purposes:

# Countries and sectors
bm_toy_countries
#> [1] "China" "India" "Japan" "ROW"
bm_toy_sectors
#> [1] "Primary"       "Manufacturing" "Service"

# Dimensions
cat("Intermediate flows (Z):", paste(dim(bm_toy_Z), collapse = " × "), "\n")
#> Intermediate flows (Z): 12 × 12
cat("Final demand (Y):", paste(dim(bm_toy_Y), collapse = " × "), "\n")
#> Final demand (Y): 12 × 4
cat("Value added (VA):", length(bm_toy_VA), "industries\n")
#> Value added (VA): 12 industries
cat("Gross output (X):", length(bm_toy_X), "industries\n")
#> Gross output (X): 12 industries

Building the IO Object

All gvcAnalyzer functions operate on a bm_io object that contains the structured IO data and derived matrices:

io <- bm_build_io(
  Z         = bm_toy_Z,
  Y         = bm_toy_Y,
  VA        = bm_toy_VA,
  X         = bm_toy_X,
  countries = bm_toy_countries,
  sectors   = bm_toy_sectors
)

# Structure
io$G    # number of countries
#> [1] 4
io$N    # number of sectors
#> [1] 3
io$GN   # total industries
#> [1] 12

The bm_io object includes:

BM 2023: Detailed Bilateral Decomposition

The BM 2023 framework focuses on precise accounting of value-added in bilateral trade, distinguishing between source and sink perspectives.

Exporter-Level Decomposition

For each exporting country s, gross exports are decomposed into:

# Single country
bm_2023_exporter_total(io, 1) # Using index 1 for China
#>   country   DVA_s   DDC_s    FVA_s   FDC_s    EX_s
#> 1   China 2144685 8288.95 341856.2 1346.26 2496178

# All countries
bm_2023_exporter_total_all(io)
#>   country     DVA_s      DDC_s     FVA_s      FDC_s    EX_s
#> 1   China 2144685.3  8288.9498 341856.18 1346.25971 2496178
#> 2   India  424505.3   249.2700  72383.77   46.17244  497185
#> 3   Japan  660082.5   637.2357  94197.73   92.00585  755010
#> 4     ROW 2767872.8 13273.2642  94653.40  456.62833 2876256

Bilateral Decomposition

Source-Based Perspective

The source-based decomposition tracks value added by its country of origin in bilateral trade flows:

# Exports from China to India
bm_2023_bilateral_source(io, 1, 2)
#>   exporter importer DVAsource_sr DDCsource_sr FVAsource_sr FDCsource_sr EX_sr
#> 1    China    India     77542.28      300.136     12376.79     48.74709 90268

Pure Bilateral Flows

The pure decomposition isolates direct bilateral value-added flows, excluding third-country effects:

bm_2023_bilateral_pure(io, 1, 2)
#>   exporter importer DVA_star_sr DDC_star_sr FVA_star_sr FDC_star_sr EX_sr
#> 1    China    India    77838.34    4.075798    12424.87   0.6656287 90268

BM 2025: Tripartite & Output Decomposition

The BM 2025 framework introduces the “Tripartite” concept (Forward, Backward, Two-Sided) and extends GVC measurement to the production side.

Tripartite GVC Trade Decomposition

The tripartite decomposition classifies bilateral exports into traditional trade and three types of GVC-related trade:

# Single bilateral pair (China -> India)
bm_2025_tripartite_trade(io, 1, 2)
#>   exporter importer  E_sr DAVAX_sr   GVC_sr   GVC_PF   GVC_TS   GVC_PB
#> 1    China    India 90268 69106.63 21161.37 8435.702 1403.456 11322.22

Aggregate Trade Components

Summing over all destination countries provides exporter-level GVC trade components:

trade_comp <- bm_2025_trade_exporter(io)
trade_comp
#>   exporter     E_s     GVC_s  GVC_PF_s  GVC_TS_s  GVC_PB_s
#> 1    China 2496178 438493.93  87002.55 14403.632 337087.75
#> 2    India  497185  88754.79  16075.58  2975.461  69703.75
#> 3    Japan  755010 138716.78  43789.81  6550.941  88376.04
#> 4      ROW 2876256 547792.94 439409.60 17276.110  91107.23

GVC Participation Indicators

From these components, we compute trade-based participation measures:

trade_meas <- bm_2025_trade_measures(io)
trade_meas
#>   exporter     E_s     GVC_s  GVC_PF_s  GVC_TS_s  GVC_PB_s share_GVC_trade
#> 1    China 2496178 438493.93  87002.55 14403.632 337087.75       0.1756661
#> 2    India  497185  88754.79  16075.58  2975.461  69703.75       0.1785146
#> 3    Japan  755010 138716.78  43789.81  6550.941  88376.04       0.1837284
#> 4      ROW 2876256 547792.94 439409.60 17276.110  91107.23       0.1904535
#>   share_PF_trade share_TS_trade share_PB_trade forward_trade
#> 1      0.1984122     0.03284796      0.7687398    -0.5703276
#> 2      0.1811235     0.03352451      0.7853519    -0.6042284
#> 3      0.3156778     0.04722529      0.6370969    -0.3214191
#> 4      0.8021454     0.03153766      0.1663169     0.6358285

Key indicators:

  • share_GVC_trade: Share of exports that are GVC-related
  • share_PF_trade, share_TS_trade, share_PB_trade: Composition of GVC trade
  • forward_trade: Forward orientation index = (GVC_PF − GVC_PB) / GVC

A positive forward_trade indicates upstream positioning (supplier of intermediates), while negative values indicate downstream positioning (assembler using foreign inputs).

BM 2025: Output-Based GVC Decomposition

The BM 2025 framework measures GVC participation from the production side, decomposing gross output rather than exports.

Country-Level Output Components

For each country s, gross output is decomposed into:

out_comp <- bm_2025_output_components(io)
out_comp
#>   country  GVC_PF_X  GVC_PB_X GVC_TSImp GVC_TSDom  GVC_TS_X     GVC_X     DomX
#> 1   China  87001.08 226301.71 1984093.0 145326.53 2129419.5 2442722.3 12077920
#> 2   India  16075.05  46234.14  341713.9  13620.80  355334.7  417643.9  2151580
#> 3   Japan  43789.25  58926.79  527442.6  36361.99  563804.6  666520.6  4151500
#> 4     ROW 439409.35 254812.04 1823517.6 449083.39 2272601.0 2966822.4 57671452
#>      TradX   X_total
#> 1 22151856  36672498
#> 2  2270374   4839598
#> 3  3932253   8750273
#> 4 55587908 116226183

The identity holds: X_total = DomX + TradX + GVC_X

Output-Based Participation Measures

From the output components, we derive participation indicators analogous to the trade-based measures:

out_meas <- bm_2025_output_measures(io)
out_meas
#>   country  GVC_PF_X  GVC_PB_X GVC_TSImp GVC_TSDom  GVC_TS_X     GVC_X     DomX
#> 1   China  87001.08 226301.71 1984093.0 145326.53 2129419.5 2442722.3 12077920
#> 2   India  16075.05  46234.14  341713.9  13620.80  355334.7  417643.9  2151580
#> 3   Japan  43789.25  58926.79  527442.6  36361.99  563804.6  666520.6  4151500
#> 4     ROW 439409.35 254812.04 1823517.6 449083.39 2272601.0 2966822.4 57671452
#>      TradX   X_total share_GVC_output share_PF_output share_TS_output
#> 1 22151856  36672498       0.06660911      0.03561645       0.8717403
#> 2  2270374   4839598       0.08629724      0.03848983       0.8508079
#> 3  3932253   8750273       0.07617141      0.06569826       0.8458922
#> 4 55587908 116226183       0.02552628      0.14810774       0.7660051
#>   share_PB_output forward_output
#> 1      0.09264324    -0.05702680
#> 2      0.11070228    -0.07221245
#> 3      0.08840956    -0.02271129
#> 4      0.08588719     0.06222055

Key indicators:

Sector-Level Decomposition

The BM 2025 framework extends to country–sector pairs by proportional allocation based on sectoral output shares:

out_comp_sec <- bm_2025_output_components_sector(io)
head(out_comp_sec, 9)
#>   country        sector      X_i     DomX_i     TradX_i  GVC_PF_Xi   GVC_PB_Xi
#> 1   China       Primary  3281502 1104751.84  1886504.79 11065.2952   2197.2355
#> 2   China Manufacturing 16650390 3024032.37 11438638.98 44890.1216 158581.0612
#> 3   China       Service 16740606 7949135.51  8173835.06 31045.6670  32428.5510
#> 4   India       Primary   637990  432358.86   184911.01  3253.3344    528.8139
#> 5   India Manufacturing  1532351  293393.55  1011596.14  4467.9004  30579.2489
#> 6   India       Service  2669257 1425827.50  1138779.59  8353.8112  14137.8388
#> 7   Japan       Primary   122077   46272.56    65053.01   608.7586    267.9981
#> 8   Japan Manufacturing  2653472  721062.50  1599990.69 20695.8292  36667.2447
#> 9   Japan       Service  5974724 3384164.82  2368544.27 22484.6602  19152.4677
#>   GVC_TSImp_i GVC_TSDom_i   GVC_TS_Xi     GVC_Xi
#> 1  250445.495   26537.340  276982.835  290245.37
#> 2 1924357.616   59889.847 1984247.463 2187718.65
#> 3  495261.865   58899.345  554161.210  617635.43
#> 4   12386.388    4551.597   16937.984   20720.13
#> 5  189469.273    2844.887  192314.161  227361.31
#> 6   75933.949    6224.317   82158.267  104649.92
#> 7    8852.171    1022.506    9874.677   10751.43
#> 8  261587.673   13468.070  275055.743  332418.82
#> 9  158506.371   21871.418  180377.789  222014.92

Summary

This vignette introduced the gvcAnalyzer package and demonstrated:

  1. Construction of the bm_io object from multi-regional input–output data
  2. BM 2023 bilateral decompositions for precise accounting
  3. BM 2025 tripartite trade decomposition for GVC roles
  4. BM 2025 output-based decomposition for production-side analysis

For empirical applications, users can replace the toy data with full MRIO tables (e.g., WIOD, OECD-ICIO, ADB-MRIO) following the same workflow.

Session Information

sessionInfo()
#> R version 4.5.1 (2025-06-13)
#> Platform: aarch64-apple-darwin20
#> Running under: macOS Sequoia 15.6
#> 
#> Matrix products: default
#> BLAS:   /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRblas.0.dylib 
#> LAPACK: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1
#> 
#> locale:
#> [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
#> 
#> time zone: Asia/Tokyo
#> tzcode source: internal
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] gvcAnalyzer_0.1.1
#> 
#> loaded via a namespace (and not attached):
#>  [1] digest_0.6.38     R6_2.6.1          fastmap_1.2.0     Matrix_1.7-4     
#>  [5] xfun_0.54         lattice_0.22-7    cachem_1.1.0      knitr_1.50       
#>  [9] htmltools_0.5.8.1 rmarkdown_2.30    lifecycle_1.0.4   cli_3.6.5        
#> [13] grid_4.5.1        sass_0.4.10       jquerylib_0.1.4   compiler_4.5.1   
#> [17] rstudioapi_0.17.1 tools_4.5.1       evaluate_1.0.5    bslib_0.9.0      
#> [21] yaml_2.3.10       rlang_1.1.6       jsonlite_2.0.0

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.