☀️
Innovations in CoEfAs (e.g., GiveWell)
  • Cost-Effect-Analysis: Quant. uncertainty, transparent, customize
  • Organization and introduction
    • Using this resource
    • Key writings and resources
    • Who is involved?
    • Opportunities to contribute to this project
  • Innovations and issues
    • Limitations of GiveWell
      • (Possible errors and misunderstandings: examples from GW and beyond)
    • Incorporating uncertainty
    • (User-input, sensitivity checks)
    • (Type checking and code)
  • Tools and examples
    • Givewell models in explained maths
    • Squiggle
    • Causal.app
      • Causal/Givewell -- working examples (in progress)
    • Guesstimate
    • Pedant
    • hesim and other R package
    • cole_haus modeling
    • Other examples (MC/Fermi)
  • GiveWell model (and extensions)
    • Code representations of GW models
Powered by GitBook
On this page
  1. Tools and examples

Pedant

This tool is funded by XXX. Sam has done much of the writing and example-generation for GiveWell models

PreviousGuesstimateNexthesim and other R package

Last updated 3 years ago

Pedant is a math language designed to write CEAs in, written by Sam Nolan under an EA Infrastructure grant. The language is very much in it's early stages and is still under active development. Details about the language are best found in the EA Forum Post, the documentation and the examples folder in the GitHub repo.

Pedant is a minimal math DSL. It's originally designed for use in cost effectiveness analysis. However, it can be used for any important calculations.

The goal of pedant is to make sure that it's difficult or impossible to make math and stats errors, and also allow for the full enumeration of the assumptions used for a calculation. Currently, its only feature is dimensional analysis, but I'm planning to add stats and constraints on stats in the future.

Pedant replicates GiveWell's analysis, e.g., for AMF:

'units' are specified up top

unit usd people nets

Vectors are specified -- for alternative scenarios?

percent_of_population_under_5 = 
  [ 13629465.1519444 / 87670443.7766788
  , 2143394.87689442 / 12643148.9336671
  , 1114855.20710404 / 7921526.58517355
  , 7089749.81596238 / 41117856.2413241
  , 33521637.830718 / 214823785.7115 
  ]

And lots of simple functions:

total_adjustment_monitoring = risk_misappropriation_without_monitoring + risk_false_monitoring_results

total_downside_adjustment = 1 - total_adjustment_monitoring - total_waste_risk

total_units_of_value_generated_after_downside = total_downside_adjustment * total_units_of_value

I guess these functions will be checked for whether the units agree? but I'm not sure where the units are connected to the variables

(Type checking and code)
LogoPedant, a type checker for Cost Effectiveness Analysis - EA Forum
EA Forum post for Pedant
Pedant Documentation
Documetation for Pedant
Pedant Documentation
Logopedant/amf.ped at main · Hazelfire/pedantGitHub