Impact Calculator | GiveWell               (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0];var j=d.createElement(s);var dl=l!='dataLayer'?'&l='+l:'';j.type='text/javascript';j.src='https://web.archive.org./web/20210120200635/https://www.googletagmanager.com/gtm.js?id='+i+dl+'';j.async=true;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-MKLT9TL');     jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"gw_basic","theme_token":"EYU3CJW3Oc60ld6AJpHpNOU-3o3tmi7--ziJrtlItLo","js":{"https:\/\/web.archive.org.\/web\/20210120200635\/https:\/\/unpkg.com\/@popperjs\/core@2":1,"https:\/\/web.archive.org.\/web\/20210120200635\/https:\/\/unpkg.com\/tippy.js@6":1,"0":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\/jquery_update\/replace\/ui\/external\/jquery.cookie.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_js\/js\/intercom.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,"sites\/all\/modules\/contrib\/date\/date_api\/date.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\/css\/global\/admin.css":1}},"respImg":{"default_suffix":"","current_suffix":false,"forceRedirect":false,"forceResize":false,"reloadOnResize":false,"useDevicePixelRatio":false,"suffixes":{"":1}},"urlIsAjaxTrusted":{"\/impact-calculator":true},"givewell_donation_block":{"monthlyFrequency":"9swm"}});       Jump to Navigation             GiveWell        Giving EffectivelyGiving 101 Your Donation Can Change Someone's Life The Wrong Donation Can Accomplish Nothing Your Dollar Goes Further Overseas Your Dollar Goes Further When You Fund the Right Program Impact Calculator Quick Start Guide  How We WorkWho We Are Process Criteria Transparency Evaluations of GiveWell Research FAQ Core Competencies  Top CharitiesMalaria Consortium Against Malaria Foundation Helen Keller International SCI Foundation Sightsavers New Incentives Deworm the World Initiative The END Fund GiveDirectly Standout Charities  ResearchCharity Site Visits Notes from Research Conversations Intervention Reports Cost-Effectiveness Analyses Other Charity Reviews GiveWell Incubation Grants  Our Mistakes AboutAbout GiveWell Progress to Date Our Story Our People Official Records Reputation Impact Frequently Asked Questions Information About Donating Contact Us Jobs  UpdatesBlog RSS Feeds Stay Updated           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 » Giving Effectively » Giving 101 » Impact Calculator Impact Calculator                    Calculate your donation’s impact.Calculate yourdonation’s impact.  Last updated November 19, 2020$ 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 Children given anti-malarial medicine*0 Approximate number of lives saved* Approximate number of same-sized donations to this charity to save a life*0  * Based on last quarter’s grants to Malaria Consortium's Seasonal Malaria Chemoprevention Program. 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.   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 Approximate number of same-sized donations to this charity to save a life0   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.   Why these 9 charities?

   Your estimated impact in one year

 How is this calculated?

   Total donated0 Nets provided0 Approximate number of lives saved Approximate number of same-sized donations to this charity to save a life0   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.   Why these 9 charities?

   Your estimated impact in one year

 How is this calculated?

   Total donated0 Supplements delivered0 Approximate number of lives saved Approximate number of same-sized donations to this charity to save a life0   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.   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 Approximate number of same-sized donations to this charity to save a life0   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.  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.  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..  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.  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.  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.  "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) { // 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/6.59 < 1 && amount > 0) { treatments.value = 0; } else { treatments.value = Math.floor(amount/6.59).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(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(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(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(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(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              try { clicky.init(78566); }catch(e){} 

     window.intercomSettings = { "app_id": "you5eu27" };   (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);