GTAP Standard 7 · Python vs GAMS · PATH/MCP both sides

MCP convergence & parity matrix

Python solved via PATH (nonlinear-full MCP) against the cleanly-converged NEOS MCP reference. With clean refs the match is 99%+ everywhere — the 89–97 the NLP gate reads is the mis-converged NLP reference, not the model. Cell-by-cell match at 1% tolerance, per period, with the solve return code. Measured by re-running the solve (gen_nlp_matrix_page.py); the floor under each cell is the versioned contract the test asserts.

Each cell: measured match% (color) · convergence chip · contract floor match %: ≥99 95–99 <95 convergence: ✓ code 1 ✕ code 2

Pure-gtap

real-CES · ifSUB=0 & 1
Dataset · ifSUBBaseCheckShock
Pure MCP is 100% with clean refs. Every pure dataset (3×3/5×5/10×7/15×10, both ifSUB) matches 100% across all three stages against the NEOS-regenerated subsidy-aware out_gtap_shock_ifsub{N}.gdx. The earlier ~63% was a subsidy-blind reference (ytax[ft]=0), not the model. The one ✕ (15×10 ifSUB=1 shock) is a PATH code=2 near-miss on the tight threshold — the point is still 100% correct cell-by-cell.

Altertax

CD · ifSUB=0 & 1
Dataset · ifSUBBaseCheckShock
Clean MCP refs land 99%+. Base/check are exact and shock is ≥99.3 against the NEOS-regenerated subsidy-aware out_altertax_ifsub{N}.gdx — this is the daily fidelity gate. 15×10 shock ~95% is the known eq_paa Armington micro-cell family; the ~89–97 the NLP gate reads was its mis-converged NLP ref.