← Boardroom AI Monitor PL

Boardroom AI Monitor — methodology (version 0.5)

Version date: 2026-10-11 (v0.5; change log: §10) · Data edition: Monitor 2026 (FY2025, 20 WIG20 + 20 DAX) · Author: Andrzej Chądzyński

English translation of docs/METODYKA.md. The Polish text is the reference version; if the two differ, the Polish text prevails.

Boardroom AI Monitor measures how often, and in what context, the boards of listed companies talk publicly about artificial intelligence — using public corporate documents only. It is a monitor/signal, not an index or a benchmark: the sample is small and purposive, and the results should be read as a directional indicator, not as a ranking of management quality.


1. Sample (Monitor 2026: 20 WIG20 + 20 DAX companies)

Current edition (since 2026-10-11 the only one shown on the website): 20 WIG20 companies and the 20 largest DAX companies (companies-E2.yaml), FY2025 annual reports or management board reports, each company with an assigned sector group (sector_group) and — where possible — a European peer group (§5c). Earlier fiscal years of the same companies serve the time series only (§5b).

Pilot (July–September 2026, N=10) — a methodology archive, not a separate edition. Purposive selection: 5 companies from the DAX and 5 from the WIG20, with approximate DE↔PL sector pairing so that the country comparison is not purely an artefact of sector mix:

Sector (approx.) DAX WIG20
financials Allianz SE PKO Bank Polski S.A.
software SAP SE CD PROJEKT S.A.
industrials / resources BASF SE KGHM Polska Miedź S.A.
industrials / energy Siemens AG ORLEN S.A.
digital services Deutsche Telekom AG Allegro.eu S.A.

The pairing is approximate (SAP↔CD Projekt differ in scale and business model) and serves only to limit sector bias, not to support 1:1 comparisons.

2. Exclusions (conflict of interest)

Manufacturers of elevators and escalators are permanently excluded — in particular KONE, Otis, Schindler and TK Elevator, and any company with a material share of its business in that industry. Reason: a conflict of interest — the author works in that industry. The exclusion applies to all editions without exception and is stated in every publication of results.

3. Corpus

4. Term dictionary and counting

5. Context classification of mentions

Each mention (context of ±2 sentences) is assigned to one class:

Class Meaning
REVENUE revenue/growth: AI-based products and services, customer offering, monetisation
COST cost/efficiency: automation, productivity, savings, internal processes
RISK risk/compliance: AI risks, AI Act, compliance, cybersecurity, ethics
TALENT people/skills: training, hiring, upskilling, work culture
VAGUE buzzword: a statement without substance (no number, project, product or result)
MACRO (v0.4) AI as a factor of the economic environment, not an action of the company ("AI investment supported GDP growth") — excluded from the context mix
STRUCTURAL (v0.4; STRUKTURALNA in the data) a hit that is not a statement by the company about AI: table of contents, running header, biography/qualifications of a board member, glossary, index name — excluded from the context mix

