5W1H and the Architecture of Explanatory Completeness: Who, What, When, Where, Why, and How

Last Updated June 8, 2026

5W1H is one of the simplest and most durable frameworks for explanatory completeness. It asks six basic questions: who, what, when, where, why, and how. Those questions appear almost elementary, but together they form a powerful architecture for organizing events, claims, decisions, systems, policies, cases, methods, and public explanations.

In content frameworks, 5W1H matters because incomplete explanation creates confusion. A reader may know what happened but not who was involved. They may understand why an issue matters but not how it works. They may know where a problem appears but not when it developed. They may understand a method but not the context in which it applies. 5W1H helps writers and editors identify those gaps before publication.

Restrained editorial illustration of explanatory completeness, six inquiry pathways, question architecture, evidence layers, context markers, method structures, and organized knowledge supports without text or labels.
5W1H organizes explanation through six foundational questions: who, what, when, where, why, and how.

This article examines 5W1H as a framework for explanatory completeness, inquiry architecture, content review, evidence organization, reader orientation, and editorial governance. It explains how who, what, when, where, why, and how operate as structural questions rather than a simple writing checklist. It also shows how 5W1H differs from AIDA, PAS, BAB, funnel models, storytelling arcs, and generic outline templates. The article includes advanced Python and R workflows for 5W1H completeness audits, question coverage analysis, evidence-support review, gap detection, explanatory balance scoring, and governance-ready content reports.

Why 5W1H Matters

5W1H matters because explanation is often incomplete in predictable ways. A piece of content may answer the most visible question while leaving out the context that makes the answer useful. It may describe an event but omit actors. It may identify a problem but omit causes. It may describe a method but omit conditions. It may recommend action but omit the process that would make action possible.

The value of 5W1H is not that every article must give equal space to every question. The value is that every article should know which questions it answers, which questions it leaves open, and why. Completeness is not the same as length. A short explanation can be complete for its purpose. A long explanation can still be incomplete if it fails to answer the right questions.

In journalism, 5W1H supports basic event reporting. In research communication, it supports claim context. In policy explanation, it clarifies actors, authority, timing, place, reasons, and implementation. In systems explanation, it helps readers understand components, relationships, mechanisms, and consequences. In content frameworks, it becomes a review structure for clarity and accountability.

Explanatory gap 5W1H response Reader benefit
The reader does not know who is involved. Clarify actors, audiences, stakeholders, or responsible parties. Readers understand agency and responsibility.
The issue is vague. Define what happened, what is being claimed, or what is being examined. Readers understand the object of explanation.
The timing is unclear. Explain when something occurred, developed, recurs, or matters. Readers understand sequence and timing.
The context is missing. Explain where the issue occurs physically, institutionally, socially, or conceptually. Readers understand setting and scope.
The purpose or cause is unclear. Explain why the issue matters, why it happened, or why action is being proposed. Readers understand stakes and reasoning.
The mechanism is missing. Explain how the process works, how evidence was produced, or how change happens. Readers understand method, pathway, or operation.

5W1H is a simple framework with serious editorial consequences. It helps reveal what a reader still needs to know.

Back to top ↑

What 5W1H Is

5W1H stands for who, what, when, where, why, and how. It is a questioning framework used to gather information, structure explanation, diagnose gaps, and support clarity. It appears in journalism, education, research communication, planning, investigation, process improvement, policy analysis, project documentation, and content design.

The framework is powerful because each question opens a different dimension of understanding. “Who” identifies actors. “What” identifies the event, object, claim, problem, or decision. “When” identifies time and sequence. “Where” identifies place, context, scope, or setting. “Why” identifies reasons, causes, purposes, or stakes. “How” identifies mechanisms, methods, processes, or implementation pathways.

Question Core function Common content use
Who Identifies actors, audiences, stakeholders, sources, or responsible parties. Profiles, accountability, stakeholder maps, audience context.
What Defines the event, claim, issue, object, problem, method, or decision. Definitions, summaries, issue framing, article scope.
When Clarifies timing, sequence, frequency, history, duration, and deadlines. Timelines, process stages, historical context, review cycles.
Where Defines place, context, setting, scale, jurisdiction, or system boundary. Geographic context, institutional scope, domain boundaries.
Why Explains reasons, causes, purposes, motivations, stakes, or significance. Analysis, causal explanation, strategic rationale, public reasoning.
How Explains mechanisms, methods, processes, pathways, or implementation. Methods, workflows, tutorials, systems explanation, governance steps.

5W1H is not only a reporting tool. It is a structure for making explanation answerable.

Back to top ↑

5W1H as Architecture, Not Checklist

5W1H is often treated as a checklist. That is useful for basic completeness, but the framework becomes more powerful when it is treated as architecture. The six questions are not isolated boxes. They interact.

Who affects why. What affects how. When affects where. Where affects who. Why affects what counts as relevant. How affects whether a claim is credible. A policy explanation, for example, cannot fully answer “what changed” without explaining who has authority, when the change applies, where it applies, why it was made, and how it will be implemented.

As architecture, 5W1H helps writers organize relationships among explanatory dimensions. It can reveal whether a reader is missing context, source support, temporal sequence, mechanism, actor responsibility, or purpose. It can also help editors decide which missing details matter and which are outside the article’s scope.

