Why Population Counts Need an Audit
A model can run successfully on the wrong set of subjects. A report may state that 112 participants were eligible, while the input file contains 110 unique identifiers; alternatively, a table may count 112 subjects even though the analysis file contains many more rows. Neither mismatch is explained by a successful run. An independent review therefore needs to reconstruct how the declared population becomes the population actually represented in the model input.
This audit is about who is included, who is excluded, and whether the counts reconcile. It does not establish that the eligibility criteria are scientifically appropriate. It checks whether the stated rules were applied to identifiable subjects and whether the resulting subject and record counts agree with the analysis artifacts. The earlier material on tracing analysis records back to source data and auditing units and derived dataset variables provides useful context: here, the focus is the population flow and its accounting.
Define the Counting Unit Before Counting
A count is meaningful only after its unit and scope are stated. A subject count counts distinct subject identifiers. A record count counts rows at a specified level in a specified dataset. One subject may contribute multiple records, so a row count is not a substitute for a unique-subject count. The audit should report these quantities separately and name the file or dataset version from which each was obtained.
The candidate set \(C\) must also be explicit. It might be all subjects on a screening roster, all subjects satisfying a protocol-level criterion, or another population declared by the analysis specification. Those are not interchangeable choices. Identify the roster, the date or version, the identifier field, and any rule that determines whether a subject belongs in the candidate set. If the scope is ambiguous, the reviewer cannot know whether an apparent discrepancy is a counting error or a difference in population definition.
For a staged flow, define the starting set at each stage. For example, a protocol-screened set may be reduced by one set of exclusions to form an eligible set, and a later analysis-specific rule may reduce that set again. Each stage needs its own count and rule. Do not add exclusion counts from different stages to a starting total unless the categories are defined over the same starting set and do not overlap.
In practice, the final equality can be checked in both directions: identify subjects expected in the model input but absent from it, and identify subjects present in the model input but not in the declared population. Equal totals alone are insufficient: two sets can have the same size and different members. Compare the identifiers, not only the summary numbers.
Exclusions Must Have a Traceable Basis
For each excluded subject, the review should be able to connect the identifier to a documented exclusion rule and evidence that supports applying that rule. A usable audit trail identifies the criterion, the source field or record used to evaluate it, the rule or programming version, and the resulting subject-level decision. The evidence should be specific enough for another reviewer to reproduce the classification from the referenced material.
A label such as “not evaluable” is not, by itself, a traceable basis. The reviewer needs to know what condition “not evaluable” represents, how it was determined, and whether that condition was part of the declared population definition. A derived flag can be a useful implementation, but it should be possible to trace that flag to its source and rule. The audit is not complete if a count can be reproduced only by trusting an unexplained flag.
Exclusion reasons may overlap. A subject can meet more than one exclusion condition, but must be counted only once in the overall number of excluded subjects. There are two sound ways to report this: show the overlapping reason flags and separately report the number of unique excluded subjects, or assign each excluded subject one primary reason using a documented priority rule. Do not sum overlapping flag totals and present the result as a unique-subject total.
Worked Example: Reconciling a Declared Subject Population
Hypothetical data. A review roster contains 120 unique candidate subjects. The analysis specification excludes subjects with no qualifying dose record or without the required baseline measurement. A subject-level exclusion log assigns 3 subjects to “no qualifying dose” and 5 to “baseline measurement missing.” The log records one primary reason per subject, and inspection confirms that the categories do not overlap.
The total number excluded is \(3+5=8\). The expected analysis population is therefore \(120-8=112\) subjects. Equivalently, the partition check is \(120=112+8\). The declared analysis population contains 112 unique identifiers, so its count agrees with the roster and exclusion log.
Suppose the model input also contains 112 unique subject identifiers. That count is consistent, but the reviewer should still compare the identifiers: the equality \(112=112\) does not prove that the same 112 subjects are present. If the sets match, the subject-level reconciliation is complete for these stated rules. It does not, by itself, show that the eligibility rules were clinically appropriate.
Justifying the Count Reconciliation
The arithmetic behind a non-overlapping exclusion table is a partition argument. For each candidate subject \(i\), define an indicator \(I_A(i)\) that equals 1 if the subject is in the analysis population and 0 otherwise. Define \(I_{E_j}(i)\) similarly for exclusion category \(j\). If every candidate is assigned to exactly one of the analysis population or the mutually exclusive exclusion categories, then for each candidate:
Summing over all candidates gives the count identity. The sum of an indicator over a set is the number of members for which it equals 1:
This identity depends on the partition assumption. If categories overlap, a subject contributes more than once to the sum; if a candidate is not classified anywhere, the sum is less than one for that subject. Thus a failed equation is a signal to investigate the classification, not a reason to adjust a count until the totals appear to agree.
Worked Example: Resolving Overlapping Exclusion Flags
Hypothetical data. Among 80 candidate subjects, 7 have an exclusion flag for a missing baseline measurement, 5 have a flag for a prohibited concomitant treatment, and 4 have a flag for a missing qualifying dose. These are overlapping flags: 2 subjects have both the first and second flags, 1 has both the first and third, 1 has both the second and third, and 1 subject has all three.
The number with at least one flag is the size of the union. Applying inclusion-exclusion gives \(7+5+4-2-1-1+1=13\). The triple-overlap subject was subtracted too many times by the pairwise corrections, so it is added once. Therefore, 13 unique subjects are excluded, and \(80-13=67\) remain.
If a primary-reason table is required, use a stated priority rule. For example, assign the baseline category first: it accounts for 7 subjects. Of the 5 subjects with the treatment flag, 2 already appear in the baseline category, leaving \(5-2=3\) assigned to treatment. The union contains 13 subjects, so the remaining \(13-7-3=3\) are assigned to the dose category. The exclusive totals are \(7+3+3=13\), and \(80=67+13\). The priority rule changes the reason labels, not the number of uniquely excluded subjects.
Reconcile Records Separately From Subjects
A complete population check also states the record counts, but it does not treat them as subject counts. If a subject-level exclusion removes a subject from the analysis population, that subject’s records may also be absent from the model input. Separately, a record-level rule may remove particular rows while leaving the subject in the analysis population. Each operation needs a stated unit, a defined rule, and its own accounting.
The arithmetic for records depends on the actual data flow. A row count can decrease by the number of rows removed at a particular step, but the decrease cannot be inferred from the number of subjects excluded: subjects may contribute different numbers of rows. Record counts should therefore be obtained from the named datasets or a reproducible count, and the unique-subject count should be calculated independently from identifiers in the resulting model input.
Worked Example: Separating Subject and Record Exclusions
Hypothetical data. A candidate dataset has 52 unique subjects and 186 records. Four subjects meet a documented subject-level exclusion rule; their records account for 15 rows. After those subjects are removed, 48 subjects and \(186-15=171\) records remain. A separate, documented record-level rule removes 3 rows from subjects who each retain other records.
The model input should then contain \(171-3=168\) records. Its subject count should remain 48, provided each of the 48 subjects is still represented. The checks are therefore \(52-4=48\) subjects and \(186-15-3=168\) records. Reporting “four subjects and eighteen records excluded” without separating the 15 rows removed with excluded subjects from the 3 additional record exclusions would obscure the different operations.
This accounting verifies the stated count changes; it does not establish that every remaining record is correctly aligned to a particular subject or event. That requires its own check. For the population audit, the essential point is that the reported 48 is a distinct-subject count and the reported 168 is a row count.
A Reproducible Review Workflow
A reliable review combines a population-flow table, identifier-level comparisons, and evidence for each exclusion. The following sequence makes the logic visible and helps isolate the source of a discrepancy.
Name the candidate roster, its version, the identifier used, and the population definition. Record whether each reported count refers to unique subjects or rows.
For each excluded identifier, locate the applicable rule and supporting source evidence. Record whether the reason categories overlap or are assigned as mutually exclusive primary reasons.
Count unique candidate identifiers, unique excluded identifiers, and unique analysis-population identifiers. Verify the partition equation when its assumptions hold.
Compare the declared analysis identifiers with the unique identifiers in the model input. List identifiers found only on one side; do not rely on equal totals alone.
Count rows at each named data stage, distinguish subject-level from record-level removals, and document unresolved differences with their impact and evidence.
Diagnostics, Alternatives, and Limits
A mismatch can arise from a missing or duplicate identifier, a stale roster, a changed eligibility rule, an unrecorded exclusion, a filter applied at the wrong unit, or a difference between the declared population and the actual model input. Check these possibilities before concluding that the model input is incorrect. Duplicate rows can inflate a row count without changing the number of subjects; inconsistent identifier formatting can make one subject appear to be two; and an unclassified candidate can make an otherwise plausible flow fail to balance.
There are several useful ways to perform the count check. A manual flow table is easy to inspect and communicate, but can hide overlapping categories or transcription errors. A scripted count is repeatable and can compare identifier sets, but is only as trustworthy as its input files, code, and stated counting unit. An independent recomputation from the roster and exclusion evidence provides a stronger cross-check than merely re-running the submitted count code. These approaches complement one another: a table communicates the result, while reproducible set comparisons test membership.
A count match is necessary evidence of consistency, not proof of a valid analysis population. It cannot show that the criteria were justified, that source information was correct, or that an unobserved exclusion was appropriate. Similarly, if the specification does not define the candidate universe or how overlapping reasons are counted, there may be no unique count to verify. Record the ambiguity and seek clarification rather than silently choosing a definition.
Check Your Understanding
Answer each question, then compare your reasoning with the solutions.
- A candidate roster has 90 unique subjects. A primary-reason exclusion table lists 6, 4, and 3 subjects in three categories. What is the expected analysis-population count if the categories are mutually exclusive and exhaustive?
- Two exclusion flags contain 8 and 5 subjects, with 2 subjects in both flags. How many unique subjects have at least one flag?
- The declared analysis population and model input both contain 40 unique identifiers. What additional check is needed before concluding that their subject membership agrees?
- A dataset has 240 rows and 60 unique subjects. Can the number of excluded subjects be calculated from these two counts alone? Explain.
Solutions. (1) The exclusions total \(6+4+3=13\), so the expected analysis population is \(90-13=77\). (2) The union is \(8+5-2=11\) unique subjects. (3) Compare the identifiers in both directions; equal set sizes do not prove that the sets contain the same subjects. (4) No. The row and subject counts describe different units, and they do not state how many subjects were excluded or how many rows each contributed.