# Phase 66 — accounting reconstruction audit

**Interpretation update (phase68):** The counts below preserve the original current-year/strict-tolerance hypotheses. Later lag-field and precision diagnostics explain most discrepancies. They must not be read as proof that all supplied indicators are erroneous. See [PREPROCESSING_VALIDATION_V68.md](PREPROCESSING_VALIDATION_V68.md).

The planned profitability/tax pilot is paused: supplied indicators do not consistently reconstruct from candidate raw accounting identities. This is a diagnostic, not proof that the original records are false; preprocessing, field mapping and statement scope remain unresolved.

Input: checksum-pinned KoTaP record 17149808 from phase 65, 12,653 rows. No rows removed or transformed in the input. Comparisons use numpy isclose with rtol=1e-6 and atol=1e-8; nonfinite pairs never pass. Rates are dimensionless. Monetary currency/scaling and consolidated versus separate scope are not verified. No KRW threshold classification is permitted.

| Supplied indicator | Candidate identity | Matching rows / 12,653 |
|---|---|---:|
| ROA | ni / lag_asset | 9,090 |
| ROE | ni / lag_equit | 9,329 |
| CFO | ocf / lag_asset | 8,874 |
| LEV | liab / asset | 0 |
| SIZE | log(asset) | 2 |
| GETR | clip((pti − ni) / pti, 0, 1) | 10,803 |
| CETR | clip(tax / pti, 0, 1) | 192 |

The last two mappings and clipping are explicit hypotheses, not confirmed source definitions. A match does not establish field semantics, and a mismatch does not isolate its cause. No alternative formula was selected to maximize agreement. Lag-field provenance and intervening missing years also require verification.

Documentation itself requires reconciliation: the paper describes negative sign multiplication for annual ETRs while the supplied annual ETR columns are nonnegative; it also distinguishes multi-year ratios of sums from simple averages. Do not reverse signs or recalculate multi-year indicators without resolving these differences. The README does not supply a complete raw-field currency dictionary. No tax avoidance ranking, effect estimate or profitability trend is published from these unverified measures.

## Reproduction

1. Acquire verified inputs with `python scripts/inspect_firm_data_v65.py --download`.
2. Run `python scripts/audit_accounting_v66.py`.
3. Inspect `data/processed/accounting_audit_v66.json`.
4. Run `python -m unittest discover -s calibration -p 'test_*v6*.py'`.

Raw inputs remain excluded from git and public asset serving. The phase 65 license/version conflict remains unresolved. This report contains audit counts, not firm records.

## Next work, in order

1. Obtain a complete field dictionary and preprocessing log for this exact release; reconcile currency, sign, clipping, lags and statement scope against original financial statements.
2. Independently rebuild a small, explicitly sourced accounting sample before trusting annual or multi-year tax indicators. OpenDART requires an authorized API key; no account/application or external message has been sent.
3. Only after reconciliation, define a descriptive cohort and attrition analysis before computing profitability/tax trends.
4. Keep actual domestic taxable income, policy exposure and confounding checks separate. Descriptive validation alone cannot unlock fiscal calibration.

Sources: [pinned data release](https://doi.org/10.5281/zenodo.17149808), its README (see phase 65 checksums), [paper](https://arxiv.org/pdf/2511.04094). Empirical match counts above are our direct computations on the pinned file, not claims from the paper.