Checklist use Architectural use
Asks whether each question appears somewhere. Asks whether each question supports the explanation’s purpose.
Treats all questions as equal. Prioritizes questions based on audience need and content type.
Looks for surface coverage. Looks for relationships among actors, events, timing, place, cause, and process.
Can encourage formulaic writing. Supports structured reasoning and editorial judgment.
Ends when all boxes are checked. Continues through evidence review, gap analysis, and governance.

5W1H should not make explanation mechanical. It should make explanation more complete, navigable, and accountable.

Back to top ↑

Core Functions of 5W1H

5W1H helps content systems organize explanation by making basic dimensions of completeness visible and reviewable.

It orients the reader

The framework helps readers understand the basic actors, issues, timing, context, reasons, and mechanisms involved.

It reveals missing information

By asking six structured questions, editors can identify where an explanation is incomplete or ambiguous.

It supports evidence architecture

Each question can be connected to source support, method notes, examples, or citations.

It clarifies scope

5W1H helps writers decide what belongs inside the article and what should be linked, deferred, or excluded.

It supports audience adaptation

Different audiences may need different levels of detail for each question.

It strengthens governance

5W1H records can support content audits, revision queues, metadata, and publication readiness checks.

It connects explanation to action

When readers know who, what, when, where, why, and how, next steps become more understandable.

These functions make 5W1H useful across explanatory, educational, research, policy, technical, and strategic content.

Back to top ↑

Who: Actors, Audiences, Stakeholders, and Responsibility

The who question identifies people, organizations, institutions, communities, decision-makers, audiences, experts, affected groups, and responsible parties. It is often the question that reveals agency. Without who, an explanation can become strangely passive: things happen, policies change, risks appear, systems fail, decisions are made, but no one is visible.

In explanatory content, who can refer to several different groups. It may identify who did something, who was affected, who has authority, who benefits, who bears risk, who provides evidence, who should act, or who the article is written for. These are not interchangeable.

Who dimension Question Why it matters
Actors Who is doing or causing something? Clarifies agency and responsibility.
Audience Who needs to understand this? Shapes level, language, examples, and structure.
Stakeholders Who is affected by the issue or decision? Reveals consequences and representation needs.
Authority Who has power to decide, regulate, implement, or revise? Clarifies governance and accountability.
Sources Who is providing evidence or interpretation? Supports source quality and credibility review.

The who question is especially important in policy, governance, institutional communication, research communication, and ethics. It prevents explanation from hiding responsibility behind abstract nouns.

Back to top ↑

What: Events, Claims, Objects, Problems, and Decisions

The what question defines the object of explanation. It asks what happened, what is being claimed, what is being studied, what changed, what problem exists, what decision is being made, what method is being used, or what system is being described.

Without what, readers cannot know the scope of the explanation. A vague article may discuss “change,” “risk,” “strategy,” “frameworks,” or “governance” without defining the actual object. The what question forces specificity.

In content frameworks, what is closely connected to titles, headings, excerpts, definitions, metadata, and article-map placement. It helps determine whether an article is about a concept, method, case, model, framework, policy, practice, event, or governance process.

What dimension Question Content example
Event What happened? News report, incident summary, case study.
Claim What is being asserted? Research communication, evidence review, argument map.
Problem What needs explanation, decision, or action? Policy analysis, strategy brief, systems diagnosis.
Method What process or framework is being used? Methods article, workflow, tutorial.
Object What system, document, artifact, technology, or institution is being discussed? Technical explanation, governance review, platform documentation.

The what question should make the article’s object clear enough that the reader knows what is inside the frame and what is outside it.

Back to top ↑

When: Time, Sequence, Duration, and Timing

The when question places explanation in time. It asks when something happened, when it began, when it changed, when it applies, how long it lasts, how often it recurs, what sequence matters, and what timing affects interpretation.

Time is often underexplained. A policy may apply after a certain date. A scientific finding may depend on data collected during a specific period. A system failure may unfold in phases. A strategic decision may look reasonable at one point and harmful later. A content article may become stale if review cycles are not visible.

In knowledge systems, when supports versioning, publication status, review dates, update cycles, historical context, and time-sensitive interpretation.

When dimension Question Why it matters
Event time When did it happen? Prevents chronological confusion.
Sequence What happened before and after? Clarifies process and causality.
Duration How long did it last or how long will it apply? Supports planning and interpretation.
Frequency How often does it occur? Distinguishes one-time events from patterns.
Review timing When should this explanation be checked again? Supports editorial governance and trust.

The when question is essential for avoiding stale, timeless, or misleading explanations. Time changes meaning.

Back to top ↑

Where: Place, Context, Scale, and Setting

The where question identifies place and context. It can refer to geography, jurisdiction, institution, platform, market, ecosystem, community, system boundary, research setting, or conceptual domain. Where is not always a physical location. It may be an organizational setting, a legal context, a digital platform, or a knowledge system.

Without where, an explanation can appear universal when it is actually local, institutional, domain-specific, or context-dependent. A health policy may apply in one country but not another. A platform workflow may apply in one content management system but not another. A research finding may depend on the study population or setting. A governance problem may exist at one scale but not another.

Where dimension Question Content use
Geographic place Where does this occur? Local, national, regional, or global explanation.
Institutional setting Where inside an organization or system does this apply? Governance, operations, policy, workflow design.
Jurisdiction Where is authority or rule application bounded? Law, compliance, public policy, regulation.
Platform or medium Where does the content, interaction, or process occur? Digital publishing, social media, CMS, repository workflows.
System boundary Where does the analysis begin and end? Systems thinking, modeling, sustainability, infrastructure.

