# The instructions our AI readers saw: Saez-Zucman check

Published 10 November 2026. These are the exact words given to the AI models in our check of the AI audit of Saez and Zucman's research (https://sanecite.com/saez-zucman-check). We cut only internal setup, and mark every cut: the setup lines at the top of each task message (rules for our own tooling) are replaced by "[internal setup lines removed]", and local folder paths by "[project folder]" or "[local path]". Nothing else is changed. Each section starts with one plain sentence on what that prompt was for.

The written rules each pass followed are public: first pass https://sanecite.com/data/sz-check/prompts/first-pass-protocol.md, second pass https://sanecite.com/data/sz-check/second-pass/protocol.md, third pass https://sanecite.com/data/sz-check/third-pass/protocol.md. In the first and second passes the main reader (Claude) worked directly from those rules, with no separate prompt.

## First pass, second reader (Gemini), blind

**What it was for:** Check each audit problem from the pages alone: are its facts right, and does it change a main result?

```text
You check claims made by a public AI audit of economics research. For one flagged problem you get the
audit's text and the text of pages from the papers and sources involved. Judge only from these pages; do not rely on
memory of the papers. Answer two questions.
Q1 Facts: are the flag's factual statements about what the paper and sources say, and its quoted numbers, right?
  RIGHT / PARTLY RIGHT (some stated facts wrong, core fact right) / WRONG / CANNOT CHECK (the pages given do not let
  you check the core facts, e.g. they rest on data files or recomputations you cannot see).
Q2 Consequence: does the problem change a headline number of the paper, as the audit's "major" grade says?
  YES (the pages show it) / NO (the pages show it does not) / JUDGEMENT CALL (depends on a methodological choice
  reasonable researchers dispute) / CANNOT CHECK.
Reply with JSON only: {"q1": "...", "q1_wrong_parts": ["..."], "q2": "...", "reason": "max 80 words", "pages_used":
["file p.N", ...]}
```

## Second pass, second reader (Gemini), blind

**What it was for:** Say how common each disputed method choice is, from the pages alone.

```text
You check one problem that a public AI audit raised about an economics paper. The audit's verdict on it is
already settled: the problem depends on a choice of method. Your job is to say how contested that choice is, judging
only from the pages and files given (do not rely on memory of the papers).
Grades:
- STANDARD: the paper states the choice (text, appendix or code), and comparable published work that the paper or the
  flag cites uses it.
- DEFENSIBLE, NOT DISCLOSED: a reasonable choice, but the paper does not state it, or does not show how the result
  changes under the main alternative the flag raises.
- QUESTIONABLE: the choice departs from the paper's own stated method, from the documentation of the data it uses, or
  from the practice of the sources the paper itself cites, and the paper gives no reason for the departure.
- CANNOT TELL: the pages given do not let you decide.
RECLASSIFY: true only if the pages show, by a recomputation or the paper's own numbers, that a headline NUMBER changes,
AND the issue is a departure from the paper's own stated rule or data rather than a choice researchers dispute. When
unsure, false.
Reply with JSON only: {"grade": "...", "reclassify": false, "reason": "max 80 words", "pages_used": ["file p.N", ...]}
```

## Third pass, main reader (Claude): instructions

**What it was for:** Test each method choice against what government agencies and other researchers do. Argue neither side. Prove every quote with a program.

```text
# Third pass, reader A brief (9 Nov 2026)

Project folder: [project folder] (work from there). Read first, in full:
1. PREREG_THIRD_PASS_2026-11-09.md  (the binding protocol: question Q4, evidence rule (a)-(e), grades). Do not change it.
2. For each of your ranks N: the audit flag in all147.json (row with sample_rank N: fields plain, detail), the first-pass
   check checks/<N>/evidence.md (two-digit folder for N<10, e.g. checks/09) and the second-pass files
   second-pass-20261109/<N>.json and <N>.md. Those name the METHOD CHOICE the flag turns on. Test that choice, and only it.
Local copies of the papers are under sources/<paper-id>/ (a symlink to the bulk disk). Read-only: never edit anything
outside third-pass-20261109/.

## What to do for each rank
Answer Q4: does the method choice stand up to normal practice for that quantity? Follow the evidence rule: look for
(a) official/agency practice, (b) independent peer-reviewed work (no author in common with the paper), (c) the authors'
own earlier peer-reviewed method, (d) published criticism and the authors' published answer, (e) the size of the
headline number under normal practice (only from a recomputation you run, or numbers printed by the authors or a
published source; never an estimate of your own).
Use WebSearch and WebFetch to FIND sources. Then PROVE every quote with the script:
  python third-pass-20261109/quote_check.py <rank> "<url or local path>" "<exact quote, max 40 words>"
It downloads the page, checks the quote is on it and logs the result. WebFetch answers come from a small model and can
paraphrase: a quote counts only when quote_check.py prints FOUND. If a page blocks the script (paywall, bot wall), try an
open copy (author page, NBER, SSRN, RePEc, agency PDF, web.archive.org/web/2id_/<url>). If none opens, list the source
under "not_machine_checked" and do not rest the grade on it. Memory of a paper is never evidence.
Never include any personal or project detail in a search or request. Do not contact anyone. No paid APIs.

Honesty rules: argue neither side. Many of these choices will turn out to be normal practice; say so. If the practice
for a quantity cannot be established from sources you could open, the grade is CANNOT TELL. A stated reason by the
authors does not move a grade either way; record it under authors_answer. Flags that turn on the same choice in the
same paper family may share evidence (say "evidence as rank N").

## Output: third-pass-20261109/<rank>.json, one per rank, exactly these keys
{
 "rank": 0, "flag_id": "...",
 "choice": "the method choice tested, one plain sentence",
 "quantity": "the number or series it produces, one phrase",
 "grade": "WITHIN NORMAL PRACTICE | MINORITY PRACTICE | OUTSIDE NORMAL PRACTICE | CANNOT TELL",
 "methods_change": true|false|null,      // replaced the authors' own earlier published method for the same quantity
 "answered": true|false|null,            // the authors have published a defence of the choice
 "official_practice":      [{"who": "...", "does": "what they do, plain", "source": "url or local path", "where": "page/section", "quote": "...", "quote_check": "FOUND"}],
 "independent_literature": [same shape, plus "uses_same_choice": true|false],
 "authors_earlier":        [same shape],
 "criticism":              [same shape],
 "authors_answer":         [same shape],
 "headline_under_normal_practice": {"shown": true|false, "paper_figure": "...", "normal_practice_figure": "...", "how": "recomputation script path, or the printed source", "source": "...", "quote": "...", "quote_check": "FOUND"},
 "searches": ["every search string you ran"],
 "not_machine_checked": [{"source": "...", "why": "..."}],
 "note": "max 120 words, plain English, short sentences, 'we' voice, no em dashes: what normal practice is, what the paper does, what changes."
}
Rules for the grade are in the protocol; apply them literally (WITHIN needs one agency, or two independent
peer-reviewed works, using the same choice for the same quantity).
When all your ranks are done, write third-pass-20261109/batch-<letter>-DONE.md: one line per rank (rank, grade, one
clause why), then anything that surprised you or that you could not do. Your final message is that same summary.
Budget: about 6-10 minutes a flag. Do the ranks in order; write each file as you finish it so nothing is lost.
```

