{"id":746,"date":"2026-03-22T23:05:57","date_gmt":"2026-03-22T23:05:57","guid":{"rendered":"https:\/\/fairfoodnetwork.org\/2025impact\/?page_id=746"},"modified":"2026-04-06T16:33:43","modified_gmt":"2026-04-06T16:33:43","slug":"main-page","status":"publish","type":"page","link":"https:\/\/fairfoodnetwork.org\/2025impact\/","title":{"rendered":"2025 Impact Report"},"content":{"rendered":"\n<h1>\n\t\t\t2025\t<\/h1>\n<h1>\n\t\t\tFair Food Network\t<\/h1>\n<h1>\n\t\t\tIMPACT REPORT\t<\/h1>\n<h2>\n\t\t\tA Message from CEO Kate Krauss\t<\/h2>\n\t<p>This past year unfolded against a backdrop of profound social, economic, and political uncertainty. Communities navigated rising costs, strained public systems, and deep divisions, often all at once. In the midst of this upheaval, food remains something we all depend on. It&#8217;s a shared foundation that connects families, farmers, retailers, and communities, especially when other systems fall short.<\/p>\n<p>Across our work this year, we saw how food can meet immediate needs while also strengthening the foundations communities rely on over time. Food supports health, sustains livelihoods, and keeps local economies moving, even when conditions are volatile. That&#8217;s why Fair Food Network continues to invest in food as both a near-term solution and a long-term strategy for resilience and opportunity.<\/p>\n<p>In 2025, your support helped move our mission forward in meaningful ways. Together, we helped more families access healthy food, strengthened local food businesses, and invested in a food and farm system better prepared to weather future disruptions. Time and again, we saw what&#8217;s possible when communities have the resources they need, from families filling their tables with fresh, local food to farmers and food entrepreneurs growing businesses that sustain local economies. Throughout this report, we&#8217;ll share a few stories that bring this impact to life.<\/p>\n<p>I will be stepping down from my role as CEO at the end of April 2026. It has been a privilege to serve alongside such dedicated partners, supporters, and staff. I&#8217;m thrilled that Holly Parker, our Chief Strategy &amp; Program Officer, will step into the role of CEO in May. Holly has been a vital leader in our organization for nine years, and she brings the vision, expertise, and commitment needed to build on nearly two decades of progress.<\/p>\n\t<p>With gratitude,<\/p>\n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/Kate_FFN-Website-Signature-Image-1.png\" alt=\"Kate_FFN Website Signature Image (1)\" height=\"250\" width=\"250\" title=\"Kate_FFN Website Signature Image (1)\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2022\/06\/Kate-Krauss-First-Name-signature-e1656015991287.png\" alt=\"Kate&#039;s signature\" height=\"98\" width=\"100\" title=\"Kate Krauss First Name signature\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n\tKate Krauss<br \/>\nCEO, Fair Food Network\n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/plugins\/bb-plugin\/img\/pixel.png\" alt=\"\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n<h2>\n\t\t\tA Message from CEO-Elect Holly Parker\t<\/h2>\n\t<p>I&#8217;m honored and excited to become CEO at Fair Food Network. I&#8217;m proud to have led program strategy at the organization for nearly a decade, and I look forward to creating more positive change through food alongside an incredible team and partners like you.<\/p>\n<p>The belief in the power of food for good has guided Fair Food Network since the beginning. Our work has shown what happens when local food is deeply connected to the communities it serves. Families are nourished by food grown in their region. Farmers and food businesses gain new opportunities. And more food dollars stay in local economies.<\/p>\n<p>When those connections are strong, the benefits ripple outward. People are healthier. Local businesses are more resilient. Communities are better prepared for whatever challenge comes next.<\/p>\n<p>Our new strategic vision will deepen our roots in Michigan while expanding our national influence. As we shaped this vision, we asked some fundamental questions about what&#8217;s possible when communities come first and when food is treated as essential infrastructure, not an afterthought.<\/p>\n<p>What if more of our food economy was local? What if families could fill their tables with food grown nearby, small and mid-sized farmers could thrive, and resilient local supply chains could carry us through the next disruption, and the one after that?<\/p>\n<p><strong>These questions are shaping our strategy and the work ahead. Answering them will take all of us.<\/strong><\/p>\n<p>Thank you for being part of this community and for helping us grow community health, wealth, and resilience through food.<\/p>\n\t<p>With appreciation,<\/p>\n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/Holly_FFN-Website-Signature-Image-1.png\" alt=\"Holly_FFN Website Signature Image (1)\" height=\"250\" width=\"250\" title=\"Holly_FFN Website Signature Image (1)\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/Holly-Parker_Signature.png\" alt=\"Holly Parker_Signature\" height=\"98\" width=\"100\" title=\"Holly Parker_Signature\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n\tHolly Parker<br \/>\nCEO-Elect, Fair Food Network\n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/plugins\/bb-plugin\/img\/pixel.png\" alt=\"\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n<h2>\n\t\t\tHealthy People, Thriving Economies, Resilient Food &#038; Agriculture\t<\/h2>\n\t<p>Across the US, communities are building something powerful. In the places people live, work, and eat, we see innovation, determination, and resilience shaping food systems that work better for everyone. From farms to markets to corner stores, the food system is showing up for people &#8211; and people are showing up for each other.<\/p>\n<p>&nbsp;<\/p>\n<p>At Fair Food Network, we support the building blocks that make local food systems possible: growers, retailers, food businesses, and the families they serve. Getting local food from farm to table takes a whole chain of partners, and we&#8217;re strengthening every link in that chain to make it fair and more effective. When communities choose local, they&#8217;re not just putting food on the table &#8211; they&#8217;re investing in jobs, farms, and businesses that build health and wealth in their own community.<\/p>\n<p>&nbsp;<\/p>\n<p>From rural towns to urban neighborhoods, that choice is reshaping communities across the country. Looking ahead, we&#8217;re shaping our next chapter around increasing access to healthy food and expanding demand for local food &#8211; so more communities can benefit from what&#8217;s already taking root. The momentum is real, and it&#8217;s being led by communities themselves.<\/p>\n<p>&nbsp;<\/p>\n<p>See how this work is taking root &#8211; and how communities are leading the way.<\/p>\n<h2>\n\t\t\tNutrition incentives\t<\/h2>\n\t<p>We are advancing our nutrition incentives work in Michigan every day, sharing what we learn with our partners to create similar positive change in communities nationwide.<\/p>\n\t<div class=\"postshortcode verticalscroll verticalscroll2 \"><div class=\"postshortcode--container\"> \n                    <div class=\"single-post\">\n                        <a data-filter=\"#634\" class=\"flyout_btn\">\n                            <div class=\"postshortcode--container-img\">\n                                <img class='wp-post-image' src='https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2024\/05\/FFN_DUFB_KSMO_PriceChopper-11-768x512.jpg' alt=''>                                <img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/6\/2023\/06\/page_corner_fold_green.svg\" class=\"featureimg-icon\"\/>                            <\/div>\n                            <div class=\"postshortcode--container-details\">\n                                <button class=\"single-post--title\">Double Up Bonus Bucks: Healthy Food in a Time of Crisis<\/button>\n                                <div><p>When SNAP benefits paused in November 2025, Fair Food Network helped provide an extra $40 to Double Up participants \u2014 no SNAP match required.<\/p>\n<\/div>\n                                <img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/6\/2023\/06\/Icon-ionic-md-arrow-down.svg\" alt=\"Learn More\"\/>                            <\/div>\n                        <\/a>\n                    <\/div>\n\n             \n                    <div class=\"single-post\">\n                        <a data-filter=\"#622\" class=\"flyout_btn\">\n                            <div class=\"postshortcode--container-img\">\n                                <img class='wp-post-image' src='https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2024\/05\/IMG_8829-Hub-2-768x614.jpg' alt=''>                                <img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/6\/2023\/06\/page_corner_fold_green.svg\" class=\"featureimg-icon\"\/>                            <\/div>\n                            <div class=\"postshortcode--container-details\">\n                                <button class=\"single-post--title\">Building Capacity for a More Resilient Field<\/button>\n                                <div><p>Helping GusNIP-funded nutrition incentive programs build stronger operational foundations, close emerging gaps, and grow resilience in an evolving funding and policy landscape.<\/p>\n<\/div>\n                                <img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/6\/2023\/06\/Icon-ionic-md-arrow-down.svg\" alt=\"Learn More\"\/>                            <\/div>\n                        <\/a>\n                    <\/div>\n\n            <\/div><\/div>\n<h2>\n\t\t\tBy The Numbers: Nutrition Incentives\t<\/h2>\n<h4>\n\t\t\tNUTRITION INCENTIVE HUB\t<\/h4>\n\t\t328\n\t<p>Organizations supported through our Nutrition Incentive Hub technical assistance and innovation work.<\/p>\n\t\t121\n\t<p>GusNIP grantees in 2025 &#8211; up from just 23 in 2019 when the Nutrition Incentive Hub was launched to strengthen these programs, expand their reach, and maximize their impact.<\/p>\n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/ffn-2025-fruit-icon.svg\" alt=\"ffn-2025-fruit-icon\" height=\"355\" width=\"337\" title=\"ffn-2025-fruit-icon\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n<h2>\n\t\t\tBy The Numbers: Double Up Michigan\t<\/h2>\n<h4>\n\t\t\t16 YEARS OF IMPACT\t<\/h4>\n\t\t$110,330,777\n\t<p>Total produce bought through Double Up and SNAP benefits<\/p>\n\t\t70M\n\tEstimated pounds of produce bought<br \/>\nwith Double Up and SNAP benefits\n\t<blockquote><p>The McGregor Fund&#8217;s partnership with Fair Food Network is motivated by our shared commitment to support community vision and sustainable investment in Detroit&#8217;s resilient food system. The Fund appreciates Fair Food Network&#8217;s ongoing support of Detroit&#8217;s incredible food justice leaders as they work together to grow community health, wealth and resilience.&#8221;<\/p>\n&#8211; Double Up Food Bucks participant,<br \/>\nWayne County, Mich.<\/blockquote>\n<h4>\n\t\t\t2025 IMPACT NUMBERS\t<\/h4>\n\t\t$12,672,538\n\t<p>Total produce bought through Double Up and SNAP benefits<\/p>\n\t\t244 Double Up sites\n\t<p>including 120 grocery stores and 124 farmers markets<\/p>\n\t\t192,683\n\t<p>Estimated SNAP households reached<\/p>\n\t\t97%\n\t<p>of Michigan&#8217;s population lives in a county with a Double Up site<\/p>\n\t\t638\n\t<p>Estimated Michigan farmers benefited<\/p>\n\t\t$9M\n\t<p>of Michigan-grown produce purchased by participating independent grocers<\/p>\n\t<blockquote><p>The McGregor Fund&#8217;s partnership with Fair Food Network is motivated by our shared commitment to support community vision and sustainable investment in Detroit&#8217;s resilient food system. The Fund appreciates Fair Food Network&#8217;s ongoing support of Detroit&#8217;s incredible food justice leaders as they work together to grow community health, wealth and resilience.&#8221;<\/p><\/blockquote>\n\t<span class=\"p-large\">Heidi Alcock, Vice President of Strategy &amp; Grants Portfolio, McGregor Fund<\/span>\n<h2>\n\t\t\tImpact Investing\t<\/h2>\n\t<p>We are supporting vibrant communities and strong local economies by investing in food businesses that are creating positive change.<\/p>\n\t<div class=\"postshortcode verticalscroll verticalscroll2 \"><div class=\"postshortcode--container\"> \n                    <div class=\"single-post\">\n                        <a data-filter=\"#847\" class=\"flyout_btn\">\n                            <div class=\"postshortcode--container-img\">\n                                <img class='wp-post-image' src='https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/IMG_9213-768x512.jpg' alt=''>                                <img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/6\/2023\/06\/page_corner_fold_green.svg\" class=\"featureimg-icon\"\/>                            <\/div>\n                            <div class=\"postshortcode--container-details\">\n                                <button class=\"single-post--title\">Grocery as a Force for Good: Investing in the Future of Food Retail<\/button>\n                                <div><p>From co-ops and community-owned markets to farmer-led consignment models, food retailers are helping define the future of food access.<\/p>\n<\/div>\n                                <img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/6\/2023\/06\/Icon-ionic-md-arrow-down.svg\" alt=\"Learn More\"\/>                            <\/div>\n                        <\/a>\n                    <\/div>\n\n             \n                    <div class=\"single-post\">\n                        <a data-filter=\"#624\" class=\"flyout_btn\">\n                            <div class=\"postshortcode--container-img\">\n                                <img class='wp-post-image' src='https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2024\/05\/Grow-Moore-Produce-Cooperative2-768x593.jpg' alt=''>                                <img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/6\/2023\/06\/page_corner_fold_green.svg\" class=\"featureimg-icon\"\/>                            <\/div>\n                            <div class=\"postshortcode--container-details\">\n                                <button class=\"single-post--title\">Investing in the Building Blocks of Fresh Food Access<\/button>\n                                <div><p>Strengthening relationships that keep food dollars circulating locally.<\/p>\n<\/div>\n                                <img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/6\/2023\/06\/Icon-ionic-md-arrow-down.svg\" alt=\"Learn More\"\/>                            <\/div>\n                        <\/a>\n                    <\/div>\n\n            <\/div><\/div>\n<h2  id=\"financials\">\n\t\t\tBy The Numbers: Impact Investing\t<\/h2>\n<h4>\n\t\t\tFAIR FOOD FUND FINANCIAL OVERVIEW\t<\/h4>\n\t<p><strong>Financing Committed<\/strong><\/p>\n<p>(through Dec. 31, 2025)<\/p>\n\t\t$8,111,539\n\t<p><strong>Financing Outstanding<\/strong><\/p>\n<p>&nbsp;<\/p>\n\t\t$4,443,692\n\t<p><strong>Investment Income<\/strong><\/p>\n<p>&nbsp;<\/p>\n\t\t$1,982,287\n\t<p>Total portfolio investments since inception<\/p>\n<p>&nbsp;<\/p>\n\t\t98\n\t<p>Loss rate as of Dec. 31, 2025: The annualized loss rate since the Fund&#8217;s inception (2012) is .91% or 12.5% cumulatively. This includes all realized write-offs on an investment capital pool of $10.8 million.<\/p>\n<h3>\n\t\t\tType of Business\t<\/h3>\n\t    \n    <div id=\"typeofbusiness\"><\/div>\n\n            <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                \n    <script>\n\n    \/\/console.log({\"Farmer: $952,530\":12,\"Food rescue: $202,000\":4,\"Food service: $803,753\":10,\"Manufacturer: $300,000\":2,\"Grocery: $1,630,680\":20,\"Aggregator: $374,000\":4,\"Product maker: $3,311,076\":41,\"Other: $537,500\":4});\n        \n    \/\/ set the dimensions and margins of the graph\n    var width = 840\n    var height = 540\n    var margin = 0\n\n    \/\/ The radius of the pieplot is half the width or half the height (smallest one). I subtract a bit of margin.\n    var radius = Math.min(width, height) \/ 2 - margin\n\n    \/\/ append the svg object to the div called 'typeofbusiness'\n    var svg = d3.select(\"#typeofbusiness\")\n      .append(\"svg\")\n        .attr(\"viewBox\", '0 0 840 580')\n      .append(\"g\")\n        .attr(\"transform\", \"translate(\" + width \/ 2 + \",\" + height \/ 2 + \")\");\n        \n\n    \/\/ Create data\n    var data = {\"Farmer: $952,530\":12,\"Food rescue: $202,000\":4,\"Food service: $803,753\":10,\"Manufacturer: $300,000\":2,\"Grocery: $1,630,680\":20,\"Aggregator: $374,000\":4,\"Product maker: $3,311,076\":41,\"Other: $537,500\":4}\n    \/\/ set the color scale\n    var color = d3.scaleOrdinal()\n      .domain([\"Farmer: $952,530\",\"Food rescue: $202,000\",\"Food service: $803,753\",\"Manufacturer: $300,000\",\"Grocery: $1,630,680\",\"Aggregator: $374,000\",\"Product maker: $3,311,076\",\"Other: $537,500\"])\n      .range([\"#fbae31\",\"#99d4c0\",\"#d6e040\",\"#d9a5cb\",\"#1e5739\",\"#7a123a\",\"#57A647\",\"#41336e\"])\n\n    \/\/ Compute the position of each group on the pie:\n    var pie = d3.pie()\n      .sort(null) \/\/ Do not sort group by size\n      .value(function(d) {return d.value; })\n    var data_ready = pie(d3.entries(data))\n\n    \/\/ The arc generator\n    var arc = d3.arc()\n      .innerRadius(radius * 0.4)         \/\/ This is the size of the donut hole\n      .outerRadius(radius * 0.8)\n\n    \/\/ Another arc that won't be drawn. Just for labels positioning\n    var outerArc = d3.arc()\n      .innerRadius(radius * 0.9)\n      .outerRadius(radius * 0.9)\n\n    \/\/ Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.\n    svg\n      .selectAll('allSlices')\n      .data(data_ready)\n      .enter()\n      .append('path')\n      .attr('d', arc)\n      .attr('fill', function(d){ return(color(d.data.key)) })\n      .attr(\"stroke\", \"white\")\n      .style(\"stroke-width\", \"0px\")\n      .style(\"opacity\", 1)\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allPolylines')\n      .data(data_ready)\n      .enter()\n      .append('polyline')\n        .attr(\"stroke\", function(d){ return(color(d.data.key)) })\n        .style(\"fill\", \"none\")\n        .attr(\"stroke-width\", 1)\n        .attr('points', function(d) {\n          var posA = arc.centroid(d) \/\/ line insertion in the slice\n          var posB = outerArc.centroid(d) \/\/ line break: we use the other arc generator that has been built only for that\n          var posC = outerArc.centroid(d); \/\/ Label position = almost the same as posB\n          var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2 \/\/ we need the angle to see if the X position will be at the extreme right or extreme left\n          posC[0] = radius * 0.95 * (midangle < Math.PI ? 1 : -1); \/\/ multiply by 1 or -1 to put it on the right or on the left\n          return [posA, posB, posC]\n        })\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allLabels')\n      .data(data_ready)\n      .enter()\n      .append('text')\n            .attr(\"y\", 0)\n            .attr(\"dy\", 0)\n            .attr(\"transform\", \"translate(10,0)\")\n            .text( function(d) { return d.data.key + ' ('+ d.data.value+'%)' } )\n            .call(wrap, 200)\n            .attr('transform', function(d) {\n                var pos = outerArc.centroid(d);\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                pos[0] = radius * 0.99 * (midangle < Math.PI ? 1 : -1);\n                return 'translate(' + pos + ')';\n            })\n            .style('text-anchor', function(d) {\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                return (midangle < Math.PI ? 'start' : 'end')\n            });\n        \n        \/\/ Wrap text \n        function wrap(text, width) {\n          text.each(function() {\n            var text = d3.select(this),\n                words = text.text().split(\/\\s+\/).reverse(),\n                word,\n                line = [],\n                lineNumber = 0,\n                lineHeight = 1.5, \/\/ ems\n                y = text.attr(\"y\"),\n                dy = parseFloat(text.attr(\"dy\")),\n                tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\n            while (word = words.pop()) {\n              line.push(word)\n              tspan.text(line.join(\" \"))\n              if (tspan.node().getComputedTextLength() > width) {\n                line.pop()\n                tspan.text(line.join(\" \"))\n                line = [word]\n                tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\n              }\n            }\n          })\n        }\n\n    <\/script>\n\n    \n<h3>\n\t\t\tType of Structure\t<\/h3>\n\t    \n    <div id=\"typeofstructure\"><\/div>\n\n            <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                \n    <script>\n\n    \/\/console.log({\"Loan: $4,262,249\":52,\"Credit Enhancement: $861,025\":11,\"Microloan: $494,500\":6,\"Equity: $1,756,765\":22,\"Near Equity: $737,000\":9});    \n    \/\/console.log([\"#57A647\",\"#99d4c0\",\"#ffffff\",\"#41336e\",\"#d6e040\"]);\n        \n    \/\/ set the dimensions and margins of the graph\n    var width = 840\n    var height = 540\n    var margin = 0\n\n    \/\/ The radius of the pieplot is half the width or half the height (smallest one). I subtract a bit of margin.\n    var radius = Math.min(width, height) \/ 2 - margin\n\n    \/\/ append the svg object to the div called 'typeofstructure'\n    var svg = d3.select(\"#typeofstructure\")\n      .append(\"svg\")\n        .attr(\"viewBox\", '0 0 840 580')\n      .append(\"g\")\n        .attr(\"transform\", \"translate(\" + width \/ 2 + \",\" + height \/ 2 + \")\");\n        \n\n    \/\/ Create data\n    var data = {\"Loan: $4,262,249\":52,\"Credit Enhancement: $861,025\":11,\"Microloan: $494,500\":6,\"Equity: $1,756,765\":22,\"Near Equity: $737,000\":9}\n    \/\/ set the color scale\n    var color = d3.scaleOrdinal()\n      .domain([\"Loan: $4,262,249\",\"Credit Enhancement: $861,025\",\"Microloan: $494,500\",\"Equity: $1,756,765\",\"Near Equity: $737,000\"])\n      .range([\"#57A647\",\"#99d4c0\",\"#ffffff\",\"#41336e\",\"#d6e040\"])\n\n    \/\/ Compute the position of each group on the pie:\n    var pie = d3.pie()\n      .sort(null) \/\/ Do not sort group by size\n      .value(function(d) {return d.value; })\n    var data_ready = pie(d3.entries(data))\n\n    \/\/ The arc generator\n    var arc = d3.arc()\n      .innerRadius(radius * 0.4)         \/\/ This is the size of the donut hole\n      .outerRadius(radius * 0.8)\n\n    \/\/ Another arc that won't be drawn. Just for labels positioning\n    var outerArc = d3.arc()\n      .innerRadius(radius * 0.9)\n      .outerRadius(radius * 0.9)\n\n    \/\/ Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.\n    svg\n      .selectAll('allSlices')\n      .data(data_ready)\n      .enter()\n      .append('path')\n      .attr('d', arc)\n      .attr('fill', function(d){ return(color(d.data.key)) })\n      .attr(\"stroke\", \"white\")\n      .style(\"stroke-width\", \"0px\")\n      .style(\"opacity\", 1)\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allPolylines')\n      .data(data_ready)\n      .enter()\n      .append('polyline')\n        .attr(\"stroke\", function(d){ return(color(d.data.key)) })\n        .style(\"fill\", \"none\")\n        .attr(\"stroke-width\", 1)\n        .attr('points', function(d) {\n          var posA = arc.centroid(d) \/\/ line insertion in the slice\n          var posB = outerArc.centroid(d) \/\/ line break: we use the other arc generator that has been built only for that\n          var posC = outerArc.centroid(d); \/\/ Label position = almost the same as posB\n          var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2 \/\/ we need the angle to see if the X position will be at the extreme right or extreme left\n          posC[0] = radius * 0.95 * (midangle < Math.PI ? 1 : -1); \/\/ multiply by 1 or -1 to put it on the right or on the left\n          return [posA, posB, posC]\n        })\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allLabels')\n      .data(data_ready)\n      .enter()\n      .append('text')\n            .attr(\"y\", 0)\n            .attr(\"dy\", 0)\n            .attr(\"transform\", \"translate(10,0)\")\n            .text( function(d) { return d.data.key + ' ('+ d.data.value+'%)' } )\n            .call(wrap, 200)\n            .attr('transform', function(d) {\n                var pos = outerArc.centroid(d);\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                pos[0] = radius * 0.99 * (midangle < Math.PI ? 1 : -1);\n                return 'translate(' + pos + ')';\n            })\n            .style('text-anchor', function(d) {\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                return (midangle < Math.PI ? 'start' : 'end')\n            });\n        \n        \/\/ Wrap text \n        function wrap(text, width) {\n          text.each(function() {\n            var text = d3.select(this),\n                words = text.text().split(\/\\s+\/).reverse(),\n                word,\n                line = [],\n                lineNumber = 0,\n                lineHeight = 1.5, \/\/ ems\n                y = text.attr(\"y\"),\n                dy = parseFloat(text.attr(\"dy\")),\n                tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\n            while (word = words.pop()) {\n              line.push(word)\n              tspan.text(line.join(\" \"))\n              if (tspan.node().getComputedTextLength() > width) {\n                line.pop()\n                tspan.text(line.join(\" \"))\n                line = [word]\n                tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\n              }\n            }\n          })\n        }\n    \n\n    <\/script>\n\n    \n<h3>\n\t\t\tOwner Demographics Race\t<\/h3>\n\t    \n    <div id=\"pie_chart_demo_race\"><\/div>\n\n            <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                \n    <script>\n       \n    \/\/ set the dimensions and margins of the graph\n    var width = 840\n    var height = 540\n    var margin = 0\n\n    \/\/ The radius of the pieplot is half the width or half the height (smallest one). I subtract a bit of margin.\n    var radius = Math.min(width, height) \/ 2 - margin\n\n    \/\/ append the svg object to the div called 'typeofstructure'\n    var svg = d3.select(\"#pie_chart_demo_race\")\n      .append(\"svg\")\n        .attr(\"viewBox\", '0 0 840 580')\n      .append(\"g\")\n        .attr(\"transform\", \"translate(\" + width \/ 2 + \",\" + height \/ 2 + \")\");\n        \n\n    \/\/ Create data\n    var data = {\"BIPOC-owned\":59,\"Other\":41}\n    \/\/ set the color scale\n    var color = d3.scaleOrdinal()\n      .domain([\"BIPOC-owned\",\"Other\"])\n      .range([\"#57a647\",\"#fbae31\"])\n\n    \/\/ Compute the position of each group on the pie:\n    var pie = d3.pie()\n      .sort(null) \/\/ Do not sort group by size\n      .value(function(d) {return d.value; })\n    var data_ready = pie(d3.entries(data))\n\n    \/\/ The arc generator\n    var arc = d3.arc()\n      .innerRadius(radius * 0.4)         \/\/ This is the size of the donut hole\n      .outerRadius(radius * 0.8)\n\n    \/\/ Another arc that won't be drawn. Just for labels positioning\n    var outerArc = d3.arc()\n      .innerRadius(radius * 0.9)\n      .outerRadius(radius * 0.9)\n\n    \/\/ Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.\n    svg\n      .selectAll('allSlices')\n      .data(data_ready)\n      .enter()\n      .append('path')\n      .attr('d', arc)\n      .attr('fill', function(d){ return(color(d.data.key)) })\n      .attr(\"stroke\", \"white\")\n      .style(\"stroke-width\", \"0px\")\n      .style(\"opacity\", 1)\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allPolylines')\n      .data(data_ready)\n      .enter()\n      .append('polyline')\n        .attr(\"stroke\", function(d){ return(color(d.data.key)) })\n        .style(\"fill\", \"none\")\n        .attr(\"stroke-width\", 1)\n        .attr('points', function(d) {\n          var posA = arc.centroid(d) \/\/ line insertion in the slice\n          var posB = outerArc.centroid(d) \/\/ line break: we use the other arc generator that has been built only for that\n          var posC = outerArc.centroid(d); \/\/ Label position = almost the same as posB\n          var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2 \/\/ we need the angle to see if the X position will be at the extreme right or extreme left\n          posC[0] = radius * 0.95 * (midangle < Math.PI ? 1 : -1); \/\/ multiply by 1 or -1 to put it on the right or on the left\n          return [posA, posB, posC]\n        })\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allLabels')\n      .data(data_ready)\n      .enter()\n      .append('text')\n            .attr(\"y\", 0)\n            .attr(\"dy\", 0)\n            .attr(\"transform\", \"translate(10,0)\")\n            .text( function(d) { return d.data.key + ' ('+ d.data.value+'%)' } )\n            .call(wrap, 150)\n            .attr('transform', function(d) {\n                var pos = outerArc.centroid(d);\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                pos[0] = radius * 0.99 * (midangle < Math.PI ? 1 : -1);\n                return 'translate(' + pos + ')';\n            })\n            .style('text-anchor', function(d) {\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                return (midangle < Math.PI ? 'start' : 'end')\n            });\n        \n        \/\/ Wrap text \n        function wrap(text, width) {\n          text.each(function() {\n            var text = d3.select(this),\n                words = text.text().split(\/\\s+\/).reverse(),\n                word,\n                line = [],\n                lineNumber = 0,\n                lineHeight = 1.5, \/\/ ems\n                y = text.attr(\"y\"),\n                dy = parseFloat(text.attr(\"dy\")),\n                tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\n            while (word = words.pop()) {\n              line.push(word)\n              tspan.text(line.join(\" \"))\n              if (tspan.node().getComputedTextLength() > width) {\n                line.pop()\n                tspan.text(line.join(\" \"))\n                line = [word]\n                tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\n              }\n            }\n          })\n        }\n    \n\n    <\/script>\n\n    \n<h3>\n\t\t\tOwner Demographics Gender\t<\/h3>\n\t    \n    <div id=\"pie_chart_demo_gender\"><\/div>\n\n            <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                \n    <script>\n       \n    \/\/ set the dimensions and margins of the graph\n    var width = 840\n    var height = 540\n    var margin = 0\n\n    \/\/ The radius of the pieplot is half the width or half the height (smallest one). I subtract a bit of margin.\n    var radius = Math.min(width, height) \/ 2 - margin\n\n    \/\/ append the svg object to the div called 'typeofstructure'\n    var svg = d3.select(\"#pie_chart_demo_gender\")\n      .append(\"svg\")\n        .attr(\"viewBox\", '0 0 840 580')\n      .append(\"g\")\n        .attr(\"transform\", \"translate(\" + width \/ 2 + \",\" + height \/ 2 + \")\");\n        \n\n    \/\/ Create data\n    var data = {\"Female-owned\":52,\"Other\":48}\n    \/\/ set the color scale\n    var color = d3.scaleOrdinal()\n      .domain([\"Female-owned\",\"Other\"])\n      .range([\"#57a647\",\"#fbae31\"])\n\n    \/\/ Compute the position of each group on the pie:\n    var pie = d3.pie()\n      .sort(null) \/\/ Do not sort group by size\n      .value(function(d) {return d.value; })\n    var data_ready = pie(d3.entries(data))\n\n    \/\/ The arc generator\n    var arc = d3.arc()\n      .innerRadius(radius * 0.4)         \/\/ This is the size of the donut hole\n      .outerRadius(radius * 0.8)\n\n    \/\/ Another arc that won't be drawn. Just for labels positioning\n    var outerArc = d3.arc()\n      .innerRadius(radius * 0.9)\n      .outerRadius(radius * 0.9)\n\n    \/\/ Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.\n    svg\n      .selectAll('allSlices')\n      .data(data_ready)\n      .enter()\n      .append('path')\n      .attr('d', arc)\n      .attr('fill', function(d){ return(color(d.data.key)) })\n      .attr(\"stroke\", \"white\")\n      .style(\"stroke-width\", \"0px\")\n      .style(\"opacity\", 1)\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allPolylines')\n      .data(data_ready)\n      .enter()\n      .append('polyline')\n        .attr(\"stroke\", function(d){ return(color(d.data.key)) })\n        .style(\"fill\", \"none\")\n        .attr(\"stroke-width\", 1)\n        .attr('points', function(d) {\n          var posA = arc.centroid(d) \/\/ line insertion in the slice\n          var posB = outerArc.centroid(d) \/\/ line break: we use the other arc generator that has been built only for that\n          var posC = outerArc.centroid(d); \/\/ Label position = almost the same as posB\n          var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2 \/\/ we need the angle to see if the X position will be at the extreme right or extreme left\n          posC[0] = radius * 0.95 * (midangle < Math.PI ? 1 : -1); \/\/ multiply by 1 or -1 to put it on the right or on the left\n          return [posA, posB, posC]\n        })\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allLabels')\n      .data(data_ready)\n      .enter()\n      .append('text')\n            .attr(\"y\", 0)\n            .attr(\"dy\", 0)\n            .attr(\"transform\", \"translate(10,0)\")\n            .text( function(d) { return d.data.key + ' ('+ d.data.value+'%)' } )\n            .call(wrap, 150)\n            .attr('transform', function(d) {\n                var pos = outerArc.centroid(d);\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                pos[0] = radius * 0.99 * (midangle < Math.PI ? 1 : -1);\n                return 'translate(' + pos + ')';\n            })\n            .style('text-anchor', function(d) {\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                return (midangle < Math.PI ? 'start' : 'end')\n            });\n        \n        \/\/ Wrap text \n        function wrap(text, width) {\n          text.each(function() {\n            var text = d3.select(this),\n                words = text.text().split(\/\\s+\/).reverse(),\n                word,\n                line = [],\n                lineNumber = 0,\n                lineHeight = 1.5, \/\/ ems\n                y = text.attr(\"y\"),\n                dy = parseFloat(text.attr(\"dy\")),\n                tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\n            while (word = words.pop()) {\n              line.push(word)\n              tspan.text(line.join(\" \"))\n              if (tspan.node().getComputedTextLength() > width) {\n                line.pop()\n                tspan.text(line.join(\" \"))\n                line = [word]\n                tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\n              }\n            }\n          })\n        }\n    \n\n    <\/script>\n\n    \n<h2>\n\t\t\tFair Food Network<br \/> Consolidated Financials\t<\/h2>\n\t<div class=\"financials balancesheet\">    \n        <div class=\"financials--div-title\">    \n            <h3><span class=\"rotated\"><svg class=\"financials-open\" data-name=\"Financials Open\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24.04 24.05\"><defs><title>Open or Close<\/title><\/defs><path id=\"Icon_ionic-md-arrow-down\" data-name=\"Icon ionic-md-arrow-down\" class=\"cls-1\" d=\"M250,552.33V534.07l-8.42,8.42-2.1-2.18,12-12,12,12-2.1,2.1L253,534.07v18.26Z\" transform=\"translate(-239.43 -528.29)\"\/><\/svg><\/span>Statement of Financial Position<\/h3> \n        <\/div> \n\n            \n            <div class=\"financials--div-header\">           \n                <h4>Assets<\/h4> \n            <\/div> \n\n            <div class=\"financials--div-details\">                    \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Cash<\/p>\n                                                        <p>&#36;6,518,747<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Accounts &amp; Grants Receivable<\/p>\n                                                        <p>&#36;5,855,906<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Investments<\/p>\n                                                        <p>&#36;10,779,241<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Other Assets<\/p>\n                                                        <p>&#36;471,356<\/p>\n                        <\/div> \n                               \n                        \n                <div class=\"financials--div-lineitem total\">           \n                    <p><strong>Total Assets<\/strong><\/p>\n                    <p><strong>&#36;23,625,250                    <\/strong><\/p>\n                <\/div> \n        <\/div>    \n            <div class=\"financials--div-header\">           \n                <h4>Liabilities and Net Assets Expenses<\/h4> \n            <\/div> \n\n            <div class=\"financials--div-details\">                    \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Accounts Payable<\/p>\n                                                        <p>&#36;1,872,902<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Other Liabilities<\/p>\n                                                        <p>&#36;3,093,075<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Loans Payable<\/p>\n                                                        <p>&#36;4,339,805<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Unrestricted net Assets<\/p>\n                                                        <p>&#36;8,350,020<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Restricted Net Assets<\/p>\n                                                        <p>&#36;5,969,448<\/p>\n                        <\/div> \n                               \n                        \n                <div class=\"financials--div-lineitem total\">           \n                    <p><strong>Total Liabilities and Net Assets<\/strong><\/p>\n                    <p><strong>&#36;23,625,250                    <\/strong><\/p>\n                <\/div> \n        <\/div><\/div>\n\t<div class=\"financials incomestatement\">    \n        <div class=\"financials--div-title\">    \n            <h3><span class=\"rotated\"><svg class=\"financials-open\" data-name=\"Financials_Open\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24.04 24.05\"><defs><title>Open or Close<\/title><\/defs><path id=\"Icon_ionic-md-arrow-down\" data-name=\"Icon ionic-md-arrow-down\" class=\"cls-1\" d=\"M250,552.33V534.07l-8.42,8.42-2.1-2.18,12-12,12,12-2.1,2.1L253,534.07v18.26Z\" transform=\"translate(-239.43 -528.29)\"\/><\/svg><\/span>Statement of Activities<\/h3> \n        <\/div> \n\n            \n            <div class=\"financials--div-header\">           \n                <h4>Revenue<\/h4> \n            <\/div> \n\n            <div class=\"financials--div-details\">                    \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Government Grant Income<\/p>\n                                                        <p>&#36;9,213,937<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Non-Government Grant Income<\/p>\n                                                        <p>&#36;3,456,000<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Investment Income<\/p>\n                                                        <p>&#36;760,865<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Other Income<\/p>\n                                                        <p>&#36;340,746<\/p>\n                        <\/div> \n                               \n                        \n                <div class=\"financials--div-lineitem total\">           \n                    <p><strong>Total Income<\/strong><\/p>\n                    <p><strong>&#36;13,771,548                    <\/strong><\/p>\n                <\/div> \n        <\/div>    \n            <div class=\"financials--div-header\">           \n                <h4>Expenses<\/h4> \n            <\/div> \n\n            <div class=\"financials--div-details\">                    \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Program Operating Expenses<\/p>\n                                                        <p>&#36;5,614,973<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Technical Assistance Expenses<\/p>\n                                                        <p>&#36;174,774<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Grants to Others<\/p>\n                                                        <p>&#36;6,872,791<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Investment Expenses<\/p>\n                                                        <p>&#36;349,898<\/p>\n                        <\/div> \n                               \n                                        \n                        <div class=\"financials--div-lineitem\">           \n                            <p>Other Expense<\/p>\n                                                        <p>&#36;425,873<\/p>\n                        <\/div> \n                               \n                        \n                <div class=\"financials--div-lineitem total\">           \n                    <p><strong>Total Expenses<\/strong><\/p>\n                    <p><strong>&#36;13,438,309                    <\/strong><\/p>\n                <\/div> \n\n                <div class=\"financials--div-lineitem netincome\"> \n                    <hr>\n                    <p><strong>Net Income<\/strong><\/p>\n                    <p><strong>&#36;333,239                    <\/strong><\/p>\n                <\/div> \n        <\/div><\/div>\n<h2>\n\t\t\tOur Impact by the Numbers: Fair Food Network\t<\/h2>\n\t<p>We know that farmers and local food businesses are engines for positive change, so we support and invest in their success. Our work focuses on shifting how essential resources flow through the food economy, growing opportunities in communities across the country.<\/p>\n\t\t1,346\n\t<p>Total number of businesses receiving resources from Fair Food Network<\/p>\n\t\t1,490\n\t<p>Total hours of technical assistance provided to food businesses and organizations in 2025<\/p>\n\t\t$8,578,029\n\t<p>Total dollars invested into communities by Fair Food Network<\/p>\n<h2>\n\t\t\tTracking Our Progress Toward Our Mission\t<\/h2>\n\t<p>Fair Food Network measures the impact of our work against our mission to grow community health, wealth, and resilience through food. We track short-term progress across three outcome areas that reflect the changes we aim to create in communities and food systems.<\/p>\n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2023\/06\/supporters-grapes.svg\" alt=\"supporters-grapes\" height=\"110\" width=\"147\" title=\"supporters-grapes\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n<h2>\n\t\t\tHealthy people\t<\/h2>\n\t<p>This outcome area focuses on increasing resources for businesses that expand access to healthy, affordable food so more people in underserved communities can buy and eat fresh fruits and vegetables.<\/p>\n<h4>\n\t\t\tNUMBER BUSINESSES &#8211; ORGANIZATION-WIDE TOTAL: 625\t<\/h4>\n\t<p>Impact Investing: 64<\/p>\n<p>Double Up Michigan: 244<\/p>\n<p>Nutrition Incentive Hub: 328<\/p>\n<h4>\n\t\t\tDollars Invested &#8211; Organization-wide Total: $7,841,706\t<\/h4>\n\t    \n    <div id=\"pie_chart_healthy_business_dollars\"><\/div>\n\n            <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                \n    <script>\n       \n    \/\/ set the dimensions and margins of the graph\n    var width = 840\n    var height = 540\n    var margin = 0\n\n    \/\/ The radius of the pieplot is half the width or half the height (smallest one). I subtract a bit of margin.\n    var radius = Math.min(width, height) \/ 2 - margin\n\n    \/\/ append the svg object to the div called 'typeofstructure'\n    var svg = d3.select(\"#pie_chart_healthy_business_dollars\")\n      .append(\"svg\")\n        .attr(\"viewBox\", '0 0 840 580')\n      .append(\"g\")\n        .attr(\"transform\", \"translate(\" + width \/ 2 + \",\" + height \/ 2 + \")\");\n        \n\n    \/\/ Create data\n    var data = {\"Impact Investing Direct investments: $1,061,783, Additional capital leveraged by direct investments: $926,588\":14,\"Double Up Michigan: $6,275,158\":80,\"Nutrition Incentive Hub: $504,765\":6}\n    \/\/ set the color scale\n    var color = d3.scaleOrdinal()\n      .domain([\"Impact Investing Direct investments: $1,061,783, Additional capital leveraged by direct investments: $926,588\",\"Double Up Michigan: $6,275,158\",\"Nutrition Incentive Hub: $504,765\"])\n      .range([\"#57a647\",\"#1e5739\",\"#fbae31\"])\n\n    \/\/ Compute the position of each group on the pie:\n    var pie = d3.pie()\n      .sort(null) \/\/ Do not sort group by size\n      .value(function(d) {return d.value; })\n    var data_ready = pie(d3.entries(data))\n\n    \/\/ The arc generator\n    var arc = d3.arc()\n      .innerRadius(radius * 0.4)         \/\/ This is the size of the donut hole\n      .outerRadius(radius * 0.8)\n\n    \/\/ Another arc that won't be drawn. Just for labels positioning\n    var outerArc = d3.arc()\n      .innerRadius(radius * 0.9)\n      .outerRadius(radius * 0.9)\n\n    \/\/ Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.\n    svg\n      .selectAll('allSlices')\n      .data(data_ready)\n      .enter()\n      .append('path')\n      .attr('d', arc)\n      .attr('fill', function(d){ return(color(d.data.key)) })\n      .attr(\"stroke\", \"white\")\n      .style(\"stroke-width\", \"0px\")\n      .style(\"opacity\", 1)\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allPolylines')\n      .data(data_ready)\n      .enter()\n      .append('polyline')\n        .attr(\"stroke\", function(d){ return(color(d.data.key)) })\n        .style(\"fill\", \"none\")\n        .attr(\"stroke-width\", 1)\n        .attr('points', function(d) {\n          var posA = arc.centroid(d) \/\/ line insertion in the slice\n          var posB = outerArc.centroid(d) \/\/ line break: we use the other arc generator that has been built only for that\n          var posC = outerArc.centroid(d); \/\/ Label position = almost the same as posB\n          var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2 \/\/ we need the angle to see if the X position will be at the extreme right or extreme left\n          posC[0] = radius * 0.95 * (midangle < Math.PI ? 1 : -1); \/\/ multiply by 1 or -1 to put it on the right or on the left\n          return [posA, posB, posC]\n        })\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allLabels')\n      .data(data_ready)\n      .enter()\n      .append('text')\n            .attr(\"y\", 0)\n            .attr(\"dy\", 0)\n            .attr(\"transform\", \"translate(10,0)\")\n            .text( function(d) { return d.data.key + ' ('+ d.data.value+'%)' } )\n            .call(wrap, 150)\n            .attr('transform', function(d) {\n                var pos = outerArc.centroid(d);\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                pos[0] = radius * 0.99 * (midangle < Math.PI ? 1 : -1);\n                return 'translate(' + pos + ')';\n            })\n            .style('text-anchor', function(d) {\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                return (midangle < Math.PI ? 'start' : 'end')\n            });\n        \n        \/\/ Wrap text \n        function wrap(text, width) {\n          text.each(function() {\n            var text = d3.select(this),\n                words = text.text().split(\/\\s+\/).reverse(),\n                word,\n                line = [],\n                lineNumber = 0,\n                lineHeight = 1.5, \/\/ ems\n                y = text.attr(\"y\"),\n                dy = parseFloat(text.attr(\"dy\")),\n                tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\n            while (word = words.pop()) {\n              line.push(word)\n              tspan.text(line.join(\" \"))\n              if (tspan.node().getComputedTextLength() > width) {\n                line.pop()\n                tspan.text(line.join(\" \"))\n                line = [word]\n                tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\n              }\n            }\n          })\n        }\n    \n\n    <\/script>\n\n    \n<h4>\n\t\t\tHours of Technical Assistance Provided: 884\t<\/h4>\n\t    \n    <div id=\"pie_chart_health_business_technical_hours\"><\/div>\n\n            <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                \n    <script>\n       \n    \/\/ set the dimensions and margins of the graph\n    var width = 840\n    var height = 540\n    var margin = 0\n\n    \/\/ The radius of the pieplot is half the width or half the height (smallest one). I subtract a bit of margin.\n    var radius = Math.min(width, height) \/ 2 - margin\n\n    \/\/ append the svg object to the div called 'typeofstructure'\n    var svg = d3.select(\"#pie_chart_health_business_technical_hours\")\n      .append(\"svg\")\n        .attr(\"viewBox\", '0 0 840 580')\n      .append(\"g\")\n        .attr(\"transform\", \"translate(\" + width \/ 2 + \",\" + height \/ 2 + \")\");\n        \n\n    \/\/ Create data\n    var data = {\"Impact Investing: 554\":63,\"Double Up Michigan: 107\":12,\"Nutrition Incentive Hub: 223\":25}\n    \/\/ set the color scale\n    var color = d3.scaleOrdinal()\n      .domain([\"Impact Investing: 554\",\"Double Up Michigan: 107\",\"Nutrition Incentive Hub: 223\"])\n      .range([\"#57a647\",\"#1e5739\",\"#fbae31\"])\n\n    \/\/ Compute the position of each group on the pie:\n    var pie = d3.pie()\n      .sort(null) \/\/ Do not sort group by size\n      .value(function(d) {return d.value; })\n    var data_ready = pie(d3.entries(data))\n\n    \/\/ The arc generator\n    var arc = d3.arc()\n      .innerRadius(radius * 0.4)         \/\/ This is the size of the donut hole\n      .outerRadius(radius * 0.8)\n\n    \/\/ Another arc that won't be drawn. Just for labels positioning\n    var outerArc = d3.arc()\n      .innerRadius(radius * 0.9)\n      .outerRadius(radius * 0.9)\n\n    \/\/ Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.\n    svg\n      .selectAll('allSlices')\n      .data(data_ready)\n      .enter()\n      .append('path')\n      .attr('d', arc)\n      .attr('fill', function(d){ return(color(d.data.key)) })\n      .attr(\"stroke\", \"white\")\n      .style(\"stroke-width\", \"0px\")\n      .style(\"opacity\", 1)\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allPolylines')\n      .data(data_ready)\n      .enter()\n      .append('polyline')\n        .attr(\"stroke\", function(d){ return(color(d.data.key)) })\n        .style(\"fill\", \"none\")\n        .attr(\"stroke-width\", 1)\n        .attr('points', function(d) {\n          var posA = arc.centroid(d) \/\/ line insertion in the slice\n          var posB = outerArc.centroid(d) \/\/ line break: we use the other arc generator that has been built only for that\n          var posC = outerArc.centroid(d); \/\/ Label position = almost the same as posB\n          var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2 \/\/ we need the angle to see if the X position will be at the extreme right or extreme left\n          posC[0] = radius * 0.95 * (midangle < Math.PI ? 1 : -1); \/\/ multiply by 1 or -1 to put it on the right or on the left\n          return [posA, posB, posC]\n        })\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allLabels')\n      .data(data_ready)\n      .enter()\n      .append('text')\n            .attr(\"y\", 0)\n            .attr(\"dy\", 0)\n            .attr(\"transform\", \"translate(10,0)\")\n            .text( function(d) { return d.data.key + ' ('+ d.data.value+'%)' } )\n            .call(wrap, 150)\n            .attr('transform', function(d) {\n                var pos = outerArc.centroid(d);\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                pos[0] = radius * 0.99 * (midangle < Math.PI ? 1 : -1);\n                return 'translate(' + pos + ')';\n            })\n            .style('text-anchor', function(d) {\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                return (midangle < Math.PI ? 'start' : 'end')\n            });\n        \n        \/\/ Wrap text \n        function wrap(text, width) {\n          text.each(function() {\n            var text = d3.select(this),\n                words = text.text().split(\/\\s+\/).reverse(),\n                word,\n                line = [],\n                lineNumber = 0,\n                lineHeight = 1.5, \/\/ ems\n                y = text.attr(\"y\"),\n                dy = parseFloat(text.attr(\"dy\")),\n                tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\n            while (word = words.pop()) {\n              line.push(word)\n              tspan.text(line.join(\" \"))\n              if (tspan.node().getComputedTextLength() > width) {\n                line.pop()\n                tspan.text(line.join(\" \"))\n                line = [word]\n                tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\n              }\n            }\n          })\n        }\n    \n\n    <\/script>\n\n    \n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/seeds-1.svg\" alt=\"seeds-1\" height=\"95\" width=\"101\" title=\"seeds-1\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n<h2>\n\t\t\tThriving Economies\t<\/h2>\n\t<p>This outcome area focuses on increasing resources for locally rooted food businesses so they can stabilize, grow, and strengthen their local economies.<\/p>\n<h4>\n\t\t\tNUMBER BUSINESSES &#8211; ORGANIZATION-WIDE TOTAL: 325\t<\/h4>\n\t<p>Impact Investing: 100<\/p>\n<p>Double Up Michigan: 236<\/p>\n<h4>\n\t\t\tDollars Invested &#8211; Organization-wide Total: $7,779,150\t<\/h4>\n\t    \n    <div id=\"pie_chart_thriving_economy_dollars\"><\/div>\n\n            <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                \n    <script>\n       \n    \/\/ set the dimensions and margins of the graph\n    var width = 840\n    var height = 540\n    var margin = 0\n\n    \/\/ The radius of the pieplot is half the width or half the height (smallest one). I subtract a bit of margin.\n    var radius = Math.min(width, height) \/ 2 - margin\n\n    \/\/ append the svg object to the div called 'typeofstructure'\n    var svg = d3.select(\"#pie_chart_thriving_economy_dollars\")\n      .append(\"svg\")\n        .attr(\"viewBox\", '0 0 840 580')\n      .append(\"g\")\n        .attr(\"transform\", \"translate(\" + width \/ 2 + \",\" + height \/ 2 + \")\");\n        \n\n    \/\/ Create data\n    var data = {\"Impact Investing Direct investments: $1,673,362, Additional capital leveraged by direct investments: $1,668,963\":22,\"Double Up Michigan: $6,105,788\":78}\n    \/\/ set the color scale\n    var color = d3.scaleOrdinal()\n      .domain([\"Impact Investing Direct investments: $1,673,362, Additional capital leveraged by direct investments: $1,668,963\",\"Double Up Michigan: $6,105,788\"])\n      .range([\"#57a647\",\"#1e5739\"])\n\n    \/\/ Compute the position of each group on the pie:\n    var pie = d3.pie()\n      .sort(null) \/\/ Do not sort group by size\n      .value(function(d) {return d.value; })\n    var data_ready = pie(d3.entries(data))\n\n    \/\/ The arc generator\n    var arc = d3.arc()\n      .innerRadius(radius * 0.4)         \/\/ This is the size of the donut hole\n      .outerRadius(radius * 0.8)\n\n    \/\/ Another arc that won't be drawn. Just for labels positioning\n    var outerArc = d3.arc()\n      .innerRadius(radius * 0.9)\n      .outerRadius(radius * 0.9)\n\n    \/\/ Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.\n    svg\n      .selectAll('allSlices')\n      .data(data_ready)\n      .enter()\n      .append('path')\n      .attr('d', arc)\n      .attr('fill', function(d){ return(color(d.data.key)) })\n      .attr(\"stroke\", \"white\")\n      .style(\"stroke-width\", \"0px\")\n      .style(\"opacity\", 1)\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allPolylines')\n      .data(data_ready)\n      .enter()\n      .append('polyline')\n        .attr(\"stroke\", function(d){ return(color(d.data.key)) })\n        .style(\"fill\", \"none\")\n        .attr(\"stroke-width\", 1)\n        .attr('points', function(d) {\n          var posA = arc.centroid(d) \/\/ line insertion in the slice\n          var posB = outerArc.centroid(d) \/\/ line break: we use the other arc generator that has been built only for that\n          var posC = outerArc.centroid(d); \/\/ Label position = almost the same as posB\n          var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2 \/\/ we need the angle to see if the X position will be at the extreme right or extreme left\n          posC[0] = radius * 0.95 * (midangle < Math.PI ? 1 : -1); \/\/ multiply by 1 or -1 to put it on the right or on the left\n          return [posA, posB, posC]\n        })\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allLabels')\n      .data(data_ready)\n      .enter()\n      .append('text')\n            .attr(\"y\", 0)\n            .attr(\"dy\", 0)\n            .attr(\"transform\", \"translate(10,0)\")\n            .text( function(d) { return d.data.key + ' ('+ d.data.value+'%)' } )\n            .call(wrap, 150)\n            .attr('transform', function(d) {\n                var pos = outerArc.centroid(d);\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                pos[0] = radius * 0.99 * (midangle < Math.PI ? 1 : -1);\n                return 'translate(' + pos + ')';\n            })\n            .style('text-anchor', function(d) {\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                return (midangle < Math.PI ? 'start' : 'end')\n            });\n        \n        \/\/ Wrap text \n        function wrap(text, width) {\n          text.each(function() {\n            var text = d3.select(this),\n                words = text.text().split(\/\\s+\/).reverse(),\n                word,\n                line = [],\n                lineNumber = 0,\n                lineHeight = 1.5, \/\/ ems\n                y = text.attr(\"y\"),\n                dy = parseFloat(text.attr(\"dy\")),\n                tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\n            while (word = words.pop()) {\n              line.push(word)\n              tspan.text(line.join(\" \"))\n              if (tspan.node().getComputedTextLength() > width) {\n                line.pop()\n                tspan.text(line.join(\" \"))\n                line = [word]\n                tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\n              }\n            }\n          })\n        }\n    \n\n    <\/script>\n\n    \n<h4>\n\t\t\tHours of Technical Assistance Provided: 1,058\t<\/h4>\n\t    \n    <div id=\"pie_chart_thriving_economy_hours\"><\/div>\n\n            <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                \n    <script>\n       \n    \/\/ set the dimensions and margins of the graph\n    var width = 840\n    var height = 540\n    var margin = 0\n\n    \/\/ The radius of the pieplot is half the width or half the height (smallest one). I subtract a bit of margin.\n    var radius = Math.min(width, height) \/ 2 - margin\n\n    \/\/ append the svg object to the div called 'typeofstructure'\n    var svg = d3.select(\"#pie_chart_thriving_economy_hours\")\n      .append(\"svg\")\n        .attr(\"viewBox\", '0 0 840 580')\n      .append(\"g\")\n        .attr(\"transform\", \"translate(\" + width \/ 2 + \",\" + height \/ 2 + \")\");\n        \n\n    \/\/ Create data\n    var data = {\"Impact Investing: 951\":90,\"Double Up Michigan: 107\":10}\n    \/\/ set the color scale\n    var color = d3.scaleOrdinal()\n      .domain([\"Impact Investing: 951\",\"Double Up Michigan: 107\"])\n      .range([\"#57a647\",\"#1e5739\"])\n\n    \/\/ Compute the position of each group on the pie:\n    var pie = d3.pie()\n      .sort(null) \/\/ Do not sort group by size\n      .value(function(d) {return d.value; })\n    var data_ready = pie(d3.entries(data))\n\n    \/\/ The arc generator\n    var arc = d3.arc()\n      .innerRadius(radius * 0.4)         \/\/ This is the size of the donut hole\n      .outerRadius(radius * 0.8)\n\n    \/\/ Another arc that won't be drawn. Just for labels positioning\n    var outerArc = d3.arc()\n      .innerRadius(radius * 0.9)\n      .outerRadius(radius * 0.9)\n\n    \/\/ Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.\n    svg\n      .selectAll('allSlices')\n      .data(data_ready)\n      .enter()\n      .append('path')\n      .attr('d', arc)\n      .attr('fill', function(d){ return(color(d.data.key)) })\n      .attr(\"stroke\", \"white\")\n      .style(\"stroke-width\", \"0px\")\n      .style(\"opacity\", 1)\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allPolylines')\n      .data(data_ready)\n      .enter()\n      .append('polyline')\n        .attr(\"stroke\", function(d){ return(color(d.data.key)) })\n        .style(\"fill\", \"none\")\n        .attr(\"stroke-width\", 1)\n        .attr('points', function(d) {\n          var posA = arc.centroid(d) \/\/ line insertion in the slice\n          var posB = outerArc.centroid(d) \/\/ line break: we use the other arc generator that has been built only for that\n          var posC = outerArc.centroid(d); \/\/ Label position = almost the same as posB\n          var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2 \/\/ we need the angle to see if the X position will be at the extreme right or extreme left\n          posC[0] = radius * 0.95 * (midangle < Math.PI ? 1 : -1); \/\/ multiply by 1 or -1 to put it on the right or on the left\n          return [posA, posB, posC]\n        })\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allLabels')\n      .data(data_ready)\n      .enter()\n      .append('text')\n            .attr(\"y\", 0)\n            .attr(\"dy\", 0)\n            .attr(\"transform\", \"translate(10,0)\")\n            .text( function(d) { return d.data.key + ' ('+ d.data.value+'%)' } )\n            .call(wrap, 150)\n            .attr('transform', function(d) {\n                var pos = outerArc.centroid(d);\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                pos[0] = radius * 0.99 * (midangle < Math.PI ? 1 : -1);\n                return 'translate(' + pos + ')';\n            })\n            .style('text-anchor', function(d) {\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                return (midangle < Math.PI ? 'start' : 'end')\n            });\n        \n        \/\/ Wrap text \n        function wrap(text, width) {\n          text.each(function() {\n            var text = d3.select(this),\n                words = text.text().split(\/\\s+\/).reverse(),\n                word,\n                line = [],\n                lineNumber = 0,\n                lineHeight = 1.5, \/\/ ems\n                y = text.attr(\"y\"),\n                dy = parseFloat(text.attr(\"dy\")),\n                tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\n            while (word = words.pop()) {\n              line.push(word)\n              tspan.text(line.join(\" \"))\n              if (tspan.node().getComputedTextLength() > width) {\n                line.pop()\n                tspan.text(line.join(\" \"))\n                line = [word]\n                tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\n              }\n            }\n          })\n        }\n    \n\n    <\/script>\n\n    \n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/seeds-1.svg\" alt=\"seeds-1\" height=\"95\" width=\"101\" title=\"seeds-1\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n<h2>\n\t\t\tResilient Food and Agriculture Systems\t<\/h2>\n\t<p>This outcome area focuses on increasing resources that strengthen local food infrastructure. This helps connect more local products to markets and builds stronger regional food systems.<\/p>\n<h4>\n\t\t\tNUMBER BUSINESSES &#8211; ORGANIZATION-WIDE TOTAL: 948\t<\/h4>\n\t<p>Impact Investing: 77<\/p>\n<p>Double Up Michigan: 882<\/p>\n<h4>\n\t\t\tDollars Invested &#8211; Organization-wide Total: $7,949,485\t<\/h4>\n\t    \n    <div id=\"pie_chart_resilience_dollars\"><\/div>\n\n            <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                \n    <script>\n       \n    \/\/ set the dimensions and margins of the graph\n    var width = 840\n    var height = 540\n    var margin = 0\n\n    \/\/ The radius of the pieplot is half the width or half the height (smallest one). I subtract a bit of margin.\n    var radius = Math.min(width, height) \/ 2 - margin\n\n    \/\/ append the svg object to the div called 'typeofstructure'\n    var svg = d3.select(\"#pie_chart_resilience_dollars\")\n      .append(\"svg\")\n        .attr(\"viewBox\", '0 0 840 580')\n      .append(\"g\")\n        .attr(\"transform\", \"translate(\" + width \/ 2 + \",\" + height \/ 2 + \")\");\n        \n\n    \/\/ Create data\n    var data = {\"Impact Investing Direct investments: $1,674,327, Additional capital leveraged by direct investments: $1,684,620\":21,\"Double Up Michigan: $6,275,158\":79}\n    \/\/ set the color scale\n    var color = d3.scaleOrdinal()\n      .domain([\"Impact Investing Direct investments: $1,674,327, Additional capital leveraged by direct investments: $1,684,620\",\"Double Up Michigan: $6,275,158\"])\n      .range([\"#57a647\",\"#1e5739\"])\n\n    \/\/ Compute the position of each group on the pie:\n    var pie = d3.pie()\n      .sort(null) \/\/ Do not sort group by size\n      .value(function(d) {return d.value; })\n    var data_ready = pie(d3.entries(data))\n\n    \/\/ The arc generator\n    var arc = d3.arc()\n      .innerRadius(radius * 0.4)         \/\/ This is the size of the donut hole\n      .outerRadius(radius * 0.8)\n\n    \/\/ Another arc that won't be drawn. Just for labels positioning\n    var outerArc = d3.arc()\n      .innerRadius(radius * 0.9)\n      .outerRadius(radius * 0.9)\n\n    \/\/ Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.\n    svg\n      .selectAll('allSlices')\n      .data(data_ready)\n      .enter()\n      .append('path')\n      .attr('d', arc)\n      .attr('fill', function(d){ return(color(d.data.key)) })\n      .attr(\"stroke\", \"white\")\n      .style(\"stroke-width\", \"0px\")\n      .style(\"opacity\", 1)\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allPolylines')\n      .data(data_ready)\n      .enter()\n      .append('polyline')\n        .attr(\"stroke\", function(d){ return(color(d.data.key)) })\n        .style(\"fill\", \"none\")\n        .attr(\"stroke-width\", 1)\n        .attr('points', function(d) {\n          var posA = arc.centroid(d) \/\/ line insertion in the slice\n          var posB = outerArc.centroid(d) \/\/ line break: we use the other arc generator that has been built only for that\n          var posC = outerArc.centroid(d); \/\/ Label position = almost the same as posB\n          var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2 \/\/ we need the angle to see if the X position will be at the extreme right or extreme left\n          posC[0] = radius * 0.95 * (midangle < Math.PI ? 1 : -1); \/\/ multiply by 1 or -1 to put it on the right or on the left\n          return [posA, posB, posC]\n        })\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allLabels')\n      .data(data_ready)\n      .enter()\n      .append('text')\n            .attr(\"y\", 0)\n            .attr(\"dy\", 0)\n            .attr(\"transform\", \"translate(10,0)\")\n            .text( function(d) { return d.data.key + ' ('+ d.data.value+'%)' } )\n            .call(wrap, 150)\n            .attr('transform', function(d) {\n                var pos = outerArc.centroid(d);\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                pos[0] = radius * 0.99 * (midangle < Math.PI ? 1 : -1);\n                return 'translate(' + pos + ')';\n            })\n            .style('text-anchor', function(d) {\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                return (midangle < Math.PI ? 'start' : 'end')\n            });\n        \n        \/\/ Wrap text \n        function wrap(text, width) {\n          text.each(function() {\n            var text = d3.select(this),\n                words = text.text().split(\/\\s+\/).reverse(),\n                word,\n                line = [],\n                lineNumber = 0,\n                lineHeight = 1.5, \/\/ ems\n                y = text.attr(\"y\"),\n                dy = parseFloat(text.attr(\"dy\")),\n                tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\n            while (word = words.pop()) {\n              line.push(word)\n              tspan.text(line.join(\" \"))\n              if (tspan.node().getComputedTextLength() > width) {\n                line.pop()\n                tspan.text(line.join(\" \"))\n                line = [word]\n                tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\n              }\n            }\n          })\n        }\n    \n\n    <\/script>\n\n    \n<h4>\n\t\t\tHours of Technical Assistance Provided: 677\t<\/h4>\n\t    \n    <div id=\"pie_chart_resilience_hours\"><\/div>\n\n            <script>\n            var cart = [];\n        <\/script>\n                        <script>\n            var cart = [];\n        <\/script>\n                \n    <script>\n       \n    \/\/ set the dimensions and margins of the graph\n    var width = 840\n    var height = 540\n    var margin = 0\n\n    \/\/ The radius of the pieplot is half the width or half the height (smallest one). I subtract a bit of margin.\n    var radius = Math.min(width, height) \/ 2 - margin\n\n    \/\/ append the svg object to the div called 'typeofstructure'\n    var svg = d3.select(\"#pie_chart_resilience_hours\")\n      .append(\"svg\")\n        .attr(\"viewBox\", '0 0 840 580')\n      .append(\"g\")\n        .attr(\"transform\", \"translate(\" + width \/ 2 + \",\" + height \/ 2 + \")\");\n        \n\n    \/\/ Create data\n    var data = {\"Impact Investing: 570\":84,\"Double Up Michigan: 107\":16}\n    \/\/ set the color scale\n    var color = d3.scaleOrdinal()\n      .domain([\"Impact Investing: 570\",\"Double Up Michigan: 107\"])\n      .range([\"#57a647\",\"#1e5739\"])\n\n    \/\/ Compute the position of each group on the pie:\n    var pie = d3.pie()\n      .sort(null) \/\/ Do not sort group by size\n      .value(function(d) {return d.value; })\n    var data_ready = pie(d3.entries(data))\n\n    \/\/ The arc generator\n    var arc = d3.arc()\n      .innerRadius(radius * 0.4)         \/\/ This is the size of the donut hole\n      .outerRadius(radius * 0.8)\n\n    \/\/ Another arc that won't be drawn. Just for labels positioning\n    var outerArc = d3.arc()\n      .innerRadius(radius * 0.9)\n      .outerRadius(radius * 0.9)\n\n    \/\/ Build the pie chart: Basically, each part of the pie is a path that we build using the arc function.\n    svg\n      .selectAll('allSlices')\n      .data(data_ready)\n      .enter()\n      .append('path')\n      .attr('d', arc)\n      .attr('fill', function(d){ return(color(d.data.key)) })\n      .attr(\"stroke\", \"white\")\n      .style(\"stroke-width\", \"0px\")\n      .style(\"opacity\", 1)\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allPolylines')\n      .data(data_ready)\n      .enter()\n      .append('polyline')\n        .attr(\"stroke\", function(d){ return(color(d.data.key)) })\n        .style(\"fill\", \"none\")\n        .attr(\"stroke-width\", 1)\n        .attr('points', function(d) {\n          var posA = arc.centroid(d) \/\/ line insertion in the slice\n          var posB = outerArc.centroid(d) \/\/ line break: we use the other arc generator that has been built only for that\n          var posC = outerArc.centroid(d); \/\/ Label position = almost the same as posB\n          var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2 \/\/ we need the angle to see if the X position will be at the extreme right or extreme left\n          posC[0] = radius * 0.95 * (midangle < Math.PI ? 1 : -1); \/\/ multiply by 1 or -1 to put it on the right or on the left\n          return [posA, posB, posC]\n        })\n\n    \/\/ Add the polylines between chart and labels:\n    svg\n      .selectAll('allLabels')\n      .data(data_ready)\n      .enter()\n      .append('text')\n            .attr(\"y\", 0)\n            .attr(\"dy\", 0)\n            .attr(\"transform\", \"translate(10,0)\")\n            .text( function(d) { return d.data.key + ' ('+ d.data.value+'%)' } )\n            .call(wrap, 150)\n            .attr('transform', function(d) {\n                var pos = outerArc.centroid(d);\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                pos[0] = radius * 0.99 * (midangle < Math.PI ? 1 : -1);\n                return 'translate(' + pos + ')';\n            })\n            .style('text-anchor', function(d) {\n                var midangle = d.startAngle + (d.endAngle - d.startAngle) \/ 2\n                return (midangle < Math.PI ? 'start' : 'end')\n            });\n        \n        \/\/ Wrap text \n        function wrap(text, width) {\n          text.each(function() {\n            var text = d3.select(this),\n                words = text.text().split(\/\\s+\/).reverse(),\n                word,\n                line = [],\n                lineNumber = 0,\n                lineHeight = 1.5, \/\/ ems\n                y = text.attr(\"y\"),\n                dy = parseFloat(text.attr(\"dy\")),\n                tspan = text.text(null).append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", dy + \"em\")\n            while (word = words.pop()) {\n              line.push(word)\n              tspan.text(line.join(\" \"))\n              if (tspan.node().getComputedTextLength() > width) {\n                line.pop()\n                tspan.text(line.join(\" \"))\n                line = [word]\n                tspan = text.append(\"tspan\").attr(\"x\", 0).attr(\"y\", y).attr(\"dy\", `${++lineNumber * lineHeight + dy}em`).text(word)\n              }\n            }\n          })\n        }\n    \n\n    <\/script>\n\n    \n\t<blockquote><p>Supporting Fair Food Network is one of our most rewarding philanthropic activities. Their work to improve communities&#8217; health, wealth and resilience through food supports people in ways that magnifies dignity and is sustainable because it empowers entrepreneurs within those communities.&#8221;<\/p><\/blockquote>\n\t<span class=\"p-large\">John Stewart, Fair Food Network Board Member and Donor<\/span>\n<figure itemscope itemtype=\"https:\/\/schema.org\/ImageObject\">\n\t\t\t\t<img decoding=\"async\" src=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2025\/03\/ffn-icons-seeds.svg\" alt=\"ffn-icons-seeds\" height=\"111\" width=\"112\" title=\"ffn-icons-seeds\" onerror=\"this.style.display='none'\" loading=\"lazy\" \/>\n\t<\/figure>\n<h2>\n\t\t\tOur Supporters\t<\/h2>\n\t<p>Our enduring gratitude for our supporters who help make this impact possible. With your partnership, we&#8217;re growing a future where everyone has access to healthy food, economic opportunity, and a resilient food and agriculture system.<\/p>\n<h4>\n\t\t\tOUR BOARD\t<\/h4>\n\tGary Appel, Advisor, W.K. Kellogg Foundation Community<br \/>\nLeadership Network\nErik Bakker, EVP &amp; Chief Commercial Loan Officer,<br \/>\nBank of Ann Arbor\n<p>Benita Melton, Director, Youth Development<\/p>\nKwaku Osei, Executive Director, The LOVE Building &amp; Co-Founder,<br \/>\nFarmacy Food\n<p>John Stewart, Technology Executive<\/p>\n<p>Dan Warmels, CPA, Co-Founder, Warmels &amp; Comstock<\/p>\n<p>W. DeWayne Wells, Executive Director, Economic Justice Alliance of Michigan<\/p>\n<p>Sarah L. Wixson, Litigation Partner, Varnum Attorneys at Law<\/p>\n<h4>\n\t\t\tEXECUTIVE TEAM\t<\/h4>\n\t<p>Kate Krauss, CEO<\/p>\n<p>Holly A. Parker, CEO-Elect<\/p>\n<p>Cassandra Fletcher-Martin, Chief Financial Officer<\/p>\n<p>Kellie Boyd, Vice President of People &amp; Culture<\/p>\n<h4>\n\t\t\tINVESTMENT COMMITTEE\t<\/h4>\n\t<p>Chris Bentley, Impact Fund Manager, Serious Change Investments &amp; Sustain VC<\/p>\n<p>Cassandra Fletcher-Martin, Chief Financial Officer, Fair Food Network<\/p>\n<p>Michael Rozyne, Founder &amp; Evangelist, Red Tomato<\/p>\n<p>Daniel Tellalian, Founder &amp; CEO, Angel City Advisors<\/p>\n<p>Dan Warmels, CPA, Shareholder, Clark Shaefer Hackett<\/p>\n<h4>\n\t\t\tINSTITUTIONAL FUNDERS\t<\/h4>\n\t<p><strong>$500,000 and above<\/strong><\/p>\n\tClif Family Foundation<br \/>\nMarguerite Casey Foundation<br \/>\nMichigan Department of Agriculture &amp; Rural Development (MDARD)<br \/>\nRalph C. Wilson, Jr. Foundation<br \/>\nReinvestment Fund &#8211; Healthy Food Finance Initiative<br \/>\nUnited States Department of Agriculture (USDA)<br \/>\nW.K. Kellogg Foundation<br \/>\nYou Have Our Trust Fund of New Hampshire Charitable Foundation\n\t<p><strong>$250,000 to $499,999<\/strong><\/p>\n\tAnn Arbor Area Community Foundation<br \/>\nCharles Stewart Mott Foundation<br \/>\nMax M. &amp; Marjorie S. Fisher Foundation<br \/>\nNew York State Health Foundation<br \/>\nSwift Foundation\n\t<p><strong>$100,000 to $249,999<\/strong><\/p>\n\tCommunity Foundation for Southeast<br \/>\nMichigan-New Economy Initiative<br \/>\nFord Philanthropy<br \/>\nMcGregor Fund<br \/>\nMichigan Health Endowment Fund<br \/>\nOakland County Health &amp; Human Services<br \/>\nSkillman Foundation\n\t<p><strong>$25,000 to $99,999<\/strong><\/p>\n\tCommunity Foundation of Greater Flint<br \/>\nDalio Philanthropies<br \/>\nDomino&#8217;s Pizza<br \/>\nMighty Arrow Family Foundation<br \/>\nRuth Mott Foundation\n\t<p><strong>Up to $24,999<\/strong><\/p>\n\tAmericana Foundation<br \/>\nAmway<br \/>\nAnonymous<br \/>\nDominican Sisters of Grand Rapids<br \/>\nFood and Nutrition Resource Foundation\n\t<p><strong>Thank you to our Donor Advised &amp; Investment Fund Platform Partners\u00a0<\/strong><\/p>\n\tCapShift<br \/>\nChordata Capital<br \/>\nNatural Investments, LLC\n<h4>\n\t\t\tINDIVIDUAL DONORS\t<\/h4>\n\t<p><strong>$25,000 and above<\/strong><\/p>\n\tAnonymous<br \/>\nAnonymous<br \/>\nNoon Whistle<br \/>\nOran Hesterman &amp; Lucinda Kurtz\n\t<p><strong>$10,000 to $24,999<\/strong><\/p>\n\tDavid D. Fukuzawa &amp; Toni Kovach<br \/>\nHamp Family Fund<br \/>\nMelissa McPheeters\n\t<p><strong>$5,000 to $9,999<\/strong><\/p>\n\tPhillip Wm. Fisher<br \/>\nPaul &amp; Judy Freedman<br \/>\nDave Ligotti &amp; Karen Quenneville<br \/>\nJohn Stewart &amp; Ramon Torres\n\t<p><strong>$1000 to $4999<\/strong><\/p>\n\tGary &amp; Mimi Appel<br \/>\nKenneth Fisher<br \/>\nThadd Gormas<br \/>\nJanet Katz<br \/>\nBill &amp; Sally Martin<br \/>\nGary &amp; Nancy McRay<br \/>\nDevesh Poddar<br \/>\nTimothy Richards &amp; Constance McGuire<br \/>\nBrian Weisman &amp; Kimberly Burton<br \/>\nPeter Welles\n\t<p><strong>$250 to $999<\/strong><\/p>\n\tKellie Boyd<br \/>\nMichael Carosello<br \/>\nJohn &amp; Margie DeVine<br \/>\nTodd &amp; Judith Endelman<br \/>\nCassandra Fletcher-Martin<br \/>\nBrian Harrison<br \/>\nNaomi Harrison<br \/>\nJenine Hinkle<br \/>\nKate Krauss<br \/>\nLori London<br \/>\nPeter &amp; Deb Nathan<br \/>\nTim &amp; Kate Partridge<br \/>\nAlessandro Sacilotto<br \/>\nRose Tantraphol<br \/>\nW. DeWayne Wells\n\t<p><b>Up to $249<\/b><\/p>\n\tElizabeth Alpern<br \/>\nSuzanne Angeo<br \/>\nAlexander Carr<br \/>\nKatherine Coppens<br \/>\nHenna Culbertson<br \/>\nTimothy Donovan<br \/>\nJames Ellis<br \/>\nElizabeth Erfert<br \/>\nAbrams Family<br \/>\nMarissa Fellows<br \/>\nKatherine Forsythe<br \/>\nGillian Gainsley<br \/>\nHannah Grall<br \/>\nJudith Grego<br \/>\nJenny Hall<br \/>\nIdelle Hammond-Sass<br \/>\nDan Horn<br \/>\nLara Keathley<br \/>\nElizabeth Ketaineck<br \/>\nAlistair Kiyingi<br \/>\nMaria LaLonde<br \/>\nRussell Leino<br \/>\nSamuel Lieber<br \/>\nIrving Lum<br \/>\nDarci McConnell<br \/>\nMaria Mendez\n\tErin Michon<br \/>\nJoel Moyer<br \/>\nScott Moyer<br \/>\nAndi Nank<br \/>\nRebecca Nelson<br \/>\nGail Offen<br \/>\nDennis Oney<br \/>\nPhillip &amp; Sally Parker<br \/>\nSara Persechino<br \/>\nBonnie Reece<br \/>\nCharles Rose<br \/>\nJessica Roy<br \/>\nHarrison Saunders<br \/>\nSandra Schrah<br \/>\nRobert Schumaker<br \/>\nLisa Sebesta<br \/>\nLoretta Smith<br \/>\nStephanee Strasburg<br \/>\nOmari Taylor<br \/>\nMegan &amp; Marcus Thygeson<br \/>\nBrenda Turner<br \/>\nTyler Vens<br \/>\nPasquale Vignola<br \/>\nMicah Warschausky<br \/>\nSuzanne Zelnik Geldys<br \/>\nSarah Zettel\n<h2>\n\t\t\tJoin Us\t<\/h2>\n\t<p>We believe that food is a powerful starting point for change &#8211; sparking collaboration, strengthening communities, and opening doors to new possibilities. Whether you&#8217;re a food entrepreneur, donor, funder, investor, policymaker, frontline practitioner, or another changemaker, we&#8217;re ready to partner with you to drive both immediate impact and lasting systems change.<\/p>\n<p>Join us in growing community health, wealth, and resilience through food.<\/p>\n\t\t\t<a href=\"https:\/\/fairfoodnetwork.org\/give\/\"  target=\"_self\">\n\t\t\t\t\t\t\tGive\n\t\t\t\t\t<\/a>\n<h2>\n\t\t\tStay In Touch\t<\/h2>\n\t\t\t<a href=\"https:\/\/fairfoodnetwork.org\/email-signup\/\"  target=\"_self\">\n\t\t\t\t\t\t\tSign Up\n\t\t\t\t\t<\/a>\n\t<p>Thank you to contributors to this report: writer Adam Robson; designers at Loop: Design for Social Good and EmSi Branding Design. Photography is courtesy of Fair Food Network and\/or subjects.<\/p>\n\t<p><strong>Dig into past impact reports from Fair Food Network, featuring stories from the field:<\/strong><\/p>\n\t\t\t<a href=\"https:\/\/fairfoodnetwork.org\/2024impact\/\"  target=\"_self\">\n\t\t\t\t\t\t\t2024 Impact Report\n\t\t\t\t\t<\/a>\n\t\t\t<a href=\"https:\/\/fairfoodnetwork.org\/2023impact\/\"  target=\"_self\">\n\t\t\t\t\t\t\t2023 Impact Report\n\t\t\t\t\t<\/a>\n\n","protected":false},"excerpt":{"rendered":"<p>Highlight Investing in the Building Blocks of Fresh Food Access Michigan With strawberries ubiquitous on supermarket shelves even in January, we tend to think of warm-weather states providing America&#8217;s fruit and vegetable bounty. A little-known fact is that Michigan, even with its northerly latitude and long winters, has the second most diverse agricultural output in&hellip;<\/p>\n","protected":false},"author":12,"featured_media":814,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-746","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>2025 Impact Report - Fair Food Network<\/title>\n<meta name=\"description\" content=\"Fair Food Network believes that when we start with food, so much is possible: collaborative solutions, lasting partnerships, vibrant communities, and new paths forward.\" \/>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"2025 Impact Report - Fair Food Network\" \/>\n<meta property=\"og:description\" content=\"Fair Food Network believes that when we start with food, so much is possible: collaborative solutions, lasting partnerships, vibrant communities, and new paths forward.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fairfoodnetwork.org\/2025impact\/\" \/>\n<meta property=\"og:site_name\" content=\"Fair Food Network 2025 Report\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-06T16:33:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/Untitled-design-11.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/\",\"url\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/\",\"name\":\"2025 Impact Report - Fair Food Network\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/wp-content\\\/uploads\\\/sites\\\/10\\\/2026\\\/03\\\/Untitled-design-11.jpg\",\"datePublished\":\"2026-03-22T23:05:57+00:00\",\"dateModified\":\"2026-04-06T16:33:43+00:00\",\"description\":\"Fair Food Network believes that when we start with food, so much is possible: collaborative solutions, lasting partnerships, vibrant communities, and new paths forward.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/#breadcrumb\"},\"inLanguage\":\"en-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-CA\",\"@id\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/wp-content\\\/uploads\\\/sites\\\/10\\\/2026\\\/03\\\/Untitled-design-11.jpg\",\"contentUrl\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/wp-content\\\/uploads\\\/sites\\\/10\\\/2026\\\/03\\\/Untitled-design-11.jpg\",\"width\":1200,\"height\":1500},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"2025 Impact Report\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/#website\",\"url\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/\",\"name\":\"Fair Food Network 2025 Report\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fairfoodnetwork.org\\\/2025impact\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-CA\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"2025 Impact Report - Fair Food Network","description":"Fair Food Network believes that when we start with food, so much is possible: collaborative solutions, lasting partnerships, vibrant communities, and new paths forward.","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"2025 Impact Report - Fair Food Network","og_description":"Fair Food Network believes that when we start with food, so much is possible: collaborative solutions, lasting partnerships, vibrant communities, and new paths forward.","og_url":"https:\/\/fairfoodnetwork.org\/2025impact\/","og_site_name":"Fair Food Network 2025 Report","article_modified_time":"2026-04-06T16:33:43+00:00","og_image":[{"width":1200,"height":1500,"url":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/Untitled-design-11.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/fairfoodnetwork.org\/2025impact\/","url":"https:\/\/fairfoodnetwork.org\/2025impact\/","name":"2025 Impact Report - Fair Food Network","isPartOf":{"@id":"https:\/\/fairfoodnetwork.org\/2025impact\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fairfoodnetwork.org\/2025impact\/#primaryimage"},"image":{"@id":"https:\/\/fairfoodnetwork.org\/2025impact\/#primaryimage"},"thumbnailUrl":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/Untitled-design-11.jpg","datePublished":"2026-03-22T23:05:57+00:00","dateModified":"2026-04-06T16:33:43+00:00","description":"Fair Food Network believes that when we start with food, so much is possible: collaborative solutions, lasting partnerships, vibrant communities, and new paths forward.","breadcrumb":{"@id":"https:\/\/fairfoodnetwork.org\/2025impact\/#breadcrumb"},"inLanguage":"en-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fairfoodnetwork.org\/2025impact\/"]}]},{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/fairfoodnetwork.org\/2025impact\/#primaryimage","url":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/Untitled-design-11.jpg","contentUrl":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-content\/uploads\/sites\/10\/2026\/03\/Untitled-design-11.jpg","width":1200,"height":1500},{"@type":"BreadcrumbList","@id":"https:\/\/fairfoodnetwork.org\/2025impact\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fairfoodnetwork.org\/2025impact\/"},{"@type":"ListItem","position":2,"name":"2025 Impact Report"}]},{"@type":"WebSite","@id":"https:\/\/fairfoodnetwork.org\/2025impact\/#website","url":"https:\/\/fairfoodnetwork.org\/2025impact\/","name":"Fair Food Network 2025 Report","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fairfoodnetwork.org\/2025impact\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-CA"}]}},"_links":{"self":[{"href":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-json\/wp\/v2\/pages\/746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-json\/wp\/v2\/comments?post=746"}],"version-history":[{"count":0,"href":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-json\/wp\/v2\/pages\/746\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-json\/wp\/v2\/media\/814"}],"wp:attachment":[{"href":"https:\/\/fairfoodnetwork.org\/2025impact\/wp-json\/wp\/v2\/media?parent=746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}