The where question protects readers from overgeneralization. It makes scope visible.

Back to top ↑

Why: Causes, Reasons, Purposes, and Stakes

The why question is one of the most difficult parts of 5W1H because it can mean several different things. It may ask why something happened, why it matters, why a decision was made, why a method was chosen, why an audience should care, or why a proposed action is justified.

Those meanings should not be mixed carelessly. Causal why is different from strategic why. Ethical why is different from institutional why. Motivational why is different from explanatory why. A strong content framework should distinguish these forms of reasoning.

Type of why Question Risk if unclear
Causal why Why did this happen? Correlation may be mistaken for cause.
Purpose why Why was this done? Intent may be assumed without evidence.
Strategic why Why is this approach being chosen? Tradeoffs may be hidden.
Ethical why Why is this justified or responsible? Values may be treated as facts or omitted entirely.
Audience why Why should the reader care? Relevance may be assumed rather than built.

The why question gives explanation depth, but it also requires discipline. Writers should specify which kind of why they are answering.

Back to top ↑

How: Mechanisms, Methods, Processes, and Pathways

The how question explains mechanism. It asks how something works, how evidence was produced, how a process unfolds, how a method is applied, how a decision will be implemented, or how a reader can act. How is often the question that turns description into usable understanding.

Many explanations are weak because they state outcomes without explaining mechanisms. A content strategy improves navigation, but how? A policy reduces risk, but how? A framework supports learning, but how? A model estimates future behavior, but how? A repository workflow supports reproducibility, but how?

How should connect claims to process. It should explain steps, dependencies, inputs, outputs, mechanisms, limitations, and conditions. In technical and educational content, how is central to reader trust.

How dimension Question Content use
Mechanism How does it work? Systems explanation, technical communication, causal reasoning.
Method How was evidence produced? Research communication, data analysis, evaluation.
Process How does the sequence unfold? Workflows, tutorials, governance, implementation.
Pathway How can the reader move from current state to desired state? Learning pathways, strategic action, public guidance.
Maintenance How will this stay accurate? Editorial governance, review cycles, repository updates.

The how question is where explanation becomes operational. It shows the reader the structure beneath the claim.

Back to top ↑

5W1H vs AIDA, PAS, BAB, and Persuasive Frameworks

5W1H differs from persuasive-sequence frameworks such as AIDA, PAS, and BAB. AIDA moves an audience from attention to interest, desire, and action. PAS moves from problem to agitation to solution. BAB moves from before to after to bridge. These are movement frameworks. They help structure persuasion.

5W1H is an explanatory-completeness framework. It asks what information the reader needs to understand the subject. It may support persuasion, but it does not require persuasion. It can be used for reporting, research communication, policy explanation, technical documentation, educational scaffolding, case analysis, internal documentation, or governance review.

Framework Main purpose Primary question
5W1H Explanatory completeness. What does the reader need to know?
AIDA Persuasive sequence. How does the audience move toward action?
PAS Tension and solution framing. What problem matters and what solution fits?
BAB Transformation framing. How does the audience move from before to after?
Story arc Narrative movement. How does change unfold through conflict and resolution?

A persuasive message may still need 5W1H. A solution claim is more credible when the reader understands who it serves, what problem it addresses, when it applies, where it fits, why it matters, and how it works.

Back to top ↑

5W1H in Content Frameworks

5W1H can strengthen content frameworks by helping editors audit whether articles, article maps, pillar pages, topic clusters, repository blocks, image metadata, references, and calls to action answer enough of the right questions. It is especially useful for knowledge systems that combine educational, research, strategic, technical, and public-interest content.

In a content framework, 5W1H can be embedded at several levels. At the article level, it helps structure explanation. At the metadata level, it supports classification and review. At the repository level, it helps connect code examples to purpose and method. At the governance level, it helps identify missing context and stale claims.

5W1H can support content frameworks through:

  • article introductions that orient readers quickly;
  • TOCs that reveal explanatory structure;
  • tables that map actors, claims, timing, context, causes, and methods;
  • metadata fields for scope, audience, status, evidence, and review;
  • internal links that answer missing questions in related articles;
  • GitHub blocks that explain how workflows support the article;
  • repository documentation that explains who uses the code, what it does, and how to run it;
  • editorial audits that flag missing 5W1H coverage.

When 5W1H is embedded in a content system, completeness becomes reviewable rather than accidental.

Back to top ↑

Evidence, Completeness, and Source Support

5W1H should be connected to evidence architecture. It is not enough to answer each question. The answer should be supported appropriately. A who answer may require named sources, institutional records, or stakeholder identification. A when answer may require dates, timelines, publication records, or version history. A why answer may require causal evidence, stated purpose, policy rationale, or ethical reasoning. A how answer may require method documentation, process evidence, or reproducible workflows.

Different questions need different evidence types. Treating every 5W1H answer as if it can be supported by the same source weakens explanation. A source that supports what happened may not support why it happened. A source that explains how a method works may not establish who was affected. Evidence should fit the question.

5W1H question Common evidence support Review risk
Who Named sources, organizational records, stakeholder maps, author credentials. Actors or affected groups may be missing.
What Definitions, records, observations, claims, datasets, documents. The object of explanation may be vague.
When Dates, timelines, version histories, publication records. Time-sensitive information may be stale.
Where Jurisdiction, setting, system boundary, geographic or institutional context. Scope may be overgeneralized.
Why Causal evidence, stated rationale, argument structure, policy reasoning. Purpose, cause, and significance may be confused.
How Methods, mechanisms, workflows, process documentation, reproducible code. Claims may lack operational explanation.

