pith. sign in

arxiv: 2503.10977 · v2 · submitted 2025-03-14 · 💻 cs.SE

What's DAT? Three Case Studies of Measuring Software Development Productivity at Meta With Diff Authoring Time

Pith reviewed 2026-05-23 00:48 UTC · model grok-4.3

classification 💻 cs.SE
keywords Diff Authoring Timesoftware development productivitytelemetryproductivity metricsexperimentationcase studiescode changes
0
0 comments X

The pith

DAT measures how long engineers take to author code changes with integrated telemetry.

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The paper introduces Diff Authoring Time as a time-based metric for software development productivity. DAT uses a privacy-aware telemetry system connected to version control, the IDE, and the OS to track authoring duration. The authors validate the metric through observational studies, surveys, and statistics. At Meta it has supported experiments across more than 20 projects. Three case studies report productivity gains of 14 percent, 33 percent, and over 50 percent.

Core claim

DAT is a time-based metric that assesses how long engineers take to develop changes, using a privacy-aware telemetry system integrated with version control, the IDE, and the OS. It is validated through observational studies, surveys, visualizations, and descriptive statistics. At Meta, DAT has powered experiments and case studies on more than 20 projects, including a 14 percent DAT improvement from mock types, a 33 percent improvement from automatic memoization in the React compiler, and an estimate of thousands of DAT hours saved annually through code sharing with over 50 percent improvement.

What carries the argument

Diff Authoring Time (DAT): a metric that calculates the duration engineers spend authoring code changes via privacy-aware telemetry from version control, the IDE, and the OS.

If this is right

  • Experiments can test whether mock types reduce authoring time by 14 percent.
  • Automatic memoization in the React compiler produces a 33 percent DAT reduction.
  • Code sharing can deliver over 50 percent DAT improvement and save thousands of hours per year.
  • DAT supports quantitative tests of questions such as whether types make development more efficient.

Where Pith is reading between the lines

These are editorial extensions of the paper, not claims the author makes directly.

  • Other organizations could build similar telemetry pipelines to run controlled tests of their internal tools and processes.
  • DAT values could be tracked over time within the same project to detect slowdowns after major refactors or dependency changes.
  • Pairing DAT with existing bug or review metrics might reveal whether faster authoring correlates with higher defect rates.

Load-bearing premise

The telemetry system integrated with version control, the IDE, and the OS accurately captures authoring time without substantial bias from privacy mechanisms, context switching, or unmeasured activities.

What would settle it

A side-by-side comparison of DAT values against direct screen-recording observations of the same developers that shows large systematic discrepancies in captured time.

Figures

Figures reproduced from arXiv: 2503.10977 by Akshay Patel, Amanda Park, Andrew Kennedy, Ford Garberson, Henri Verroken, Ian G. Malone, Karim Nakad, Moritz Beller, Pavel Avgustinov, Sarita Mohanty, Vaishali Garg.

Figure 1
Figure 1. Figure 1: Example illustration of the most relevant DAT-covered and uncovered activities for hypothetical diffs D123 and D987, [PITH_FULL_IMAGE:figures/full_fig_p003_1.png] view at source ↗
Figure 2
Figure 2. Figure 2: Explanation of the core DAT commit matching algorithm. [PITH_FULL_IMAGE:figures/full_fig_p004_2.png] view at source ↗
Figure 3
Figure 3. Figure 3: 99th percentile winsorized average DAT for differ [PITH_FULL_IMAGE:figures/full_fig_p005_3.png] view at source ↗
Figure 4
Figure 4. Figure 4: Human DAT estimates (solid) and actual DAT values [PITH_FULL_IMAGE:figures/full_fig_p005_4.png] view at source ↗
Figure 5
Figure 5. Figure 5: A sample timeline of activities (raw telemetry, bottom row), and different DAT algorithms. [PITH_FULL_IMAGE:figures/full_fig_p006_5.png] view at source ↗
Figure 6
Figure 6. Figure 6: Comparison of untyped and typed mocking APIs. [PITH_FULL_IMAGE:figures/full_fig_p006_6.png] view at source ↗
Figure 7
Figure 7. Figure 7: Auto-Memoization Case Study results show bean [PITH_FULL_IMAGE:figures/full_fig_p008_7.png] view at source ↗
read the original abstract