## Third pass, critic's-side reader (Claude): instructions

**What it was for:** Re-check every mild grade the way a critic would, without trying to convict anyone.

```text
# Third pass, critic's-side brief (9 Nov 2026)

Project folder: [project folder] (work from there). Read in full first:
PREREG_THIRD_PASS_2026-11-09.md, third-pass-20261109/AMENDMENTS.md (amendments 1 and 2), third-pass-20261109/READER_BRIEF.md
(the quote rule and quote_check.py are binding: a quote counts only when the script prints FOUND).

Reader A graded each of your ranks WITHIN NORMAL PRACTICE or MINORITY PRACTICE. A public critic says our check goes
too easy: that a mild grade can be reached by counting a convention from a different table, a friendly working paper,
or loosely similar practice as "use", and that this lets a method be gamed. Your job is to test each mild grade from
the CRITIC's side and apply the protocol to the letter. You are not trying to convict anyone; you are checking that a
mild grade was earned. Many will have been earned; say so.

For each rank N read third-pass-20261109/<N>.json, the flag (all147.json, sample_rank N), checks/<N>/evidence.md
(two-digit folder below 10) and second-pass-20261109/<N>.md. Then test:
 1. SAME CHOICE, SAME STATISTIC: for each source reader A counts as "use", open it (quote_check.py) and decide: does
    it use the same choice, for the same statistic, for the same country or area (amendment 1)? A national-accounts
    convention is not use in a table of tax rates by income group; a similar design is not the same choice.
 2. INDEPENDENCE: is each "independent" source peer-reviewed (or an agency), with no author in common with the paper,
    and not a regular co-author of the paper's authors on the same line of work? A working paper counts only if from
    an agency or later published WITH that choice.
 3. HOME PRACTICE: what do the agencies of the country the figure is for actually do? Search for it if reader A did
    not open them (CBO, JCT, Treasury, IRS, BEA, Fed for the US; INSEE, HMRC, the ECB, the OECD and so on elsewhere).
 4. NUMBER: if the grade should be OUTSIDE, is there a headline number under normal practice that is printed by the
    authors or a published source, or recomputed by a script that exists and that you re-ran? Like for like? Was the
    data available when the work was published? Never estimate.
Verdict per rank, one of: GRADE STANDS (say what earned it) | RAISE TO OUTSIDE NORMAL PRACTICE (no qualifying use
survives; say what agencies or the literature do instead, with checked quotes) | RAISE WITHIN TO MINORITY PRACTICE |
LOWER TO CANNOT TELL (the practice cannot be established). When the evidence does not clearly show the mild grade was
earned and does clearly show others doing it another way, raise it. When it shows neither, CANNOT TELL.

Output: third-pass-20261109/critic/<N>.json with keys: rank, reader_a_grade, verdict, new_grade, reason (max 120
words, plain English), uses_tested [{who, counts (true|false), why, source, quote, quote_check}], home_practice
[{who, does, source, where, quote, quote_check}], headline_under_normal_practice {shown, paper_figure,
normal_practice_figure, how, source, quote, quote_check, available_at_publication}, searches [..],
not_machine_checked [..]. Then third-pass-20261109/critic/batch-<letter>-DONE.md, one line per rank. Write only inside
third-pass-20261109/critic/ (quote_check.py keeps its own log and src/ files). No personal or project details in any
search or request. Do not contact anyone. No paid APIs. Final message: the per-rank lines plus what you could not do.
```

## Third pass, authors'-side reader (Claude): instructions

**What it was for:** Try to break every harsh grade by arguing the authors' side. When unsure, take the milder grade.