5W1H becomes stronger when each answer has the right kind of support.

Back to top ↑

Governance and Review

5W1H should be governed because explanatory completeness can degrade over time. Actors change. Dates become stale. jurisdictions shift. Methods are updated. Source links break. Policy contexts evolve. A complete explanation at publication may become incomplete later.

Governance should track which 5W1H questions are answered, which are intentionally out of scope, which require review, and which rely on sources that may become stale. It should also track whether certain questions are overrepresented while others are missing. For example, an article may explain what and why but omit how. A case study may explain who and what but omit when and where. A technical article may explain how but omit why it matters.

Governance task Review question Why it matters
Coverage review Which 5W1H questions are answered? Identifies explanatory gaps.
Scope review Which questions are intentionally out of scope? Prevents accidental omission from appearing intentional.
Evidence review Is each answer supported by an appropriate source? Connects completeness to trust.
Freshness review Do dates, actors, policies, or methods need updating? Prevents stale explanation.
Balance review Does the article overdevelop some questions while neglecting others? Improves reader orientation.
Accessibility review Can readers find answers without searching the whole article? Supports usability and comprehension.

5W1H governance turns completeness into an editorial practice rather than a one-time drafting exercise.

Back to top ↑

Risks and Limits

5W1H is useful, but it is limited. It can encourage completeness, but it cannot guarantee depth. It can reveal missing questions, but it cannot decide which questions matter most. It can organize explanation, but it cannot replace expertise, evidence review, audience research, ethical judgment, or systems thinking.

One risk is formulaic completeness. A writer may answer each question briefly without building a coherent explanation. Another risk is false sufficiency. A piece may answer who, what, when, where, why, and how at a surface level while still missing uncertainty, tradeoffs, power, evidence quality, or interpretation. A third risk is overloading the reader. Not every article needs equal detail for every question.

5W1H can also oversimplify complex causality. The why question, in particular, may require careful distinction among cause, reason, purpose, incentive, justification, and consequence. The how question may require technical depth that cannot be compressed into a short answer.

Limit What goes wrong Better practice
Checklist thinking Questions are answered mechanically. Connect answers into a coherent explanation.
Surface completeness All six questions appear, but evidence and interpretation remain weak. Connect 5W1H to evidence architecture.
Reader overload The article includes unnecessary detail for every question. Prioritize questions based on audience and purpose.
Causal oversimplification Why becomes a single neat explanation. Separate cause, purpose, rationale, and significance.
Mechanism gaps How is answered too briefly to be useful. Use process diagrams, workflows, examples, or linked methods articles.

5W1H is best used as an audit and design tool, not as a substitute for deeper reasoning.

Back to top ↑

Mathematics, Computation, and Modeling

5W1H can be modeled computationally by treating each question as a coverage, evidence, and balance signal. These models do not determine whether an explanation is good by themselves, but they help editors identify missing questions, weak support, imbalance, and governance needs.

\[
C_i = \frac{Q_i}{6}
\]

Interpretation: Coverage \(C_i\) estimates how many of the six 5W1H questions are answered in article or asset \(i\).

\[
S_i = \frac{E_i}{Q_i}
\]

Interpretation: Support \(S_i\) estimates how many answered questions have appropriate evidence, source, example, or method support.

\[
B_i = 1 – \frac{\sigma(W_i)}{\mu(W_i)}
\]

Interpretation: Balance \(B_i\) estimates whether coverage across who, what, when, where, why, and how is proportionate for the asset’s purpose.

\[
R_i = w_1C_i + w_2S_i + w_3B_i + w_4A_i + w_5G_i
\]

Interpretation: Explanatory readiness \(R_i\) can combine coverage, evidence support, balance, audience fit, and governance readiness.

These formulas are useful for editorial audits. They cannot replace judgment about significance, evidence quality, uncertainty, power, or reader need.

Back to top ↑

Python Workflow: Professional 5W1H Completeness Audit

A professional 5W1H audit should evaluate question coverage, source support, audience fit, explanatory balance, scope notes, freshness risk, and governance readiness. The Python workflow below uses only the standard library and produces CSV and JSON outputs.

#!/usr/bin/env python3
"""
5W1H explanatory completeness audit workflow.

This workflow evaluates:
- who, what, when, where, why, how coverage
- evidence support for each question
- explanatory balance
- audience fit
- freshness risk
- governance queues
- catalog exports

Uses only the Python standard library.
"""

from __future__ import annotations

from pathlib import Path
from dataclasses import dataclass, asdict
from collections import defaultdict
from datetime import datetime, timezone
import csv
import json
import math

ROOT = Path(__file__).resolve().parents[1]
DATA = ROOT / "data"
TABLES = ROOT / "outputs" / "tables"
REPORTS = ROOT / "outputs" / "reports"
AUDIT_LOGS = ROOT / "outputs" / "audit_logs"
CATALOG_EXPORTS = ROOT / "outputs" / "catalog_exports"

QUESTIONS = ["who", "what", "when", "where", "why", "how"]
READINESS_THRESHOLD = 0.78

