01 / Scope & sample
A window into the coverage we can inspect.
Media Watch examines online reporting about Nigerian presidential aspirants and candidates. It is designed for newsrooms, fact-checkers, researchers and election observers. The unit of analysis is a published article, with a separate tone label for every person it substantively discusses.
This is a source-linked collection. The default window covers the last 30 complete calendar days in West Africa Time. It is not a representative census of Nigerian media. The collection and analysis status shown in the dashboard apply to the available records only. Each article links to its original publisher.
Websites, broadcasts and social media are different collections. This collection does not measure television airtime, WhatsApp activity, all social posts, article readership, voter intention or the national prevalence of a view. A publication’s estimated reach cannot be used as the readership of an individual story.
Missing articles, blocked pages and incomplete archives are collection gaps, never evidence of zero coverage. Any future regional analysis will use explicit article geography; it will not infer a reader’s location or assign a candidate’s coverage to their home region.
02 / Coding definitions
Tone tells you how. Voice tells you who.
We code the same fields for every tracked person and outlet. A sourced roster must distinguish rumoured, declared, nominated and withdrawn status. The roster records 18 presidential candidates from the INEC presidential list checked on 13 October 2026, plus two running mates sourced to party announcements. Every tracked person has a party affiliation source and as-of date. A name match establishes textual presence; it does not establish substantive coverage, tone or endorsement.
TonePer candidate
−1 Critical · 0 Neutral / mixed · +1 Favourable
Critical: the main coverage for that person concerns an attack, allegation or setback. Favourable: it mainly carries their message, an endorsement or good news. Neutral / mixed: logistics, factual listings or a balanced mix without a dominant direction. Unclear or uncoded records remain unavailable; they are never silently assigned neutral.
The same article can be critical of one person and favourable to another. The supporting excerpt, speaker and automated check status travel with each label.
VoiceArticle lead
Candidate’s camp · Rival camp · Presidency / government · State government · Third party · Reporting
The actor whose claims drive the headline and opening paragraphs. Campaign and rival labels are interpreted relative to the candidate under examination; the speaker’s identity must be retained. “Reporting” requires original journalistic evidence, not simply an unsigned story. Unclear leads stay unclassified.
FrameMain mode
Policy · Attack / rebuttal · Allegation · Strategy / horse race · Campaign logistics · Endorsement · Factual
The article’s main storytelling mode, supported by the headline and text. A frame describes presentation and does not establish an outlet’s motive.
IssuesMultiple allowed
Economy · Fuel subsidy · Security · Corruption · Cost of living · Age and health · Fiscal record · Civil liberties · Education · Health · Infrastructure · Agriculture · Governance · Electoral process
Use a label only when the issue is a material subject, supported by a passage in the headline or article. Select the narrowest supported label; do not add a broad label for the same point. Version 1.1 adds explicit inclusion, specificity and evidence rules. Older records retain their original codebook version until they can be reprocessed; the version is shown on each record. Coverage gaps describe this sample; comparisons with public priorities require a separately sourced poll.
NarrativeRelated stories
Articles grouped around the same developing storyline. Storyline groups must identify their grouping method and link to supporting records. Issue-based themes remain available when no storyline groups have been established. “First seen” and spread describe the available collection, not proven origin or coordination.
ClaimAttributed position
A dated promise, allegation or position attached to a named speaker, the published source and a supporting excerpt. A claim is not a fact-check. A possible position change requires comparison of context and wording; a difference between two excerpts does not establish an inconsistency by itself.
RepublishedCopy relationship
Near-identical articles are linked to a copy cluster and, where established, an originating source. Similarity alone does not prove sponsorship or coordination. Sponsored status is recorded only when disclosed or independently evidenced.
Illustrative example · not a real article
A rival alleges that an aspirant mismanaged public funds; a newspaper reports the allegation.
Tone: critical for the aspirant. Voice: rival camp. Claim status: attributed allegation. None of these labels establishes that the allegation is true or that the newspaper endorses it.
Tone is not bias. Reporting a court decision or a policy failure may be critical news for a candidate. Claims about editorial hostility require different evidence. We do not publish a single “bias score.”
03 / Counting rules
The denominator belongs beside the number.
All calculations respect the active date, candidate, outlet and issue filters. Dates use the publication date where available; estimated dates must be labelled. A record with an unknown date cannot be quietly placed inside a dated reporting window. The default view includes articles with explicit 2027 campaign cues; switch to government news, unclear role or all roles with the coverage-role filter. Where automated source analysis is available, its coverage-role label is used. Earlier records may use explicit headline, excerpt and government-voice cues. A role withheld as uncertain is not replaced with an inferred label.
Articles and candidate appearances
An article counts once as a publisher placement. In the collected archive, each explicit candidate identity match counts once per article, regardless of repetition. These retrieval counts are labelled identity matches. Substantive coverage is a separate analysis decision. A processed record with no substantive tracked-person coverage remains distinct from a record awaiting analysis. An article mentioning three candidates can contribute one article and three appearances.
Share of voice = candidate appearances ÷ all tracked candidate appearances in the selected collection × 100.
This share adds to 100% across the selected candidate set. An article-coverage percentage uses articles mentioning the candidate divided by all selected articles instead, and can sum above 100% across candidates. The two measures must always be labelled separately.
Tone and minimum samples
Average tone = sum of −1, 0 and +1 labels ÷ coded candidate–article pairs.
Tone is descriptive and is never treated as a measure of intent. Every tone summary shows its coded sample count. Fewer than five coded candidate–article pairs: suppress the aggregate score and show “Too few articles.” The records remain inspectable. Uncoded pairs are excluded from the tone denominator and counted separately. Five is a display floor, not a claim of statistical reliability.
Copies and topic counts
The archive counts collected articles, including copies published by different outlets. “One copy per story” shows one representative of each linked copy group. The outlet view shows each tracked person’s share within that publisher’s collected sample and flags incomplete publisher samples. These within-outlet shares do not correct missing publishers or establish the publisher’s complete output.
Issue tags are multiple choice, so issue totals can exceed article totals. A filtered cell, bar or narrative opens the supporting records, with the same filters carried into the article explorer. Missing coding and missing collection remain visible.
04 / Automated checks
Automatic processing, with visible limits.
Media Watch is designed to collect, analyse and publish available records without mandatory human approval of each article. Its labels are automated interpretations of reporting. They do not determine whether a statement is true, prove publisher intent or measure political bias. Optional corrections remain available.
- Keep the source. Retain the publisher link, publication date, short excerpt, collection time, model and codebook version. A failed refresh must not erase earlier valid records. Blocked and unavailable publishers remain visible as collection gaps.
- Check the evidence. Automated labels must follow the codebook and cite source passages. Evidence checks establish whether supporting wording is present; they do not establish factual accuracy. Unsupported fields are withheld rather than assigned a neutral or confident label.
- Keep disagreement visible. Where a second model pass is used, it assesses the same source independently. Disputed fields and fields whose comparison cannot be completed are withheld. Agreement describes consistency between model outputs, not proof that either output is correct.
- Separate processing from labels. Total collected records equal processed records plus records awaiting analysis. Processed records can have labels available, labels withheld as uncertain, or no substantive tracked-person coverage. The dashboard shows these counts separately; a completed check does not guarantee a label for every field.
- Expose freshness and gaps. The dashboard shows the latest available update status and each publisher’s collection outcome. Pending records can be processed in a later run. Previously collected records are identified separately from records fetched in the latest run.
The quality checks page preserves a historical blind model comparison and an optional human-review tool. Human review is not required for the automated pipeline to continue. No human-validation or accuracy rate is implied by automatic publication.
05 / Sources & ownership
Collection access is part of the evidence.
The configured source registry covers Pulse Nigeria, Legit.ng, Punch, Vanguard, Daily Trust, Arise TV, TVC News, Channels Television, Daily Post, Premium Times, THISDAY, The Nation, Nairametrics, Nigerian Tribune and New Telegraph.
Collection respects publisher access rules and uses available public sitemaps, archives and article interfaces. A readable sitemap does not establish that article pages can be fetched. The dashboard’s source-status table records the latest outcome; a refusal or interrupted archive prevents a completeness claim.
Sahara Reporters remains a collection gap: the sitemap inspected in this project listed only a homepage entry. It must not appear as an outlet with zero reporting merely because article discovery is incomplete.
Each outlet record retains its discovery URL, last successful fetch, coverage period and extraction failures. Media Watch does not publish ownership notes until they have a named source and an as-of date. Shared ownership may help explain shared copy; it does not establish shared editorial judgment.
The public archive keeps metadata and short excerpts with a link to the publisher’s original article. It does not republish full stories. The MVP scope is public figures and media reporting; private social-media users are excluded.
06 / Corrections & accountability
A finding must be open to correction.
Mundx Analytics is responsible for Media Watch. To challenge a record or coding decision, send the article URL or record ID, the disputed field and the evidence for your correction. The same method applies to every candidate and outlet.
[email protected] ↗
Corrections preserve the previous value, revised value, reason, source of the correction, timestamp and codebook version. Material corrections must also update affected charts, summaries and exports. Roster and codebook revisions belong in the same auditable change history.
Version history
Codebook 1.0 · 17 October 2026. Used for the first published archive and the historical 200-article model comparison. Records that retain these labels identify this version.
Codebook 1.1 · 18 October 2026. Adds explicit issue-tag inclusion, specificity and evidence rules for automatic processing. A record’s version changes only after it is successfully reprocessed. Publisher access restrictions can leave a mix of versions; the historical comparison of 1.0 labels does not validate other versions.
Explore Media Watch →