reply-protocol-2026-09.csv — data dictionary ============================================= One row per reply posted by the study account between Aug 30 and Sep 12, 2026 (35 rows). Metrics are from X's account analytics content export, downloaded Oct 8, 2026. The account's standalone posts in the window are not replies and are not included; three replies from Sep 5 that the export no longer lists are excluded. License: CC BY 4.0. Recompute every number in the report: python3 reply-protocol-2026-09.py Stance rules: reply-protocol-2026-09.rules.yaml Column Type Description --------------------- -------- ---------------------------------------------------------- post_id string X post id of the reply (the reply's own id, not the parent). posted_at date Day the reply was posted, YYYY-MM-DD. stance string Stance category assigned from the reply text, one of: shared_views, different_views, topic_extension. Rules are in the report's Method section and the rules file. impressions integer Impressions as reported in X's analytics export. engagements integer Engagements as reported in X's analytics export. engagement_rate decimal engagements / impressions, X's own definition, as a fraction (0.0310 = 3.10%). The report's per-stance rates pool the rows: sum of engagements / sum of impressions. likes integer Likes, from the analytics export. reposts integer Reposts, from the analytics export. bookmarks integer Bookmarks, from the analytics export. profile_visits integer Profile visits attributed to the reply, from the export. view_rank_percentile integer Percentile rank of the reply's impressions among up to 20 competing replies on the same parent post, from X API v2 public metrics. 100 = most viewed in the set, 50 = median. Measured Sep 12, 2026. Empty when the parent post was no longer live at measurement. text string The reply as X's export gives it (long replies are cut short by the export), so every stance label can be checked.