```text
# Third pass, red-team brief (9 Nov 2026)

Project folder: [project folder] (work from there). Read in full first:
PREREG_THIRD_PASS_2026-11-09.md, third-pass-20261109/AMENDMENTS.md, third-pass-20261109/READER_BRIEF.md (the quote rule
and quote_check.py are binding for you too: a quote counts only when the script prints FOUND).

Reader A graded each of your ranks OUTSIDE NORMAL PRACTICE: it found no agency and no independent peer-reviewed work
using the paper's method choice, and found agencies or the literature doing it another way. If that grade is published
and a headline number is "shown" to change, the public verdict on that paper becomes "changes under normal practice".
That is a serious public statement about named researchers. Your job is to try to BREAK each grade. Argue the
authors' side. You succeed when you find a real reason the grade is wrong; you also do your job when you try hard and
honestly report that it stands.

For each rank N read third-pass-20261109/<N>.json, the flag (all147.json, sample_rank N), checks/<N>/evidence.md
(two-digit folder below 10) and second-pass-20261109/<N>.md. Then attack on five lines:
 1. USE: search hard for any agency (of the country or area the figure covers, per amendment 1, and elsewhere) or
    independent peer-reviewed work that uses the SAME choice for the SAME quantity. Reader A often ran only one to
    three searches. Run at least five different searches per rank, plus direct opens of the most likely sources.
 2. COMPARATOR: is the "normal practice" reader A cites really for the same quantity, and really normal (more than one
    source, or an agency)? One comparator is thin. Does the comparator source say what reader A says it does?
 3. FRAMING: is the "choice" stated fairly? Would the authors recognise it? Is it truly a method choice, or a
    presentation issue or an internal slip dressed as one?
 4. NUMBER: if "shown" is true, is the normal-practice figure really printed by the authors or a published source, or
    recomputed by a script that exists and that you re-ran (do re-run it when it takes under a few minutes)? Is it like
    for like (same year, same base)? Was the needed data available when the work was published? If the figure is an
    estimate, a figure read off a chart, or rests on later data, say so: "shown" must then be false or carry that caveat.
 5. QUOTES: re-run quote_check.py on reader A's three most important quotes and read the surrounding page: does the
    passage mean what reader A says?

Verdict per rank, one of:
 UPHOLD (the grade and, if any, the shown number stand),
 UPHOLD GRADE, NUMBER NOT SHOWN (outside practice stands; the number does not meet the rule),
 DOWNGRADE TO MINORITY PRACTICE / WITHIN NORMAL PRACTICE / CANNOT TELL (say which, with the checked source that does it).
When unsure between UPHOLD and a downgrade, downgrade: a wrong "outside" does more harm than a missed one.

Output: third-pass-20261109/redteam/<N>.json with keys: rank, verdict, reason (max 120 words, plain English),
found_uses [{who, kind, does, source, where, quote, quote_check}], comparator_ok (true|false + why), framing_ok,
number_ok (true|false|null + why, and "available_at_publication": true|false|null), quotes_rechecked [..],
searches [every search string], not_machine_checked [..], caveats_to_print [short sentences the public note must carry].
Then third-pass-20261109/redteam/batch-<letter>-DONE.md: one line per rank. Write only inside third-pass-20261109/redteam/
(quote_check.py writes its own log and src/ files; that is fine). No personal or project details in any search or
request. Do not contact anyone. No paid APIs. Your final message: the per-rank lines plus anything you could not do.

## Second wave addendum (9 Nov 2026)
Some of your ranks were graded mild by reader A and then RAISED to OUTSIDE NORMAL PRACTICE by a critic's-side reader
(third-pass-20261109/critic/<N>.json; amendment 2). For those, the grade you are trying to break is the critic's
raise: read both reader A's file and the critic's file, and test whether the uses the critic struck out really fail,
and whether other uses exist. Your downgrade options are then reader A's grade or CANNOT TELL.
Searching: the session's web-search tool may be out of budget. If WebSearch refuses, search the open scholarly
indexes with curl instead and log every query string under "searches":
  curl -s "https://api.openalex.org/works?search=<words>&per-page=15"        (titles, abstracts, authorships)
  curl -s "https://api.crossref.org/works?query=<words>&rows=15"
  curl -s "https://api.semanticscholar.org/graph/v1/paper/search?query=<words>&limit=15&fields=title,year,authors,venue,externalIds"
OpenAlex also answers co-authorship questions (filter=author.id:...). Then open the best hits and prove quotes with
quote_check.py as before. At least five distinct searches per rank; if you cannot reach five, the verdict cannot be
UPHOLD and you must say so. Use a generic client name; no personal or project details in any request.
```

## Third pass, settling disagreements (Claude): instructions

**What it was for:** Where two readings disagree, decide from the sources, favouring neither our grade nor the critic's.

```text
# Third pass, adjudicator brief (9 Nov 2026)

Project folder: [project folder] (work from there). Read in full first:
PREREG_THIRD_PASS_2026-11-09.md, third-pass-20261109/AMENDMENTS.md, third-pass-20261109/ADJUDICATION_RULES.md,
third-pass-20261109/SETTLE_RULES.md (binding: S1-S7), third-pass-20261109/READER_BRIEF.md (the quote rule: a quote
counts only when quote_check.py prints FOUND) and the "Second wave addendum" at the end of
third-pass-20261109/REDTEAM_BRIEF.md (how to search the open indexes with curl when web search is out of budget).

For each of your ranks N two readings disagree. Ours is in third-pass-20261109/<N>.json (first reader),
critic/<N>.json and redteam/<N>.json where they exist; the final grade and how it was reached are in
third-pass-20261109/READER_B_MUSE_SUMMARY.json (row N: our_final, muse, muse_reason). The second-family reader saw
only the checked quotes, could open nothing, and was blind to our grades. Neither side is presumed right.

For each rank: (1) list every source that either reading treats as a "use" of the paper's choice; open each one
(local copies are under third-pass-20261109/src/, critic/src/, redteam/src/ and sources/; else fetch) and decide under
S1 whether it counts, quoting the decisive words (quote_check.py); (2) decide under S2 whether the sources show others
producing the same statistic another way; (3) if the outcome would be OUTSIDE and no redteam/<N>.json exists, or it
exists but ran fewer than five searches, do S4 yourself first; (4) decide.
Decision, one of: OUR GRADE STANDS | TAKE THE SECOND READER'S GRADE | A THIRD GRADE (say which) | CONTESTED.
Be even-handed: do not defend our grade because it is ours, and do not raise a grade because a critic would like it.

Output: third-pass-20261109/settle/<N>.json with keys: rank, our_grade, second_reader_grade, decision, final_grade
(WITHIN NORMAL PRACTICE | MINORITY PRACTICE | OUTSIDE NORMAL PRACTICE | CANNOT TELL | CONTESTED), cannot_tell_reason
("no established practice" | "cannot tell" | "not a practice question" | null), turns_on (the one page or quote the
decision turns on, plain words), uses_ruled [{who, counts (true|false), rule (S1 clause), source, quote, quote_check}],
others_do_it_another_way [{who, same_statistic (true|false), source, quote, quote_check}], authors_side_search
{searches: [...], found: [...]} (when S4 applied), number {shown (true|false), paper_figure, normal_practice_figure,
how, available_at_publication} (only if final_grade is OUTSIDE), public_note (max 110 words, plain English, short
sentences, "we" voice, no em dashes, no mention of readers or models: what normal practice is, what the paper does,
who else does it and why that does or does not count), reason (max 80 words).
Then third-pass-20261109/settle/batch-<letter>-DONE.md, one line per rank. Write only inside third-pass-20261109/settle/
(quote_check.py keeps its own log). No personal or project details in any request. Do not contact anyone. No paid APIs.
Final message: the per-rank lines and anything you could not do.
```

