Case 908
The policy was judged before its infections were counted
the_policy_was_judged_before_its_infections_were_counted.eml - A policy halves new infections from the day it starts, the daily case reports are exact, and five days in the reports show no change - so the policy is judged to have done nothing. Whose infections the day-five report is counting is computed below.
ok: true — round-trip fixpoint reached (python1 == python2)updated 2026-09-18
EML
eml# Self-authored for the EML case corpus (no external origin). A policy halves
# new infections from the day it starts, the daily case reports are exact, and
# five days in the reports show no change - so the policy is judged to have
# done nothing. Whose infections the day-five report is counting is computed
# below.
#
# The judgement is careful. It reads the real reported cases; it compares the
# five days after the policy with the days before; the counts are exact; and
# the intent is exactly 'did the policy reduce infections'.
#
# An infection becomes a reported case ten days later - incubation, testing,
# reporting - so the cases reported on day five are the infections of day
# minus five, all of them before the policy, and the policy's own infections are
# not in any report yet.
1000 => infections_per_day_before_the_policy
500 => infections_per_day_after_the_policy
10 => days_from_infection_to_report
5 => day_the_policy_was_judged
day_the_policy_was_judged - days_from_infection_to_report => infection_day_the_judgement_reflects
infections_per_day_before_the_policy => cases_reported_on_the_judgement_day
days_from_infection_to_report + 5 => first_day_the_policy_shows
infections_per_day_after_the_policy => cases_reported_from_that_day
infections_per_day_before_the_policy - infections_per_day_after_the_policy => infections_the_policy_prevents_per_day
int(infections_the_policy_prevents_per_day * 10000 / infections_per_day_before_the_policy) => true_effect_per_myriad
0 => effect_visible_on_the_judgement_day_per_myriad
"infections per day, before : " + str(infections_per_day_before_the_policy) ^0
"infections per day, after : " + str(infections_per_day_after_the_policy) ^0
"true effect : " + str(true_effect_per_myriad) + " per ten thousand fewer" ^0
"" ^0
"infection to report : " + str(days_from_infection_to_report) + " days" ^0
"judged on day : " + str(day_the_policy_was_judged) ^0
"infection day those reports reflect : day " + str(infection_day_the_judgement_reflects) + ", before the policy" ^0
"cases reported on day " + str(day_the_policy_was_judged) + " : " + str(cases_reported_on_the_judgement_day) ^0
"effect visible on day " + str(day_the_policy_was_judged) + " : " + str(effect_visible_on_the_judgement_day_per_myriad) + " per ten thousand" ^0
"first day the policy shows : day " + str(first_day_the_policy_shows) + ", reports fall to " + str(cases_reported_from_that_day) ^0
"" ^0
# ---- what the judgement verified ----
"the day-five judgement" ^0
" reads : the real reported cases" ^0
" compares : five days after against the days before" ^0
" counts : exact" ^0
" intent : did the policy reduce infections" ^0
" reports misread : 0" ^0
" verdict : NO CHANGE IN CASES, THE POLICY DID NOTHING" ^0
"" ^0
" reading the exact reports for the exact days is the part" ^0
" done right here, and it is why 'no change by day five'" ^0
" is a true statement about the reports" ^0
"" ^0
# ---- whose infections the reports count ----
"the lag" ^0
" a case is reported : " + str(days_from_infection_to_report) + " days after the infection" ^0
" so day-" + str(day_the_policy_was_judged) + " reports are : infections from day " + str(infection_day_the_judgement_reflects) ^0
" when did the policy start : day 0" ^0
" so every report up to day " + str(days_from_infection_to_report) + " : is pre-policy infections" ^0
" the policy's first infections are reported : day " + str(first_day_the_policy_shows) ^0
" the judgement was made : " + str(first_day_the_policy_shows) + " minus " + str(day_the_policy_was_judged) + " days before the" ^0
" policy could appear in any report" ^0
"" ^0
# ---- what the decision-makers got ----
"the decision" ^0
" concluded : the policy has no effect, lift it" ^0
" the policy's actual effect : " + str(true_effect_per_myriad) + " per ten thousand fewer" ^0
" is any report wrong : no; each is exact" ^0
" do the reports on day " + str(day_the_policy_was_judged) + " contain the policy : no; they" ^0
" contain infections from " + str(days_from_infection_to_report) + " days earlier" ^0
"" ^0
# ---- null control ----
# The same judgement made on reports from day fifteen on (or on infection dates
# back-calculated from report dates), so the compared days are policy days.
0 => nc_effect_seen_judging_at_day_five_per_myriad
5000 => nc_effect_seen_judging_at_day_fifteen_per_myriad
5000 => nc_effect_the_lag_aware_judgement_recovers
"null control - judge after the lag, on the policy's own infections" ^0
" effect seen, judging at day five : " + str(nc_effect_seen_judging_at_day_five_per_myriad) + " per ten thousand" ^0
" effect seen, judging at day fifteen : " + str(nc_effect_seen_judging_at_day_fifteen_per_myriad) + " per ten thousand" ^0
" effect the lag-aware judgement recovers : " + str(nc_effect_the_lag_aware_judgement_recovers) + " per ten thousand" ^0
" no report and no policy changed; the judgement stopped" ^0
" reading last week's infections as this week's answer" ^0
"" ^0
# ---- the rule ----
"what an exact five-day case comparison guarantees" ^0
" reported cases did not change in the five days after :" ^0
" exactly, real reports, exact counts" ^0
" the policy did not change infections : not addressed;" ^0
" reports lag infections by " + str(days_from_infection_to_report) + " days, so day-" + str(day_the_policy_was_judged) + " reports" ^0
" are day-" + str(infection_day_the_judgement_reflects) + " infections and the policy's " + str(true_effect_per_myriad) + "-per-ten-thousand" ^0
" cut appears from day " + str(first_day_the_policy_shows) ^0
"" ^0
"a report is a window onto the past by the length of its lag, and a change" ^0
"judged inside that lag is judged on a world it had not yet touched; the" ^0
"verdict was exact about ten-day-old infections and said nothing about the" ^0
"policy" ^0
"" ^0
"The day-" + str(day_the_policy_was_judged) + " reports are exact and unchanged - true. But a case is reported " + str(days_from_infection_to_report) ^0
"days after infection, so those reports are day-" + str(infection_day_the_judgement_reflects) + " infections, all pre-policy;" ^0
"the policy's " + str(true_effect_per_myriad) + "-per-ten-thousand cut reaches the reports on day " + str(first_day_the_policy_shows) + ", " + str(day_the_policy_was_judged) + " days after it" ^0
"was judged useless, until the judgement waits out the lag." ^0Python (deterministic transpilation)
pythoninfections_per_day_before_the_policy = 1000
infections_per_day_after_the_policy = 500
days_from_infection_to_report = 10
day_the_policy_was_judged = 5
infection_day_the_judgement_reflects = day_the_policy_was_judged - days_from_infection_to_report
cases_reported_on_the_judgement_day = infections_per_day_before_the_policy
first_day_the_policy_shows = days_from_infection_to_report + 5
cases_reported_from_that_day = infections_per_day_after_the_policy
infections_the_policy_prevents_per_day = infections_per_day_before_the_policy - infections_per_day_after_the_policy
true_effect_per_myriad = int(infections_the_policy_prevents_per_day * 10000 / infections_per_day_before_the_policy)
effect_visible_on_the_judgement_day_per_myriad = 0
print("infections per day, before : " + str(infections_per_day_before_the_policy))
print("infections per day, after : " + str(infections_per_day_after_the_policy))
print("true effect : " + str(true_effect_per_myriad) + " per ten thousand fewer")
print("")
print("infection to report : " + str(days_from_infection_to_report) + " days")
print("judged on day : " + str(day_the_policy_was_judged))
print("infection day those reports reflect : day " + str(infection_day_the_judgement_reflects) + ", before the policy")
print("cases reported on day " + str(day_the_policy_was_judged) + " : " + str(cases_reported_on_the_judgement_day))
print("effect visible on day " + str(day_the_policy_was_judged) + " : " + str(effect_visible_on_the_judgement_day_per_myriad) + " per ten thousand")
print("first day the policy shows : day " + str(first_day_the_policy_shows) + ", reports fall to " + str(cases_reported_from_that_day))
print("")
print("the day-five judgement")
print(" reads : the real reported cases")
print(" compares : five days after against the days before")
print(" counts : exact")
print(" intent : did the policy reduce infections")
print(" reports misread : 0")
print(" verdict : NO CHANGE IN CASES, THE POLICY DID NOTHING")
print("")
print(" reading the exact reports for the exact days is the part")
print(" done right here, and it is why 'no change by day five'")
print(" is a true statement about the reports")
print("")
print("the lag")
print(" a case is reported : " + str(days_from_infection_to_report) + " days after the infection")
print(" so day-" + str(day_the_policy_was_judged) + " reports are : infections from day " + str(infection_day_the_judgement_reflects))
print(" when did the policy start : day 0")
print(" so every report up to day " + str(days_from_infection_to_report) + " : is pre-policy infections")
print(" the policy's first infections are reported : day " + str(first_day_the_policy_shows))
print(" the judgement was made : " + str(first_day_the_policy_shows) + " minus " + str(day_the_policy_was_judged) + " days before the")
print(" policy could appear in any report")
print("")
print("the decision")
print(" concluded : the policy has no effect, lift it")
print(" the policy's actual effect : " + str(true_effect_per_myriad) + " per ten thousand fewer")
print(" is any report wrong : no; each is exact")
print(" do the reports on day " + str(day_the_policy_was_judged) + " contain the policy : no; they")
print(" contain infections from " + str(days_from_infection_to_report) + " days earlier")
print("")
nc_effect_seen_judging_at_day_five_per_myriad = 0
nc_effect_seen_judging_at_day_fifteen_per_myriad = 5000
nc_effect_the_lag_aware_judgement_recovers = 5000
print("null control - judge after the lag, on the policy's own infections")
print(" effect seen, judging at day five : " + str(nc_effect_seen_judging_at_day_five_per_myriad) + " per ten thousand")
print(" effect seen, judging at day fifteen : " + str(nc_effect_seen_judging_at_day_fifteen_per_myriad) + " per ten thousand")
print(" effect the lag-aware judgement recovers : " + str(nc_effect_the_lag_aware_judgement_recovers) + " per ten thousand")
print(" no report and no policy changed; the judgement stopped")
print(" reading last week's infections as this week's answer")
print("")
print("what an exact five-day case comparison guarantees")
print(" reported cases did not change in the five days after :")
print(" exactly, real reports, exact counts")
print(" the policy did not change infections : not addressed;")
print(" reports lag infections by " + str(days_from_infection_to_report) + " days, so day-" + str(day_the_policy_was_judged) + " reports")
print(" are day-" + str(infection_day_the_judgement_reflects) + " infections and the policy's " + str(true_effect_per_myriad) + "-per-ten-thousand")
print(" cut appears from day " + str(first_day_the_policy_shows))
print("")
print("a report is a window onto the past by the length of its lag, and a change")
print("judged inside that lag is judged on a world it had not yet touched; the")
print("verdict was exact about ten-day-old infections and said nothing about the")
print("policy")
print("")
print("The day-" + str(day_the_policy_was_judged) + " reports are exact and unchanged - true. But a case is reported " + str(days_from_infection_to_report))
print("days after infection, so those reports are day-" + str(infection_day_the_judgement_reflects) + " infections, all pre-policy;")
print("the policy's " + str(true_effect_per_myriad) + "-per-ten-thousand cut reaches the reports on day " + str(first_day_the_policy_shows) + ", " + str(day_the_policy_was_judged) + " days after it")
print("was judged useless, until the judgement waits out the lag.")stdout (executed)
textinfections per day, before : 1000
infections per day, after : 500
true effect : 5000 per ten thousand fewer
infection to report : 10 days
judged on day : 5
infection day those reports reflect : day -5, before the policy
cases reported on day 5 : 1000
effect visible on day 5 : 0 per ten thousand
first day the policy shows : day 15, reports fall to 500
the day-five judgement
reads : the real reported cases
compares : five days after against the days before
counts : exact
intent : did the policy reduce infections
reports misread : 0
verdict : NO CHANGE IN CASES, THE POLICY DID NOTHING
reading the exact reports for the exact days is the part
done right here, and it is why 'no change by day five'
is a true statement about the reports
the lag
a case is reported : 10 days after the infection
so day-5 reports are : infections from day -5
when did the policy start : day 0
so every report up to day 10 : is pre-policy infections
the policy's first infections are reported : day 15
the judgement was made : 15 minus 5 days before the
policy could appear in any report
the decision
concluded : the policy has no effect, lift it
the policy's actual effect : 5000 per ten thousand fewer
is any report wrong : no; each is exact
do the reports on day 5 contain the policy : no; they
contain infections from 10 days earlier
null control - judge after the lag, on the policy's own infections
effect seen, judging at day five : 0 per ten thousand
effect seen, judging at day fifteen : 5000 per ten thousand
effect the lag-aware judgement recovers : 5000 per ten thousand
no report and no policy changed; the judgement stopped
reading last week's infections as this week's answer
what an exact five-day case comparison guarantees
reported cases did not change in the five days after :
exactly, real reports, exact counts
the policy did not change infections : not addressed;
reports lag infections by 10 days, so day-5 reports
are day--5 infections and the policy's 5000-per-ten-thousand
cut appears from day 15
a report is a window onto the past by the length of its lag, and a change
judged inside that lag is judged on a world it had not yet touched; the
verdict was exact about ten-day-old infections and said nothing about the
policy
The day-5 reports are exact and unchanged - true. But a case is reported 10
days after infection, so those reports are day--5 infections, all pre-policy;
the policy's 5000-per-ten-thousand cut reaches the reports on day 15, 5 days after it
was judged useless, until the judgement waits out the lag.Trace event types
eml:run:starteml:assigneml:outputeml:run:done