Decision rules (v0.4, the author's decisions from the manual review of 2026-09-19):

5a. Robustness test (mandatory for every edition)

With a small sample, a single company or the choice of estimator can shift a result several-fold. That is why every edition goes through a robustness test (sensitivity.py, published alongside the report as output/analiza-wrazliwosci-<edition>.md):

  1. Estimator swap — the same ratio computed via the median, the mean, the geometric mean and pooled (mentions/words).
  2. Leave-one-out — recomputed with each company removed in turn.
  3. Stratification by document type — does the claim hold separately in each stratum?

Only a claim that passes these tests may become the headline number of an edition. In Edition 1 this demoted the DAX↔WIG20 comparison (a range of 1.5×–4.1×) and promoted the sector gradient, which holds in both document types. No report is produced unless the robustness test has been run (report.py stops).

From v0.5 (Monitor 2026, 40 companies): the test is run by robustness.py (output/analiza-odpornosci-2026.md, data/robustness.json): estimator swap, leave-one-out and a bootstrap over companies (2,000 draws, 95% interval) — also for the claims about the context mix and the lack of substance. sensitivity.py remains the test of the N=10 pilot.

5b. Time series — within-company change (since 2026-09-21)

Cross-sectional comparisons (company vs company, country vs country) carry sector and document-type confounders (§7). Comparing the same company with itself across years does not — which makes it the most robust metric of the Monitor, and it takes precedence as the headline number when it meets condition 4.

  1. Series corpus (companies-timeseries.yaml): for each company, the documents for earlier fiscal years of the same type and in the same language as the edition's document (annual report ↔ annual report, management report ↔ management report). A company without a same-type document drops out of the series — types are never substituted. Every document has its official IR URL and SHA-256 checksum.
  2. Metric: frequency only (mentions per 1,000 words), with the same dictionary (§4, same version) and the same code. No context classification — classification covers the edition's current year only.
  3. Statistics (timeseries.py → output/seria-czasowa-<edition>.md, data/timeseries.json): direction of change per company (up/down/no change) between the first and last year; number of companies up and down at each year-on-year step; median of within-company ratios; ratio of medians and pooled ratio with leave-one-out.
  4. Headline number (from v0.5 — order of precedence): (a) the direction of change (e.g. "10/10 companies up"), only when the direction is unanimous (0 declines) and N ≥ 5; (b) a claim about the context mix (e.g. "1 in 6 mentions is about revenue"), if the classification passed the manual review (class agreement ≥80%, §5) and the direction of the claim (e.g. revenue rarer than both cost and risk) holds in ≥95% of bootstrap draws over companies; the number is given as a point estimate with its leave-one-out and bootstrap ranges; (c) otherwise — the cross-sectional claims of §5a. A non-unanimous series direction (e.g. 31/39) is a supporting claim. The size of the increase is given as the median of within-company ratios, and the ratio of medians always with its leave-one-out range.
  5. The "a jump, not a trend" reading appears in the report automatically only when the last step is unanimous and the previous one mixed (fewer than 75% of companies up) — it is a description of the step distribution, not a judgement.
  6. Structural caveat and CSRD test: from FY2024, reports of companies covered by the CSRD include sustainability statements (ESRS) with their own AI paragraphs, so part of the increase could reflect a change in reporting convention rather than strategy. CSRD test (csrd_test.py, since 2026-09-27): pages of the ESRS statement are flagged heuristically (≥2 ESRS disclosure codes on the page, the statement heading, or a running header of the section present on ≥20 and <60% of pages; gaps of ≤3 pages are closed), and frequency is computed separately on the remaining text. XHTML/ESEF documents without page structure are excluded from the test. Result on 2026-09-27: E1 — 10/10 companies up outside the ESRS pages (median ×2.4); E2 — 30/38 (×2.3, after HTML extraction v2). The new sustainability statements do not explain the increase.

5c. European peer group and sector comparisons (since 2026-09-27)

A sector comparison of Polish/German companies needs peers from the same sector outside the company's own country — otherwise "sector" is confounded with "country" (the same confounding that demoted the DAX↔WIG20 comparison, §7).

  1. Ring selection (companies-europe.yaml): companies from the EU, Switzerland and Norway selected for the sectors of the E2 companies (field sector_group), not from indices; official annual reports, English preferred. The elevator-industry exclusion (§2) applies here as well.
  2. Threshold (sector_coverage.py): a company is compared within its sector only if it has ≥3 peers from ≥2 countries other than its own (counted per company, on documents actually processed: --counted). Below the threshold: frequency and within-company change only.
  3. Fiscal year "FY2025" = the fiscal year covering most months of 2025; the source period is explicit in the data (period).
  4. Metric: frequency only (mentions/1,000 words), same dictionary and code. Different report languages (EN/DE/PL) and document scopes (URD vs management report) affect normalisation — sector comparisons are a signal, not a ranking.

6. Auditability

7. Limitations (read before citing)

  1. N=10 — a signal, not a benchmark. Results do not generalise to whole indices or economies.
  2. Purposive selection (largest/best-known companies) probably overstates AI visibility relative to the average index member.
  3. Differences in reporting culture (length and conventions of DE vs PL reports) may affect normalisation per 1,000 words.
  4. LLM classification can err; this is mitigated by the auditability of every mention and the ≥10% manual review.
  5. Change over time (§5b) covers frequency only; context classification covers the edition's current year only.
  6. Siemens' fiscal year is offset from the others (see §3).
  7. In Edition 1, document type is almost identical with country (the German companies supplied full annual reports, most Polish companies management reports). Formally, the country effect cannot be separated from the document-type effect in E1, which is why the DAX↔WIG20 comparison is given only as a range with a caveat, not as a result. Stratified claims (the sector gradient) are not affected. Remedy in E2: for German companies, use the separate combined management report where it is published as a chapter, or report the metric only by document type.
  8. Text-extraction quality. Some PDFs render bold type by doubling characters ("GGeesscchhääffttss") — such headings are not matched, and the word count rises by at most about 2% (measured on 2026-09-27: 3 lost mentions across 194 documents; left uncorrected so as not to change published figures). XHTML/ESEF documents are read with extraction v2 (since 2026-09-27), which does not split words at inline tags — the earlier version undercounted mentions (e.g. Erste and TAURON FY2023). No document has a material share of pages without text (scans/graphics).

8. Legal and ethical principles

9. How to cite

Boardroom AI Monitor 2026, A. Chądzyński — an analysis of the FY2025 annual reports of 20 WIG20 and 20 DAX companies; methodology v0.5.

10. Versioning

Version Date Changes
0.1 2026-07-09 First version (phase 0, N=10, FY2025 annual reports).
0.2 2026-07-10 Dictionary v0.2: "KI" only in German documents, "LLM" with the academic context excluded — correction after the audit of false positives in E1 (§4).
0.3 2026-08-12 Mandatory robustness test for every edition (§5a) and an explicit limitation on the document type ↔ country confounding (§7.7). Consequence: the DAX↔WIG20 comparison demoted to a range; the E1 headline changed to the sector gradient.
0.3 (suppl.) 2026-09-21 Added §5b: time series — within-company change in frequency (same document type, frequency only), taking precedence as the headline number when the direction is unanimous. Does not change E1 counting or classification, so no version bump; the E1 headline changed to "10/10 companies up FY2023→FY2025".
0.3 (suppl.) 2026-09-27 Added §5c: European peer group and the sector-comparison threshold (≥3 peers from ≥2 other countries); fiscal-year rule. Does not change E1 counting or classification.
0.4 2026-09-27 Rules R1–R4 from the manual review of 2026-09-19 (§5): MACRO and STRUCTURAL classes outside the context mix, customer-service bots = COST, class by purpose, substance judged on the ±2-sentence context. Reclassification of 249 E1 mentions. After the author's review of 2026-09-27 (3 corrections): 22 MACRO, 16 STRUCTURAL; RISK 38%, COST 22%, REVENUE 16%, TALENT 15%, VAGUE 9%; substance 57%. Frequency, the 150× spread and the time series unchanged.
0.4 (suppl.) 2026-09-27 Publication threshold (class agreement ≥80%, §5), CSRD test (§5b point 6), HTML/XHTML extraction v2 and the extraction-quality limitation (§7.8). Does not change E1 classification or figures.
0.4 (suppl.) 2026-10-03 Quote (≤25 words) and context (≤1,200 characters) are cut around the match instead of from the start of the sentence/passage — previously 22% of quotes and 8% of contexts did not contain the AI term itself. Mention counts, classifications and all results unchanged (checked on every edition).
0.4 (suppl.) 2026-10-11 Context classification of E2 FY2025 (848 mentions, sample max 40 per document, same rules R1–R4). Author review of 85 mentions (seed 20261003): class agreement 98%, substance 99%; 2 corrections. E2 mix: COST 32%, RISK 27%, REVENUE 17%, TALENT 15%, VAGUE 9%; substance 40%; outside the mix 69 MACRO, 64 STRUCTURAL. E1 unchanged. Published on the site 2026-10-11 (E2 contexts WIG20 vs DAX; the European series as a preliminary result).
0.5 2026-10-11 A single, current edition on the website (author's decision): Monitor 2026 = 20 WIG20 + 20 DAX, FY2025; the N=10 pilot becomes an archive (§1). The headline rule now admits context-mix claims (§5b point 4b); new robustness test with a bootstrap over companies (robustness.py, §5a). Headline: "1 in 6" mentions is about revenue (16.9%; leave-one-out 14.5–17.7%; bootstrap 10.1–24.7%; revenue rarer than both cost and risk in 95.4% of draws). Counting and classification unchanged.
0.5 (suppl.) 2026-10-25 European ring time series completed with 16 manually downloaded reports (Iberdrola, Fortum, Kesko, Dassault Systèmes, Schneider Electric, Stellantis, Solvay, DSV; FY2023–FY2024): 59/72 up, median ×2.59; excluding ESRS pages 65/71, ×2.47. "Preliminary" label removed from the site. Sector comparison: no data 9→5 companies. E2 FY2025 and the headline unchanged.

Current version: 0.5. The pilot classification passed the manual review on 2026-09-27 (92% agreement), the Monitor 2026 classification on 2026-10-11 (98%); the ≥80% threshold is met. The website went public on 2026-09-27; since 2026-10-11 it shows a single, current edition.