WEIGHTS = {
    "coverage": 0.24,
    "evidence_support": 0.26,
    "balance": 0.16,
    "audience_fit": 0.16,
    "governance": 0.18
}


@dataclass(frozen=True)
class Finding:
    severity: str
    category: str
    identifier: str
    message: str
    recommended_action: str


def ensure_dirs() -> None:
    for directory in [TABLES, REPORTS, AUDIT_LOGS, CATALOG_EXPORTS]:
        directory.mkdir(parents=True, exist_ok=True)


def read_csv(path: Path) -> list[dict[str, str]]:
    with path.open(newline="", encoding="utf-8") as handle:
        return list(csv.DictReader(handle))


def write_csv(path: Path, rows: list[dict[str, object]]) -> None:
    if not rows:
        return
    path.parent.mkdir(parents=True, exist_ok=True)
    with path.open("w", newline="", encoding="utf-8") as handle:
        writer = csv.DictWriter(handle, fieldnames=list(rows[0].keys()))
        writer.writeheader()
        writer.writerows(rows)


def write_json(path: Path, payload: object) -> None:
    path.parent.mkdir(parents=True, exist_ok=True)
    path.write_text(json.dumps(payload, indent=2), encoding="utf-8")


def yes(value: str) -> bool:
    return str(value).strip().lower() in {"yes", "true", "1", "ready", "complete"}


def average(values: list[float]) -> float:
    return sum(values) / len(values) if values else 0.0


def balance_score(values: list[float]) -> float:
    mean_value = average(values)
    if mean_value == 0:
        return 0.0

    variance = average([(value - mean_value) ** 2 for value in values])
    standard_deviation = math.sqrt(variance)
    balance = 1 - min(standard_deviation / mean_value, 1)
    return max(0.0, min(balance, 1.0))


def severity_rank(severity: str) -> int:
    return {"critical": 0, "high": 1, "medium": 2, "low": 3, "info": 4}.get(severity, 99)


def score_asset(asset: dict[str, str]) -> dict[str, float]:
    coverage_values = [int(yes(asset[f"{question}_answered"])) for question in QUESTIONS]
    support_values = [
        int(yes(asset[f"{question}_supported"]))
        for question in QUESTIONS
        if yes(asset[f"{question}_answered"])
    ]

    coverage = sum(coverage_values) / len(QUESTIONS)
    support = average(support_values) if support_values else 0.0
    balance = balance_score(coverage_values)

    audience_fit = (
        int(yes(asset["audience_context_present"])) +
        int(yes(asset["scope_note_present"])) +
        int(yes(asset["plain_language_summary_present"]))
    ) / 3

    governance = (
        int(yes(asset["review_owner_present"])) +
        int(yes(asset["last_review_date_present"])) +
        int(yes(asset["freshness_checked"])) +
        int(yes(asset["revision_queue_checked"]))
    ) / 4

    readiness = (
        WEIGHTS["coverage"] * coverage +
        WEIGHTS["evidence_support"] * support +
        WEIGHTS["balance"] * balance +
        WEIGHTS["audience_fit"] * audience_fit +
        WEIGHTS["governance"] * governance
    )

    return {
        "coverage_score": round(coverage, 4),
        "evidence_support_score": round(support, 4),
        "balance_score": round(balance, 4),
        "audience_fit_score": round(audience_fit, 4),
        "governance_score": round(governance, 4),
        "explanatory_readiness_score": round(readiness, 4)
    }


def audit_assets(assets: list[dict[str, str]]):
    rows = []
    findings = []

    for asset in assets:
        scores = score_asset(asset)
        status = "ready" if scores["explanatory_readiness_score"] >= READINESS_THRESHOLD else "governance review"

        missing_questions = [question for question in QUESTIONS if not yes(asset[f"{question}_answered"])]
        unsupported_questions = [
            question for question in QUESTIONS
            if yes(asset[f"{question}_answered"]) and not yes(asset[f"{question}_supported"])
        ]

        row = {
            "asset_id": asset["asset_id"],
            "asset_name": asset["asset_name"],
            "asset_type": asset["asset_type"],
            "audience": asset["audience"],
            **scores,
            "missing_questions": ";".join(missing_questions),
            "unsupported_questions": ";".join(unsupported_questions),
            "explanatory_status": status
        }

        rows.append(row)

        if missing_questions:
            findings.append(Finding(
                "medium",
                "coverage",
                asset["asset_id"],
                f"Missing 5W1H questions: {', '.join(missing_questions)}.",
                "Add answers or explicit scope notes for missing questions."
            ))

        if unsupported_questions:
            findings.append(Finding(
                "high",
                "evidence_support",
                asset["asset_id"],
                f"Answered questions lack support: {', '.join(unsupported_questions)}.",
                "Add evidence, examples, source records, or method notes."
            ))

        if scores["audience_fit_score"] < 0.67:
            findings.append(Finding(
                "medium",
                "audience_fit",
                asset["asset_id"],
                "Audience support is weak.",
                "Add audience context, scope note, or plain-language summary."
            ))

        if scores["governance_score"] < 0.75:
            findings.append(Finding(
                "medium",
                "governance",
                asset["asset_id"],
                "Governance readiness is incomplete.",
                "Add review owner, review date, freshness check, and revision queue status."
            ))

    return rows, findings


