# TCAS calculation audit — 10 September 2026

Scope: the strategy dashboard, competition guide, planner, Bayesian analysis and report index.

## Verified inputs

- TCAS69 Round 3: [myTCAS June 10 workbook](https://assets.mytcas.com/69/TCAS69-R3-MinMax-10June26.xlsx): 5,104 rows, 174,769 row seats, 977,321 application records, 98,725 final-processing passes. These are row sums, not unique people or confirmed enrolments. Shared admission groups can affect interpretation.
- [May 18 registration snapshot](https://assets.mytcas.com/69/T69-R3.jpg): 125,455 people and 176,341 registration seats. This is a different snapshot from the June workbook.
- [A-Level69 statistics](https://assets.mytcas.com/69/T69-A-Level-basic-stats.jpg): English mean 42.424; 38.750 is the median. [TGAT/TPAT69 statistics](https://assets.mytcas.com/69/T69-TGAT-TPAT.jpg) provide participant counts and means.
- [NIETS O-NET academic year 2568 report](https://www.niets.or.th/th/content/download/27080), tables 3–4: M6 means Thai 40.32, social studies 36.96, English 30.15, mathematics 21.00, science 31.99. Regional figures and subject-specific denominators are recorded in data/onet_2568_verified.json.
- [IPST PISA2025 release](https://pisathailand.ipst.ac.th/news-23/): Thailand mathematics 407, science 432, reading 392. Full extraction and source notes: PISA_2025_UPDATE_RESEARCH.md and data/pisa_2025_verified.json.

## Definitions and corrections

Competition = application records / row seats. Raw tiers: S ≥80, A ≥25 and <80, B ≥5 and <25, C <5; zero seats yield unavailable. No prestige overrides. Final-processing passes / row seats = 56.49%. This is a descriptive ratio of two workbook column totals, not an admission, confirmation, enrolment, vacancy, or seat-fill rate. The former `exam_pressure_index` name and 0.56 display were retired because they encouraged a competition interpretation the data cannot support. Missing final cutoffs remain missing. Branch, project and shared-group identities are retained; ambiguous history is suppressed. Historical score comparisons begin with TCAS66 and still require matching admission formulas.

Planner and Bayesian labels share Dream <20%, Target <60%, Likely <85%, Safety ≥85%. These are illustrative normal-model estimates with sigma 5.25, not empirically calibrated admission probabilities. Displayed tiny positive tails have a 0.01% floor consistently in both tools; this is display handling, not measured confidence. A score must use the same formula as its cutoff. PISA and O-NET are context and do not enter admission calculations. Subject priorities and index scenarios are editorial examples, clearly labelled.

Corrected Student-t tails and critical values, Welch degrees of freedom, OLS F significance and adjusted R², matrix conditioning, and MCMC log likelihood. Missing scores and invalid groups no longer generate invented inputs. Cross-validation rejects insufficient samples. MCMC uses fixed sample variance and flat mean priors; it does not estimate admission uncertainty from national exams.

Removed unsupported regional opportunity scores and artificial tier trend series. Current regional O-NET figures replace the former. The latest completed admissions dataset is TCAS69; TCAS70 is upcoming.

## Reproduction and validation

Download the official workbook, then run scripts/refresh_tcas69.py WORKBOOK.xlsx with Python and openpyxl. It refreshes the embedded and JSON data, track aggregates and source metadata. The workbook SHA-256 is in the source registry.

Run `node tests/calculation-audit.test.js` and `npm test --prefix "Baysian TCAS Analysis"`. Checks cover every program ratio/tier, aggregate consistency, embedded-data parity, statistical reference cases, missing-data behavior, shared risk bands and JavaScript syntax. Browser checks cover all five pages at desktop and mobile sizes, planner prompt generation, console errors and horizontal overflow. Live Gemini requests are not part of these tests.

Limitations: track classification is inherited and 161 rows remain unclassified. Individual university criteria, historical formula equivalence and forecast calibration are not independently certified. Source revisions require a new refresh. The linked sample reports are historical examples, not current admissions results.
