Impact Calculator | GiveWell                    jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"gw_basic","theme_token":"Mb9rgmdayywkuzRc_5kscLgCVaX9p3BO_9h9dQ-p4YU","js":{"https:\/\/web.archive.org.\/web\/20210921201052\/https:\/\/unpkg.com\/@popperjs\/core@2":1,"https:\/\/web.archive.org.\/web\/20210921201052\/https:\/\/unpkg.com\/tippy.js@6":1,"public:\/\/google_tag\/google_tag.script.js":1,"sites\/all\/modules\/contrib\/jquery_update\/replace\/jquery\/1.10\/jquery.min.js":1,"misc\/jquery-extend-3.4.0.js":1,"misc\/jquery-html-prefilter-3.5.0-backport.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"sites\/all\/modules\/contrib\/jquery_update\/replace\/ui\/ui\/minified\/jquery.ui.core.min.js":1,"sites\/all\/modules\/contrib\/jquery_update\/replace\/ui\/ui\/minified\/jquery.ui.widget.min.js":1,"sites\/all\/modules\/contrib\/eu-cookie-compliance\/js\/jquery.cookie-1.4.1.min.js":1,"sites\/all\/modules\/contrib\/jquery_update\/replace\/ui\/ui\/minified\/jquery.ui.accordion.min.js":1,"misc\/form.js":1,"sites\/all\/modules\/contrib\/resp_img\/resp_img.js":1,"sites\/all\/modules\/custom\/givewell_add_querystring\/js\/givewell_add_querystring.js":1,"sites\/all\/modules\/custom\/givewell_donation_block\/js\/givewell_impact_block.js":1,"sites\/all\/themes\/gw_basic\/scripts\/lib\/modernizr.custom.74085.js":1,"sites\/all\/themes\/gw_basic\/scripts\/lib\/mean-menu\/jquery.meanmenu.min.js":1,"sites\/all\/themes\/gw_basic\/scripts\/lib\/jquery-migrate-1.0.0.js":1,"sites\/all\/themes\/gw_basic\/scripts\/lib\/jquery-validation\/dist\/jquery.validate.min.js":1,"sites\/all\/themes\/gw_basic\/scripts\/lib\/multiselect\/jquery.multiselect.min.js":1,"sites\/all\/themes\/gw_basic\/scripts\/lib\/dropkick.js":1,"sites\/all\/themes\/gw_basic\/scripts\/lib\/jquery.pep.js":1,"sites\/all\/themes\/gw_basic\/scripts\/main.js":1},"css":{"modules\/system\/system.base.css":1,"modules\/system\/system.menus.css":1,"modules\/system\/system.messages.css":1,"modules\/system\/system.theme.css":1,"misc\/ui\/jquery.ui.core.css":1,"misc\/ui\/jquery.ui.theme.css":1,"misc\/ui\/jquery.ui.accordion.css":1,"modules\/aggregator\/aggregator.css":1,"modules\/comment\/comment.css":1,"modules\/field\/theme\/field.css":1,"sites\/all\/modules\/contrib\/footnotes\/footnotes.css":1,"modules\/node\/node.css":1,"modules\/search\/search.css":1,"modules\/user\/user.css":1,"sites\/all\/modules\/contrib\/views\/css\/views.css":1,"sites\/all\/modules\/contrib\/ckeditor\/css\/ckeditor.css":1,"sites\/all\/modules\/contrib\/ctools\/css\/ctools.css":1,"sites\/all\/modules\/contrib\/taxonomy_access\/taxonomy_access.css":1,"sites\/all\/modules\/contrib\/content_type_extras\/css\/content_type_extras.css":1,"sites\/all\/modules\/contrib\/print\/print_ui\/css\/print_ui.theme.css":1,"sites\/all\/modules\/custom\/givewell_donation_block\/css\/givewell_impact_block.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/global\/normalize.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/global\/gw-fonts.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/global\/html.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/global\/global.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/global\/meanmenu.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/global\/page-layout.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/global\/html-colors.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/pages\/pages.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/pages\/new-home.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/pages\/new-top-charities.css":1,"sites\/all\/themes\/gw_basic\/styles\/sitesearch.css":1,"sites\/all\/themes\/gw_basic\/styles\/formstack.css":1,"sites\/all\/themes\/gw_basic\/styles\/custom.css":1,"sites\/all\/themes\/gw_basic\/styles\/eu_cookie_compliance.css":1,"sites\/all\/themes\/gw_basic\/styles\/css\/global\/admin.css":1}},"respImg":{"default_suffix":"","current_suffix":false,"forceRedirect":false,"forceResize":false,"reloadOnResize":false,"useDevicePixelRatio":false,"suffixes":{"":1}},"smart_ip":{"location":{"country_code":"US","country":"United States","region":"","region_code":"","city":"","zip":"","latitude":"","longitude":"","time_zone":"","is_eu_country":false,"continent":"NA","source":"smart_ip","ip_address":"3.236.13.53","timestamp":1632255052,"is_gdpr_country":false}},"smart_ip_src":{"smart_ip":"smart_ip","geocoded_smart_ip":"geocoded_smart_ip","w3c":"w3c"},"urlIsAjaxTrusted":{"\/impact-calculator":true},"givewell_donation_block":{"monthlyFrequency":"9swm"}});       Jump to Navigation          GiveWell        Top CharitiesOur Top Charities Giving 101 Impact Calculator  Maximum Impact Fund ResearchResearch Overview Research on Programs Cost-Effectiveness Analyses GiveWell Incubation Grants  Our Mistakes AboutAbout GiveWell Our People Information About Donating Frequently Asked Questions Values Official Records Jobs Contact Us Stay Updated  Blog Ways to GiveOverview of Giving Options Credit Card Check Bank Transfer Cryptocurrency Securities/Stock PayPal Wills and Bequests Donate a Vehicle Donor Advised Fund (DAF)           Enter search terms here.   This search returns results from both GiveWell's main site and from the GiveWell Blog. 

  Search form  Search             DonateDonate

            You are hereHome » Top Charities » Impact Calculator Impact Calculator                    Calculate your donation’s impact.Calculate yourdonation’s impact.  Last updated April 7, 2021$ Donation amount     Frequency    Monthly     One-Time      Charity    Choose a charity     Maximum Impact FundGrants to top charities (most popular choice)     Malaria ConsortiumMedicine to prevent malaria     Against Malaria FoundationNets to prevent malaria     Helen Keller InternationalSupplements to prevent vitamin A deficiency     New IncentivesIncentives for routine childhood immunizations     SCI FoundationTreatments for parasitic worm infections     Evidence ActionTreatments for parasitic worm infections     SightsaversTreatments for parasitic worm infections     The END FundTreatments for parasitic worm infections     GiveDirectlyCash transfers for extreme poverty     ▼ Why these 9 charities?

   Our Top Recommendation: The Maximum Impact Fund  Photo credit: Malaria Consortium/Sophie Garcia          If you'd like your donation to do the most good, consider giving to our Maximum Impact Fund. GiveWell takes no fees and uses our most up-to-date research to grant your gift to the charities where donations will help the most. 

 Find out more about the Maximum Impact Fund.   Why these 9 charities?

   Your estimated impact in one year

 How is this calculated?

   Total donated0 Nets provided*0 Approximate number of lives saved* Cost to save a life with this program*0  * Based on last quarter’s grants to the Against Malaria Foundation. Future grants may differ. See our granting history.  MAXIMUM IMPACT FUND OVERVIEW This is the best fit for donors who want to maximize their impact. We take zero fees and use our most up-to-date research to grant your gift where it will help the most.

 We typically grant this pool of funds to one or more of our recommended charities each quarter. Once we grant your donation, we’ll email you to let you know which charity or charities we selected and what we expect your donation will accomplish.

 Find out more about the Maximum Impact Fund. Learn more about how these results are calculated here.   Why these 9 charities?

   Your estimated impact in one year

 How is this calculated?

   Total donated0 Children given anti-malarial medicine 0 Approximate number of lives saved Cost to save a life with this program0   MALARIA CONSORTIUM (SEASONAL MALARIA CHEMOPREVENTION PROGRAM) OVERVIEW Malaria kills over 400,000 people annually, mostly children under 5 in sub-Saharan Africa.(1) Seasonal malaria chemoprevention is preventive medicine that saves children’s lives. It is given during the four months of the year when malaria infection rates are especially high.

 Find out more about the Malaria Consortium’s seasonal malaria chemoprevention program. Learn more about how these results are calculated here.   Why these 9 charities?

   Your estimated impact in one year

 How is this calculated?

   Total donated0 Nets provided0 Approximate number of lives saved Cost to save a life with this program0   AGAINST MALARIA FOUNDATION OVERVIEW Malaria kills over 400,000 people annually, mostly children under 5 in sub-Saharan Africa.(2) Nets save lives. Participants hang the nets and sleep under them so they are not bitten by malaria-carrying mosquitoes.

 Find out more about the Against Malaria Foundation. Learn more about how these results are calculated here.   Why these 9 charities?

   Your estimated impact in one year

 How is this calculated?

   Total donated0 Supplements delivered0 Approximate number of lives saved Cost to save a life with this program0   HELEN KELLER INTERNATIONAL'S VITAMIN A SUPPLEMENTATION PROGRAM OVERVIEW Vitamin A deficiency leaves children vulnerable to infections and can lead to death. We attribute  over 200,000 children's deaths to vitamin A deficiency each year.(3) This program saves lives by providing vitamin A supplements to children under 5 years old.

 Find out more about Helen Keller International’s vitamin A supplementation program. Learn more about how these results are calculated here.   Why these 9 charities?

   Your estimated impact in one year How is this calculated?

   Total donated0 Number of caregivers provided incentives to complete a baby’s immunization schedule0 Approximate number of lives saved Cost to save a life with this program0   NEW INCENTIVES OVERVIEW In Nigeria, 43% of infants did not receive all recommended childhood vaccines in 2019.(4) This program provides cash transfers to incentivize caregivers to bring babies to clinics for routine childhood vaccinations. It operates in North West Nigeria

 Find out more about New Incentives. Learn more about how these results are calculated here.  Why these 9 charities?

   Your estimated impact in one year How is this calculated?

   Total donated0 Children treated0 Approximate increase to this group’s lifetime earnings   SCI FOUNDATION OVERVIEW Hundreds of millions of people around the world are infected with parasitic worms.(5) This program provides children with medication that clears parasitic infections and may lead to a large increase in lifetime earnings. We recommend the program based on its small potential for a large impact on earnings.

 Find out more about the SCI Foundation. Learn more about how these results are calculated here.  Why these 9 charities?

   Your estimated impact in one year How is this calculated?

   Total donated0 Children treated0 Approximate increase to this group’s lifetime earnings   EVIDENCE ACTION'S DEWORM THE WORLD INITIATIVE OVERVIEW Hundreds of millions of people around the world are infected with parasitic worms.(6) This program provides children with medication that clears parasitic infections and may lead to a large increase in lifetime earnings. We recommend the program based on its small potential for a large impact on earnings.

 Find out more about Evidence Action's Deworm the World Initiative.. Learn more about how these results are calculated here.  Why these 9 charities?

   Your estimated impact in one year How is this calculated?

   Total donated0 Children treated0 Approximate increase to this group’s lifetime earnings   SIGHTSAVERS' DEWORMING PROGRAM OVERVIEW Hundreds of millions of people around the world are infected with parasitic worms.(7) This program provides children with medication that clears parasitic infections and may lead to a large increase in lifetime earnings. We recommend the program based on its small potential for a large impact on earnings.

 Find out more about the SightSavers' deworming program. Learn more about how these results are calculated here.  Why these 9 charities?

   Your estimated impact in one year How is this calculated?

   Total donated0 Children treated0 Approximate increase to this group’s lifetime earnings   THE END FUND'S DEWORMING PROGRAM OVERVIEW Hundreds of millions of people around the world are infected with parasitic worms.(8) This program provides children with medication that clears parasitic infections and may lead to a large increase in lifetime earnings. We recommend the program based on its small potential for a large impact on earnings.

 Find out more about the END Fund’s deworming program. Learn more about how these results are calculated here.  Why these 9 charities?

   Your estimated impact in one year How is this calculated?

   Total donated0 Cash transferred0   GiveDirectly Overview The majority of people in the world live on less than $3,700 per year.(9) This program gives cash to very poor families, mostly in Africa, to spend as they like. Many participants make investments in business and agricultural assets, housing, and education.

 Find out more about GiveDirectly. Learn more about how these results are calculated here.  "use strict"; var form = document.getElementById("givewell-donation-block-impact-form"); if (form) { form.reset(); } document.getElementById("edit-charities").addEventListener("input", function (e) { var form = document.getElementById("givewell-donation-block-impact-form"); var size = document.getElementsByName("size")[0]; function changeInput(e){ // Set up variables. var livesLowerEstimate = ""; var livesUpperEstimate = ""; var donationsLowerEstimate = ""; var donationsUpperEstimate = ""; var frequency = document.querySelector("input[name=frequency]:checked"); if (frequency.value ==="9swm" && size.value > 0) { var amount = parseFloat(size.value*12); } else { var amount = parseFloat(size.value); }var card = document.getElementsByClassName("default")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Set the total. .toLocaleString('en') adds the thousands separator as a comma. .toLocaleString(); adds the thousands separators as required by the user's browser locale. // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // Don't let the treatments fall below 1. if (amount/4.49 < 1 && amount > 0) { treatments.value = 1; } else { treatments.value = Math.floor(amount/4.49).toLocaleString(); } // Set the upper and lower estimates for lives saved and additional donations needed. livesLowerEstimate = Math.floor(amount/5000).toLocaleString(); livesUpperEstimate = Math.floor(amount/3000).toLocaleString(); donationsLowerEstimate = Math.ceil(3000/amount).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/amount).toLocaleString(); // Create display of ranges. if(amount >=5000 && livesLowerEstimate === livesUpperEstimate) { lives.value = livesLowerEstimate; } if(amount >=5000 && livesLowerEstimate !== livesUpperEstimate) { lives.value = livesLowerEstimate + '-' + livesUpperEstimate; } if(amount < 5000 && donationsLowerEstimate === donationsUpperEstimate) { donations.value = donationsLowerEstimate; } if(amount < 5000 && donationsLowerEstimate !== donationsUpperEstimate) { donations.value = donationsLowerEstimate + '-' + donationsUpperEstimate; }}; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } var card = document.getElementsByClassName("a2b1Y0000026SUG")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // Don't let the treatments fall below 1. if (amount/4.95 < 1 && amount > 0) { treatments.value = 0; } else { treatments.value = Math.floor(amount/4.95).toLocaleString(); } // Set the upper and lower estimates for lives saved and additional donations needed. livesLowerEstimate = Math.floor(amount/5000).toLocaleString(); livesUpperEstimate = Math.floor(amount/3000).toLocaleString(); donationsLowerEstimate = Math.ceil(3000/amount).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/amount).toLocaleString(); // Create display of ranges. if(amount >=5000 && livesLowerEstimate === livesUpperEstimate) { lives.value = livesLowerEstimate; } if(amount >=5000 && livesLowerEstimate !== livesUpperEstimate) { lives.value = livesLowerEstimate + '-' + livesUpperEstimate; } // if(amount < 5000 && donationsLowerEstimate === donationsUpperEstimate) { donations.value = donationsLowerEstimate; } // if(amount < 5000 && donationsLowerEstimate !== donationsUpperEstimate) { donations.value = donationsLowerEstimate + '-' + donationsUpperEstimate; } if(amount < 5000) { donationsLowerEstimate = Math.ceil(3000/1).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/1).toLocaleString(); } donations.value = '$'+donationsLowerEstimate + ' - $' + donationsUpperEstimate;}; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } var card = document.getElementsByClassName("a2b1Y0000026SUB")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // Don't let the treatments fall below 1. if (amount/6.59 < 1 && amount > 0) { treatments.value = 0; } else { treatments.value = Math.floor(amount/6.59).toLocaleString(); } // Set the upper and lower estimates for lives saved and additional donations needed. livesLowerEstimate = Math.floor(amount/5000).toLocaleString(); livesUpperEstimate = Math.floor(amount/3000).toLocaleString(); donationsLowerEstimate = Math.ceil(3000/amount).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/amount).toLocaleString(); // Create display of ranges. if(amount >=5000 && livesLowerEstimate === livesUpperEstimate) { lives.value = livesLowerEstimate; } if(amount >=5000 && livesLowerEstimate !== livesUpperEstimate) { lives.value = livesLowerEstimate + '-' + livesUpperEstimate; } // if(amount < 5000 && donationsLowerEstimate === donationsUpperEstimate) { donations.value = donationsLowerEstimate; } // if(amount < 5000 && donationsLowerEstimate !== donationsUpperEstimate) { donations.value = donationsLowerEstimate + '-' + donationsUpperEstimate; } if(amount < 5000) { donationsLowerEstimate = Math.ceil(3000/1).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/1).toLocaleString(); } donations.value = '$'+donationsLowerEstimate + ' - $' + donationsUpperEstimate;}; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } var card = document.getElementsByClassName("a2b1Y0000026SUQ")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // Don't let the treatments fall below 1. if (amount/4.95 < 1 && amount > 0) { treatments.value = 0; } else { treatments.value = Math.floor(amount/4.95).toLocaleString(); } // Set the upper and lower estimates for lives saved and additional donations needed. livesLowerEstimate = Math.floor(amount/5000).toLocaleString(); livesUpperEstimate = Math.floor(amount/3000).toLocaleString(); donationsLowerEstimate = Math.ceil(3000/amount).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/amount).toLocaleString(); // Create display of ranges. if(amount >=5000 && livesLowerEstimate === livesUpperEstimate) { lives.value = livesLowerEstimate; } if(amount >=5000 && livesLowerEstimate !== livesUpperEstimate) { lives.value = livesLowerEstimate + '-' + livesUpperEstimate; } // if(amount < 5000 && donationsLowerEstimate === donationsUpperEstimate) { donations.value = donationsLowerEstimate; } // if(amount < 5000 && donationsLowerEstimate !== donationsUpperEstimate) { donations.value = donationsLowerEstimate + '-' + donationsUpperEstimate; } if(amount < 5000) { donationsLowerEstimate = Math.ceil(3000/1).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/1).toLocaleString(); } donations.value = '$'+donationsLowerEstimate + ' - $' + donationsUpperEstimate;}; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } var card = document.getElementsByClassName("a2b1Y0000026SUa")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Set the total. .toLocaleString('en') adds the thousands separator as a comma. .toLocaleString(); adds the thousands separators as required by the user's browser locale. // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // Don't let the treatments fall below 1. if (amount/1.10 < 1 && amount > 0) { treatments.value = 0; } else { treatments.value = Math.floor(amount/1.10).toLocaleString(); } livesLowerEstimate = Math.floor(amount/5000).toLocaleString(); livesUpperEstimate = Math.floor(amount/3000).toLocaleString(); donationsLowerEstimate = Math.ceil(3000/amount).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/amount).toLocaleString(); // Create display of ranges. if(amount >=5000 && livesLowerEstimate === livesUpperEstimate) { lives.value = livesLowerEstimate; } if(amount >=5000 && livesLowerEstimate !== livesUpperEstimate) { lives.value = livesLowerEstimate + '-' + livesUpperEstimate; } // if(amount < 5000 && donationsLowerEstimate === donationsUpperEstimate) { donations.value = donationsLowerEstimate; } // if(amount < 5000 && donationsLowerEstimate !== donationsUpperEstimate) { donations.value = donationsLowerEstimate + '-' + donationsUpperEstimate; } if(amount < 5000) { donationsLowerEstimate = Math.ceil(3000/1).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/1).toLocaleString(); } donations.value = '$'+donationsLowerEstimate + ' - $' + donationsUpperEstimate;}; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } var card = document.getElementsByClassName("a2b1Y000002JGe0")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // Don't let the treatments fall below 1. if (amount/47 < 1 && amount > 0) { treatments.value = 0; } else { treatments.value = Math.floor(amount/47).toLocaleString(); } // Set the upper and lower estimates for lives saved and additional donations needed. livesLowerEstimate = Math.floor(amount/5000).toLocaleString(); livesUpperEstimate = Math.floor(amount/3000).toLocaleString(); donationsLowerEstimate = Math.ceil(3000/amount).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/amount).toLocaleString(); // Create display of ranges. if(amount >=5000 && livesLowerEstimate === livesUpperEstimate) { lives.value = livesLowerEstimate; } if(amount >=5000 && livesLowerEstimate !== livesUpperEstimate) { lives.value = livesLowerEstimate + '-' + livesUpperEstimate; } // if(amount < 5000 && donationsLowerEstimate === donationsUpperEstimate) { donations.value = donationsLowerEstimate; } // if(amount < 5000 && donationsLowerEstimate !== donationsUpperEstimate) { donations.value = donationsLowerEstimate + '-' + donationsUpperEstimate; } if(amount < 5000) { donationsLowerEstimate = Math.ceil(3000/1).toLocaleString(); donationsUpperEstimate = Math.ceil(5000/1).toLocaleString(); } donations.value = '$'+donationsLowerEstimate + ' - $' + donationsUpperEstimate;}; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } var card = document.getElementsByClassName("a2b1Y0000026SUf")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Set the total. .toLocaleString('en') adds the thousands separator as a comma. .toLocaleString(); adds the thousands separators as required by the user's browser locale. // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // Set the number of treatments. if (amount/0.97 < 1 && amount > 0) { treatments.value = 0; } else { treatments.value = Math.floor(amount/0.97).toLocaleString(); } // Set the earnings benefit. financials.value = '$' + Math.floor(amount*11).toLocaleString();}; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } var card = document.getElementsByClassName("a2b1Y0000026SUL")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Set the total. .toLocaleString('en') adds the thousands separator as a comma. .toLocaleString(); adds the thousands separators as required by the user's browser locale. // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // Set the number of treatments. if (amount/0.97 < 1 && amount > 0) { treatments.value = 0; } else { treatments.value = Math.floor(amount/0.97).toLocaleString(); } // Set the earnings benefit. financials.value = '$' + Math.floor(amount*11).toLocaleString();}; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } var card = document.getElementsByClassName("a2b1Y0000026SUk")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Set the total. .toLocaleString('en') adds the thousands separator as a comma. .toLocaleString(); adds the thousands separators as required by the user's browser locale. // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // Set the number of treatments. if (amount/0.97 < 1 && amount > 0) { treatments.value = 0; } else { treatments.value = Math.floor(amount/0.97).toLocaleString(); } // Set the earnings benefit. financials.value = '$' + Math.floor(amount*11).toLocaleString();}; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } var card = document.getElementsByClassName("a2b1Y0000026SUp")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // Set the number of treatments. if (amount/0.97 < 1 && amount > 0) { treatments.value = 0; } else { treatments.value = Math.floor(amount/0.97).toLocaleString(); } // Set the earnings benefit. financials.value = '$' + Math.floor(amount*11).toLocaleString();}; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } var card = document.getElementsByClassName("a2b1Y0000026SVi")[0]; if(card) { var total=card.querySelector("output[for=total]"); var treatments=card.querySelector("output[for=treatments]"); var financials=card.querySelector("output[for=financials]"); var lives=card.querySelector("output[for=lives]"); var donations=card.querySelector("output[for=donations]")}; if(lives) {lives.value = "";} if(donations) {donations.value = "";} if(total) { // Set the total. .toLocaleString('en') adds the thousands separator as a comma. .toLocaleString(); adds the thousands separators as required by the user's browser locale. // Do not apply .toLocaleString() direct to the amount variable as it would change the variable which we need for later use, and cause a bug. var formattedAmount = parseFloat(amount).toLocaleString(); total.value = '$' + formattedAmount; // For GiveDirectly the measure is cash to recipients. financials.value = '$' + Math.floor(amount*0.83).toLocaleString(); }; if(total && total.value.includes("NaN")) { total.value = "N\/A"; } if(total && lives && total.value.length == 0) { lives.value = "N\/A"; } if(total && donations && total.value.length == 0) { donations.value = "N\/A"; } if(treatments && treatments.value.includes("NaN")) { treatments.value = "N\/A"; } if(financials && financials.value.includes("NaN")) { financials.value = "N\/A"; } if(lives && lives.value.includes("NaN")) { lives.value = "N\/A"; } if(donations && (donations.value.includes("∞") || donations.value.includes("NaN") || donations.value <=0)) { donations.value = "N\/A"; } // Toggle visibility of lives saved and similar donations needed. if(parseFloat(livesLowerEstimate) >= 1) { var livesClasses = document.querySelectorAll(".lives"), i = 0, l = livesClasses.length; for (i; i < l; i++) { livesClasses[i].style.display = "block"; } var donationsClasses = document.querySelectorAll(".donations"), j = 0, m= donationsClasses.length; for (j; j < m; j++) { donationsClasses[j].style.display = "none"; } } else { var livesClasses = document.querySelectorAll(".lives"), i = 0, l = livesClasses.length; for (i; i < l; i++) { livesClasses[i].style.display = "none"; } var donationsClasses = document.querySelectorAll(".donations"), j = 0, m= donationsClasses.length; for (j; j < m; j++) { donationsClasses[j].style.display = "block"; } } } size.onkeyup = changeInput; form.onchange = changeInput; form.onload = changeInput; document.change = changeInput; });to the Maximum Impact Fundto the Malaria Consortiumto the Against Malaria Foundationto Helen Keller Internationalto New Incentivesto the SCI Foundationto Evidence Actionto SightSaversto the END Fundto GiveDirectly        GET THE LATEST NEWS ON EFFECTIVE CHARITIES Join our email newsletter for updates on our research and giving opportunities.

               Contact Stay updated FAQ For Charities Site map Privacy Policy Jobs       Follow Us: Facebook Twitter RSS   Subscribe to email updates:  GiveWell, aka The Clear Fund (a tax-exempt 501(c)(3) public charity), was founded in 2007. We serve donors across the globe; GiveWell's donors are based primarily in the United States, United Kingdom, Australia, Germany, and Canada. This work is licensed under a Creative Commons Attribution-Noncommercial-Share alike 3.0 United States License               (function($) { $(document).ready(function() { // const tippy = require('tippy.js').default; tippy('.tippy', { content: '[data-tippy-content]', followCursor: "true", placement: "bottom", }); }); window.addEventListener('scroll', () => { tippy.hideAll() }) })(jQuery);