## Third pass, outside readers (Gemini, Muse, Grok), blind

**What it was for:** Grade each method choice from the checked quotes alone, without seeing our grades. The same prompt for all three.

```text
You grade one method choice in an economics paper against normal practice, judging ONLY from the sources
listed (do not rely on memory of any paper). Each source gives who, what the source does, where, and a quote that was
checked to be on the page.
Grades:
- WITHIN NORMAL PRACTICE: an agency that publishes the same statistic for the country or area the paper's figure
  covers, or two independent peer-reviewed works, use the SAME choice for the SAME statistic.
- MINORITY PRACTICE: some independent published use (or an agency elsewhere), but the agencies of the country the
  figure is for, or most of the literature listed, do it another way.
- OUTSIDE NORMAL PRACTICE: no agency and no independent peer-reviewed work in the list uses the choice, and the list
  shows agencies or the literature doing it another way.
- CANNOT TELL: the list does not establish what normal practice is for this statistic (nobody else measures it, or
  the sources are for a different statistic).
Rules: "independent" means peer-reviewed or an agency, no author in common with the paper, and not a regular co-author
of the paper's authors on the same line of work. A rule for a different table, or a working paper never published
with that choice, is not a use. The authors' own reasons do not change the grade. Do not lean either way.
Reply with JSON only: {"grade": "...", "uses_that_count": ["who", ...], "others_do_it_another_way": ["who", ...],
"reason": "max 70 words"}
```

## Third pass: the task messages

**What they were for:** each one handed a reader its share of the 99 problems and pointed it to the instructions above. Listed in the order they were sent; repeats are shown once.

### Third pass batch A

```text
[internal setup lines removed]


Task: you are reader A, batch A, in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/READER_BRIEF.md in full and follow it exactly. It tells you what to read, how to prove quotes with quote_check.py, and the exact JSON to write for each rank.

Your ranks (batch letter A): 10, 23, 33, 34, 37, 38, 39, 42, 46, 47, 49, 51, 52.

Context you need: an earlier pass graded each of these method choices only against the paper's own text and the works it cites. This pass asks a harder question: does the choice stand up to what statistical agencies and independent published work do for the same quantity? Outside literature search is required here. Be even-handed: do not lean toward critics or toward the authors. Only quotes that quote_check.py prints FOUND count as evidence. Write only inside third-pass-20261109/. Your final message: the per-rank summary lines (rank, grade, one clause why) plus anything you could not do.
```

### Third pass batch B

```text
[internal setup lines removed]


Task: you are reader A, batch B, in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/READER_BRIEF.md in full and follow it exactly. It tells you what to read, how to prove quotes with quote_check.py, and the exact JSON to write for each rank.

Your ranks (batch letter B): 13, 20, 22, 24, 26, 27, 53, 54, 55, 60, 61, 62, 63, 64, 65, 66.

Context you need: an earlier pass graded each of these method choices only against the paper's own text and the works it cites. This pass asks a harder question: does the choice stand up to what statistical agencies and independent published work do for the same quantity? Outside literature search is required here. Be even-handed: do not lean toward critics or toward the authors. Only quotes that quote_check.py prints FOUND count as evidence. Write only inside third-pass-20261109/. Your final message: the per-rank summary lines (rank, grade, one clause why) plus anything you could not do.
```

### Third pass batch C

```text
[internal setup lines removed]


Task: you are reader A, batch C, in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/READER_BRIEF.md in full and follow it exactly. It tells you what to read, how to prove quotes with quote_check.py, and the exact JSON to write for each rank.

Your ranks (batch letter C): 3, 7, 12, 15, 18, 28, 67, 68, 70, 71, 72, 73, 74, 75, 82, 84.

Context you need: an earlier pass graded each of these method choices only against the paper's own text and the works it cites. This pass asks a harder question: does the choice stand up to what statistical agencies and independent published work do for the same quantity? Outside literature search is required here. Be even-handed: do not lean toward critics or toward the authors. Only quotes that quote_check.py prints FOUND count as evidence. Write only inside third-pass-20261109/. Your final message: the per-rank summary lines (rank, grade, one clause why) plus anything you could not do.
```

### Third pass batch D

```text
[internal setup lines removed]


Task: you are reader A, batch D, in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/READER_BRIEF.md in full and follow it exactly. It tells you what to read, how to prove quotes with quote_check.py, and the exact JSON to write for each rank.

Your ranks (batch letter D): 4, 25, 85, 86, 87, 88, 92, 93, 95, 96, 97, 98, 99, 100, 102, 103.

Context you need: an earlier pass graded each of these method choices only against the paper's own text and the works it cites. This pass asks a harder question: does the choice stand up to what statistical agencies and independent published work do for the same quantity? Outside literature search is required here. Be even-handed: do not lean toward critics or toward the authors. Only quotes that quote_check.py prints FOUND count as evidence. Write only inside third-pass-20261109/. Your final message: the per-rank summary lines (rank, grade, one clause why) plus anything you could not do.
```

### Third pass batch E

```text
[internal setup lines removed]


Task: you are reader A, batch E, in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/READER_BRIEF.md in full and follow it exactly. It tells you what to read, how to prove quotes with quote_check.py, and the exact JSON to write for each rank.

Your ranks (batch letter E): 2, 5, 105, 107, 108, 110, 112, 113, 115, 116, 119, 121, 122, 123, 125, 126.

Context you need: an earlier pass graded each of these method choices only against the paper's own text and the works it cites. This pass asks a harder question: does the choice stand up to what statistical agencies and independent published work do for the same quantity? Outside literature search is required here. Be even-handed: do not lean toward critics or toward the authors. Only quotes that quote_check.py prints FOUND count as evidence. Write only inside third-pass-20261109/. Your final message: the per-rank summary lines (rank, grade, one clause why) plus anything you could not do.
```

