Lesson map
Lesson 04 published. Map, example, EX021.
flowchart TD
N0["Learning outcomes"]
N1["4.1 Why a baseline"]
N2["Lab — Baseline profile"]
N3["4.2 Reading the baseline"]
N4["4.3 Piloting the checklist"]
N5["4.4 Adjustments"]
N6["Synthesis"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
N6 --> EX["Worked example"]
EX --> Q["Exercise EX021"]
Logical drawing
flowchart LR
N0["Learning outcomes"]
N1["4.1 Why a baseline"]
N2["Lab — Baseline profile"]
N3["4.2 Reading the baseline"]
N4["4.3 Piloting the checklist"]
N5["4.4 Adjustments"]
N6["Synthesis"]
N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX021"]
[Learning outcomes]
|
v
[4.1 Why a baseline]
|
v
[Lab — Baseline profile]
|
v
[4.2 Reading the baseline]
|
v
[4.3 Piloting the checklist]
|
v
[4.4 Adjustments]
|
v
[Synthesis]
|
v
[Worked example] --> [Exercise EX021]
Learning outcomes
You will (1) replicate a baseline from historical findings; (2) pilot the checklist; (3) adjust procedures before the main study.
4.1 Why a baseline
Before testing a new procedure, Lucía needs to know what usual review finds. She codes sixty historical findings from four past partner reviews, all of contracts already fixed or retired, using the codebook from chapter one. The baseline tells her which categories dominate high-severity findings and whether projects differ, which informs both the secondary hypothesis and the checklist's emphasis. Replicating a baseline also tests whether her coding works on real-looking material rather than only training examples. She reports the coding agreement on this material too.
Lab — Baseline profile
"""Baseline profile of synthetic historical review findings by category and severity (read-only)."""
from collections import Counter
# (project, category, severity) for 60 synthetic findings from past reviews
ROWS = []
for proj, spec in {
"P1": [("access", "high", 4), ("external-call", "high", 2), ("arithmetic", "medium", 3), ("other", "low", 6)],
"P2": [("access", "high", 3), ("external-call", "high", 3), ("arithmetic", "medium", 2), ("other", "low", 7)],
"P3": [("access", "medium", 5), ("external-call", "high", 1), ("arithmetic", "high", 2), ("other", "low", 7)],
"P4": [("access", "high", 2), ("external-call", "medium", 4), ("arithmetic", "low", 3), ("other", "low", 6)],
}.items():
for cat, sev, n in spec:
ROWS += [(proj, cat, sev)] * n
def main():
print(f"findings {len(ROWS)} across {len({r[0] for r in ROWS})} projects")
high = [r for r in ROWS if r[2] == "high"]
print(f"high severity {len(high)} ({100 * len(high) / len(ROWS):.1f}%)")
for cat, n in Counter(r[1] for r in high).most_common():
print(f" high {cat}: {n}")
for p, n in sorted(Counter(r[0] for r in high).items()):
print(f" {p} high: {n}")
if __name__ == "__main__":
main()
Run with python3 lab_baseline.py. Verified output:
findings 60 across 4 projects
high severity 17 (28.3%)
high access: 9
high external-call: 6
high arithmetic: 2
P1 high: 6
P2 high: 6
P3 high: 3
P4 high: 2
4.2 Reading the baseline
The run reports sixty findings across four projects, seventeen of them high severity, 28.3 percent. Access control accounts for nine high findings, external calls six and arithmetic two. Projects P1 and P2 have six high findings each, P3 three and P4 two. Lucía notes that access control dominates, consistent with her secondary hypothesis, and that projects differ enough that she must stratify or account for project in the main study rather than pool everything naively. These figures are recorded with the run date and seed-free script.
4.3 Piloting the checklist
Lucía pilots the checklist with two auditors on four contracts not used in the main study. The checklist has thirty-two items grouped by category, each linked to an EthTrust requirement or SWC entry and phrased as a question about the code's intended behaviour. The pilot shows that reviewers skip items they judge irrelevant without recording why, and that three items are ambiguous. Pilots exist to find these problems while they are cheap to fix. Each problem is noted with the item and reviewer comment.
4.4 Adjustments
Lucía adds a not-applicable option that requires a one-line reason, rewrites the three ambiguous items and adds a short section on documentation of intended behaviour, because reviewers struggled to judge correctness without it. She records each change in a deviation log against the registered plan, noting that the pilot was planned and the changes precede main data collection. Supervisors approve the revised checklist, and the main study can begin with a tool that reviewers understand consistently. The revised version is frozen for the main study.
Worked example
The baseline shows 17 of 60 findings are high severity, with access control the largest category; the pilot leads to three rewritten items, a recorded not-applicable option and a documentation section.
Synthetic case. Findings, projects and the checklist are synthetic; EEA EthTrust and the SWC registry are real sources.
Errors and limits
Skipping a pilot leaves ambiguities that add noise to the main study.
Exercises
- EX021 — Baseline source. What does the baseline use?
Show marking criteria
Rubric: 3 = sixty historical findings from fixed or retired contracts;; 2 = past findings;; 1 = live contracts;; 0 = none. - EX022 — High share. What share of baseline findings were high severity?
Show marking criteria
Rubric: 3 = 17 of 60, 28.3%;; 2 = 28%;; 1 = 50%;; 0 = none. - EX023 — Top category. Which category had the most high findings?
Show marking criteria
Rubric: 3 = access control, nine;; 2 = access;; 1 = arithmetic;; 0 = none. - EX024 — Project variation. Why stratify by project?
Show marking criteria
Rubric: 3 = projects differ in high findings;; 2 = variation;; 1 = cost;; 0 = none. - EX025 — Pilot problem. What did the pilot reveal?
Show marking criteria
Rubric: 3 = unrecorded skips and three ambiguous items;; 2 = ambiguity;; 1 = vague;; 0 = none. - EX026 — Change logging. How are checklist changes recorded?
Show marking criteria
Rubric: 3 = deviation log against the registered plan;; 2 = log;; 1 = not recorded;; 0 = none.
Synthesis
A replicated baseline and a candid pilot ground the main study in real patterns and a usable instrument.
Continue studying — chapter 04 of 08
← Chapter 03 (draft) · Course chapter index · Chapter 05 (draft) →