def question_coverage_summary(assets: list[dict[str, str]]):
    rows = []
    for question in QUESTIONS:
        answered = sum(1 for asset in assets if yes(asset[f"{question}_answered"]))
        supported = sum(
            1 for asset in assets
            if yes(asset[f"{question}_answered"]) and yes(asset[f"{question}_supported"])
        )

        rows.append({
            "question": question,
            "assets_answered": answered,
            "assets_supported": supported,
            "answer_rate": round(answered / len(assets), 4) if assets else 0,
            "support_rate": round(supported / answered, 4) if answered else 0
        })
    return rows


def audience_summary(readiness_rows):
    grouped = defaultdict(list)
    for row in readiness_rows:
        grouped[row["audience"]].append(float(row["explanatory_readiness_score"]))

    return [{
        "audience": audience,
        "asset_count": len(scores),
        "average_explanatory_readiness": round(average(scores), 4)
    } for audience, scores in sorted(grouped.items())]


def governance_queue(manual_queue, findings):
    rows = []

    for item in manual_queue:
        rows.append({
            "source": "manual_review_queue",
            "severity": item["severity"],
            "category": item["issue_type"],
            "identifier": item["record_id"],
            "message": item["review_note"],
            "recommended_action": "Resolve through 5W1H explanatory-completeness governance."
        })

    for finding in findings:
        rows.append({
            "source": "automated_5w1h_audit",
            "severity": finding.severity,
            "category": finding.category,
            "identifier": finding.identifier,
            "message": finding.message,
            "recommended_action": finding.recommended_action
        })

    rows.sort(key=lambda row: (severity_rank(row["severity"]), row["category"], row["identifier"]))
    return rows


def main():
    ensure_dirs()

    assets = read_csv(DATA / "five_w_one_h_content_inventory.csv")
    manual_queue = read_csv(DATA / "editorial_review_queue.csv")

    readiness_rows, findings = audit_assets(assets)
    coverage_rows = question_coverage_summary(assets)
    audience_rows = audience_summary(readiness_rows)
    queue_rows = governance_queue(manual_queue, findings)

    catalog_rows = [{
        "series": "Content Frameworks",
        "article_slug": "5w1h-and-the-architecture-of-explanatory-completeness",
        "asset_id": row["asset_id"],
        "asset_name": row["asset_name"],
        "asset_type": row["asset_type"],
        "audience": row["audience"],
        "explanatory_readiness_score": row["explanatory_readiness_score"],
        "explanatory_status": row["explanatory_status"],
        "github_path": "articles/5w1h-and-the-architecture-of-explanatory-completeness/"
    } for row in readiness_rows]

    write_csv(TABLES / "five_w_one_h_readiness_report.csv", readiness_rows)
    write_csv(TABLES / "five_w_one_h_question_coverage_report.csv", coverage_rows)
    write_csv(TABLES / "five_w_one_h_audience_summary_report.csv", audience_rows)
    write_csv(TABLES / "five_w_one_h_governance_queue.csv", queue_rows)
    write_csv(CATALOG_EXPORTS / "five_w_one_h_catalog_export.csv", catalog_rows)

    report = {
        "article": "5W1H and the Architecture of Explanatory Completeness",
        "generated_at": datetime.now(timezone.utc).isoformat(),
        "counts": {
            "assets": len(assets),
            "findings": len(findings),
            "governance_queue": len(queue_rows)
        },
        "question_coverage": coverage_rows,
        "readiness": readiness_rows,
        "governance_queue": queue_rows
    }

    write_json(REPORTS / "five_w_one_h_completeness_audit.json", report)
    write_json(AUDIT_LOGS / "five_w_one_h_findings.json", [asdict(finding) for finding in findings])

    print("5W1H completeness audit complete.")
    print(TABLES / "five_w_one_h_readiness_report.csv")
    print(TABLES / "five_w_one_h_governance_queue.csv")
    print(REPORTS / "five_w_one_h_completeness_audit.json")


if __name__ == "__main__":
    main()

This workflow treats 5W1H as explanatory-completeness infrastructure. It evaluates whether content answers and supports who, what, when, where, why, and how while also checking audience fit and governance readiness.

Back to top ↑

R Workflow: Question Coverage, Balance, and Governance Reporting

An R workflow can summarize 5W1H coverage across articles, pages, repository blocks, methods sections, and public-facing content assets. The example below uses base R so it can run in lightweight environments.

# five_w_one_h_completeness_analysis.R
# Base R workflow for 5W1H explanatory-completeness readiness.

args <- commandArgs(trailingOnly = FALSE)
file_arg <- grep("^--file=", args, value = TRUE)

if (length(file_arg) > 0) {
  script_path <- normalizePath(sub("^--file=", "", file_arg[1]), mustWork = TRUE)
  article_root <- normalizePath(file.path(dirname(script_path), ".."), mustWork = TRUE)
} else {
  article_root <- getwd()
}

data_dir <- file.path(article_root, "data")
tables_dir <- file.path(article_root, "outputs", "tables")
figures_dir <- file.path(article_root, "outputs", "figures")
reports_dir <- file.path(article_root, "outputs", "reports")
catalog_dir <- file.path(article_root, "outputs", "catalog_exports")

dir.create(tables_dir, recursive = TRUE, showWarnings = FALSE)
dir.create(figures_dir, recursive = TRUE, showWarnings = FALSE)
dir.create(reports_dir, recursive = TRUE, showWarnings = FALSE)
dir.create(catalog_dir, recursive = TRUE, showWarnings = FALSE)