This paper introduces Diff Authoring Time (DAT), a powerful, yet conceptually simple approach to measuring software development productivity that enables rigorous experimentation. DAT is a time based metric, which assess how long engineers take to develop changes, using a privacy-aware telemetry system integrated with version control, the IDE, and the OS. We validate DAT through observational studies, surveys, visualizations, and descriptive statistics. At Meta, DAT has powered experiments and case studies on more than 20 projects. Here, we highlight (1) an experiment on introducing mock types (a 14% DAT improvement), (2) the development of automatic memoization in the React compiler (33% improvement), and (3) an estimate of thousands of DAT hours saved annually through code sharing (> 50% improvement). DAT offers a precise, yet high-coverage measure for development productivity, aiding business decisions. It enhances development efficiency by aligning the internal development workflow with the experiment-driven culture of external product development. On the research front, DAT has enabled us to perform rigorous experimentation on long-standing software engineering questions such as "do types make development more efficient?"

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, simulated authors' rebuttal, and a circularity audit. Tearing a paper down is the easy half of reading it; the pith above is the substance, this is the friction.

Referee Report

2 major / 1 minor

Summary. The manuscript introduces Diff Authoring Time (DAT), a time-based productivity metric computed from privacy-aware telemetry integrated with version control, IDE, and OS data. It claims validation via observational studies, surveys, visualizations, and descriptive statistics, and reports three case studies at Meta showing DAT reductions of 14% (mock types experiment), 33% (React compiler memoization), and >50% (code sharing), with the metric having been applied to over 20 projects. The central claim is that DAT is a precise, high-coverage measure enabling rigorous experimentation on software engineering questions such as the efficiency impact of types.

Significance. If the telemetry integration accurately captures authoring time, DAT would supply a practical, experiment-friendly alternative to existing productivity metrics, directly supporting internal decision-making and external research on long-standing questions. The scale of deployment (20+ projects) and concrete quantified outcomes constitute a strength for an industry case-study paper.

major comments (2)
  1. [Abstract] Abstract (validation paragraph): the claim that DAT has been validated through observational studies, surveys, visualizations, and descriptive statistics is not accompanied by any quantitative evidence such as correlation coefficients against an external reference, error bounds, or explicit controls for privacy filters, context switches, or idle time. This directly underpins the reported percentage improvements and must be addressed with concrete numbers.
  2. [Case Studies] Case studies (three highlighted examples): the 14%, 33%, and >50% DAT reductions are presented without error bars, statistical significance tests, or explicit baseline comparisons, leaving open whether the differences exceed measurement variability.
minor comments (1)
  1. [Abstract] The abstract states that DAT 'enhances development efficiency by aligning the internal development workflow with the experiment-driven culture'; a brief sentence clarifying the experimental designs actually used in the 20+ projects would strengthen this claim.

Simulated Author's Rebuttal

2 responses · 0 unresolved

We thank the referee for the constructive feedback. We address each major comment point-by-point below, with proposed revisions to improve clarity and rigor.

read point-by-point responses
  1. Referee: [Abstract] Abstract (validation paragraph): the claim that DAT has been validated through observational studies, surveys, visualizations, and descriptive statistics is not accompanied by any quantitative evidence such as correlation coefficients against an external reference, error bounds, or explicit controls for privacy filters, context switches, or idle time. This directly underpins the reported percentage improvements and must be addressed with concrete numbers.

    Authors: We agree the abstract would be strengthened by including quantitative validation details. The manuscript body (Sections on validation) presents observational studies with descriptive statistics on time distributions, survey results on perceived accuracy, and visualizations confirming DAT alignment with authoring sessions. We will revise the abstract to summarize key metrics, such as DAT coverage exceeding 85% of active development time and survey agreement rates above 70% with self-reported effort. Controls for idle time and context switches are implemented via OS/IDE event filtering (detailed in Methods), and privacy filters exclude non-authoring periods by design. This supports the reliability of the case study improvements. revision: yes

  2. Referee: [Case Studies] Case studies (three highlighted examples): the 14%, 33%, and >50% DAT reductions are presented without error bars, statistical significance tests, or explicit baseline comparisons, leaving open whether the differences exceed measurement variability.

    Authors: The reported reductions are from before-and-after comparisons using the same DAT telemetry in production at Meta, with baselines defined as pre-intervention periods on the same projects. We acknowledge the absence of formal error bars or p-values in the summaries. These are observational deployments rather than controlled A/B tests with per-developer variance data. We will revise the case study section to include available descriptive statistics on DAT variability (e.g., standard deviations from telemetry) and note that observed changes exceed typical session-to-session fluctuations. Full individual-level error bars are limited by internal data policies, but the consistency across 20+ projects provides supporting evidence. revision: partial

