# MacroVision 63 — Event audit and comparison feasibility

Executed 26 October 2026. This stage screens research design; it does not estimate
or certify a causal response of tax receipts to a tax-rate change.

## Design locked for this run, not prospectively preregistered

Rules and source annotations are in `data/metadata/event_design_v63.json`.
The previous v62 outcome profiles were already known. V63 rules were written
before calculating its new comparison profiles, but this is not a preregistration.
Revenue levels, post-event effects and pre-event fit are not used to choose events
or controls. Source hashes are stored with the output. No original data was edited.

For each of the 25 v61 isolated events:

- Require eight consecutive years, event year -4 through +3, to check every
  incoming statutory-rate transition for the seven-year outcome window.
- A treated event must have no other rate movement exceeding 0.000001 pp in
  transitions at years -3 through +3. This deliberately strict rule also picks up
  small changes in combined subnational rates; rejection is not evidence of bad data.
- A comparison country must be different from the treated country, have the
  same calendar window, no recorded rate movement in any of those transitions,
  and a t=-1 combined rate within 10 pp of the treated baseline. A 5 pp band is
  separately counted as a support sensitivity diagnostic.
- Exclude known distribution-tax regimes: Estonia throughout the panel and
  Latvian windows reaching 2018 or later. The source register records why.
- Require at least five candidate controls. Use equal country weights within
  an event. Controls are fixed across all seven event times.

Stable **recorded rates** do not establish unchanged tax bases, comparable
institutions or an exogenous counterfactual. Use of future policy stability to
select controls can itself induce selection; the diagnostic design is retrospective.
No control country has been certified by a full institutional audit in this stage.

## Screening results

| Screen | Events |
|---|---:|
| Original v61 isolated events | 25 |
| Additional rate changes in strict transition window | 13 |
| Known regime mismatch | 2 |
| Mechanically supported descriptive comparisons | 6 |
| Supported increases | 2 |
| Supported decreases | 4 |
| Events approved for causal estimation/calibration | 0 |

The categories overlap or reflect different filters; they must not be summed.
The six supported comparisons are HUN 2017, KOR 2009, KOR 2018, SVN 2017,
SWE 2009 and SWE 2013. Only KOR 2018 and SVN 2017 are increases.
Six events have an initial primary-source or regime screen; 19 still lack an
individual institutional screen. Even the reviewed six have not received a full
legal, anticipation or concurrent-policy audit.

The incoming transition at t=-3 matters: for example MEX 2010, PRT 2018 and
SVK 2017 each have another recorded rate change at that boundary. An endpoint-only
window can miss the change into its first year. This is a stricter v63 definition;
existing v61/v62 results are preserved as originally defined.

## What the source review found

| Event | Institutional distinction | Source |
|---|---|---|
| Latvia 2018 | Shift from accrued-profit to distribution-based taxation; not a simple rate rise | Latvia Ministry of Finance; OECD Tax Policy Reforms 2018 |
| Korea 2018 | National top rate 22 to 25 percent above KRW 300 billion; lower bands unchanged | OECD Economic Surveys: Korea 2018 |
| Portugal 2018 | State surtax 7 to 9 percent above EUR 35 million | OECD Tax Policy Reforms 2018 |
| Slovenia 2017 | General rate 17 to 19 percent alongside personal-income-tax changes | OECD Tax Policy Reforms 2017 |
| Mexico 2010 | Increase described in 2011 as temporary; later announced path is not verified implementation | OECD fiscal reform paper, 2011 |
| Estonia 2015 | Distribution-tax regime; specific 2015 reform remains unaudited | European Commission, Taxation Trends 2010 |

These are initial summaries, not legal advice or a complete reform chronology.
Full URLs, retrieval dates, locations and archival limitations are in the design
JSON. Full original source documents have not been archived in the repository.

## Pre-event comparison diagnostics

Outcomes are changes in corporate-tax revenue/GDP relative to t=-1, measured
in percentage points of GDP. The descriptive gap subtracts the corresponding
same-calendar-year mean change in candidate controls. It is not labelled an
average treatment effect. No pooled gap, p-value or confidence interval is reported.

| Supported event | Controls (10 pp / 5 pp band) | Pre-event RMS gap (pp GDP) | Largest absolute pre-event gap |
|---|---:|---:|---:|
| HUN 2017 | 9 / 5 | 0.366 | 0.411 |
| KOR 2009 | 6 / 4 | 0.341 | 0.479 |
| KOR 2018 | 11 / 5 | 0.084 | 0.095 |
| SVN 2017 | 8 / 6 | 0.036 | 0.050 |
| SWE 2009 | 6 / 4 | 0.724 | 0.801 |
| SWE 2013 | 7 / 4 | 0.722 | 0.903 |

RMS uses t=-3 and -2; t=-1 is zero by construction, so it contains no independent
fit information. The two nontrivial pre-event points are insufficient to certify
parallel trends. None of these diagnostics is a pass/fail threshold or an
outcome-based exclusion. The narrower band would lose the minimum-five-control
support for KOR 2009, SWE 2009 and SWE 2013. Shared controls, repeated treated
countries, spillovers, anticipation, base changes and the COVID period can all
invalidate a causal interpretation even with a small pre-event gap.

## Decision and next stage (64)

Keep `calibration_allowed=false` and `causal_identification_allowed=false`.
The useful advance is that a seemingly five-event increase sample contains
substantively different policies and only two mechanically supported comparisons.
Do not insert the new post-event gaps into the benefits-financing model.

Prioritize a full institutional timeline for KOR 2018 and SVN 2017 and their 11
and 8 candidate controls. Record all base/threshold changes, other tax reforms,
announcements, fiscal shocks and relevant measurement breaks, including COVID
exposure in the post-window. Archive original sources and define exclusions from
policy histories, not from the sign or fit of revenue outcomes. Only then select
an estimator and an inference method appropriate for so few treated cases.
The 19 unscreened events remain explicitly pending; expansion to decreases is
an additional review task, not an approved causal sample.

## Reproduce

`python scripts/design_event_controls_v63.py`

`python -m unittest discover -s calibration -p 'test_event*_v6*.py'`

Outputs: `oecd_event_design_v63.json`, event audit CSV, control membership CSV,
and 42 event-time comparison rows under `data/processed/`.
Tests verify incoming-boundary and post-event changes, regime and support rules,
normalization, no use of revenue outcomes in selection, malformed-data rejection,
and real-data control membership.