assets <- read.csv(file.path(data_dir, "five_w_one_h_content_inventory.csv"), stringsAsFactors = FALSE)
review_queue <- read.csv(file.path(data_dir, "editorial_review_queue.csv"), stringsAsFactors = FALSE)

yes <- function(x) {
  tolower(trimws(x)) %in% c("yes", "true", "1", "ready", "complete")
}

balance_score <- function(values) {
  mean_value <- mean(values)
  if (mean_value == 0) return(0)
  balance <- 1 - min(sd(values) / mean_value, 1)
  max(0, min(balance, 1))
}

questions <- c("who", "what", "when", "where", "why", "how")

coverage_matrix <- sapply(questions, function(q) yes(assets[[paste0(q, "_answered")]]))
support_matrix <- sapply(questions, function(q) yes(assets[[paste0(q, "_supported")]]))

assets$coverage_score <- round(rowMeans(coverage_matrix), 4)

supported_answer_counts <- rowSums(coverage_matrix & support_matrix)
answered_counts <- rowSums(coverage_matrix)

assets$evidence_support_score <- ifelse(
  answered_counts == 0,
  0,
  supported_answer_counts / answered_counts
)

assets$evidence_support_score <- round(assets$evidence_support_score, 4)

assets$balance_score <- apply(coverage_matrix, 1, balance_score)
assets$balance_score <- round(assets$balance_score, 4)

assets$audience_fit_score <- round(
  (
    yes(assets$audience_context_present) +
      yes(assets$scope_note_present) +
      yes(assets$plain_language_summary_present)
  ) / 3,
  4
)

assets$governance_score <- round(
  (
    yes(assets$review_owner_present) +
      yes(assets$last_review_date_present) +
      yes(assets$freshness_checked) +
      yes(assets$revision_queue_checked)
  ) / 4,
  4
)

assets$explanatory_readiness_score <- round(
  0.24 * assets$coverage_score +
    0.26 * assets$evidence_support_score +
    0.16 * assets$balance_score +
    0.16 * assets$audience_fit_score +
    0.18 * assets$governance_score,
  4
)

assets$explanatory_status <- ifelse(
  assets$explanatory_readiness_score >= 0.78,
  "ready",
  "governance review"
)

question_coverage <- data.frame(
  question = questions,
  assets_answered = colSums(coverage_matrix),
  assets_supported = colSums(coverage_matrix & support_matrix)
)

question_coverage$answer_rate <- round(question_coverage$assets_answered / nrow(assets), 4)
question_coverage$support_rate <- ifelse(
  question_coverage$assets_answered == 0,
  0,
  round(question_coverage$assets_supported / question_coverage$assets_answered, 4)
)

audience_summary <- aggregate(
  explanatory_readiness_score ~ audience,
  data = assets,
  FUN = mean
)

names(audience_summary) <- c("audience", "average_explanatory_readiness")
audience_summary$average_explanatory_readiness <- round(audience_summary$average_explanatory_readiness, 4)

asset_type_summary <- aggregate(
  explanatory_readiness_score ~ asset_type,
  data = assets,
  FUN = mean
)

names(asset_type_summary) <- c("asset_type", "average_explanatory_readiness")
asset_type_summary$average_explanatory_readiness <- round(asset_type_summary$average_explanatory_readiness, 4)

governance_queue <- subset(assets, explanatory_status == "governance review")

catalog <- assets[, c(
  "asset_id",
  "asset_name",
  "asset_type",
  "audience",
  "explanatory_readiness_score",
  "explanatory_status"
)]

catalog$series <- "Content Frameworks"
catalog$article_slug <- "5w1h-and-the-architecture-of-explanatory-completeness"
catalog$github_path <- "articles/5w1h-and-the-architecture-of-explanatory-completeness/"

write.csv(assets, file.path(tables_dir, "r_five_w_one_h_readiness_report.csv"), row.names = FALSE)
write.csv(question_coverage, file.path(tables_dir, "r_five_w_one_h_question_coverage_report.csv"), row.names = FALSE)
write.csv(audience_summary, file.path(tables_dir, "r_five_w_one_h_audience_summary_report.csv"), row.names = FALSE)
write.csv(asset_type_summary, file.path(tables_dir, "r_five_w_one_h_asset_type_summary_report.csv"), row.names = FALSE)
write.csv(governance_queue, file.path(tables_dir, "r_five_w_one_h_governance_queue.csv"), row.names = FALSE)
write.csv(catalog, file.path(catalog_dir, "r_five_w_one_h_catalog_export.csv"), row.names = FALSE)

png(file.path(figures_dir, "r_five_w_one_h_readiness_scores.png"), width = 1200, height = 800)
barplot(
  assets$explanatory_readiness_score,
  names.arg = assets$asset_id,
  las = 2,
  main = "5W1H Explanatory Readiness Scores",
  ylab = "Readiness score"
)
dev.off()

png(file.path(figures_dir, "r_five_w_one_h_question_coverage.png"), width = 1000, height = 700)
barplot(
  question_coverage$answer_rate,
  names.arg = question_coverage$question,
  las = 2,
  main = "5W1H Question Coverage",
  ylab = "Answer rate"
)
dev.off()

writeLines(c(
  "# 5W1H and the Architecture of Explanatory Completeness: R Audit",
  "",
  paste0("- Content assets: ", nrow(assets)),
  paste0("- Manual review queue records: ", nrow(review_queue)),
  paste0("- Average explanatory readiness score: ", round(mean(assets$explanatory_readiness_score), 4)),
  paste0("- Assets requiring governance review: ", nrow(governance_queue))
), file.path(reports_dir, "r_five_w_one_h_report.md"))