### Third pass batch F

```text
[internal setup lines removed]


Task: you are reader A, batch F, in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/READER_BRIEF.md in full and follow it exactly. It tells you what to read, how to prove quotes with quote_check.py, and the exact JSON to write for each rank.

Your ranks (batch letter F): 1, 8, 14, 127, 128, 129, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 146.

Context you need: an earlier pass graded each of these method choices only against the paper's own text and the works it cites. This pass asks a harder question: does the choice stand up to what statistical agencies and independent published work do for the same quantity? Outside literature search is required here. Be even-handed: do not lean toward critics or toward the authors. Only quotes that quote_check.py prints FOUND count as evidence. Write only inside third-pass-20261109/. Your final message: the per-rank summary lines (rank, grade, one clause why) plus anything you could not do.
```

### Stage 1 red team sources

```text
[internal setup lines removed]


You are the RED-TEAM reader for stage 1 of a pre-registered research check. Project folder: [project folder]. Read PREREG_THIRD_PASS_2026-11-09.md and third-pass-20261109/READER_BRIEF.md first (the quote rule and the quote_check.py command are binding: a quote counts only when the script prints FOUND; use rank 117 as the rank argument so files land in third-pass-20261109/src/117/). Write only inside third-pass-20261109/.

Background. Emmanuel Saez and Gabriel Zucman's book The Triumph of Injustice (2019) calculates tax rates by income group differently from their earlier paper Piketty, Saez and Zucman (2018, QJE). The main change: the book assigns ALL of the existing corporate income tax to corporate shareholders (C-corporation equity owners), where the 2018 paper spread it over all capital, and US agencies (CBO, JCT, Treasury OTA, Tax Policy Center) shift part to labor and to capital generally. Other changes: sales taxes allocated with ITEP's consumption shares; refundable credits treated as transfers; a top-400 group built from Forbes wealth; 2018 figures were projections. The change raises mid-century top tax rates, so the fall in top rates since 1950 is about twice as large as under the 2018 method or the CBO method (the authors' own 2026 Journal of Public Economics paper, local copy sources/saez-zucman-2019-triumph-of-injustice/saez-zucmanJpubE26incidence.pdf, p.9: 13 points vs 7 points for the top 1%, 1950-2021). A public critic (Phil Magness) says the change runs against an established literature and longstanding IRS statistical reporting practice. Reader A already has: the book's online appendix (third-pass-20261109/src/117/SZ2019Appendix.pdf, pp.2-8), the 2026 JPubE paper, Treasury OTA Technical Paper 5 (src/117/ota-tp5.pdf), Splinter's 2019 comment (src/117/splinter-comment2019.pdf), the IRS top-400 report (src/117/irs-top400-2014.pdf), Auten and Splinter 2024 JPE (sources/auten-splinter/AutenSplinter-Tax_Data_and_Inequality.pdf).

Your job has two halves. Do both honestly; the first is the more important.

HALF 1, argue the authors' side. Try hard to find:
 1. Any US or foreign statistical agency, international body (OECD, IMF, Eurostat, UN national accounts/DINA guidelines) or government office that assigns the whole existing corporate income tax to shareholders/corporate equity owners when it publishes tax rates by income group. Check Treasury OTA and TPC precisely: what share goes to shareholders (supernormal returns) versus labor and all capital, and since when. Check the UN/WID Distributional National Accounts Guidelines.
 2. Peer-reviewed work, with NO author among Saez, Zucman, Piketty, that uses the same shareholder-only allocation for the distribution of current taxes (candidates to check, not assume: the White House CEA/OMB 2021 note by Leiserson and Yagan; ITEP Who Pays; Bozio et al. on France; Blanchet, Chancel, Gethin on Europe (AEJ Applied 2022); any DINA country study; Fuest, Peichl, Siegloch-type incidence evidence does NOT count because it estimates incidence rather than adopting this rule). Note for each whether authors overlap.
 3. Published support for the authors' reasoning (journal articles, the referees' acceptance at the Journal of Public Economics counts as publication of the defence, not as independent use).
 4. Evidence that the change was disclosed at the time (the book appendix, the Oct 2019 note 'Clarifying Distributional Tax Incidence: Who Pays Current Taxes vs. Tax Reforms Analysis', find an open copy).

HALF 2, the critics' case, with proof. Find and quote:
 5. Published criticism that this allocation or the book's tax-rate method departs from standard practice: David Splinter, 'U.S. Tax Progressivity and Redistribution', National Tax Journal 73(4), 2020 (find an open copy: davidsplinter.com, NTA, SSRN); Wojciech Kopczuk's published comment on 'Progressive Wealth Taxation' (Brookings Papers on Economic Activity, Fall 2019) and his writing on the book; Auten and Splinter; Summers and Sarin; Mankiw; Furman; any journal book review of The Triumph of Injustice; and Phil Magness's own published papers or signed articles on this exact point (for example at AIER, or Geloso, Magness, Moore, Schlosser). Quote exactly what each says about the method, and whether each is peer-reviewed, an agency paper, a working paper, or commentary.
 6. What Magness means by 'longstanding IRS statistical reporting practices': find his own explanation if published. Separately establish what IRS Statistics of Income actually publishes about tax rates of top-income groups (the 'top 400' report; 'Individual Income Tax Rates and Tax Shares'; historical Statistics of Income volumes for the 1950s): which taxes, which income denominator. Say plainly how that differs from the book's rate (all taxes at all levels over pre-tax national income).
 7. The 2018 tax rate of the 400 richest Americans (the book: 23%, a projection). What do sources outside the authors' own releases give for a comparable quantity: the IRS top-400 series (last year published and its rate, and that it is federal income tax over AGI); the 2021 White House/OMB-CEA estimate (8.2% on a wealth-gain-inclusive income, a different concept); the 2025 NBER paper w34170 by Balkir, Saez, Yagan and Zucman (local: sources/bsyz-2025-nber-w34170/w34170.pdf; note it shares two authors, and record how IT allocates the corporate tax and what the top-400 rate would be under another allocation if it prints one); any JCT or CBO figure. Do not estimate anything yourself.

Output: third-pass-20261109/redteam-stage1.json with keys: for_authors (list), against (list), irs_practice (list), top400_2018 (list), each item {"who","kind" (agency | peer-reviewed independent | peer-reviewed by the authors | working paper | commentary), "says" (plain, one or two sentences), "source", "where", "quote", "quote_check"}; plus "searches" (every search string), "not_machine_checked" (sources you could not open, never used as evidence), and "bottom_line": three short honest paragraphs: (i) did you find ANY agency or independent peer-reviewed use of the shareholder-only rule, (ii) how strong and how independent the published criticism is, (iii) what remains genuinely debatable. Also write third-pass-20261109/redteam-stage1.md, a one-page plain-English version. No personal or project details in any search or request. Do not contact anyone. No paid APIs. Your final message: the bottom_line paragraphs and the count of FOUND quotes.
```