Circularity Check

0 steps flagged

No significant circularity; DAT is a first-principles telemetry metric applied to independent case data

full rationale

The paper defines DAT directly from integrated telemetry (VCS/IDE/OS) and reports percentage changes in that metric across new experiments and projects. These changes are observational outcomes, not reductions to fitted parameters, self-citations, or definitional tautologies. No load-bearing self-citation chains, ansatzes smuggled via prior work, or uniqueness theorems appear in the abstract or described derivation. The central claims rest on the telemetry definition and external validation studies rather than internal equivalence to inputs.

Axiom & Free-Parameter Ledger

0 free parameters · 1 axioms · 1 invented entities

The central claim rests on the new definition of DAT as an accurate authoring-time measure and on the assumption that the three reported improvements reflect genuine productivity changes attributable to the interventions. The paper adds the metric definition and the internal case-study results; everything else is drawn from standard software engineering measurement practices.

axioms (1)
  • domain assumption Telemetry collected from version control, IDE, and OS accurately reflects authoring time without material bias from privacy safeguards or untracked activities.
    Invoked when the abstract states that DAT assesses how long engineers take to develop changes using the integrated telemetry system.
invented entities (1)
  • Diff Authoring Time (DAT) no independent evidence
    purpose: Time-based measure of developer productivity for enabling rigorous experiments
    Newly defined metric introduced in the paper; no independent evidence outside the authors' internal studies is provided.

pith-pipeline@v0.9.0 · 5765 in / 1428 out tokens · 42772 ms · 2026-05-23T00:48:54.699038+00:00 · methodology

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.

Lean theorems connected to this paper

Citations machine-checked in the Pith Canon. Every link opens the source theorem in the public Lean library.

What do these tags mean?
matches
The paper's claim is directly supported by a theorem in the formal canon.
supports
The theorem supports part of the paper's argument, but the paper may add assumptions or extra steps.
extends
The paper goes beyond the formal theorem; the theorem is a base layer rather than the whole result.
uses
The paper appears to rely on the theorem as machinery.
contradicts
The paper's claim conflicts with a theorem or certificate in the canon.
unclear
Pith found a possible connection, but the passage is too broad, indirect, or ambiguous to say the theorem truly supports the claim.

Reference graph

Works this paper leans on

