Research

Inconsistent Denominators and Image-Coordinate Frames in a 28-Country Visual Communication Dataset

Research files & reproducibility

Publicly downloadable files, hosted on DigitalOcean Spaces. Version 1.2, 31 October 2026.

Original input data remain at the authors’ OSF repository. The ZIP contains Institute-authored code, aggregates and diagnostics, without source images or original microdata. This is an independent research preprint, not peer reviewed.

Independent methodological replication | 2019 European Parliament image study

A reproducibility audit of 79,500 political images

Ilya Nikitin, Ph.D. · Founder and Director, The Null Institute · 31 October 2026 · Public Research Note v1.2

Status: public independent research note (preprint), 31 October 2026. Not peer-reviewed; no independent human re-execution of the original data analysis has yet been documented.

Abstract

Background. Automated facial analysis has been applied to cross-national political images, with image-level measures of facial expression and close-up composition. We independently audited the openly deposited data and analysis code of Haim and Jungblut’s study of 79,500 images of 13,811 candidates in the 2019 European Parliament election.

Methods. We verified the author-deposited CSVs, R Markdown and scraper code by SHA-256, reproduced the published country values and logistic models, and independently tested consistency of facial-count and pixel-coordinate fields. New post hoc diagnostics quantify image-dimension distributions, source-specific bounding-box extrema, source-level close-up frequencies and fixed-size thumbnail hypotheses. Human visual validation and access to the original images remain outstanding.

Results. The country-table calculation divides 14,863 positive images by 46,939 metadata face-positive images (31.66%), although 4,947 positive images are outside that denominator. Same-set alternatives yield 24.42% or 25.70%; all 28 published percentages and the original facial-expression and close-up models were reproduced. All 79,500 released image dimensions are square, predominantly 150 × 150 px (75,755 records) or 340 × 340 px (3,332). Face boxes overrun their reported frames in 99,571 of 111,874 face records; 15,035 single-face images contain an individual box whose area exceeds the reported image area. The incompatibility varies strongly by source, with Instagram profiles serving as a comparatively coherent internal control. Close-up classifications show severe scale sensitivity, but actual native-resolution close-up prevalence is not identified.

Conclusions. The public data contain a reproducible descriptive denominator error and incompatible face/image coordinate frames. A thumbnail-versus-native-frame mismatch is now a particularly plausible mechanism, but bounding-box extrema alone cannot establish original image dimensions, aspect ratios or the exact transformation history. The main expression regressions reproduce and remain broadly robust. The close-up results require reconstruction or external validation of the image frames before they can support firm substantive comparisons.

Keywords: computational visual analysis; political communication; facial detection; data provenance; independent replication; measurement error; sensitivity analysis.

1. Introduction

The published study by Haim and Jungblut [1] investigates how 2019 European Parliament candidates appeared in self-promoted social-media imagery and news coverage across 28 European Union member states. Its principal contribution is a large-scale analysis of visual cues, including automated happiness labels, camera angle and the fraction of an image occupied by faces. The authors made analysis code and structured image and face data openly available [2], enabling a direct test of numerical reproducibility.

Our aim is narrower than evaluating the political communication theory or the quality of individual Face++ classifications. We ask whether the released face and image tables form internally coherent observation sets and coordinate systems, and whether any discrepancies materially alter the reported descriptive statistics or model sensitivity. We differentiate direct reanalysis, conditional counterfactuals and unverified hypotheses about how the source files were assembled.

2. Sources and reproducibility

The reanalysis uses author-deposited OSF data [2]: images.csv, faces.csv, candidates.csv and analysis.Rmd. The audit additionally inspects run_faceplusplus.py and run_image_dimensions.py [4]. Original sizes and SHA-256 hashes were checked before source-level analysis. The candidate table has 13,961 raw entries; removal of repeated (country, fullname) pairs in original order yields 13,811 unique candidates. The files contain 79,500 image records and 111,874 face rows. All calculations are generated from original OSF data, not from our earlier aggregated tables.

Table 1. Original public data files and integrity fingerprints. These are source-version checks, not hashes of our derived results.