### Red team batch R1

```text
[internal setup lines removed]


Task: you are a RED-TEAM reader (batch letter R1) in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/REDTEAM_BRIEF.md in full and follow it exactly. Your job is to try to break the first reader's "OUTSIDE NORMAL PRACTICE" grades by arguing the authors' side, with machine-checked quotes.

Your ranks: 22, 24, 25, 33, 38, 49, 51, 53, 55.

Note: ranks 24, 61 and 62 share one method choice (forecasting young cohorts' mobility from college attendance); another red-team reader has 61 and 62, so do rank 24 on its own merits. Write only inside third-pass-20261109/redteam/. Final message: one line per rank (rank, verdict, one clause why) plus anything you could not do.
```

### Red team batch R2

```text
[internal setup lines removed]


Task: you are a RED-TEAM reader (batch letter R2) in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/REDTEAM_BRIEF.md in full and follow it exactly. Your job is to try to break the first reader's "OUTSIDE NORMAL PRACTICE" grades by arguing the authors' side, with machine-checked quotes.

Your ranks: 61, 62, 88, 95, 97, 98, 99, 112, 115.

Note: ranks 61 and 62 share one method choice (forecasting young cohorts' mobility from college attendance); they may share evidence. Ranks 112 and 115 are both wealth-tax revenue scores. Write only inside third-pass-20261109/redteam/. Final message: one line per rank (rank, verdict, one clause why) plus anything you could not do.
```

### Red team batch R3

```text
[internal setup lines removed]


Task: you are a RED-TEAM reader (batch letter R3) in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/REDTEAM_BRIEF.md in full and follow it exactly. Your job is to try to break the first reader's "OUTSIDE NORMAL PRACTICE" grades by arguing the authors' side, with machine-checked quotes.

Your ranks: 122, 123, 125, 129, 131, 132, 136, 139, 140.

Note: the first reader itself flagged 131 and 132 as thin (one comparator) and asked for harder searches on 131, 132, 139 and 140; for 136 the later ownership shares did not exist when the paper was published; for 123 the flag is about how a reconciliation is shown rather than a measurement method. Test those points hard. Write only inside third-pass-20261109/redteam/. Final message: one line per rank (rank, verdict, one clause why) plus anything you could not do.
```

### Critic-side batch K1

```text
[internal setup lines removed]


Task: you are the CRITIC'S-SIDE reader (batch letter K1) in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/CRITIC_BRIEF.md in full and follow it exactly. You test whether each mild grade (within or minority practice) was really earned under the protocol's letter, with machine-checked quotes.

Your ranks: 1, 2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 18.

Write only inside third-pass-20261109/critic/. Final message: one line per rank (rank, verdict, one clause why) plus anything you could not do.
```

### Critic-side batch K2

```text
[internal setup lines removed]


Task: you are the CRITIC'S-SIDE reader (batch letter K2) in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/CRITIC_BRIEF.md in full and follow it exactly. You test whether each mild grade (within or minority practice) was really earned under the protocol's letter, with machine-checked quotes.

Your ranks: 20, 23, 26, 27, 34, 42, 46, 47, 52, 60, 67, 73.

Write only inside third-pass-20261109/critic/. Final message: one line per rank (rank, verdict, one clause why) plus anything you could not do.
```

### Critic-side batch K3

```text
[internal setup lines removed]


Task: you are the CRITIC'S-SIDE reader (batch letter K3) in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/CRITIC_BRIEF.md in full and follow it exactly. You test whether each mild grade (within or minority practice) was really earned under the protocol's letter, with machine-checked quotes.

Your ranks: 82, 84, 85, 92, 93, 96, 100, 105, 107, 110, 113, 116.

Rank 116 matters most (refundable tax credits such as the EITC counted as transfers, not negative taxes, in tax rates by income group). A public critic says this "contradicts IRS and CBO standards" and that the EITC is integrated into the federal tax rate schedule. Establish with checked quotes exactly what CBO, the Joint Committee on Taxation, Treasury's Office of Tax Analysis, the Tax Policy Center and IRS Statistics of Income each do with refundable credits when they publish tax rates or tax shares by income group (be precise about the IRS: it may treat the refundable part separately; say what it actually does, whichever way it cuts). Test whether the Bureau of Economic Analysis convention and an earlier Auten-Splinter draft really count as "use" under the protocol. Re-run checks/116/check116.py and report its output. Write only inside third-pass-20261109/critic/. Final message: one line per rank (rank, verdict, one clause why) plus anything you could not do.
```

### Critic-side batch K4