58 extracted references · 58 canonical work pages · 1 internal anchor

  1. [1]

    Moritz Beller, Georgios Gousios, Annibale Panichella, Sebastian Proksch, Sven Amann, and Andy Zaidman. 2017. Developer testing in the ide: Patterns, beliefs, and behavior. IEEE Transactions on Software Engineering 45, 3 (2017), 261–284

  2. [2]

    Moritz Beller, Hongyu Li, Vivek Nair, Vijayaraghavan Murali, Imad Ahmad, Jürgen Cito, Drew Carlson, Ari Aye, and Wes Dyer. 2023. Learning to learn to predict performance regressions in production at meta. In 2023 IEEE/ACM International Conference on Automation of Software Test (AST) . IEEE, 56–67

  3. [3]

    Moritz Beller, Vince Orgovan, Spencer Buja, and Thomas Zimmermann. 2020. Mind the gap: on the relationship between automatically measured and self- reported productivity. IEEE Software 38, 5 (2020), 24–31

  4. [4]

    Pamela Bhattacharya and Iulian Neamtiu. 2011. Assessing programming language impact on development and maintenance: A study on C and C++. In Proceedings of the 33rd International Conference on Software Engineering . 171–180

  5. [5]

    Frederick P Brooks. 1974. The mythical man-month. Datamation 20, 12 (1974), 44–52

  6. [6]

    Jeffrey Carver, Letizia Jaccheri, Sandro Morasca, and Forrest Shull. 2004. Issues in using students in empirical studies in software engineering education. In Proceedings. 5th international workshop on enterprise networking and computing in healthcare industry (IEEE Cat. No. 03EX717) . IEEE, 239–249

  7. [7]

    Joseph P Cavano and James A McCall. 1978. A framework for the measurement of software quality. In Proceedings of the software quality assurance workshop on Functional and performance issues . 133–139

  8. [8]

    Michael Bolin Durham Goode. 2022. Sapling: Source control that’s user-friendly and scalable. https://engineering.fb.com/2022/11/15/open-source/sapling-source- control-scalable/. Accessed October 10, 2024

  9. [9]

    Stefan Endrikat, Stefan Hanenberg, Romain Robbes, and Andreas Stefik. 2014. How do api documentation and static typing affect api usability?. In Proceedings of the 36th International Conference on Software Engineering . 632–642

  10. [10]

    Facebook Inc. 2013. Initial public release – facebook/react v0.3.0. https://github. com/facebook/react/releases/tag/v0.3.0. Accessed September 30, 2024

  11. [11]

    Rodrigo Fernandez, Ilke Adriaans, Tobias J Klinge, and Reijer Hendrikse. 2020. The financialisation of big tech. SOMO (Stichting Onderzoek Multinationale Ondernemingen) 1, 1 (2020), 12–21

  12. [12]

    Karen Fitzner and Elizabeth Heckinger. 2010. Sample size calculation and power analysis: a quick review. The Diabetes Educator 36, 5 (2010), 701–707

  13. [13]

    Nicole Forsgren, Eirini Kalliamvakou, Abi Noda, Michaela Greiler, Brian Houck, and Margaret-Anne Storey. 2024. DevEx in Action. Commun. ACM 67, 6 (2024), 42–51

  14. [14]

    Nicole Forsgren, Margaret-Anne Storey, Chandra Maddila, Thomas Zimmermann, Brian Houck, and Jenna Butler. 2021. The SPACE of Developer Productivity: There’s more to it than you think. Queue 19, 1 (March 2021), 20–48. doi:10.1145/ 3454122.3454124

  15. [15]

    Cory Gackenheimer. 2015. Introduction to React. Apress

  16. [16]

    Zheng Gao, Christian Bird, and Earl T Barr. 2017. To type or not to type: quantify- ing detectable bugs in JavaScript. In 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE) . IEEE, 758–769

  17. [17]

    Durham Goode and Siddarth P Agarwal. 2014. Scaling mercurial at Facebook. Retrieved Jan 25 (2014), 2019. https://engineering.fb.com/2014/01/07/core-infra/ scaling-mercurial-at-facebook/. Accessed September 20, 2024

  18. [18]

    Goodui.org. 2020. Airbnb A/B Tests And Discovers That A Higher Button Position Is Better. (2020). https://goodui.org/leaks/airbnb-a-b-tests-and-discovers-that- a-higher-button-position-is-better/

  19. [19]

    Georgios Gousios, Martin Pinzger, and Arie van Deursen. 2014. An exploratory study of the pull-based software development model. In Proceedings of the 36th international conference on software engineering . 345–355

  20. [20]

    Stefan Haefliger, Georg Von Krogh, and Sebastian Spaeth. 2008. Code reuse in open source software. Management science 54, 1 (2008), 180–193

  21. [21]

    Stefan Hanenberg. 2010. An experiment about static and dynamic type systems: Doubts about the positive impact of static type systems on development time. In Proceedings of the ACM international conference on Object oriented programming systems languages and applications . 22–35

  22. [22]

    Ahmed E Hassan, Gustavo A Oliva, Dayi Lin, Boyuan Chen, Zhen Ming, et al

  23. [23]

    Rethinking software engineering in the foundation model era: From task-driven ai copilots to goal-driven ai pair programmers,

    Rethinking Software Engineering in the Foundation Model Era: From Task-Driven AI Copilots to Goal-Driven AI Pair Programmers. arXiv preprint arXiv:2404.10225 (2024)

  24. [24]

    Magnus Hedlund. 2021. Welcome to the Engineering@Microsoft Blog. https://devblogs.microsoft.com/engineering-at-microsoft/welcome-to-the- engineering-at-microsoft-blog/. Accessed September 24, 2024

  25. [25]

    Hennie Huijgens and Rini van Solingen. 2014. A replicated study on correlating agile team velocity measured in function and story points. In Proceedings of the 5th International Workshop on Emerging Trends in Software Metrics . 30–36

  26. [26]

    Ciera Jaspan and Caitlin Sadowski. 2019. No single metric captures productivity. Rethinking Productivity in Software Engineering (2019), 13–20

  27. [27]

    Linda C Jones and David A Nelson. 1976. A quantitative assessment of IBM’s pro- gramming productivity techniques. In Proceedings of the 13th Design Automation Conference. 344–353

  28. [28]

    Brian Karrer, Liang Shi, Monica Bhole, Matt Goldman, Tyrone Palmer, Charlie Gelman, Mikael Konutgan, and Feng Sun. 2021. Network experimentation at scale. In Proceedings of the 27th acm sigkdd conference on knowledge discovery & data mining. 3106–3116

  29. [29]

    Mansi Khemka and Brian Houck. 2024. Toward Effective AI Support for Devel- opers: A survey of desires and concerns. Queue 22, 3 (2024), 53–78

  30. [30]

    Barbara Kitchenham. 1997. Counterpoint: the problem with function points.IEEE software 14, 2 (1997), 29

  31. [31]

    Sebastian Kleinschmager, Romain Robbes, Andreas Stefik, Stefan Hanenberg, and Eric Tanter. 2012. Do static type systems improve the maintainability of software systems? An empirical study. In 2012 20th IEEE International Conference on Program Comprehension (ICPC) . IEEE, 153–162

  32. [32]

    Amy J Ko. 2019. Why we should not measure productivity.Rethinking Productivity in Software Engineering (2019), 21–26

  33. [33]

    Iring Koch, Edita Poljac, Hermann Müller, and Andrea Kiesel. 2018. Cognitive structure, flexibility, and plasticity in human multitasking—An integrative review of dual-task and task-switching research. Psychological bulletin 144, 6 (2018), 557

  34. [34]

    Ronny Kohavi, Thomas Crook, Roger Longbotham, Brian Frasca, Randy Henne, Juan Lavista Ferres, and Tamir Melamed. 2009. Online experimentation at Mi- crosoft. Data Mining Case Studies 11, 2009 (2009), 39

  35. [35]

    Paul Krill. 2023. Eclipse Java downloads skyrocket. https://www.infoworld.com/ article/2338161/eclipse-java-downloads-skyrocket.html

  36. [36]

    Gunnar Kudrjavets, Aditya Kumar, Nachiappan Nagappan, and Ayushi Rastogi

  37. [37]

    In Proceedings of the 19th International Conference on Mining Software Repositories

    Mining code review data to understand waiting times between acceptance and merging: An empirical analysis. In Proceedings of the 19th International Conference on Mining Software Repositories . 579–590

  38. [38]

    Vihtori Mäntylä, Bettina Lehtelä, and Fabian Fagerholm. 2022. The Viability of Continuous Experimentation in Early-Stage Software Startups: A Descriptive Multiple-Case Study. In International Conference on Product-Focused Software Process Improvement. Springer, 141–156

  39. [39]

    Jim Manzi. 2012. Uncontrolled: The surprising payoff of trial-and-error for business, politics, and society. Soft Skull Press

  40. [40]

    Joel Marcey. 2019. Facebook and Microsoft Partnering on Remote Devel- opment. https://developers.facebook.com/blog/post/2019/11/19/facebook- microsoft-partnering-remote-development/. Accessed September 20, 2024

  41. [41]

    Jorge Melegati, Henry Edison, and Xiaofeng Wang. 2020. XPro: a model to explain the limited adoption and implementation of experimentation in software startups. IEEE Transactions on Software Engineering 48, 6 (2020), 1929–1946

  42. [42]

    Roberto Meli. 2001. Measuring change requests to support effective project management practices. In ESCOM Conference, Vol. 25. Citeseer, 10

  43. [43]

    André N Meyer, Thomas Zimmermann, and Thomas Fritz. 2017. Characterizing software developers by perceptions of productivity. In 2017 ACM/IEEE Interna- tional Symposium on Empirical Software Engineering and Measurement (ESEM) . IEEE, 105–110

  44. [44]

    Audris Mockus. 2007. Large-scale code reuse in open source software. In First International Workshop on Emerging Trends in FLOSS Research and Development (FLOSS’07: ICSE Workshops 2007). IEEE, 7–7. What is Diff Authoring Time? FSE’25, June 23rd-27th, 2025, Trondheim, NG

  45. [45]

    Vijayaraghavan Murali, Chandra Maddila, Imad Ahmad, Michael Bolin, Daniel Cheng, Negar Ghorbani, Renuka Fernandez, Nachiappan Nagappan, and Peter C Rigby. 2024. AI-assisted Code Authoring at Scale: Fine-tuning, deploying, and mixed methods evaluation. Proceedings of the ACM on Software Engineering 1, FSE (2024), 1066–1085

  46. [46]

    Emerson Murphy-Hill, Ciera Jaspan, Caitlin Sadowski, David Shepherd, Michael Phillips, Collin Winter, Andrea Knight, Edward Smith, and Matthew Jorde. 2019. What predicts software developers’ productivity? IEEE Transactions on Software Engineering 47, 3 (2019), 582–594

  47. [47]

    Abi Noda, Laura Tacho, Margaret-Anne Storey, Michaela Greiler, and Nicole Fors- gren. 2024. Measuring developer productivity with the DX Core 4. (2024). https: //getdx.com/research/measuring-developer-productivity-with-the-dx-core-4/

  48. [48]

    Guilherme Ottoni. 2018. HHVM JIT: a profile-guided, region-based compiler for PHP and Hack. In Proceedings of the 39th ACM SIGPLAN Conference on Pro- gramming Language Design and Implementation (PLDI 2018) . Association for Computing Machinery, 151–165

  49. [49]

    Kai Petersen. 2011. Measuring and predicting software productivity: A systematic map and review. Information and Software Technology 53, 4 (2011), 317–343

  50. [50]

    Dag IK Sjøberg, Jo Erskine Hannay, Ove Hansen, Vigdis By Kampenes, Amela Karahasanovic, N-K Liborg, and Anette C Rekdal. 2005. A survey of controlled experiments in software engineering. IEEE transactions on software engineering 31, 9 (2005), 733–753

  51. [51]

    L Melissa Skaugset, Susan Farrell, Michele Carney, Margaret Wolff, Sally A Santen, Marcia Perry, and Stephen John Cico. 2016. Can you multitask? Evidence and limitations of task switching and multitasking in emergency medicine. Annals of emergency medicine 68, 2 (2016), 189–195

  52. [52]

    Davide Spadini, Maurício Aniche, Magiel Bruntink, and Alberto Bacchelli. 2017. To mock or not to mock? an empirical study on mocking practices. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR) . IEEE, 402–412

  53. [53]

    Klaas-Jan Stol and Brian Fitzgerald. 2018. The ABC of software engineering research. ACM Transactions on Software Engineering and Methodology (TOSEM) 27, 3 (2018), 1–51

  54. [54]

    Andreas Stuchlik and Stefan Hanenberg. 2011. Static vs. dynamic type systems: An empirical study about the relationship between type casts and development time. In Proceedings of the 7th symposium on Dynamic languages . 97–106

  55. [55]

    Charles R. Symons. 1988. Function point analysis: difficulties and improvements. IEEE transactions on software engineering 14, 1 (1988), 2–11

  56. [56]

    Diane Tang, Ashish Agarwal, Deirdre O’Brien, and Mike Meyer. 2010. Overlap- ping experiment infrastructure: More, better, faster experimentation. In Proceed- ings of the 16th ACM SIGKDD international conference on Knowledge discovery and data mining. 17–26

  57. [57]

    Hugo Touvron, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothée Lacroix, Baptiste Rozière, Naman Goyal, Eric Hambro, Faisal Azhar, et al. 2023. Llama: Open and efficient foundation language models. arXiv preprint arXiv:2302.13971 (2023)

  58. [58]

    Wikipedia. 2024. Wasserstein metric. https://en.wikipedia.org/wiki/Wasserstein_ metric. Accessed September 30, 2024