Lead Service Line Inventory and Replacement Program
U.S. EPA requires water systems to replace lead, galvanized, or unknown service lines under federal law. The law requires community water systems to identify and map areas of their distribution systems that are known or...
77
match
DeadlineRollingLocationOhioTypeloanLevelStateOpen
✦ AI Summary
Who can apply: State-level applicants (see eligibility for details).
Deadline: Rolling — applications accepted any time.
The “key facts” mode pulls structured fields directly from the official source posting (amount, deadline, eligibility tags). The AI mode adds a short plain-English narrative on top, generated from the same source. Always verify with the agency before applying.
AI-generated. Always verify with the official source.
Deadline
Rolling
About this opportunity
U.S. EPA requires water systems to replace lead, galvanized, or unknown service lines under federal law. The law requires community water systems to identify and map areas of their distribution systems that are known or likely to contain lead service lines. Starting in 2027, systems with lead or galvanized lines needing replacement or unknown service lines must submit this information annually. Since 2018, Ohio’s Water Supply Revolving Loan Account (WSRLA) program has incentivized lead service line replacement with 0% interest loans and principal forgiveness funding. Eligible projects include, but are not limited to: Complete removal of lead service lines (public and privately owned portion) or service lines made of galvanized iron or galvanized steel Removal and replacement of lead or galvanized goosenecks, pigtails, and connectors Replacement of curb stops, curb stop boxes, and other service line appurtenances Site restoration, including landscaping, sidewalks, driveways, etc. Permit fees if the fees are normal, required, and specific to the lead service line replacement Temporary pitcher filters or point-of-use (POU) devices Lead service line inventory development or updates Planning and design for LSLR projects Non-routine lead sampling Funding opportunities are available through the Drinking Water Assistance Fund . Water Supply Revolving Loan Account Components > Site Builder > Global Components > IOP Desktop > Header > Head Injected Desktop Core --> $(document).ready(function() { try { $('#aw-header-navigation').find('ul.dropdown-menu').html(''); } catch (error) { console.error(error); } }); if (!String.prototype.startsWith) { String.prototype.startsWith = function(search, pos) { return this.substr(!pos || pos >> 0; // 3. If IsCallable(predicate) is false, throw a TypeError exception. if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); } // 4. If thisArg was supplied, let T be thisArg; else let T be undefined. var thisArg = arguments[1]; // 5. Let k be 0. var k = 0; // 6. Repeat, while k >> 0; // 3. If IsCallable(predicate) is false, throw a TypeError exception. if (typeof predicate !== 'function') { throw new TypeError('predicate must be a function'); } // 4. If thisArg was supplied, let T be thisArg; else let T be undefined. var thisArg = arguments[1]; // 5. Let k be 0. var k = 0; // 6. Repeat, while k >> 0; // 4. If isCallable(callback) is false, throw a TypeError exception. // See: http://es5.github.com/#x9.11 if (typeof callback !== 'function') { throw new TypeError(callback + ' is not a function'); } // 5. If thisArg was supplied, let T be thisArg; else let // T be undefined. if (arguments.length > 1) { T = arguments[1]; } // 6. Let k be 0. k = 0; // 7. Repeat while k >> 0; // 3. If len is 0, return false. if (len === 0) { return false; } // 4. Let n be ? ToInteger(fromIndex). // (If fromIndex is undefined, this step produces the value 0.) var n = fromIndex | 0; // 5. If n ≥ 0, then // a. Let k be n. // 6. Else n = 0 ? n : len - Math.abs(n), 0); function sameValueZero(x, y) { return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y)); } // 7. Repeat, while k >> 0, res = new Array(len), // preallocate array t = this, c = 0, i = -1; if (thisArg === undefined) while (++i !== len) // checks to see if the key was set if (i in this) if (func(t[i], i, t)) res[c++] = t[i]; else while (++i !== len) // checks to see if the key was set if (i in this) if (func.call(thisArg, t[i], i, t)) res[c++] = t[i]; res.length = c; // shrink down array to proper size return res; }; // Production steps of ECMA-262, Edition 5, 15.4.4.19 // Reference: http://es5.github.io/#x15.4.4.19 if (!Array.prototype.map) { Array.prototype.map = function(callback/*, thisArg*/) { var T, A, k; if (this == null) { throw new TypeError('this is null or not defined'); } // 1. Let O be the result of calling ToObject passing the |this| // value as the argument. var O = Object(this); // 2. Let lenValue be the result of calling the Get internal // method of O with the argument "length". // 3. Let len be ToUint32(lenValue). var len = O.length >>> 0; // 4. If IsCallable(callback) is false, throw a TypeError exception. // See: http://es5.github.com/#x9.11 if (typeof callback !== 'function') { throw new TypeError(callback + ' is not a function'); } // 5. If thisArg was supplied, let T be thisArg; else let T be undefined. if (arguments.length > 1) { T = arguments[1]; } // 6. Let A be a new array created as if by the expression new Array(len) // where Array is the standard built-in constructor with that name and // len is the value of len. A = new Array(len); // 7. Let k be 0 k = 0; // 8. Repeat, while k var keysFullArray = JSON.parse($(' ').html(decodeURIComponent("{"ohio.gov":{"index":0,"value":"5370b119-457c-40f7-85eb-280317af5eca"},"agri.ohio.gov":{"index":1,"value":"7e056800-817b-4bd0-bcf3-647f8f05905b"},"analytics.ohio.gov":{"index":2,"value":"d488aba0-e3a7-468c-93b8-7a8b1d29fbd7"},"odx.ohio.gov":{"index":3,"value":"a0165ac5-29b3-4f9c-bcad-206abf931f0a"},"oh.id.ohio.gov":{"index":4,"value":"32daebd5-fad2-430b-b779-c21170a3aa81"},"govelect.ohio.gov":{"index":5,"value":"56fd6fa1-7e0c-4261-b70a-bfcc5665380c"},"odh.ohio.gov":{"index":6,"value":"370dc738-44e8-40a2-a812-c27f5171ced6"},"octf.ohio.gov":{"index":7,"value":"08a08db1-a2d6-496c-b2f8-461491df6054"},"fosterandadopt.jfs.ohio.gov":{"index":8,"value":"0943ab3e-f212-42d3-996e-899c9cb237e1"},"governor.ohio.gov":{"index":9,"value":"1790b277-2064-4842-8c12-c35fbe920e9e"},"publicsafety.ohio.gov":{"index":10,"value":"27a89cd3-32a4-4fe6-9d20-577f2227574f"},"serb.ohio.gov":{"index":11,"value":"a2cd9f26-f843-44e9-8770-b55622c698f0"},"cyber.ohio.gov":{"index":12,"value":"88a99d76-d7d9-4f48-98ef-0fe9d710f060"},"opportunityzones.ohio.gov":{"index":13,"value":"b045831b-76f2-411b-b3cf-ae3a517fb6b4"},"innovateohio.gov":{"index":14,"value":"22f94cd2-b0b4-4ded-8aa0-d3c2a3692518"},"topjobs.ohio.gov":{"index":15,"value":"da309d60-4ecf-401c-b28f-9da4b452407b"},"dodd.ohio.gov":{"index":16,"value":"b976e56e-e523-4684-87fc-88dbfe8caab2"},"opi.ohio.gov":{"index":17,"value":"f54c7a8e-0e68-4f42-84ae-63e65ba589a7"},"obm.ohio.gov":{"index":18,"value":"86219a05-3863-498e-9b3c-af07423ba6f7"},"workforce.ohio.gov":{"index":19,"value":"bee70928-81db-4d69-97a1-2cf4bb6da8bd"},"careers.ohio.gov":{"index":20,"value":"0bd7d12e-e161-4bef-922f-0aa3dead9c8c"},"recoveryohio.gov":{"index":21,"value":"769a2880-1293-4ff0-8d94-be63a2e9b3c8"},"firstlady.ohio.gov":{"index":22,"value":"a1b9f822-f424-4bed-a0c5-13ed1b0ac579"},"techcred.ohio.gov":{"index":23,"value":"b846d9e2-f85a-4988-bb5e-c9cd230b1db4"},"insurance.ohio.gov":{"index":24,"value":"abad73b3-dc9f-456b-a714-1b53961ac3c8"},"rail.ohio.gov":{"index":25,"value":"fdffe392-4d74-4ed2-a9f5-4b4289ee5f04"},"managedcare.medicaid.ohio.gov":{"index":26,"value":"db3079c6-360f-48b4-a293-79d0499736ce"},"uas.ohio.gov":{"index":27,"value":"b37d9831-87ac-4afa-85da-b40e07ac125d"},"ohiomitigationplan.ohio.gov":{"index":28,"value":"1bbe234d-47f0-43cb-80c0-c33c4eddad0f"},"drive.ohio.gov":{"index":29,"value":"275d53e5-5027-4084-8b43-505015bfa03d"},"otec.transportation.ohio.gov":{"index":30,"value":"08c93a74-51fb-4786-a8fe-051f5feae4d1"},"www.transportation.ohio.gov":{"index":31,"value":"4ac3b3c3-4844-49ce-8885-b4d16a587d45"},"pbr.ohio.gov":{"index":32,"value":"7c99ea6f-8b53-4bde-9b04-3da10a1c6621"},"ood.ohio.gov":{"index":33,"value":"1fc23ea1-e331-4ff2-b4c1-b72a6d5c0ae6"},"coronavirus.ohio.gov":{"index":34,"value":"83678b3c-2ddb-4689-b25e-d8ea4807a732"},"data-stg.ohio.gov":{"index":35,"value":"a784ee68-75ab-4786-bef7-2512d2056b8e"},"jobsearch.ohio.gov":{"index":36,"value":"decf2816-4a09-4b0b-b2b1-4a094de00554"},"boldbeginning.ohio.gov":{"index":37,"value":"3b276d87-3f3b-4fe7-b991-f3647a48ced9"},"aging.ohio.gov":{"index":38,"value":"52237f05-0400-4edb-933f-9706349f1fc4"},"beltss.ohio.gov":{"index":39,"value":"819489f1-afaa-4384-844b-121239cf8ebb"},"core.ohio.gov":{"index":40,"value":"ac25e9be-649b-4eec-bae7-cb32bb3d3fc9"},"ltc.ohio.gov":{"index":41,"value":"d91e6443-10c8-4bd1-bf0e-26962bda6084"},"dvs.ohio.gov":{"index":42,"value":"b0ab9dce-fffd-416f-8a46-4499b68ca185"},"tax.ohio.gov":{"index":43,"value":"85c2ccc8-e7d8-46d1-8af6-70291e0449a2"},"ohiodnr.gov":{"index":44,"value":"fa9b1788-7206-4e31-8075-8aa35a037bb6"},"elderjustice.aging.ohio.gov":{"index":45,"value":"684ee24e-7135-4f8c-ab10-844e4cf22307"},"cswmft.ohio.gov":{"index":46,"value":"04ee9884-590e-4855-a9f1-24db3a2d1d83"},"puco.ohio.gov":{"index":47,"value":"57b355a7-3b48-4498-a3a6-80dc54ebfa74"},"opsb.ohio.gov":{"index":48,"value":"1339d5b2-dd16-4d91-b6e9-ee19401d2127"},"dys.ohio.gov":{"index":49,"value":"0e107ffa-69ea-48e5-b480-a015c870400d"},"opd.ohio.gov":{"index":50,"value":"2a04224d-3482-4639-930f-01645ed43c55"},"trails.ohio.org":{"index":51,"value":"eea70cd4-c41d-4439-b8e1-7b5c3f2c9b79"},"roadtrips.ohio.org":{"index":52,"value":"534ef298-3bde-4571-8304-228e9fea0faf"},"ohio.org":{"index":53,"value":"198a2065-0b37-4340-be80-07336a8053ca"},"childrensinitiatives.ohio.gov":{"index":54,"value":"e95892b9-022f-447d-bd06-b32ea3d320f5"},"ohid.ohio.gov":{"index":55,"value":"673a2fac-494f-4812-a55e-1b91e87e6091"},"info.bwc.ohio.gov":{"index":56,"value":"5626ab9f-f277-47ac-aff8-76ead16fff4b"},"ioptest.odx.ohio.gov":{"index":57,"value":"faf770c1-3212-432e-b10b-892a70022663"},"osd.ohio.gov":{"index":58,"value":"bf56c8de-1802-4b43-a26e-a25bb366a19d"},"ossb.ohio.gov":{"index":59,"value":"c784bfd4-ed3b-44ff-9357-df77d6a57a9c"},"elc.ohio.gov":{"index":60,"value":"eaa604a2-2f02-4328-ac52-78e1ce5554da"},"motorcycle.ohio.gov":{"index":61,"value":"c7ed16af-ae0c-4683-98d0-59a026022fc7"},"data.ohio.gov":{"index":62,"value":"8407c8e1-c555-4811-81b1-86caa6ee0d21"},"iop.ohio.gov":{"index":63,"value":"84f1ecdf-5553-4149-9199-846781ef260e"},"ohioschoolsafetycenter.ohio.gov":{"index":64,"value":"00880dee-fea4-4177-b637-3fce44c7f0a5"},"autodealers.ohio.gov":{"index":65,"value":"ecb287df-a5ab-407f-b834-aee8f8cb23b7"},"lakeerie.ohio.gov":{"index":66,"value":"61f3be8c-62d4-4406-8042-abf7a1e209ee"},"vaccine.coronavirus.ohio.gov":{"index":67,"value":"24b90160-a58f-4e75-8575-3e6855f10572"},"ohiomeansjobs.ohio.gov":{"index":68,"value":"0da52333-bbd7-4e0e-91ae-c4f5b1a8201c"},"status.iop.ohio.gov":{"index":69,"value":"afdef07f-697d-421a-83e1-0e998d9849b8"},"takecharge.ohio.gov":{"index":70,"value":"16f2ffa0-4180-4238-a041-fdfa9011c39d"},"business.ohio.gov":{"index":71,"value":"5b279bbf-d3d3-4b03-9c74-0d0dcc8efdab"},"medicaid.ohio.gov":{"index":72,"value":"2be8992c-2b7d-4250-9a9b-24a7e5d31e3f"},"ochla.ohio.gov":{"index":73,"value":"6ed18ebf-3d76-4f8c-9384-a13b83dfb96f"},"com.ohio.gov":{"index":74,"value":"5abcd9dd-177b-4ce8-bc28-fbd04072a189"},"finder.ohio.gov":{"index":75,"value":"08d8bec3-15b0-4df7-9da8-e4536b1387c6"},"broadband.ohio.gov":{"index":76,"value":"aa994253-d426-4db0-87b9-25fd5f909244"},"chirobd.ohio.gov":{"index":77,"value":"8941a714-67b6-4775-9332-6af0c9cd8ff7"},"mha.ohio.gov":{"index":78,"value":"df9a0312-1413-4df7-8c00-808e3536681c"},"development.ohio.gov":{"index":79,"value":"61942797-41ef-47aa-b79b-30fd6e3abdaf"},"peps.ohio.gov":{"index":80,"value":"62347ce9-1d42-4da8-811f-e950b84b2051"},"acc.ohio.gov":{"index":81,"value":"b868fa43-10cd-4f52-a6c0-27f135d05971"},"cocll.ohio.gov":{"index":82,"value":"bc474c5c-be24-4f7b-a217-112121a87efc"},"epa.ohio.gov":{"index":83,"value":"197fcbed-85ad-4da7-a2b5-e59894566a7c"},"gateway.ohio.gov":{"index":84,"value":"63c026bb-522b-4077-ad43-acef879457a4"},"obp.ohio.gov":{"index":85,"value":"ae4a945d
Our specialists will check your eligibility, prepare the application, and walk you through every step — for free.
Create a free account →
Who can apply
U.S. EPA requires water systems to replace lead, galvanized, or unknown service lines under federal law. The law requires community water systems to identify and map areas of their distribution systems that are known or likely to contain lead service lines. Starting in 2027, systems with lead or galvanized lines needing replacement or unknown service lines must submit this information annually. Since 2018, Ohio’s Water Supply Revolving Loan Account (WSRLA) program has incentivized lead service line replacement with 0% interest loans and principal forgiveness funding. Eligible projects include, but are not limited to: Complete removal of lead service lines (public and privately owned portion) or service lines made of galvanized iron or galvanized steel Removal and replacement of lead or galvanized goosenecks, pigtails, and connectors Replacement of curb stops, curb stop boxes, and other service line appurtenances Site restoration, including landscaping, sidewalks, driveways, etc. Permit fees if the fees are normal, required, and specific to the lead service line replacement Temporary pitcher filters or point-of-use (POU) devices Lead service line inventory development or updates Planning and design for LSLR projects Non-routine lead sampling Funding opportunities are available through the Drinking Water Assistance Fund .
Geographic eligibility
Ohio
How to apply
We don't have application instructions on file yet — head straight to the official source.
Read the agency's eligibility checklist before you start — it's almost always shorter than the full NOFO and will tell you in 90 seconds whether to keep going.
Need help getting in touch with the right agency contact?
Create a free account and our specialists will guide you through the application end-to-end.