```text
[internal setup lines removed]


Task: you are the CRITIC'S-SIDE reader (batch letter K4) in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/CRITIC_BRIEF.md in full and follow it exactly. You test whether each mild grade (within or minority practice) was really earned under the protocol's letter, with machine-checked quotes.

Your ranks: 117, 119, 121, 126, 128, 134, 135, 138, 141.

Rank 117 matters most (the book assigns all of the existing corporate income tax to shareholders when computing US tax rates by income group since 1950). It is graded MINORITY PRACTICE because two papers on Europe (Blanchet, Chancel and Gethin, AEJ Applied 2022; Guzzardi, Palagi, Roventini and Santoro, JEEA 2024) and tax offices in the Netherlands (a CPB discussion paper) and New Zealand (Inland Revenue 2023) use a shareholder rule. Evidence is in third-pass-20261109/redteam-stage1.json and 117.json. Test hard: are those papers independent under amendment 2 (their authors' institutional and co-author ties to Piketty, Saez and Zucman; whether they follow the World Inequality Lab guidelines those three helped write); do they use the same choice for the same statistic; do the Dutch and New Zealand documents assign ALL corporate tax to shareholders in a published table of tax rates by income group, and are they agency practice or one-off research papers? Under amendment 1 the home agencies are the US ones, which all do it another way. Say plainly whether MINORITY PRACTICE was earned or whether the protocol's letter gives OUTSIDE NORMAL PRACTICE. Write only inside third-pass-20261109/critic/. Final message: one line per rank (rank, verdict, one clause why) plus anything you could not do.
```

### Red team second wave R4

```text
[internal setup lines removed]


Task: you are a RED-TEAM reader, second wave (batch letter R4), in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/REDTEAM_BRIEF.md in full, including the "Second wave addendum" at the end, and follow it exactly. You argue the AUTHORS' side.

Your ranks: 2, 7, 8, 14, 47, 92, 96, 105, 107. Each was graded mild by the first reader and then RAISED to "outside normal practice" by a critic's-side reader (see third-pass-20261109/critic/<N>.json). Try to break each raise with machine-checked quotes. Leads the critic's-side readers themselves named: rank 14, Mertens and Ravn (2013, AER) may independently use a national-accounts corporate tax rate; rank 107, Auten, Splinter and Nelson (2016) was never opened; rank 92, only one search was run for independent use of a three-elasticity top tax rate formula; rank 105, test whether equal-split adults is used by anyone outside the authors' circle (for example national statistical offices or the OECD/Eurostat distributional accounts work); rank 96, the gap between the Bureau of Economic Analysis key and the authors' key was not computed; ranks 2 and 8 were bundles of two choices, one half normal.

The web-search tool is probably out of budget: use the curl searches of OpenAlex, Crossref and Semantic Scholar given in the addendum, at least five per rank. Write only inside third-pass-20261109/redteam/. Final message: one line per rank (rank, verdict, one clause why) plus anything you could not do.
```

### Red team second wave R5

```text
[internal setup lines removed]


Task: you are a RED-TEAM reader, second wave (batch letter R5), in a pre-registered research check of method choices in economics papers. Read [project folder]/third-pass-20261109/REDTEAM_BRIEF.md in full, including the "Second wave addendum" at the end, and follow it exactly. You argue the AUTHORS' side.

Part 1, new ranks: 119, 121, 128. Each was graded "minority practice" by the first reader and then RAISED to "outside normal practice" by a critic's-side reader (third-pass-20261109/critic/<N>.json). Try to break each raise. Leads: rank 121 turns on Johns and Slemrod (2010, National Tax Journal), never opened: find an open copy and see whether it prints the 27% figure; ranks 119 and 128 are wealth-tax avoidance haircuts: look for any agency or independent peer-reviewed score using a single flat avoidance rate (a Canadian Parliamentary Budget Officer costing of April 2025 reportedly used a flat 35% cut; other national budget offices; published European wealth-tax scores), and say whether "no established practice" is the fairer grade.

Part 2, top-ups: ranks 98, 99, 129, 136, 139, 53 already have red-team files in third-pass-20261109/redteam/<N>.json whose verdict was UPHOLD or UPHOLD GRADE, NUMBER NOT SHOWN, but the earlier reader ran few or no searches because the search budget ran out (98 and 99: none). For each, run at least five distinct index searches for any agency or independent peer-reviewed use of the same choice for the same quantity, open the best hits, and then EDIT the existing redteam/<N>.json: add your searches to "searches", add any found uses, and change "verdict" and "reason" if what you find breaks the grade (or add "topup": "searched again on 9 Nov; verdict unchanged because ..."). Keep every existing key. For 98 and 99 also confirm, by re-running the script or reading the authors' printed table, that the normal-practice number is printed by the authors and is like for like, and record whether the data were available at publication ("available_at_publication").

The web-search tool is probably out of budget: use the curl searches of OpenAlex, Crossref and Semantic Scholar given in the addendum. Write only inside third-pass-20261109/redteam/. Final message: one line per rank (rank, verdict, one clause why) plus anything you could not do.
```

### Red team rank 116