Source file Bytes SHA-256
images.csv 7,583,384 d40cbf7e3358230bb7fe97941108a1cf3eef2dbc292948c4899e73e188c172a6
faces.csv 11,270,792 ec14cfa915531a1f233daf75be61b7a5ae3b197de0452d2e857f6c197eb5c166
candidates.csv 9,027,619 f3d29eeaa14c2fe04269f70cd65df68938a24d32585a1c7b202b57cf23034e05
analysis.Rmd 21,494 779e9a40e76efb2905af28195a84f4be2d3d09775ea87ea8ce41d086637185bd
run_faceplusplus.py 17,186 9a3dda579447455f003f0626558275a66947aa80899787feedbf4c43405dc2eb
run_image_dimensions.py 1,281 7d209bee4d69ace78d59e2f5c37f94b63facc1ff24602ac6811409a825e3b447

Primary data repository: https://osf.io/wu2z5/. Publisher’s article identifier: https://doi.org/10.1080/10584609.2020.1753869. Original computational source code, outputs, and local reproduction notes are provided or referenced in the associated supplementary verification package. The original photographs are not redistributed.

Additional deposited code: run_faceplusplus.py (https://osf.io/download/4kdxg/; SHA-256 9a3dda579447455f003f0626558275a66947aa80899787feedbf4c43405dc2eb) and run_image_dimensions.py (https://osf.io/download/tf639/; SHA-256 7d209bee4d69ace78d59e2f5c37f94b63facc1ff24602ac6811409a825e3b447). The former sends an image file to the Face++ v3 Detect endpoint and writes image-level counts and per-face rows from one response list. The latter opens local images through PIL and extracts width and height into candidates_enriched.csv (lines 14–20, 26–30). It does not specify which local image version supplied the released final images.csv dimensions. The intermediate ia_images.csv and ia_faces.csv and their final transformation code are not in the inspected OSF archive.

3. Study 1: facial-expression denominator integrity

3.1. Observation sets

Let M be the images for which the metadata field face_count > 0; D the images for which faces.csv contains at least one facial record; and I their intersection. Let H denote images in D whose proportion of faces labelled is_happy exceeds or equals one-half. The country-table aggregation in the deposited R Markdown counts H in the numerator and M in the denominator, rather than requiring identical eligibility criteria for the two sets.

Observed cardinalities are |M| = 46,939, |D| = 60,856, |I| = 38,581, |H| = 14,863 and |H ∩ M| = 9,916. Thus 22,275 images belong to D only, 8,358 to M only, and 4,947 positively labelled images included in the reported numerator are outside the denominator collection. Each of the 22,275 D-only images has an explicit face_count = 0 (none is NA or nonnumeric).

Table 2. Pooled expressions computed using alternative eligibility definitions. The first row reproduces the formula of the country table, not a separately published paper-wide percentage.

Definition Numerator / denominator Rate Interpretation
Country-table formula 14,863 / 46,939 31.66% Mixed observation sets; numerator not a subset of denominator
Detailed-face eligibility 14,863 / 60,856 24.42% Same detailed-face observation set in numerator and denominator
Intersection complete cases 9,916 / 38,581 25.70% Both metadata and detailed-face criteria required
Unscored metadata-positive treated negative 9,916 / 46,939 21.13% Explicit imputation sensitivity; not a preferred correction

Author source evidence (analysis.Rmd, SHA-256 779e9a40…185bd): line 167 reads `n_images_with_faces = sum(face_count > 0, na.rm=T)`; lines 168–169 specify `sum(is_happy, na.rm=T)/n_images_with_faces`. The positive-photo numerator was computed from grouped faces.csv observations (lines 141–153). Thus the identified mismatch is a property of the published aggregation, not an inference from discrepant aggregate totals alone. These few lines are sufficient to locate the relevant block in the original public file.

3.2. Published country table and cross-national ranks

The country-table algorithm reproduces all 28 printed percentages to one decimal place. This substantially reduces the plausibility of a join error in the present replication, while leaving the original semantic rationale of face_count unresolved. Under detailed-face eligibility, Spain changes from 42.2% to 26.0% and the United Kingdom from 40.9% to 30.1%. Published-formula versus detailed-face country rankings have Spearman ρ = 0.889 and a maximum shift of 11 places. Using intersection complete cases gives ρ = 0.857 and a maximum shift of 12 places. These changes are descriptive reclassification of selected candidate images, not statements about national happiness.

A second symptom occurs in the deposited code’s face-to-image descriptive statistic: individual image ratios are capped at 100%, yet some published country means exceed 100% (Sweden is reported at 102.9%). The aggregation sums values from one set and divides by the separate image-metadata face-count set, so this is arithmetically possible only because the summary is not an ordinary same-set mean. This issue is separate from image-level facial overlap, which the paper invokes as an explanation of ratios exceeding 100%.

The Sweden size-ratio value of 102.9% is printed in the published article’s Table 1. In analysis.Rmd, line 156 creates `size_ratio = 100*size_faces/(width*height)` and line 157 caps it with `if_else(size_ratio > 100, 100, size_ratio)`; lines 178–179 then sum these capped values over `n_images_with_faces`. A mean of individually capped observations cannot exceed 100% when the summed and counted sets coincide. Therefore 102.9% is an additional symptom of an inconsistent denominator; overlap among faces does not resolve this country-level capped-mean contradiction.

3.3. Expression regression robustness

We recreated the original binomial logistic specifications from detailed-face observations: country and European party group were included in both news and social-network models, with platform additionally included for social networks. The Wald statistics match the original publication closely: social networks, country χ² = 213.82, party χ² = 89.50 and platform χ² = 11.70; news, country χ² = 622.79 and party χ² = 34.44. These models operate on the detailed-face observation set and do not simply propagate the descriptive country denominator error.

Using the stricter intersection I changes the unclustered Wald χ² statistics: SNS country 213.82→180.04, party 89.50→73.67, platform 11.70→18.64; news country 622.79→362.76 and party 34.44→19.61. All original country effects remain conventionally significant. Candidate-clustered Wald tests (an additional post hoc robustness analysis) preserve the country associations but the news-party term changes from p=0.0050 in D to p=0.0959 in I. Sample size and event prevalence differ between eligibility rules, so a lower χ² is not necessarily a proportional reduction in substantive explanatory power.

Table 3. Reproduction of expression models and two sensitivity checks. D uses detailed facial records; I requires a positive metadata face count and detailed records. Candidate-clustered p-values adjust standard errors for repeated photographs of the same candidate. Table values are not independent experiments.

Term D: source χ² I: χ² Cluster p in D Cluster p in I
SNS country 213.82 180.04 <0.001 <0.001
SNS party 89.50 73.67 <0.001 <0.001
SNS platform 11.70 18.64 <0.001 <0.001
News country 622.79 362.76 <0.001 <0.001
News party 34.44 19.61 0.0050 0.0959

4. Study 2: face-coordinate and image-frame coherence

4.1. A geometric inconsistency

The released face data provide bounding rectangles in pixel units, and images.csv provides dimensions width and height. The author-deposited run_faceplusplus.py constructs image-level face_count and per-face records from the same in-memory list; a direct unmodified export therefore predicts matching per-image counts. The released final tables violate that prediction: among the 38,581 images in both tables, face_count equals the detailed row count in only 26,750 (69.3%), is smaller in 10,940 and larger in 891. The metadata field never exceeds four faces, whereas detailed records reach 50 per image.

The coordinate inconsistency is still stronger. A recorded face box extends beyond the published image boundary in 99,571 / 111,874 face rows (89.0%). In 15,035 / 41,647 images containing exactly one detailed face, that face rectangle alone occupies an area greater than the entire associated image as specified by its metadata. Overlap among multiple faces cannot account for these single-face cases. The independent arithmetic check size = face_width × face_height holds in all 111,874 face rows; it is the comparison to image-frame dimensions that lacks coherence.

These facts show that the released image dimensions and face rectangles do not consistently share a common pixel reference frame. The observation is strongly compatible with square preview or thumbnail dimensions being combined with detection results on other image versions; source-level patterns support this mechanism. However, a face rectangle’s extreme coordinates are not the source image’s dimensions, and incorrect joins, cropping, format conversion or differently positioned objects remain alternatives. The deposited OSF project lacks the intermediate ia_images.csv/ia_faces.csv and a verified end-to-end merging script.

The original Rmd confirms the close-up definition directly: lines 319–321 use `is_closeup = if_else((size_faces/(width*height)) > .5, T, F)` for SNS and lines 424–425 use the same threshold for news. These are area-based outcomes, distinct from the expression-based models in Section 3.

4.2. Close-up classification under alternative frame assumptions

The published analysis defines an image as close-up if the sum of reported face rectangle areas divided by (width × height) exceeds 0.5. We reproduced the corresponding social-network models to rounding: country χ² = 103.54, party χ² = 50.02 and platform χ² = 2941.43. The news models similarly reproduce country χ² = 1837.71 and party χ² = 44.04.

Our post hoc geometric stress test defines the minimum enclosing frame W* = max(W, max(left + face_width)) and H* = max(H, max(top + face_height)), then substitutes W*×H* for the reported image area. IF the original face rectangles occupy one nonnegative coordinate frame inside the true images AND the true frames cannot be smaller than W*×H*, THEN 2.89% is a conditional UPPER BOUND on the close-up frequency. This does not establish either condition. Inconsistent image identities, cropped faces, unknown coordinate origins or different scaling between records could invalidate the bound. We therefore do not offer 2.89% as a corrected point estimate.

Table 4. Original reconstructed close-up outcomes and a conditional geometric stress test. Differences are not proposed as corrected scientific estimates.

Statistic Author-reconstructed Minimum-frame stress test
Pooled close-up fraction 33,153 / 60,856 (54.48%) 1,761 / 60,856 (2.89%)
Social networks close-up 38.47% 3.66%
News close-up 58.63% 2.70%
SNS country Wald χ² 103.54 50.06
SNS party Wald χ² 50.02 23.42
SNS platform Wald χ² 2941.43 101.00
SNS McFadden pseudo-R² 0.258 0.048
News country Wald χ² 1837.71 354.21
News party Wald χ² 44.04 21.20
News McFadden pseudo-R² 0.0335 0.0324

Under this explicitly conditional stress test, 31,392 source-positive images no longer pass the close-up threshold, as expected under monotonically increasing frame area. This is an extreme scale-sensitivity demonstration, not an estimate of a true prevalence. We omit low-prevalence country-rank comparisons as substantive evidence: several countries have only a handful of conditionally positive images. The new models remain nominally significant in the unclustered specification, but their event rates and information content change; χ² reductions should not be interpreted as proportional changes in effect size.

Figure 1 and the complete graph are in the downloadable PDF; numerical close-up sensitivity estimates are reproduced in Table 4.

Figure 1. Fraction of the 60,856 face-annotated images classified as close-up under the reconstructed original formula, hypothetical uniform scaling of both image dimensions, and a conditional minimum-enclosing-frame formula. Uniform scaling and the minimum-frame condition are analytical stress tests, not empirical estimates of source-image sizes.

Uniform resizing scenarios shown in Figure 1 are defined as hypothetical multiplication of both published image dimensions by k = 1.5, 2, 3 or 4 while holding recorded face areas fixed. The resulting pooled close-up fractions are 32.02%, 17.96%, 6.34% and 2.53%, respectively. They are intentionally not offered as estimates of native image resolution. A common resize ratio also need not hold if each source used distinct crop rules.

Candidate-clustered models yield the same qualitative warning: original close-up regressions remain strongly associated with country and platform, while parameter tests on rare-event stress-test outcomes become unstable. In particular, the news country Wald statistic under clustered covariance is implausibly inflated in a specification with zero positive events in some countries, so we do not use that statistic as evidence of a stronger effect.

4.3. Testing resized images, EXIF rotation, and original pixel-scale identifiability

On 60,856 face-annotated images we computed kx = max(face_left + face_width)/metadata_width and ky = max(face_top + face_height)/metadata_height. The conservative per-image scale needed merely to enclose the rectangles is kmin = max(1, kx, ky). Median kmin is 1.00 for Instagram, 1.95 for Twitter, and 2.97 for news; the pooled median is 2.68, with a broad 10th–90th percentile span from 1.00 to 5.67. The pronounced source differences are consistent with thumbnail-sized metadata and larger analysis frames, but these extrema depend on the POSITION of the detected faces as well as any true resizing. Neither kx nor ky alone identifies a global image scaling factor.

Among 44,007 images where both kx and ky exceed one, 8,755 (19.9%) have kx and ky within 20% on a log-ratio scale. This rules out an identical isotropic scale factor as an explanation for every photograph, but DOES NOT refute anisotropic resizing or cropping. The ratio kx/ky refers to the extreme detected face coordinates, not the original picture’s aspect ratio; its resemblance to a platform’s common aspect ratio is circumstantial, not a measured native dimension. All released image metadata frames are square, so swapping W and H does not rescue any of the 53,791 image-level boundary violations. This only tests published dimensions, not undocumented upstream EXIF operations.

The public images.csv and faces.csv have no image-level collection or processing timestamp; a source-by-date analysis is therefore unavailable. No original photographs were deposited for independent visual recoding. A random, source-stratified sample of 100–200 recoverable photographs, including candidate profiles and news images, remains a necessary external validation step. The same original photograph should be compared across published thumbnail dimensions, Face++ rectangle coordinates and the candidate/news source if recoverable.

Table 5. Source-stratified minimal frame requirements from recorded face-rectangle extrema. kmin is a geometric lower bound on required dimensions under a shared coordinate frame, not an estimated physical resize factor.

Platform Annotated images Out-of-frame images Median kmin Swapped-frame rescues
Instagram 5,945 1,224 (20.6%) 1.00 0
Twitter 6,575 6,335 (96.4%) 1.95 0
News 48,336 46,232 (95.6%) 2.97 0

4.4. Square image metadata, source-specific footprints and a coherent control group

Every released image has equal width and height. Of 79,500, exactly 75,755 are 150 × 150 px and 3,332 are 340 × 340 px; the remaining 413 are other square sizes. Of the 60,856 images with detailed face records, 58,321 have metadata 150 × 150 and 2,222 have metadata 340 × 340. This systematic normalization is directly observed in the data and is not a typical distribution of native images with arbitrary photographic aspect ratios. It is compatible with previews, but the files and scripts do not prove which version the final width and height refer to.

The most useful internal control is image_source = instagram_image_profile. Of its 4,885 face-annotated records, 4,717 (96.56%) have all reported face bounding boxes within the published frame; only 168 (3.44%) are out of bounds. Under the authors’ own close-up formula, 97/4,885 (1.99%) count as close-ups. Within the 4,717 boundary-consistent Instagram-profile images, 31 (0.66%) count as close-ups. These proportions are descriptive for Instagram profile images, not a visually validated reference standard for politician photo composition. Restricting to boundary-consistent cases selects disproportionately small face boxes and cannot estimate close-up prevalence in the larger dataset.

The source-type contrast is sharp: Twitter profile images have 4,817/5,051 (95.37%) out-of-frame records and a 63.59% author-formula close-up rate. Twitter banner records have 1,518/1,524 (99.61%) out-of-frame and a 64.63% author-formula close-up rate. In the Twitter banners the 95th percentile of the recorded maximum face rectangle coordinates is approximately 1,568 px horizontally and 552 px vertically, compatible with wide banner source material. At the 99th percentile these extrema rise to roughly 2,316 × 799 px, demonstrating that a single fixed 1,500 × 500-pixel reconstruction would not be defensible. For a common news source, media_1_image_1, the 99th percentiles are approximately 1,684 × 1,046 px, but these are face-location extrema, NOT estimates of the original news image size.

Table 6. Source-level face geometry and author-formula close-up outcomes. All percentages reflect released metadata or a selected subpopulation, not an externally validated correction.

Source Images with faces Boxes beyond metadata Author close-up Consistent-subset close-up
Instagram profiles 4,885 168 (3.44%) 97 (1.99%) 31 / 4,717 (0.66%)
Twitter profiles 5,051 4,817 (95.37%) 3,212 (63.59%) 6 / 234 (2.56%)
Twitter banners 1,524 1,518 (99.61%) 985 (64.63%) 0 / 6
All news photos 48,336 46,232 (95.65%) 28,337 (58.63%) 6 / 2,093 (0.29%)

The complete geometry-valid subset includes 6,982 images under the stricter requirement that every rectangle has nonnegative coordinates and positive dimensions and lies within metadata bounds. It contains only 34 positive close-up labels, 28 social-media and six news images; the corresponding platform Wald statistic is 8.92, versus 2,941.43 in the full source model. This comparison does NOT estimate the original platform effect because geometry validity is strongly associated with source and face size, and the outcome is nearly absent in the selected sample. Its value is as a diagnostic of how the published close-up variable behaves when the coordinate inconsistency is removed by selection.

Interpretation: the square-dimension distribution, Instagram-profile internal control, and distinct source-coordinate footprints give substantial support to the hypothesis of merging thumbnail metadata with annotations from a different-sized source image. A corrupted image join or unrecorded cropping cannot yet be fully excluded. Median kx/ky and high quantiles are not an estimator of native aspect ratios. We therefore do not claim a universal corrected close-up percentage; source-specific correction requires photo-level correspondence or original processing records.

5. Secondary issue: faces without emotion attributes

The released face table has 12,308 records with face_index > 5; every one has emotion_happy = 0 and is_happy = FALSE. The author’s face scraper zero-initializes the happiness field, which can remain zero if the Detect API omits emotion attributes. Face++ documentation for the Detect endpoint confirms that attributes are returned for up to five largest faces [3], consistent with the paper’s 99,566 fully coded records. The index is 1-based: 3,774 of 3,857 fifth-face records have nonzero emotion_happy, compared with zero of 2,621 sixth-face records. Size ordering is not perfectly identical in 21 image IDs. Recomputing the image label using only the first five available face attributes changes 276 images and raises the aligned expression proportion from 24.42% to 24.88%; the maximum country-rank change is one place. This is a distinct, smaller measurement issue.

6. Discussion and claims that are not supported

Two limitations govern interpretation. First, the present reanalysis proves inconsistencies in the public data and an extreme scale sensitivity in one outcome; it does not identify the undocumented data-transformation step or show which released source is authoritative. Second, even a geometrically corrected image dataset would describe selected politicians and editorial choices, not spontaneous smiles or happiness among national populations. Measurements of facial expression, professional image selection and well-being are conceptually distinct.

The principal happy-expression regressions should not be described as invalidated: their published Wald tests reproduce almost exactly and their country terms remain statistically significant in tested eligibility and candidate-cluster variants. Conversely, one cannot present 2.89% as an unconditional corrected close-up rate, infer true source dimensions from median kx/ky, or generalize the low close-up rate of the selected geometry-consistent images to the full sample. Any reliable corrected close-up estimate requires original image/frame dimensions, processing provenance, or visual ground truth.

The denominator inconsistency supports a methodological clarification and potentially a published correction. For image geometry, data-driven reconstruction requires additional evidence: the unmodified local image files, a matching processing log, or a validated subset of recovered photographs. The original authors may possess the missing intermediate records. We welcome methodological responses and corrections; no direct author or journal correspondence preceded this public release. Nothing here suggests intentional manipulation.

6.1. Consequences for the original paper’s specific claims

Table 7. Scope of the independent audit. Reproduction of source arithmetic should not be confused with correction of the image-processing pipeline.

Original claim or reported result Audit status Reason
Country-level happy-photo percentages (Table 1) Descriptively altered Numerator and denominator contain different sets of image IDs.
Social media express happier faces than news (Table 2) Not overturned by present tests Platform rates and original expression models broadly reproduce; means aggregated by candidate require separate checks.
Country-related expression regressions (Tables 3–4) Reproduced, broadly robust Original model statistics match; terms remain significant under eligibility and cluster tests.
Country-level face-to-image ratio; Sweden 102.9% Descriptive statistic under question Per-image capped values are divided by a different count.
Twitter/news close-up prevalence and platform contrast Measurement-sensitive Image sizes and pixel face boxes are in incompatible frames for many records.
News close-up country effects Unresolved substantive interpretation Original model reproduces, but scale-sensitive proxy is not a corrected measure.
Camera-angle or face-count findings Not directly resolved Separate outcomes; may share pipeline artifacts but are not invalidated by these tests.

7. Reproducibility, review and data availability

All numeric observations and author-model replications in this note were obtained from original author-deposited OSF CSVs, with source-byte and SHA-256 checks. Derived country counts, country-by-platform stratifications, source-level analysis scripts, regression test reports, and validation summaries are referenced in the publicly available reproducibility package released alongside this note. Primary OSF files remain the source of record. The original third-party photographs and author microdata are not redistributed.

The independent reviewer should: (1) verify source-file hashes and candidate deduplication; (2) reproduce M, D, I and the 28 printed country percentages; (3) inspect the published R Markdown face-count and close-up formulas; (4) reproduce both sets of Wald statistics; (5) independently test bounding-box geometry using face.size and image dimensions; and (6) evaluate whether any alternative interpretation of the unknown original coordinate frame could reconcile the published results without a data processing inconsistency. Most importantly, reviewers should distinguish confirmed numerical contradictions from the unobserved historical mechanism that generated them.

Publication and disclosure statement. Independent public research note, post hoc and not preregistered; not peer-reviewed. Ilya Nikitin, Ph.D., Founder and Director of The Null Institute, is identified as responsible author. OpenAI ChatGPT was used to inspect sources, generate Python code, reanalyse data, and prepare the writing and formatting. Calculations were run against SHA-256-verified author-released OSF tables in a private computation environment and checked at the output/manifest level. The complete primary-data workflow has not yet been independently re-executed by a human researcher. No independent peer review is claimed. The original authors were not contacted prior to this public release; we invite and will publish substantive responses and corrections. No DOI has been assigned to this note.

References

[1] Haim, M., & Jungblut, M. (2021). Politicians’ Self-depiction and Their News Portrayal: Evidence from 28 Countries Using Visual Computational Analysis. Political Communication, 38(1–2), 55–74. Online publication 20 May 2020. https://doi.org/10.1080/10584609.2020.1753869

[2] Haim, M., & Jungblut, M. Public research dataset and analysis code, OSF project: https://osf.io/wu2z5/ (retrieved and source versions verified 31 October 2026).

[3] Face++ Detect API and product documentation. The Detect API returns facial rectangles and attributes for up to five largest faces, distinct from the Face Analyze API. https://www.faceplusplus.com/face-detection/ (checked 31 October 2026).

[4] Haim & Jungblut author-released Face++ scraper: run_faceplusplus.py (OSF direct file), https://osf.io/download/4kdxg/; original image-dimension script: https://osf.io/download/tf639/. Source hashes are in Table 1.

Appendix A. Country-level reproduction table

The published image-happiness percentages were independently reproduced to one decimal in every country. Table A1 reports image eligibility counts M, D, I and the recalculated H/M, H/D, and HI/I percentages alongside the separate published Table 1 values. This shows the printed source values are matched by the reported formula, not guessed from a preferred corrected rate. None of these measures is a population-representative national smile rate.

Table A1. All 28 countries: published country percentages explicitly separated from reconstructed H/M percentages. M, D and I are eligible-image counts; HI denotes happy images in the intersection.

Country M D I Recalc H/M (%) H/D (%) HI/I (%) Published (%)
Austria 1,139 1,231 920 36.6 33.9 35.4 36.6
Belgium 2,032 2,351 1,692 34.0 29.3 31.6 34.0
Bulgaria 126 154 93 17.5 14.3 14.0 17.5
Croatia 1,577 2,217 1,322 26.1 18.5 19.6 26.1
Cyprus 81 105 66 30.9 23.8 27.3 30.9
Czechia 3,164 4,427 2,516 26.6 19.0 20.7 26.6
Denmark 657 710 525 32.6 30.1 31.6 32.6
Estonia 593 796 540 27.7 20.6 23.9 27.7
Finland 1,886 2,113 1,644 36.7 32.8 34.2 36.7
France 4,754 5,673 3,640 25.4 21.3 22.3 25.4
Germany 4,679 5,944 3,693 35.1 27.6 29.2 35.1
Greece 373 388 311 22.0 21.1 21.9 22.0
Hungary 2,043 2,730 1,663 20.5 15.3 17.2 20.5
Ireland 459 595 410 44.4 34.3 37.6 44.4
Italy 2,888 3,831 2,286 38.1 28.7 30.7 38.1
Latvia 750 894 626 14.3 12.0 13.4 14.3
Lithuania 941 1,275 871 27.9 20.6 22.4 27.9
Luxembourg 345 366 282 39.4 37.2 37.9 39.4
Malta 503 534 435 28.8 27.2 30.3 28.8
Netherlands 1,544 1,792 1,248 35.9 31.0 29.6 35.9
Poland 1,975 2,449 1,681 26.4 21.3 19.2 26.4
Portugal 1,713 2,052 1,441 29.0 24.2 23.7 29.0
Romania 1,843 2,618 1,489 23.3 16.4 17.3 23.3
Slovakia 1,763 2,282 1,500 22.9 17.7 20.0 22.9
Slovenia 618 864 560 31.9 22.8 24.8 31.9
Spain 2,943 4,785 2,475 42.2 26.0 26.9 42.2
Sweden 3,471 4,857 3,067 39.8 28.4 30.0 39.8
United Kingdom 2,079 2,823 1,585 40.9 30.1 29.0 40.9

Appendix B. Definitions and independent audit status

M = {images with image.face_count > 0}; D = {images with ≥1 detailed face record}; I = M ∩ D; H = {images in D with ≥50% coded faces marked happy}. Source-level original pooled country-table ratio |H|/|M| = 31.66%. Internally aligned detailed-face ratio |H|/|D| = 24.42%. Internally aligned intersection ratio |H ∩ M|/|I| = 25.70%. Treating unclassified M-only images as non-happy yields 21.13% and is only an explicit imputation scenario. The author’s tabular image size ratio is capped at 100% per image, while the aggregated numerator and denominator differ.

Source-code check for independent reviewers: analysis.Rmd country aggregation (lines 139–181, notably 141–153, 167–169 and 178–179), SNS close-up (lines 319–321), news close-up (lines 424–425), and scraper face count (run_faceplusplus.py lines 310–315, 359–384). Both source scripts have exact SHA-256 in Table 1. The printed Sweden 102.9% is in article Table 1, not a generated value quoted from an R-script literal. Original article and OSF links appear in the references.

Independent image-scale diagnostic: kx = max_j(left_j + face_width_j)/W and ky = max_j(top_j + face_height_j)/H, per annotated image. These are ratios of maxima of face locations to metadata side lengths; they are lower constraints on a hypothetical common enclosing frame, not unbiased estimators of image resize factors or native aspect ratios. The full script for country/geometry/source checks and model-replication archive are supplied separately. The source files provide no image processing date.

For close-up, A_i = sum_j(face_size_ij); original frame area = width_i × height_i; closeup_i = 1(A_i/frame_i > .5). For conditional geometric stress test, substitute max(width_i,max_j(left_ij + face_width_ij)) × max(height_i,max_j(top_ij + face_height_ij)) as minimum enclosing frame. This substitution cannot recover true source-image dimensions or validate a corrected close-up classification.

Study inclusion: all computed alternatives share the original Haim/Jungblut photo-acquisition family; they must not be treated as independent evidence streams in any downstream synthetic national smile ranking. The country- and platform-stratified results are technical indicators of source and selection differences only.

Appendix C. Reproducing the source-stratified calculations

The supplementary package includes one independently executed Python script, its canonical source-file SHA-256 checks, source × platform and country aggregates, and the original-model verification reports. With unchanged original OSF files named images.csv, faces.csv, candidates.csv and analysis.Rmd, run: HAIM_INPUT_DIR=. HAIM_OUTPUT_DIR=./results python reproduce_from_original_osf_v1_2.py. Results on the user-controlled Runner were computed against the exact original file bytes. The reported Face++ metadata fields have no date dimension, so per-date analysis is not possible without acquiring external source histories.

The original author script run_image_dimensions.py contains 31 lines. In particular, it opens local files with PIL (line 18), stores image.width and image.height (lines 19–20), and writes candidates_enriched.csv (lines 26–30). Full script and SHA-256 are available at the unchanged original OSF URL in reference [4]. This does not demonstrate which local versions were later used in the released final images.csv. Quoting the source file location is more verifiable than reproducing unlicensed third-party code in full.