print("5W1H completeness R analysis complete.")
print(assets[, c("asset_id", "explanatory_readiness_score", "explanatory_status")])

This R workflow summarizes 5W1H coverage, evidence support, explanatory balance, audience fit, asset-type performance, and governance review needs across content assets.

Back to top ↑

GitHub repository

The companion repository provides a reproducible technical scaffold for the article’s computational examples, including 5W1H content inventories, question coverage analysis, evidence-support review, explanatory balance scoring, audience-fit checks, governance queues, synthetic data, generated outputs, and reproducibility documentation.

Back to top ↑

A Practical Method for Using 5W1H Responsibly

A practical 5W1H method begins with the purpose of the explanation. The goal is not to force every article into the same shape, but to identify what the reader needs to understand and which questions must be answered directly.

1. Define the content purpose

Clarify whether the piece is explaining an event, method, policy, concept, decision, case, system, or framework.

2. Identify the audience

Determine what readers already know, what they need, and where confusion is likely.

3. Draft the six questions

Write who, what, when, where, why, and how questions specific to the article.

4. Prioritize the questions

Decide which questions are central, supporting, linked elsewhere, or out of scope.

5. Answer with specificity

Avoid vague answers. Identify actors, objects, timing, context, reasons, and mechanisms clearly.

6. Match evidence to each answer

Use the right source type for each question, rather than relying on one citation for all claims.

7. Check balance

Look for overdeveloped and underdeveloped questions relative to the article’s purpose.

8. Add scope and limitation notes

Explain what the article does not answer and where readers should go next.

9. Connect internal links

Use related articles to answer deeper versions of questions that cannot fit in one page.

10. Govern and revise

Track freshness, review dates, source changes, broken links, and explanatory gaps.

Design step Question Output
Purpose definition What kind of explanation is this? Content-purpose note.
Audience definition Who needs this explanation? Audience context note.
Question drafting What are the specific 5W1H questions for this article? Question inventory.
Coverage review Which questions are answered? Coverage matrix.
Evidence review Which answers have support? Source-support record.
Scope review Which questions are intentionally limited? Scope and limitation note.
Governance How will completeness stay current? Review status and update queue.

This method turns 5W1H from a basic writing prompt into a practical editorial-review system.

Back to top ↑

Common Pitfalls

5W1H often fails when writers assume simple questions require simple answers. The framework is easy to remember, but difficult to apply well in complex domains.

Pitfall What goes wrong Better practice
Answering mechanically The article includes all six questions but remains shallow. Connect answers into a coherent explanation.
Confusing cause and purpose The why answer mixes causality, intent, and significance. Separate different forms of why.
Omitting mechanism The article states what happens but not how it works. Develop the how question with process, method, or workflow detail.
Hiding actors Responsibility disappears behind passive language. Use who to identify actors, authority, and affected groups.
Ignoring time The explanation becomes stale or chronologically confusing. Use when for timelines, review dates, and update cycles.
Overgeneralizing context A local or bounded claim appears universal. Use where to clarify setting, jurisdiction, scale, and scope.
Using unsupported answers Completeness becomes assertion rather than evidence-based explanation. Match sources to each 5W1H answer.

5W1H works best when it supports precision, not just coverage.

Back to top ↑

Why This Matters Now

5W1H matters now because digital knowledge systems are expanding faster than many editorial systems can govern them. Articles, summaries, AI-generated drafts, newsletters, policy pages, product documentation, research explainers, and learning pathways can be produced quickly, but speed increases the risk of missing context.

AI-assisted writing makes this especially important. A fluent explanation may appear complete while leaving out who is affected, when information applies, where claims hold, why conclusions follow, or how methods work. 5W1H provides a practical way to audit explanatory completeness before publication.

For public-interest content, 5W1H supports trust. Readers need to know who is involved, what is being claimed, when information applies, where it fits, why it matters, and how it works. Without that structure, explanation can become persuasive without being clear, technical without being usable, or comprehensive without being navigable.

For Content Catalyst’s knowledge architecture, 5W1H also supports scalability. As article maps grow across domains, completeness must be maintained across titles, metadata, internal links, references, GitHub repositories, image metadata, and governance records. 5W1H gives editors a durable review lens.

In a crowded information environment, completeness is not decorative. It is part of trust.

Back to top ↑

Conclusion

5W1H and the architecture of explanatory completeness help writers, editors, researchers, educators, and content strategists answer the basic questions readers need before they can understand a subject responsibly. Who, what, when, where, why, and how may be simple questions, but they open different dimensions of meaning.

Used well, 5W1H strengthens article introductions, research communication, policy explanation, technical documentation, learning pathways, case studies, internal documentation, and editorial governance. It helps reveal gaps, clarify scope, connect evidence to claims, and improve reader orientation.

Used poorly, it can become a checklist that produces surface completeness without depth. That is why 5W1H should be paired with evidence architecture, audience analysis, source review, accessibility, internal linking, and governance.

For content frameworks, 5W1H is not merely a writing aid. It is a durable model of explanatory completeness. Its value lies in helping knowledge systems remain clear, accountable, navigable, and trustworthy as they grow.

Back to top ↑

Further reading

References

Back to top ↑

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top