class: center, middle, inverse, title-slide .title[ # Content Policy Changes at Meta ] .subtitle[ ## Breaking down automated content removal in the Trump 2.0 Era ] .author[ ### Jeremie Ponak, Claire Gleeman, Maitreyi Manon ] .institute[ ### Columbia University, SIPA ] .date[ ### 2025-04-22 ] --- # 1. Why it matters: Context Setting On January 7th, Mark Zuckerberg announced sweeping changes to Meta's content moderation policy. In particular, Meta announced that it would reduce the amount of automated removals, in particular when it comes to "harmful speech". -- Trust and Safety experts immediately raised the alarm: - Manual takedowns were slower to act on potential crises (like the Christchurch massacre) - Harmful and discriminatory messages would have more oxygen to spread online, potentially radicalizing others or being seen by their victims --- # 2. How does Content Moderation Work? More and more, content moderation has relied on automation. When it comes to hate speech, facebook has previously reported that 97% of the content was in fact automatically detected. [1] Facebook typically relies on a range of AI-based content classifiers to identify messages that it deems hateful. - It paired this approach with partnerships with fact-checkers, who also helped remove content that which was wrong or misleading. - ProPublica reported that Facebook was also ending its reliance on outside fact-checkers. [2] .footnote[ [1] Source: https://cyber.fsi.stanford.edu/news/automated-content-moderation-primer [2] Source: https://www.propublica.org/article/facebook-meta-abandons-fact-checking-boosts-viral-content] --- # 3. What we set out to test ### Understanding the changes to Meta's Platform **Research Question**: How has Meta's stated policy changes affected the content moderation decisions which the platform is making? **Hypothesis**: We expected that since the new policy, there would be a decrease in the share of automated content removal decisions on Meta platforms. -- Though we do not expect to be able to answer a causal question, the policy implications for these results may show how content moderation policies are associated with the volume and rates of harmful content left up on the internet. -- In addition to answering the core question, we hoped to answer other descriptive questions, such as: - Is Meta removing more or less content from its platform since January 7th? - How are other kinds of content being impact by these changes in policy? --- # 4. Working with DSA Data ### The EU's Content Removal Database Through the Digital Services Act (published in October 19, 2022), online platforms in the EU have needed to publish the reasons for content removals. The [DSA database](https://transparency.dsa.ec.europa.eu/explore-data/download}) is a cross-section of individual content moderation decisions that we can aggregate to platform-level observations. It includes information such as: - Whether or not the content removal decision was automated, partially automated, or completely manual - Whether the content was removed for policy violations vs.illegal content removal - The nature of the policy violation -- We will be looking at variation in content moderation actions between entities (platforms) over time that were versus were not subject to the policy. **Unit of observation**: Individual takedown incidents by day by platform, which we collapsed into sums for each platform day. --- # 4.1 Working with large data-dumps We ran into challenges downloading and manipulating the data, making exploratory data analysis difficult as we didn't know what we had until we had it: - We could only download one day's worth of data at a time, per platform - Each daily dump contained dozens of individual CSVs, usually representing some 20-30 minute window of content moderation activity - Once we figured out how to automate the unzipping and importing, realized we'd need to run our code progressively since we had millions of data points per day <img src="https://i.sstatic.net/XR8Vb.png" width="70%" style="display: block; margin: auto;" /> --- # 4.2 Platform choice and time-window ## Platform Choice We therefore chose 2 platforms to observe: - Facebook, since we thought it was the platform most impacted by the change - Youtube, because it had a smaller dataset of removals (easier to manage) and did not make any changes publicized changes to policy post-election - We chose 8 weeks worth of data to minimize the impact of the holidays (pre-policy) to ensure that the changes that FB made had sufficient amount of time to rollout. -- One of our findings was how different these platforms ended up being in the pre-policy period. - A more robust analysis could compare more similar platforms (eg. Instagram vs. TikTok) as well as including a greater number of platforms. --- # 5. Summary Stats ##Understanding high level platform changes First we started by aggregating the the total case load by platform over time. In order to compare platform changes in automation - rather than raw totals - we calculated automation ratios and also looked at the prevelance of types of speech. -- <table class="table table-striped table-hover table-condensed" style="font-size: 11px; margin-left: auto; margin-right: auto;"> <caption style="font-size: initial !important;">Summary Statistics by Platform and Policy Period</caption> <thead> <tr> <th style="text-align:left;"> platform_name </th> <th style="text-align:left;"> policy_period </th> <th style="text-align:right;"> avg_daily_cases </th> <th style="text-align:right;"> auto_removal_prop </th> <th style="text-align:right;"> hate_speech_prop </th> <th style="text-align:right;"> violence_prop </th> <th style="text-align:right;"> fraud_prop </th> </tr> </thead> <tbody> <tr> <td style="text-align:left;"> Facebook </td> <td style="text-align:left;"> Post </td> <td style="text-align:right;"> 1864739.6 </td> <td style="text-align:right;"> 0.983 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.010 </td> <td style="text-align:right;"> 0.006 </td> </tr> <tr> <td style="text-align:left;"> Facebook </td> <td style="text-align:left;"> Pre </td> <td style="text-align:right;"> 2657728.9 </td> <td style="text-align:right;"> 0.992 </td> <td style="text-align:right;"> 0.005 </td> <td style="text-align:right;"> 0.007 </td> <td style="text-align:right;"> 0.006 </td> </tr> <tr> <td style="text-align:left;"> YouTube </td> <td style="text-align:left;"> Post </td> <td style="text-align:right;"> 168426.1 </td> <td style="text-align:right;"> 0.057 </td> <td style="text-align:right;"> 0.001 </td> <td style="text-align:right;"> 0.000 </td> <td style="text-align:right;"> 0.261 </td> </tr> <tr> <td style="text-align:left;"> YouTube </td> <td style="text-align:left;"> Pre </td> <td style="text-align:right;"> 195767.6 </td> <td style="text-align:right;"> 0.060 </td> <td style="text-align:right;"> 0.001 </td> <td style="text-align:right;"> 0.000 </td> <td style="text-align:right;"> 0.253 </td> </tr> </tbody> </table> -- - Facebook shows a substantial drop in average daily moderation volume: ~2.66M (Pre) → ~1.86M (Post), a ~30% decline. - YouTube's moderation volume also declines slightly (~14%), but far less sharply. - Facebook’s automation rate drops from 99.2% to 98.3%, while YouTube remains low and stable (6.0% → 5.7%). --- #5 Time-Series and Parallel Trends Assumption <img src="https://i.imgur.com/YSnYdJz.png" width="70%" style="display: block; margin: auto;" /> --- #5.1 Time-Series Visualization Our goal was to run a DiD regression, with Youtube as our second case. We wanted to understand if there were parallel trends in automation rate between the two platforms. <img src="Final_Prez_V2_files/figure-html/time_series-1.png" style="display: block; margin: auto;" /> --- #5.2 Ways to make visual inspection clear ###Challenges to Parallel Trends Assumption - The decrease in automation in Facebook are small, if persistent post the policy change. - Because the proportions are so different, it makes analyzing parallel trend difficult. - Standardizing time-series visualization looked like a method to more easily interpret relative change in % automation. -- There are limitations to this approach, in part because it is *less intuitive*: - We move from saying “automation dropped by 0.9%” to “1 SD” — less intuitive for policy audiences - A 1 SD change might be just 0.01% for one platform and 10% for another — so even after standardizing, interpretation requires context. --- #5.3 Standardized Parallel Trends <img src="https://i.imgur.com/AK0WQ3f.png" width="80%" style="display: block; margin: auto;" /> <img src="Final_Prez_V2_files/figure-html/standardized automation rate-1.png" style="display: block; margin: auto;" /> --- #5.4 Evaluating Parallel trends assumption with event study plot .pull-left[ <!-- --> ] .pull-right[ - Using Robust standard errors since we assume that there is heteroskedasticity in the error term - Our difference before policy change are all not statically significant, which confirms our parallel trends assumption. However, we also note the lack of statistical significance at the 5% level for 7 of our 9 observations] - All the estimators are small (–0.56 to +0.21) there’s no large gap in automation rates between Facebook and YouTube before the policy --- #6. Empirical Strategy Our empirical strategy was to estimate the impact of the policy change by conducting a DiD analysis/a fixed effect analysis in order to reduce the bias of comparing different platform types and rates of automation. ## Difference in Differences Model Method for estimating causal effects using observational data, by comparing a treated group and a control group before and after a policy. ## Fixed Effects and Controls We also wanted to control for time-invariant unobserved heterogeneity between Youtube and facebook, which we could control using time fixed effects. --- #6.1 Regression Specifications **DiD Model Equation ** `$$Y_{it} = \beta_0 + \beta_1 \cdot {FB}_i + \beta_2 \cdot {Post}_t + \beta_3 \cdot ({FB}_i \times {Post}_t) + \epsilon_{it}$$` **Fixed Effects DiD Regression Equation** `$$Y_{it} = \beta_3 (FB_i \times Post_t) + \delta_t + \varepsilon_{it}$$` -- Variables Definition: - Y_it: Proportion of automated moderation decisions for platform i at time t - β0: Intercept — baseline outcome for YouTube in the pre-policy period - FB_i: Indicator for treatment group (1 if platform is Facebook, 0 if YouTube) - Post_t: After the policy change (1 if date is after policy change, 0 otherwise) - FB_i * Post_t: Interaction term, which is equal to 1 for Facebook after January 7th - β1: Difference between Facebook and YouTube in the pre-policy period - β2: Average change over time for YouTube (control group) - β3: The Difference-in-Differences estimate — the additional change for Facebook beyond the baseline time trend - ε_it: Error term (unexplained variation) - δ_t: Time Fixed Effect --- #7. Regression results (Basic Model) .pull-left[ <div style="zoom: 0.9;"> ```{=html} <!-- preamble start --> <script> function styleCell_61m6xv4ndrx80njgiaah(i, j, css_id) { var table = document.getElementById("tinytable_61m6xv4ndrx80njgiaah"); var cell = table.rows[i]?.cells[j]; // Safe navigation to avoid errors if (cell) { console.log(`Styling cell at (${i}, ${j}) with class ${css_id}`); cell.classList.add(css_id); } else { console.warn(`Cell at (${i}, ${j}) not found.`); } } function insertSpanRow(i, colspan, content) { var table = document.getElementById('tinytable_61m6xv4ndrx80njgiaah'); var newRow = table.insertRow(i); var newCell = newRow.insertCell(0); newCell.setAttribute("colspan", colspan); // newCell.innerText = content; // this may be unsafe, but innerText does not interpret <br> newCell.innerHTML = content; } function spanCell_61m6xv4ndrx80njgiaah(i, j, rowspan, colspan) { var table = document.getElementById("tinytable_61m6xv4ndrx80njgiaah"); const targetRow = table.rows[i]; const targetCell = targetRow.cells[j]; for (let r = 0; r < rowspan; r++) { // Only start deleting cells to the right for the first row (r == 0) if (r === 0) { // Delete cells to the right of the target cell in the first row for (let c = colspan - 1; c > 0; c--) { if (table.rows[i + r].cells[j + c]) { table.rows[i + r].deleteCell(j + c); } } } // For rows below the first, delete starting from the target column if (r > 0) { for (let c = colspan - 1; c >= 0; c--) { if (table.rows[i + r] && table.rows[i + r].cells[j]) { table.rows[i + r].deleteCell(j); } } } } // Set rowspan and colspan of the target cell targetCell.rowSpan = rowspan; targetCell.colSpan = colspan; } // tinytable span after window.addEventListener('load', function () { var cellsToStyle = [ // tinytable style arrays after { positions: [ { i: 8, j: 1 }, { i: 8, j: 2 }, ], css_id: 'tinytable_css_xzx433rzyhwas2hxy9rx',}, { positions: [ { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_wwwsmf3dgwmz3sbb763t',}, { positions: [ { i: 0, j: 0 }, ], css_id: 'tinytable_css_w3oqny510vtgzeta2a3j',}, { positions: [ { i: 6, j: 0 }, ], css_id: 'tinytable_css_v166oti0aid1aao7ncz2',}, { positions: [ { i: 8, j: 0 }, ], css_id: 'tinytable_css_7alqz71z888ewcoggx62',}, { positions: [ { i: 6, j: 1 }, { i: 6, j: 2 }, ], css_id: 'tinytable_css_5mkxlofkkytm4mkzolb5',}, { positions: [ { i: 2, j: 1 }, { i: 3, j: 1 }, { i: 4, j: 1 }, { i: 1, j: 1 }, { i: 1, j: 2 }, { i: 7, j: 1 }, { i: 3, j: 2 }, { i: 5, j: 1 }, { i: 5, j: 2 }, { i: 2, j: 2 }, { i: 7, j: 2 }, { i: 4, j: 2 }, ], css_id: 'tinytable_css_3xkqkjjaabtok0jczfhh',}, { positions: [ { i: 1, j: 0 }, { i: 2, j: 0 }, { i: 3, j: 0 }, { i: 4, j: 0 }, { i: 5, j: 0 }, { i: 7, j: 0 }, ], css_id: 'tinytable_css_1xh0gqyb2ycq3wmo195v',}, ]; // Loop over the arrays to style the cells cellsToStyle.forEach(function (group) { group.positions.forEach(function (cell) { styleCell_61m6xv4ndrx80njgiaah(cell.i, cell.j, group.css_id); }); }); }); </script> <style> /* tinytable css entries after */ .table td.tinytable_css_xzx433rzyhwas2hxy9rx, .table th.tinytable_css_xzx433rzyhwas2hxy9rx { text-align: center; border-bottom: solid #d3d8dc 0.1em; } .table td.tinytable_css_wwwsmf3dgwmz3sbb763t, .table th.tinytable_css_wwwsmf3dgwmz3sbb763t { text-align: center; border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; } .table td.tinytable_css_w3oqny510vtgzeta2a3j, .table th.tinytable_css_w3oqny510vtgzeta2a3j { text-align: left; border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; } .table td.tinytable_css_v166oti0aid1aao7ncz2, .table th.tinytable_css_v166oti0aid1aao7ncz2 { text-align: left; border-bottom: solid black 0.05em; } .table td.tinytable_css_7alqz71z888ewcoggx62, .table th.tinytable_css_7alqz71z888ewcoggx62 { text-align: left; border-bottom: solid #d3d8dc 0.1em; } .table td.tinytable_css_5mkxlofkkytm4mkzolb5, .table th.tinytable_css_5mkxlofkkytm4mkzolb5 { text-align: center; border-bottom: solid black 0.05em; } .table td.tinytable_css_3xkqkjjaabtok0jczfhh, .table th.tinytable_css_3xkqkjjaabtok0jczfhh { text-align: center; } .table td.tinytable_css_1xh0gqyb2ycq3wmo195v, .table th.tinytable_css_1xh0gqyb2ycq3wmo195v { text-align: left; } </style> <div class="container"> <table class="table table-borderless" id="tinytable_61m6xv4ndrx80njgiaah" style="width: auto; margin-left: auto; margin-right: auto;" data-quarto-disable-processing='true'> <thead> <caption>Difference-in-Differences: Effect on Automated Removal Proportion</caption> <tr> <th scope="col"> </th> <th scope="col">Basic DiD</th> <th scope="col">Time FE</th> </tr> </thead> <tfoot><tr><td colspan='3'>+ p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001</td></tr></tfoot> <tbody> <tr> <td>Facebook</td> <td>0.932***</td> <td>0.931***</td> </tr> <tr> <td></td> <td>(0.003)</td> <td>(0.003)</td> </tr> <tr> <td>Post-Policy</td> <td>-0.004</td> <td></td> </tr> <tr> <td></td> <td>(0.003)</td> <td></td> </tr> <tr> <td>DiD Estimator (FB × Post)</td> <td>-0.006</td> <td>-0.005</td> </tr> <tr> <td></td> <td>(0.004)</td> <td>(0.004)</td> </tr> <tr> <td>Num.Obs.</td> <td>204</td> <td>204</td> </tr> <tr> <td>R2</td> <td>0.999</td> <td>1.000</td> </tr> </tbody> </table> </div> <!-- hack to avoid NA insertion in last line --> ``` </div> ] .pull-right[ - Post-policy, automation dropped slightly overall (~0.4 pp) - The DiD estimator (FB × Post) shows a ~0.54 (SE: 0.0030) pp drop in Facebook’s automation relative to YouTube—but this effect is **small** and **not statistically significant** in any model, at any significance level - R^2 is 0.999 because there are no other controls we were able to include in our model ] --- #7.1 Regression results (standardized) .pull-left[ <div style="zoom: 0.9;"> ```{=html} <!-- preamble start --> <script> function styleCell_m8r0hkm1bk89wtbymuyw(i, j, css_id) { var table = document.getElementById("tinytable_m8r0hkm1bk89wtbymuyw"); var cell = table.rows[i]?.cells[j]; // Safe navigation to avoid errors if (cell) { console.log(`Styling cell at (${i}, ${j}) with class ${css_id}`); cell.classList.add(css_id); } else { console.warn(`Cell at (${i}, ${j}) not found.`); } } function insertSpanRow(i, colspan, content) { var table = document.getElementById('tinytable_m8r0hkm1bk89wtbymuyw'); var newRow = table.insertRow(i); var newCell = newRow.insertCell(0); newCell.setAttribute("colspan", colspan); // newCell.innerText = content; // this may be unsafe, but innerText does not interpret <br> newCell.innerHTML = content; } function spanCell_m8r0hkm1bk89wtbymuyw(i, j, rowspan, colspan) { var table = document.getElementById("tinytable_m8r0hkm1bk89wtbymuyw"); const targetRow = table.rows[i]; const targetCell = targetRow.cells[j]; for (let r = 0; r < rowspan; r++) { // Only start deleting cells to the right for the first row (r == 0) if (r === 0) { // Delete cells to the right of the target cell in the first row for (let c = colspan - 1; c > 0; c--) { if (table.rows[i + r].cells[j + c]) { table.rows[i + r].deleteCell(j + c); } } } // For rows below the first, delete starting from the target column if (r > 0) { for (let c = colspan - 1; c >= 0; c--) { if (table.rows[i + r] && table.rows[i + r].cells[j]) { table.rows[i + r].deleteCell(j); } } } } // Set rowspan and colspan of the target cell targetCell.rowSpan = rowspan; targetCell.colSpan = colspan; } // tinytable span after window.addEventListener('load', function () { var cellsToStyle = [ // tinytable style arrays after { positions: [ { i: 0, j: 0 }, ], css_id: 'tinytable_css_wksood8v1cdifw4rqts2',}, { positions: [ { i: 1, j: 0 }, { i: 2, j: 0 }, { i: 3, j: 0 }, { i: 4, j: 0 }, { i: 5, j: 0 }, { i: 7, j: 0 }, ], css_id: 'tinytable_css_sg0gm4da8n38nb1dfose',}, { positions: [ { i: 8, j: 1 }, { i: 8, j: 2 }, ], css_id: 'tinytable_css_rqvqqgtf33sca5f0hlrv',}, { positions: [ { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_qq485crqxzyblotz77uv',}, { positions: [ { i: 8, j: 0 }, ], css_id: 'tinytable_css_mf3bqg1i6dnfju7as765',}, { positions: [ { i: 6, j: 1 }, { i: 6, j: 2 }, ], css_id: 'tinytable_css_8j6lu69zc40e6y5l60fo',}, { positions: [ { i: 2, j: 1 }, { i: 3, j: 1 }, { i: 4, j: 1 }, { i: 1, j: 1 }, { i: 1, j: 2 }, { i: 7, j: 1 }, { i: 3, j: 2 }, { i: 5, j: 1 }, { i: 5, j: 2 }, { i: 2, j: 2 }, { i: 7, j: 2 }, { i: 4, j: 2 }, ], css_id: 'tinytable_css_6nyen3qqnb83t81w84aw',}, { positions: [ { i: 6, j: 0 }, ], css_id: 'tinytable_css_41cukh64gvmsbw3zpuy5',}, ]; // Loop over the arrays to style the cells cellsToStyle.forEach(function (group) { group.positions.forEach(function (cell) { styleCell_m8r0hkm1bk89wtbymuyw(cell.i, cell.j, group.css_id); }); }); }); </script> <style> /* tinytable css entries after */ .table td.tinytable_css_wksood8v1cdifw4rqts2, .table th.tinytable_css_wksood8v1cdifw4rqts2 { text-align: left; border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; } .table td.tinytable_css_sg0gm4da8n38nb1dfose, .table th.tinytable_css_sg0gm4da8n38nb1dfose { text-align: left; } .table td.tinytable_css_rqvqqgtf33sca5f0hlrv, .table th.tinytable_css_rqvqqgtf33sca5f0hlrv { text-align: center; border-bottom: solid #d3d8dc 0.1em; } .table td.tinytable_css_qq485crqxzyblotz77uv, .table th.tinytable_css_qq485crqxzyblotz77uv { text-align: center; border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; } .table td.tinytable_css_mf3bqg1i6dnfju7as765, .table th.tinytable_css_mf3bqg1i6dnfju7as765 { text-align: left; border-bottom: solid #d3d8dc 0.1em; } .table td.tinytable_css_8j6lu69zc40e6y5l60fo, .table th.tinytable_css_8j6lu69zc40e6y5l60fo { text-align: center; border-bottom: solid black 0.05em; } .table td.tinytable_css_6nyen3qqnb83t81w84aw, .table th.tinytable_css_6nyen3qqnb83t81w84aw { text-align: center; } .table td.tinytable_css_41cukh64gvmsbw3zpuy5, .table th.tinytable_css_41cukh64gvmsbw3zpuy5 { text-align: left; border-bottom: solid black 0.05em; } </style> <div class="container"> <table class="table table-borderless" id="tinytable_m8r0hkm1bk89wtbymuyw" style="width: auto; margin-left: auto; margin-right: auto;" data-quarto-disable-processing='true'> <thead> <caption>Difference-in-Differences: Effect on Automated Removal Proportion</caption> <tr> <th scope="col"> </th> <th scope="col">Basic DiD (Z-Scored)</th> <th scope="col">Time FE (Z-Scored)</th> </tr> </thead> <tfoot><tr><td colspan='3'>+ p < 0.1, * p < 0.05, ** p < 0.01, *** p < 0.001</td></tr></tfoot> <tbody> <tr> <td>Facebook</td> <td>0.489**</td> <td>0.467**</td> </tr> <tr> <td></td> <td>(0.179)</td> <td>(0.170)</td> </tr> <tr> <td>Post-Policy</td> <td>-0.203</td> <td></td> </tr> <tr> <td></td> <td>(0.180)</td> <td></td> </tr> <tr> <td>DiD Estimator (FB × Post)</td> <td>-0.987***</td> <td>-0.975***</td> </tr> <tr> <td></td> <td>(0.254)</td> <td>(0.250)</td> </tr> <tr> <td>Num.Obs.</td> <td>204</td> <td>204</td> </tr> <tr> <td>R2</td> <td>0.186</td> <td>0.630</td> </tr> </tbody> </table> </div> <!-- hack to avoid NA insertion in last line --> ``` </div> ] .pull-right[ - The DiD estimate is -.987 (p < 0.001), meaning Facebook’s automation share dropped by ~1 standard deviation from its pre-policy mean, relative to YouTube. - This is statistically significant and large in magnitude. - Interpretation: This model strongly supports a meaningful drop in automation on Facebook following the policy.] --- #8. Violation specific findings ### Violations as a share of total cases <img src="https://i.imgur.com/RYjvofm.png" width="80%" style="display: block; margin: auto;" /> <img src="Final_Prez_V2_files/figure-html/Share of Violation-1.png" style="display: block; margin: auto;" /> --- #9. Key Findings ## Key Findings: Meta Moderation Shift (Post-Jan 2025) 1. **Less Automation:** Facebook ↓ from 99.2% to 98.3% automation → +657K manual reviews/month *(↑62.5% human review; p < 0.001)* 2. **Gradual Rollout:** Effects small at first (Weeks 0–2), clear by Week 6+ 3. **Shift in Focus:** Hate speech ↑87%, violence ↑50% on FB *(No comparable change on YouTube)* 4. **Less Overall Moderation:** FB moderation volume ↓30% vs YouTube ↓14% *(Stat sig via DiD)* --- #9. Next steps and limitations **What we learnt:** - Standardization enabled cross platform comparison for very different baselines - Multiple outcome specifications show consistent directionality - Event study confirmed parallel trends **Limitations:** - 8-week post-policy window may not capture long-term adaptation - Cannot directly observe moderation quality or accuracy, which means we cannot fully separate policy from other internal changes - We chose our platforms blindly, and an ideal study would compare more comparable platforms (X? TikTok vs. Instagram) over a longer period time **Future:** - How will these changes evolve over longer time periods? Will they be sustained? - How do these patterns compare across other major platforms like TikTok or Instagram? - What are the implications for harmful content prevalence and misinformation spread? --- #Appendix --- #Key Findings continued ###1. Meta's Automation Strategy Shifted Our analysis shows that Facebook significantly changed its approach to content moderation following the January 2025 policy announcement: - We found a consistent 0.9 percentage point decrease in automation on Facebook (from 99.2% to 98.3%) - While this may seem small in absolute terms, it represents a 62.5% increase in manual content reviews – a change affecting over half a million (657K) pieces of content per month. This change is statistically significant when we standardize the data (p < 0.001) - In contrast, YouTube showed minimal changes during the same period (-0.3pp, not significant). This difference confirms the effect is specific to Meta's policy change, not an industry-wide trend **What this means:** Meta actually followed through on its public commitment to reduce automated moderation, shifting thousands of daily content decisions from algorithmic to human review. --- #8.2 Key Findings ###2. It was implemented gradually The policy change didn't happen overnight but followed a clear pattern of increasing implementation: Our week-by-week analysis shows effects that build gradually over time - Weeks 0-2: Small initial changes not statistically significant - Weeks 3-5: Moderate changes becoming statistically detectable - Weeks 6+: Full implementation with largest effects observed This pattern appears in both raw and standardized models. --- #8.3 Key Findings ###3. Change in Content Focus Beyond how content was reviewed, we observed changes in what content was prioritized: - Hate speech moderation on Facebook increased by 87% (0.54% → 1.01% of cases) - Violence-related content moderation increased by 50% (0.66% → 0.99%) - These increases remain significant even after correcting for multiple comparisons - YouTube showed no comparable shifts in content prioritization **What this means:** Meta not only changed its moderation method but also appears to have reprioritized certain harmful content categories. This suggests a more comprehensive policy shift than publicly announced. --- #9.4 Key Findings ###4. Moderation Volume went down Overall, we observed a substantial reduction in moderation activity: - Facebook's daily moderation actions decreased by 30% (2.66M → 1.86M) - This reduction exceeds YouTube's more modest 14% decline during the same period - Difference-in-differences analysis confirms this is a significant treatment effect **What this means:** Either Facebook users are posting less rule-violating content, or the platform has become less aggressive in enforcing its policies. The timing strongly suggests this is connected to the policy change. --- #8. <img src="Final_Prez_V2_files/figure-html/Violation Weekly Pre-Post-1.png" style="display: block; margin: auto;" /> --- #10. Conclusion Meta's announced reduction in automated content moderation produced real, measurable changes in how Facebook operates: We found consistent evidence across multiple statistical approaches showing decreased automation -- - The effect size was modest in absolute terms (-0.9pp) but substantial in relative terms (+62.5% manual review -- - Implementation followed a gradual pattern over approximately 6 weeks -- - Content priorities shifted alongside moderation methods, with notable increases in hate speech and violence enforcement