Skip to reading
Forecaster
Complete research draft10 chapters plus methods appendix published
Contents Methods appendix

Methods appendix

Method appendix: an invented report network

Assumptions, reproducibility and limits of the invented report network and audiences.

By Kevin L. Michel6 minute read

Method appendix: an invented report network

Status and purpose

This is an original hypothetical construction, prepared for the private research draft of I NEVER SAID THAT on October 5, 2026. It is an illustration, not a sample of real news coverage, social-media traffic, or human behavior. All entities and quantities are invented. The example makes no empirical claim about the success rate of corrections. Its aim is to keep three things separate: how reports depend on sources, where a correction is delivered, and which people encounter it.

The setting is an invented neighborhood meeting. An allegation about a speaker’s words enters two records: a short excerpt called O1 and an attendee note called O2. Both records concern the same event. They could be related, mistaken or incomplete. Calling them two roots identifies where this graph begins; it does not establish independent observation or truth. The example assumes that a subsequent check supports a correction. Whether that correction is justified lies outside the calculation.

Records, reports and paths

The directed graph contains two underlying-record roots and ten report nodes. An arrow means that the destination report derives from its parent. It does not mean that a particular person saw either report. The links are:

  • O1 → R1
  • R1 → R2 and R4
  • R2 → R3
  • O2 → R5
  • R5 → R6
  • R6 → R7 and R8
  • R4 → R8
  • R8 → R9
  • R9 → R10

The graph therefore has eleven edges. R8 draws on two branches, and R9 and R10 descend from that combined report. Four reports have only O1 as a root; three have only O2; three have both. O1 has seven report descendants and O2 has six. Adding seven and six would count R8, R9 and R10 twice.

A report may add interpretation or other material in the real world. This graph stipulates only the displayed roots. It cannot show that ten actual reports always contain just two sources. What it shows is that ten report nodes can arise from two underlying records. The number of reports is therefore insufficient, by itself, to establish the number or independence of the underlying observations.

Delivered corrections

Corrections are delivered through R1, R5, R8 and R10. Four of the ten report nodes therefore receive a correction: 4/10, or 40%. Delivery to a parent does not automatically update its descendants. R9, for example, remains outside the delivered set even though R8 and R10 receive corrections.

The denominator here consists of reports. No person count appears in it. This fraction cannot be substituted for the proportion of an original audience that encounters a correction.

Fixed invented audiences

Twenty person identifiers, P01 through P20, are declared in the input. Each report has a list of people stipulated to encounter its original version. Each delivered correction has a separate list stipulated to encounter the correction. These lists are entered directly; the model does not infer them from the dependency graph. The lists may overlap, and the correction audience for a node need not match its original audience.

A membership records one stipulated exposure through that report. When calculating distinct people, the script takes the union of the lists. It neither counts a repeated person as someone new nor assumes that an exposed person reads carefully, understands, agrees or changes a belief.

The original lists contain 37 report-person memberships. Their union contains sixteen people, P01 through P16. The correction lists contain sixteen memberships. Their union contains twelve people. Eight people occur in both unions: P01, P02, P03, P04, P08, P09, P10 and P12.

The original-only group consists of eight people: P05, P06, P07, P11, P13, P14, P15 and P16. The correction-only group consists of four: P17, P18, P19 and P20. No declared person lies outside both unions. The twenty declared people are simply the complete invented example, not a sampled population.

Two audience questions

Let A be the set of people exposed to at least one original report and C the set exposed to at least one correction. In this construction, A has sixteen members, C has twelve, and their intersection has eight.

To ask how much of the original audience received the correction, divide the size of the intersection by the size of A. The answer is 8/16 = 1/2 = 50%.

To ask how much of the correction audience had previously encountered an original report, divide the same intersection by the size of C. The answer is 8/12 = 2/3 = 66⅔%.

Both calculations are correct. They answer different questions. The first tracks coverage of people exposed to the original report. The second describes the composition of people exposed to the correction. Neither measures belief change. Four new correction recipients increase the total correction audience without reducing the eight original recipients who remain unreached.

The model also records report-node correction coverage, 4/10 = 2/5 = 40%. That third fraction concerns a different kind of entity. The 40%, 50% and 66⅔% figures are not competing estimates of one outcome.

Sensitivity examples

A separate output file changes only correction audience memberships. Original audiences, dependency links and the four correction-delivery nodes remain fixed.

In the first variation, P17 through P20 are removed from correction lists. Eight people still belong to both audiences. Original-audience correction exposure remains 8/16 = 50%. The correction audience now contains eight people, all previously exposed, so its previously exposed share becomes 8/8 = 100%. A larger total correction audience in the baseline did not imply better coverage of the original audience.

Two boundary cases make the separation from node coverage explicit. One stipulates no human correction exposure despite delivery to four nodes. The other stipulates exposure of all sixteen original recipients through the R1 correction, with no exposure through the other delivered corrections. Node coverage stays at 40% in both cases; original-audience exposure is respectively 0% and 100%. These extremes demonstrate a mathematical lack of determination. They are not estimates of plausible audience behavior. Where a denominator is zero, the script records the fraction as undefined, not as zero.

Proposed correction workflow

The third figure offers an editorial practice. Preserve the disputed wording and its source trail. Check full context and hear the affected person’s response. State whether the evidence supports a correction, a clarification, or an unresolved finding. Attach any warranted correction to the original, date it and notify dependent reports. Distinguish delivery, exposure and understanding when describing what happened. Revisit gaps and keep a route for appeal or new evidence.

That sequence is a normative proposal. The calculation does not evaluate its effectiveness, feasibility, cost or legal status. In the invented baseline, the outstanding delivery gap is six report nodes, and the outstanding audience gap is eight original recipients. Those gaps are counted separately because closing one does not establish that the other has closed.

Reproducibility and checks

The input is a JSON file containing every root, parent link and audience membership. A Python 3.9-or-later standard-library script validates unique identifiers, valid audience members and parent links, the absence of cycles, and the consistency of correction-delivery flags. It computes all root-to-report paths recursively and all audiences through set unions, intersections and differences.

Fourteen tests check the expected counts and denominators; the source paths and overlapping root descendants; the absence of automatic correction propagation; independence from input ordering; rejection of cycles, unknown identifiers and invalid correction flags; undefined zero-denominator cases; and the distinction between node delivery and human exposure. Integer counts and reduced fraction strings preserve exact values. Decimal percentages are included only for display.

The results identify the exact SHA-256 hashes of the script and input. A separate manifest gives the hashes of the delivered files. The SVGs are generated from original drawing instructions in the script. Two native layouts per figure keep every text element at least sixteen pixels at 320px and 720px widths. Raster previews were generated from those SVGs and visually checked at those native sizes.

Limits that should travel with the example

The model includes no real participants, estimated parameters, sample selection, exposure measurement, random process or uncertainty distribution. It does not model time, changing platform ranking, re-sharing, adversarial manipulation, delivery failures, correction wording, costs, comprehension, persuasion or repaired reputational harm. The two source roots are not assumed independent. The correction’s justification is assumed, not established.

A data table or precise fraction can make an invented example look authoritative. The label “hypothetical” must therefore remain visible with the figures and with any prose that gives these quantities. Their purpose is to expose a counting error and clarify an accountability question, not to borrow the appearance of empirical evidence.