```text
[internal setup lines removed]


Task: you are a RED-TEAM reader, second wave (batch letter R6), for ONE flag, rank 116, in a pre-registered research check. Read [project folder]/third-pass-20261109/REDTEAM_BRIEF.md in full, including the "Second wave addendum", and follow it exactly. You argue the AUTHORS' side (Emmanuel Saez and Gabriel Zucman).

The flag: in The Triumph of Injustice (2019) the authors count refundable tax credits (the EITC, the refundable child credit) as transfers, not as negative taxes, when they compute total tax rates by income group. That gives the bottom 50% a 2018 tax rate of 24.2% against 23.0% for the top 400. With the two credits netted, their own simulator file gives 21.0% for the bottom half (script checks/116/check116.py; rerun output third-pass-20261109/critic/116_check116_rerun.out), so the order reverses.

Where it stands. The first reader graded it MINORITY PRACTICE (third-pass-20261109/116.json). The critic's-side reader (third-pass-20261109/critic/116.json) found that CBO, the Joint Committee on Taxation, Treasury's Office of Tax Analysis and the Tax Policy Center all net refundable credits in tax rates by income group; that the Bureau of Economic Analysis convention is a national-accounts rule, not a tax-rate table; that the Auten-Splinter draft was published with the credits netted; and that the only surviving "use" is IRS Statistics of Income, whose income-tax-only tables by AGI percentile subtract credits "limited to zero". The adjudicator's ruling is that the IRS table is a different statistic (income tax over AGI by AGI percentile, not all taxes over pre-tax income), consistent with how the same check treats the IRS top-400 series elsewhere. So no use survives and the grade is provisionally OUTSIDE NORMAL PRACTICE with the 24.2% to 21.0% change shown. Also found: Piketty and Saez (2007, Journal of Economic Perspectives; copy at third-pass-20261109/src/116/piketty-saez-jep2007.pdf, p.9) reported NEGATIVE individual tax rates at the bottom "primarily because of the refundable Earned Income Tax Credit", so leaving the credits out appears to be a change from Saez's own earlier published method, made in Piketty, Saez and Zucman (2018, fn 65).

Try hard to break the OUTSIDE grade and the shown number:
 1. Find any agency (US first, then elsewhere: OECD Taxing Wages and Revenue Statistics, Eurostat/ESA and UN SNA rules as applied in published tax-burden-by-income-group tables, national statistical offices, the UK ONS "Effects of taxes and benefits", Statistics Canada, INSEE, the Australian Treasury) or independent peer-reviewed work that publishes tax rates by income group with refundable or "payable" tax credits counted as benefits/transfers rather than negative taxes. The ONS and OECD are the most likely: check precisely what they do and whether it is the same statistic.
 2. Test the adjudicator's ruling on the IRS table: argue that it IS the same choice for a tax rate by income group. Also check IRS/Treasury budget practice (refundable part scored as outlays) and whether any US agency's published distribution table follows it.
 3. Test the claim, made by a public critic, that "the EITC is integrated into the federal tax rate schedule": find what it means (the EITC schedule phases in and out with earnings and is claimed on Form 1040) and whether official sources describe it that way. Report whichever way it cuts.
 4. Test the methods-change point: read Piketty and Saez (2007) and PSZ (2018) fn 65 and say exactly what changed and when; and whether the authors' 2019 note "Clarifying Distributional Tax Incidence", the book's appendix (third-pass-20261109/src/117/SZ2019Appendix.pdf) or the 2026 JPubE paper (sources/saez-zucman-2019-triumph-of-injustice/saez-zucmanJpubE26incidence.pdf) give a reason, and what the reason is. Quote it.
 5. Test the number: re-run checks/116/check116.py; is 21.0% like for like (same income base, same year, both credits, data available in 2019)? Does netting ALL refundable credits or all cash transfers change the picture further, and do the authors print any such figure (for example an after-transfer rate) themselves? Does the top-400 23.0% stay fixed? Note that 2018 figures were projections.
 6. Re-check the critic reader's five agency quotes with quote_check.py and read the surrounding text.
The web-search tool is probably out of budget: use the curl searches of OpenAlex, Crossref and Semantic Scholar in the addendum, at least eight distinct searches, plus direct opens of ONS, OECD and agency documents (try web.archive.org/web/2id_/<url> when a site blocks the script).

Output: third-pass-20261109/redteam/116.json in the brief's format (verdict UPHOLD, UPHOLD GRADE NUMBER NOT SHOWN, or DOWNGRADE TO MINORITY PRACTICE / CANNOT TELL, with the checked source that earns a downgrade), plus keys "irs_ruling_tested", "eitc_schedule_claim", "methods_change_detail" and "authors_reason". Write only inside third-pass-20261109/redteam/. Final message: the verdict, the reason, each of the six points in a line or two, and anything you could not do.
```

### Settle batch S1

```text
[internal setup lines removed]


Task: you are an ADJUDICATOR (batch letter S1) in a pre-registered research check of method choices in economics papers. Two readings of each flag disagree: ours and a blind second reader from another model family. Read [project folder]/third-pass-20261109/SETTLE_BRIEF.md in full and follow it exactly; it names the rules (S1-S7) that bind you. Settle each flag from the cited sources, with machine-checked quotes, even-handedly.

Your ranks: 2, 5, 7, 20, 22, 23, 47, 49, 52, 60, 65, 66.

Notes: 66 was not sent to the second reader (its input is the same as 65's), so settle 65 and 66 together. The web-search tool is probably out of budget; use the curl index searches in the addendum. Write only inside third-pass-20261109/settle/. Final message: one line per rank (rank, decision, final grade, one clause on what it turns on) plus anything you could not do.
```

### Settle batch S2

```text
[internal setup lines removed]


Task: you are an ADJUDICATOR (batch letter S2) in a pre-registered research check of method choices in economics papers. Two readings of each flag disagree: ours and a blind second reader from another model family. Read [project folder]/third-pass-20261109/SETTLE_BRIEF.md in full and follow it exactly; it names the rules (S1-S7) that bind you. Settle each flag from the cited sources, with machine-checked quotes, even-handedly.

Your ranks: 73, 84, 92, 93, 95, 96, 97, 123, 128, 132, 134.

Notes: for 92 the paper itself prints 57% under the standard one-elasticity formula beside its 83%, so if the final grade is OUTSIDE check that number under rule T3. The web-search tool is probably out of budget; use the curl index searches in the addendum. Write only inside third-pass-20261109/settle/. Final message: one line per rank (rank, decision, final grade, one clause on what it turns on) plus anything you could not do.
```

### Settle batch S3

```text
[internal setup lines removed]


Task: you are an ADJUDICATOR (batch letter S3) in a pre-registered research check of method choices in economics papers. Two readings of each flag disagree: ours and a blind second reader from another model family. Read [project folder]/third-pass-20261109/SETTLE_BRIEF.md in full and follow it exactly; it names the rules (S1-S7) that bind you. Settle each flag from the cited sources, with machine-checked quotes, even-handedly.

Your ranks: 137, 138, 140, 3, 12, 14, 15, 18, 25, 26, 135.

Notes: for 3, 12, 14, 15, 18, 25, 26 and 135 the second reader is not harsher but different (for example "within" where we say "minority" or "cannot tell", or "cannot tell" where we say "within" or "outside"); apply the same rules. For 25 our grade is OUTSIDE and the second reader says the agency sources cover a different statistic: test that under S2. The web-search tool is probably out of budget; use the curl index searches in the addendum. Write only inside third-pass-20261109/settle/. Final message: one line per rank (rank, decision, final grade, one clause on what it turns on) plus anything you could not do.
```
