1 2 3 4 5<!DOCTYPE html> 6<html lang="en-us"> 7 <head> 8 <meta charset="UTF-8" /> 9 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 10 11 12 <meta name="referrer" content="unsafe-url" /> 13 14 15 <link rel="preconnect" href="https://ajax.googleapis.com" crossorigin> 16 <link rel="preconnect" href="https://www.googletagmanager.com"> 17 <link rel="preconnect" href="https://securepubads.g.doubleclick.net"> 18 <link rel="preconnect" href="https://pagead2.googlesyndication.com"> 19 <link rel="preconnect" href="https://subscriber.ssir.org" crossorigin> 20 <link rel="preconnect" href="https://cse.google.com"> 21 <link rel="dns-prefetch" href="https://www.google-analytics.com"> 22 23 24
24<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js" defer></script>
24 25
25<script src="/js/cookie.js" defer></script>
25 26
26<script src="/js/cssrelpreload.js" defer></script>
26 27 28 29 30 <title>Overview</title> 31 32 33 34 <meta property="og:type" content="website" /> 35 36 37 38 <link rel="canonical" href="https://ssir.org/about/overview"/> 39 <meta property="og:url" content="https://ssir.org/about/overview" /> 40 <!-- huh --> 41 42 43 <meta name="twitter:card" content="summary"> 44 45 46 47 48 49 50 51
51<script 52 type="text/javascript" 53 src="https://app.termly.io/resource-blocker/02bad1f4-ec36-494f-b5c0-bff7d402d296?autoBlock=on" 54 ></script>
54 55 56
56<script> 57 dataLayer = [{ 58 "subscriberLoggedIn": "Guests", 59 60 "publishDate": "2006-06-08T16:04:00-07:00", 61 62 63 64 65 66 67 "gtmStatus": "prod", 68 "paywallStatus": "" 69 }]; 70 </script>
70 71 72 <!-- Google Tag Manager --> 73
73<script>
vendor: 323 bytes, line 73
73(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','
73GTM-TNTS5VB
vendor: 3 bytes, line 73
73');
73</script>
73 74 <!-- End Google Tag Manager --> 75 76 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 72 bytes, lines 76-77
76 77 <script async src="https://www.googletagmanager.com/gtag/js?id=
77G-8XRL7X45FT
vendor: 20 bytes, lines 77-78
77"></script> 78
78<script> 79
vendor: 152 bytes, lines 79-83
79window.dataLayer = window.dataLayer || []; 80 function gtag(){dataLayer.push(arguments);} 81 gtag('js', new Date()); 82 83 gtag('config', '
83G-8XRL7X45FT
vendor: 12 bytes, lines 83-84
83'); 84
84</script>
84 85 86 87 <meta name="msvalidate.01" content="5374F42B10367E0CE1CD03BC47AFB94C" /> 88 89 <link rel="icon" type="image/png" href="/assets/favicon/favicon-96x96.png" sizes="96x96" /> 90 <link rel="icon" type="image/svg+xml" href="/assets/favicon/favicon.svg" /> 91 <link rel="shortcut icon" href="/assets/favicon/favicon.ico" /> 92 <link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png" /> 93 <link rel="manifest" href="/assets/favicon/site.webmanifest" /> 94 95 <meta property="fb:app_id" content="1566208430350173" /> 96 97 <!-- Global CSS --> 98 <link rel="preload" href="https://fonts.googleapis.com/css?family=Titillium+Web" as="style" onload="this.onload=null;this.rel='stylesheet'"> 99 <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium+Web"></noscript> 100 101 <link rel="preload" href="/css/fonts.css?v=2026-02-12" as="style" onload="this.onload=null;this.rel='stylesheet'"> 102 <noscript><link rel="stylesheet" href="/css/fonts.css?v=2026-02-12"></noscript> 103 104 105 <link rel="preload" href="/css/style.css?v=2026-08-12" as="style" onload="this.onload=null;this.rel='stylesheet'"/> 106 <!-- Preload CSS --> 107 <link rel="preload" href="/css/style_async.css?v=2026-08-12" as="style" onload="this.onload=null;this.rel='stylesheet'"> 108 <noscript><link rel="stylesheet" href="/css/style_async.css?v=2026-08-04-01"></noscript> 109 110 <link rel="stylesheet" type="text/css" href="https://ssir.org/minify/16daa1c2250228f4361e2e7aac8b293804fec255.1527098460.css" rel="none" onload="this.onload=null;this.rel='stylesheet'" /> 111 <noscript> 112 <link rel="stylesheet" href="https://ssir.org/minify/4fa6bb2191ea6a584b17c00306b4dfea168d8872.1773316872.css" /> 113 </noscript> 114 115 116 117 118 119 120 121 122 123 124 125 <!-- BEGIN GOOGLE SEARCH CODE --> 126
126<script src="/js/shared/google-cse.js?v=2026-07-28" data-cx="008920298281052476179:dtxgwiwqvhc" defer></script>
126 127 <!-- END GOOGLE SEARCH CODE --> 128 129 <meta name="Copyright" content="(c) 2005-2026" /> 130 131 132 <link rel="alternate" type="application/rss+xml" title="SSIR Articles" href="https://ssir.org/site/rss_2.0" /> 133 <link rel="alternate" type="application/rss+xml" title="SSIR Analysis and Opinion Blog" href="https://ssir.org/blog/rss" /> 134 <link rel="apple-touch-icon-precomposed" HREF="https://images.ssireview.org/apple-touch-icon.png" /> 135 136 137
137<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
137 138
138<script> 139 window.googletag = window.googletag || {cmd: []}; 140 googletag.cmd.push(function() { 141 var mappingTop = googletag.sizeMapping() 142 .addSize([758, 480], [728, 90]) 143 .addSize([0, 0], [320, 50]) // All viewports < 640x480 144 .build(); 145 146 googletag.defineSlot('/22062841453/SSIR_728x90', [[320, 50], [728, 90]], 'div-gpt-ad-1636034642111-0').defineSizeMapping(mappingTop).addService(googletag.pubads()); 147 googletag.defineSlot('/22062841453/SSIR_HighImpact', [[600, 250], [468, 60], [300, 250]], 'div-gpt-ad-1646354848641-0').addService(googletag.pubads()); 148 149 googletag.defineSlot('/22062841453/300x250ATF', [300, 250], 'div-gpt-ad-1596666215664-0').addService(googletag.pubads()); 150 googletag.defineSlot('/22062841453/SSIR_300x250BTF', [300, 250], 'div-gpt-ad-1596665496550-0').addService(googletag.pubads()); 151 152 googletag.pubads().enableSingleRequest(); 153 googletag.enableServices(); 154 }); 155 </script>
155 156 157
157<script data-ad-client="ca-pub-8471827283965476" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
157 158 159 160 </head> 161 <body> 162 <div id="refreshed_csrf_token" style="display: none;"><input type="hidden" name="csrf_token" value="ecf0be77ebacb0e4cd630a2e36307cbd05a27ef5"></div> 163
163<script> 164 function fetchAndInjectHTML(url, scriptElement = null, shouldInject = true, callback = null) { 165 return (async () => { 166 try { 167 const response = await fetch(url); 168 if (!response.ok) { 169 throw new Error(`HTTP error! status: ${response.status}`); 170 } 171 const htmlContent = await response.text(); 172 173 if (shouldInject && scriptElement) { 174 const container = document.createElement('div'); 175 container.innerHTML = htmlContent; 176 scriptElement.insertAdjacentElement('afterend', container); 177 178 // Remove the script tag after injection 179 scriptElement.remove(); 180 } 181 if (callback) {callback();} 182 183 return htmlContent; // Always return the HTML content 184 } catch (error) { 185 console.error('Error fetching and injecting HTML:', error); 186 return null; // Return null in case of an error 187 } 188 })(); 189 } 190 </script>
190 191 <main> 192<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 192-193
192 193<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
193GTM-TNTS5VB
vendor: 83 bytes, line 193
193" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
194<!-- End Google Tag Manager (noscript) --> 195 196
196<script>fetchAndInjectHTML('/defer-load/cookie-reset', document.currentScript);</script>
196 197 <div class="wrapper"> 198 <div class="offset-nav"> 199 <header class="offset-nav-head"> 200 <a href="https://ssir.org/" class="home"> 201 <i class="ico ico-home" aria-hidden="true"></i> 202 </a> 203 <a href="#" class="close"> 204 <i class="ico ico-close-grey" aria-hidden="true"></i> 205 </a> 206 </header><!-- /.offset-nav-head --> 207 208 <div class="offset-nav-body"> 209 <nav class="nav-alt"> 210 <ul> 211 <li class="has-submenu first"> 212 <a href="#" class="uppercased">Social Issues <span>Education, Health, Security, etc.</span></a> 213 <div class="offset-nav-dropdown"> 214 <header class="offset-nav-dropdown-head"> 215 <a href="#" class="back"> 216 <i class="ico ico-back" aria-hidden="true"></i> 217 </a> 218 <a href="#" class="close"> 219 <i class="ico ico-close-grey" aria-hidden="true"></i> 220 </a> 221 </header><!-- /.offset-nav-dropdown-head --> 222 <div class="offset-nav-dropdown-body"> 223 <ul> 224 225 <li> 226 <a href="https://ssir.org/topics/category/arts-culture">Arts & Culture</a> 227 </li> 228 229 <li> 230 <a href="https://ssir.org/topics/category/cities">Cities</a> 231 </li> 232 233 <li> 234 <a href="https://ssir.org/topics/category/civic-engagement">Civic Engagement</a> 235 </li> 236 237 <li> 238 <a href="https://ssir.org/topics/category/economic-development">Economic Development</a> 239 </li> 240 241 <li> 242 <a href="https://ssir.org/topics/category/education">Education</a> 243 </li> 244 245 <li> 246 <a href="https://ssir.org/topics/category/energy">Energy</a> 247 </li> 248 249 <li> 250 <a href="https://ssir.org/topics/category/environment">Environment</a> 251 </li> 252 253 <li> 254 <a href="https://ssir.org/topics/category/food">Food</a> 255 </li> 256 257 <li> 258 <a href="https://ssir.org/topics/category/health">Health</a> 259 </li> 260 261 <li> 262 <a href="https://ssir.org/topics/category/human-rights">Human Rights</a> 263 </li> 264 265 <li> 266 <a href="https://ssir.org/topics/category/security">Security</a> 267 </li> 268 269 <li> 270 <a href="https://ssir.org/topics/category/social-services">Social Services</a> 271 </li> 272 273 <li> 274 <a href="https://ssir.org/topics/category/water-sanitation">Water & Sanitation</a> 275 </li> 276 277 </ul> 278 </div><!-- /.offset-nav-dropdown-body --> 279 </div><!-- /.nav-dropdown --> 280 </li> 281 <li class="has-submenu"> 282 <a href="#" class="uppercased">Sectors <span>Government, Nonprofit, Business, etc.</span></a> 283 <div class="offset-nav-dropdown"> 284 <header class="offset-nav-dropdown-head"> 285 <a href="#" class="back"> 286 <i class="ico ico-back" aria-hidden="true"></i> 287 </a> 288 <a href="#" class="close"> 289 <i class="ico ico-close-grey" aria-hidden="true"></i> 290 </a> 291 </header><!-- /.offset-nav-dropdown-head --> 292 <div class="offset-nav-dropdown-body"> 293 <ul> 294 295 <li> 296 <a href="https://ssir.org/topics/category/business">Business</a> 297 </li> 298 299 <li> 300 <a href="https://ssir.org/topics/category/foundations">Foundations</a> 301 </li> 302 303 <li> 304 <a href="https://ssir.org/topics/category/government">Government</a> 305 </li> 306 307 <li> 308 <a href="https://ssir.org/topics/category/nonprofits-ngos">Nonprofits & NGOs</a> 309 </li> 310 311 <li> 312 <a href="https://ssir.org/topics/category/social-enterprise">Social Enterprise</a> 313 </li> 314 315 </ul> 316 </div><!-- /.offset-nav-dropdown-body --> 317 </div><!-- /.nav-dropdown --> 318 </li> 319 <li class="has-submenu"> 320 <a href="#" class="uppercased">Solutions <span>Advocacy, Funding, Leadership, etc.</span></a> 321 <div class="offset-nav-dropdown"> 322 <header class="offset-nav-dropdown-head"> 323 <a href="#" class="back"> 324 <i class="ico ico-back" aria-hidden="true"></i> 325 </a> 326 <a href="#" class="close"> 327 <i class="ico ico-close-grey" aria-hidden="true"></i> 328 </a> 329 </header><!-- /.offset-nav-dropdown-head --> 330 <div class="offset-nav-dropdown-body"> 331 <ul> 332 333 <li> 334 <a href="https://ssir.org/topics/category/advocacy">Advocacy</a> 335 </li> 336 337 <li> 338 <a href="https://ssir.org/topics/category/collaboration">Collaboration</a> 339 </li> 340 341 <li> 342 <a href="https://ssir.org/topics/category/design-thinking">Design Thinking</a> 343 </li> 344 345 <li> 346 <a href="https://ssir.org/topics/category/governance">Governance</a> 347 </li> 348 349 <li> 350 <a href="https://ssir.org/topics/category/impact-investing">Impact Investing</a> 351 </li> 352 353 <li> 354 <a href="https://ssir.org/topics/category/leadership">Leadership</a> 355 </li> 356 357 <li> 358 <a href="https://ssir.org/topics/category/measurement-evaluation">Measurement & Evaluation</a> 359 </li> 360 361 <li> 362 <a href="https://ssir.org/topics/category/organizational-development">Organizational Development</a> 363 </li> 364 365 <li> 366 <a href="https://ssir.org/topics/category/philanthropy-funding">Philanthropy & Funding</a> 367 </li> 368 369 <li> 370 <a href="https://ssir.org/topics/category/scaling">Scaling</a> 371 </li> 372 373 <li> 374 <a href="https://ssir.org/topics/category/technology">Technology</a> 375 </li> 376 377 </ul> 378 </div><!-- /.offset-nav-dropdown-body --> 379 </div><!-- /.nav-dropdown --> 380 </li> 381 <li class="has-submenu"> 382 <a href="#" class="uppercased">Magazine</a> 383 <div class="offset-nav-dropdown"> 384 <header class="offset-nav-dropdown-head"> 385 <a href="#" class="back"> 386 <i class="ico ico-back" aria-hidden="true"></i> 387 </a> 388 <a href="#" class="close"> 389 <i class="ico ico-close-grey" aria-hidden="true"></i> 390 </a> 391 </header><!-- /.offset-nav-dropdown-head --> 392 <div class="offset-nav-dropdown-body"> 393 <ul> 394 <li> 395 <!-- Using current_time to bypass cached redirect --> 396 <a href="https://ssir.org/issue/fall-2026">Current Issue</a> 397 </li> 398 <li> 399 <a href="https://ssir.org/issue">All Issues</a> 400 </li> 401 <li> 402 <a href="https://ssir.org/supplement/magazine-supplements">Sponsored Supplements</a> 403 </li> 404 </ul> 405 </div><!-- /.offset-nav-dropdown-body --> 406 </div><!-- /.nav-dropdown --> 407 </li> 408 <li> 409 <a href="https://ssir.org/supplement/in-depth-series" class="uppercased">In-Depth Series</a> 410 </li> 411 <li> 412 <a href="https://ssir.org/podcasts" class="uppercased">Podcasts</a> 413 </li> 414 <li> 415 <a href="https://ssir.org/webinars" class="uppercased">Webinars</a> 416 </li> 417 <li> 418 <a href="https://ssir.org/events" class="uppercased">Events</a> 419 </li> 420 <li> 421 <a href="https://ssir.org/book_reviews" class="uppercased">Books</a> 422 </li> 423 <li> 424 <a href="https://ssir.org/videos" class="uppercased">Videos</a> 425 </li> 426 <li> 427 <a href="https://ssir.org/email" class="uppercased">Newsletter</a> 428 </li> 429 <li> 430 <a href="https://ssir.org/ssir-global" class="uppercased">Global Editions</a> 431 </li> 432 <li class="has-submenu"> 433 <a href="https://ssir.org/about/overview" class="uppercased">About Us</a> 434 <div class="offset-nav-dropdown"> 435 <header class="offset-nav-dropdown-head"> 436 <a href="#" class="back"> 437 <i class="ico ico-back" aria-hidden="true"></i> 438 </a> 439 <a href="#" class="close"> 440 <i class="ico ico-close-grey" aria-hidden="true"></i> 441 </a> 442 </header><!-- /.offset-nav-dropdown-head --> 443 <div class="offset-nav-dropdown-body"> 444 <ul> 445 <li> 446 <a href="https://ssir.org/about/overview">About <em>SSIR</em></a> 447 </li> 448 <li> 449 <a href="http://pacscenter.stanford.edu/">Stanford PACS</a> 450 </li> 451 <li> 452 <a href="https://ssir.org/about/contact">Contact Us</a> 453 </li> 454 <li> 455 <a href="https://ssir.org/about/submission-guidelines">Submissions</a> 456 </li> 457 <li> 458 <a href="https://ssir.org/advertising">Advertise</a> 459 </li> 460 <li> 461 <a href="https://ssir.org/help">Help</a> 462 </li> 463 <li> 464 <a href="https://ssir.org/reprints-permissions">Reprints</a> 465 </li> 466 <li> 467 <a href="http://www.stanford.edu/site/terms.html">Terms of Use</a> 468 </li> 469 <li> 470 <a href="https://ssir.org/privacy-policy">Privacy</a> 471 </li> 472 <li> 473 <a href="https://www.stanford.edu/site/accessibility/">Accessibility</a> 474 </li> 475 <li> 476 <a href="https://ssir.org/site-map">Site Map</a> 477 </li> 478 479 </ul> 480 </div><!-- /.offset-nav-dropdown-body --> 481 </div><!-- /.nav-dropdown --> 482 </li> 483 <li> 484 <a href="https://ssir.org/donate" class="btn-donate uppercased" title="Donate to SSIR">Donate</a> 485 </li> 486 </ul> 487 </nav><!-- /.nav-alt --> 488 </div><!-- /.offset-nav-body --> 489 </div><!-- /.offset-nav --> 490 491 <div class="widget-sticky"> 492 <nav class="pigeon-widget-status"></nav> 493 <div class="widget-sticky-nav-mobile"> 494 <div class="search"> 495 <button class="btn-search" aria-label="Search"> 496 <i class="ico ico-search" aria-hidden="true"></i> 497 </button> 498 </div><!-- /.search --> 499 <a href="#" class="nav-trigger" aria-label="Open menu">
500 <span class="bar"></span> 501 <span class="bar"></span> 502 <span class="bar"></span> 503 </a> 504 </div><!-- /.widget-sticky-nav-mobile --> 505</div><!-- /.widget-sticky --> 506<div class="search-lightbox" id="search-lightbox" aria-hidden="true"> 507 <div class="search-lightbox-backdrop"></div> 508 <div class="search-lightbox-content"> 509 <button type="button" class="search-lightbox-close" aria-label="Close search"> 510 <span aria-hidden="true">×</span> 511 </button> 512 <h3 class="search-lightbox-title">Search <em>SSIR</em></h3> 513 <div id="search-container"><gcse:searchbox-only resultsUrl="https://ssir.org/search/results"></gcse:searchbox-only></div> 514 </div> 515</div> 516 <div id="ad-top-container" class="shell"> 517 <div class="header-top-inner"> 518 <div class="banner banner-large"> 519 <div class="desktop-view"> 520 521 <div id='div-gpt-ad-1636034642111-0' style='min-width: 320px; min-height: 50px; text-align: center;'> 522
522<script> 523 googletag.cmd.push(function() {googletag.display('div-gpt-ad-1636034642111-0');}); 524 </script>
524 525 </div> 526 </div> 527 </div><!-- /.banner banner-large --> 528 </div><!-- /.header-top-inner --> 529 </div><!-- /.shell --> 530 <header class="header"> 531 <div class="header-bottom"> 532 <div class="shell"> 533 <div class="header-bottom-inner"> 534 <a href="https://ssir.org/" class="logo" aria-label="SSIR Homepage"> 535 <img src="/images/resources/SSIR_Logo.RGB_Black_tagline_984x234.png" height="120" width="492" alt="Stanford Social Innovation Review Logo"> 536 </a> 537 538 <div class="header-subscribe"> 539 540 541 542 <a href="https://subscriber.ssir.org"><img src="https://ssir.org/images/jcogs_img/cache/fall-2026-cover-770x1009_-_abcdef_-_8cb579eb8dd0e5458f305dc2efdb68c73d1f384a.webp" alt="" id="img_rotate45_b" height="127" width="97"/></a> 543 544 545 546 547 548 549 <ul> 550 <a href="https://ssir.org/donate" class="btn-donate uppercased">Donate</a> 551 </ul> 552</div><!-- /.header-subscribe --> 553 </div><!-- /.header-bottom-inner --> 554 </div><!-- /.shell --> 555 </div><!-- /.header-bottom --> 556 </header><!-- /.header --> 557 <div class="nav"> 558 <div class="shell"> 559 <div class="nav-inner"> 560 <ul> 561 <li class="first"> 562 <a href="#">Social Issues</a> 563 <div class="nav-dropdown multiple"> 564 <ul> 565 566 <li> 567 <a href="https://ssir.org/topics/category/arts-culture">Arts & Culture</a> 568 </li> 569 570 <li> 571 <a href="https://ssir.org/topics/category/cities">Cities</a> 572 </li> 573 574 <li> 575 <a href="https://ssir.org/topics/category/civic-engagement">Civic Engagement</a> 576 </li> 577 578 <li> 579 <a href="https://ssir.org/topics/category/economic-development">Economic Development</a> 580 </li> 581 582 <li> 583 <a href="https://ssir.org/topics/category/education">Education</a> 584 </li> 585 586 <li> 587 <a href="https://ssir.org/topics/category/energy">Energy</a> 588 </li> 589 590 <li> 591 <a href="https://ssir.org/topics/category/environment">Environment</a> 592 </li></ul> <ul> 593 594 <li> 595 <a href="https://ssir.org/topics/category/food">Food</a> 596 </li> 597 598 <li> 599 <a href="https://ssir.org/topics/category/health">Health</a> 600 </li> 601 602 <li> 603 <a href="https://ssir.org/topics/category/human-rights">Human Rights</a> 604 </li> 605 606 <li> 607 <a href="https://ssir.org/topics/category/security">Security</a> 608 </li> 609 610 <li> 611 <a href="https://ssir.org/topics/category/social-services">Social Services</a> 612 </li> 613 614 <li> 615 <a href="https://ssir.org/topics/category/water-sanitation">Water & Sanitation</a> 616 </li></ul> 617 </div><!-- /.nav-dropdown --> 618 </li> 619 <li> 620 <a href="#">Sectors</a> 621 <div class="nav-dropdown"> 622 <ul> 623 624 <li> 625 <a href="https://ssir.org/topics/category/business">Business</a> 626 </li> 627 628 <li> 629 <a href="https://ssir.org/topics/category/foundations">Foundations</a> 630 </li> 631 632 <li> 633 <a href="https://ssir.org/topics/category/government">Government</a> 634 </li> 635 636 <li> 637 <a href="https://ssir.org/topics/category/nonprofits-ngos">Nonprofits & NGOs</a> 638 </li> 639 640 <li> 641 <a href="https://ssir.org/topics/category/social-enterprise">Social Enterprise</a> 642 </li> 643 644 </ul> 645 </div><!-- /.nav-dropdown --> 646 </li> 647 <li> 648 <a href="#">Solutions</a> 649 <div class="nav-dropdown multiple"> 650 <ul> 651 652 <li> 653 <a href="https://ssir.org/topics/category/advocacy">Advocacy</a> 654 </li> 655 656 <li> 657 <a href="https://ssir.org/topics/category/collaboration">Collaboration</a> 658 </li> 659 660 <li> 661 <a href="https://ssir.org/topics/category/design-thinking">Design Thinking</a> 662 </li> 663 664 <li> 665 <a href="https://ssir.org/topics/category/governance">Governance</a> 666 </li> 667 668 <li> 669 <a href="https://ssir.org/topics/category/impact-investing">Impact Investing</a> 670 </li> 671 672 <li> 673 <a href="https://ssir.org/topics/category/leadership">Leadership</a> 674 </li></ul> <ul> 675 676 <li> 677 <a href="https://ssir.org/topics/category/measurement-evaluation">Measurement & Evaluation</a> 678 </li> 679 680 <li> 681 <a href="https://ssir.org/topics/category/organizational-development">Organizational Development</a> 682 </li> 683 684 <li> 685 <a href="https://ssir.org/topics/category/philanthropy-funding">Philanthropy & Funding</a> 686 </li> 687 688 <li> 689 <a href="https://ssir.org/topics/category/scaling">Scaling</a> 690 </li> 691 692 <li> 693 <a href="https://ssir.org/topics/category/technology">Technology</a> 694 </li></ul> 695 </div><!-- /.nav-dropdown multiple --> 696 </li> 697 <li class="bordered"> 698 <a href="#">magazine</a> 699 <div class="nav-dropdown"> 700 <ul> 701 <li> 702 <!-- Using current_time to bypass cached redirect --> 703 <a href="https://ssir.org/issue/fall-2026">Current Issue</a> 704 </li> 705 <li> 706 <a href="https://ssir.org/issue">All Issues</a> 707 </li> 708 <li> 709 <a href="https://ssir.org/supplement/magazine-supplements">Sponsored Supplements</a> 710 </li> 711 </ul> 712 </div><!-- /.nav-dropdown --> 713 </li> 714 <li> 715 <a href="https://ssir.org/ssir-global">Global Editions</a> 716 </li> 717 <li> 718 <a href="#">more</a> 719 <div class="nav-dropdown"> 720 <ul> 721 <li> 722 <a href="https://ssir.org/supplement/in-depth-series">In-Depth Series</a> 723 </li> 724 <li> 725 <a href="https://ssir.org/podcasts">Podcasts</a> 726 </li> 727 <li> 728 <a href="https://ssir.org/webinars">Webinars</a> 729 </li> 730 <li> 731 <a href="https://ssir.org/events">Events</a> 732 </li> 733 <li> 734 <a href="https://ssir.org/book_reviews">Books</a> 735 </li> 736 <li> 737 <a href="https://ssir.org/videos">Videos</a> 738 </li> 739 <li> 740 <a href="https://ssir.org/email">Newsletter</a> 741 </li> 742 <li> 743 <a href="http://pacscenter.stanford.edu/">Stanford PACS</a> 744 </li> 745 <li> 746 <a href="https://ssir.org/about/submission_guidelines">Submission Guidelines</a> 747 </li> 748 <li> 749 <a href="https://ssir.org/about/overview">About Us</a> 750 </li> 751 </ul> 752 </div><!-- /.nav-dropdown --> 753 </li> 754 </ul> 755 <div class="search"> 756 <button class="btn-search" aria-label="Search"> 757 <i class="ico ico-search" aria-hidden="true"></i> 758 </button> 759 </div><!-- /.search --> 760 <div class="socials"> 761 <ul> 762 <li> 763 <a href="https://www.linkedin.com/company/stanford-social-innovation-review" aria-label="SSIR Linkedin"> 764 <i class="ico-linkedin"></i> 765 </a> 766 </li> 767 <li> 768 <a href="https://www.instagram.com/stanford.ssir/" aria-label="SSIR Instagram"> 769 <i class="ico-instagram"></i> 770 </a> 771 </li> 772 <li> 773 <a href="https://bsky.app/profile/ssir.org" aria-label="SSIR Bluesky"> 774 <img src="/css/images/ico-bluesky-header.svg" alt="Bluesky Logo" width="24px"/> 775 </a> 776 </li> 777 <li> 778 <a href="https://ssir.org/site/rss_2.0" aria-label="SSIR RSS"> 779 <i class="ico-rss"></i> 780 </a> 781 </li> 782 </ul> 783 </div><!-- /.socials --> 784 </div><!-- /.nav-inner --> 785 </div><!-- /.shell --> 786 </div><!-- /.nav --> 787 788 789 790 <div class="main"> 791 <div class="shell"> 792 793 794 <div class="main-inner clearfix"> 795 796 797 798 <section class="content"> 799 800 801 802 803 804 805 806 807 808 809 <article class="article article-wide general-page"> 810 <header class="article-head"> 811 <h1>Overview </h1> 812 <div class="article-head-actions"> 813 <ul> 814 815 <li class="active"><a href="#"><strong>Overview</strong></a></li> 816 817 <li><a href="/about/contact" title="Read About Contact Us">Contact Us</a></li> 818 819 <li><a href="/about/ssir-staff" title="Read About SSIR Team">SSIR Team</a></li> 820 821 <li><a href="/about/submission-guidelines" title="Read About Submission Guidelines">Submission Guidelines</a></li> 822 823 </ul> 824</div> 825 826 </header><!-- /.article-head --> 827 828 <div class="article-body"> 829 <div class="article-entry"> 830 831 832 <p><em>
832Stanford Social Innovation Review (SSIR)</em> is an award-winning publication that covers cross-sector solutions to global problems. <em>SSIR</em> is written by and for social change leaders from around the world and from all sectors of society—nonprofits, foundations, business, government, and engaged citizens. <em>SSIR'</em>s mission is to advance, educate, and inspire the field of social innovation by seeking out, cultivating, and disseminating the best in research- and practice-based knowledge through our quarterly print magazine, original online articles, webinars, conferences, podcasts, and more. <em>SSIR</em> is published by the <a href="https://pacscenter.stanford.edu/">Stanford Center on Philanthropy and Civil Society</a> at Stanford University.</p> 833 834<p>If you're interested in writing for <em>SSIR</em>, or if you are interested in sponsored content opportunities, please review our <a href="https://ssir.org/about/submission-guidelines">submission guidelines</a>.</p> 835 836<p><strong>Get Our Newsletter</strong><br /> 837<em>SSIR'</em>s free weekly newsletter is the best way to be alerted to new articles, book reviews and excerpts, events, and other special newsletter extras like bonus author interviews—all conveniently delivered to your inbox. To sign up, <a href="https://subscriber.ssir.org/">create a free <em>SSIR</em> account</a>.</p> 838 839<p><strong>Get a Subscription</strong><br /> 840As a nonprofit media outlet, <em>SSIR</em> relies on reader support to sustain our mission. We offer <a href="https://subscriber.ssir.org/plan/subscribe/print">print and digital</a> or <a href="https://subscriber.ssir.org/plan/subscribe/digital">digital-only</a> subscription options that provide unlimited access to our entire archive of published material. You can also buy a <a href="https://subscriber.ssir.org/cmc/gift">gift subscription</a> for a colleague or inquire about discounted <a href="https://ssir.org/groups">group subscription rates</a> for your organization, library, or academic institution.</p> 841 842<p><strong>About Our Paywall</strong><br /> 843<em>SSIR'</em>s website paywall allows non-subscribers to access a limited number of free articles each month before a subscription is required to view additional content. We believe this approach is the best way to balance sharing social innovation knowledge as widely as possible with our need as a nonprofit to raise a sustainable amount of subscription revenue from generous readers like you.</p> 844 845 846 847 848 849 </div><!-- /.article-entry --> 850 </div><!-- /.article-body --> 851 852 <footer class="article-foot"> 853 854 855 856 857 858 </footer><!-- /.article-foot --> 859 </article><!-- /.article-wide --> 860 </section> 861 862 <aside class="sidebar"> 863 864 865 <!-- Default sidebar --> 866 <ul class="widgets"> 867 868<li class="widget widget-socials"> 869 <div class="widget-body"> 870 <a href="#"> 871 <img src="/css/images/logo-red.png" alt="" width="206" height="39"> 872 </a> 873 874 <div class="socials"> 875 <ul> 876 <li> 877 <a href="https://www.linkedin.com/company/stanford-social-innovation-review" aria-label="SSIR Linkedin"> 878 <i class="ico-linkedin-large"></i> 879 </a> 880 </li> 881 <li> 882 <a href="https://www.instagram.com/stanford.ssir/" aria-label="SSIR Instagram"> 883 <img src="/images/homepage/ico-instagram-large.png" alt="SSIR Instagram" width="80px" style="max-width:80px;"> 884 </a> 885 </li> 886 <li> 887 <a href="https://bsky.app/profile/ssir.org" aria-label="SSIR Bluesky"> 888 <img src="/images/homepage/ico-bluesky-large.png" alt="SSIR Bluesky" width="80px" style="max-width:80px;"> 889 </a> 890 </li> 891 </ul> 892 </div><!-- /.socials --> 893 </div><!-- /.widget-body --> 894</li> 895 <li class="widget widget-banner"> 896 <div class="widget-body desktop-ad-container" data-ad-key="widget_ads_top"> 897 898 <div id='div-gpt-ad-1596666215664-0' style='width: 300px; height: 250px;'> 899
899<script> 900 googletag.cmd.push(function() {googletag.display('div-gpt-ad-1596666215664-0');}); 901 </script>
901 902 </div> 903 </div><!-- /.widget-body --> 904</li> 905 <li class="widget widget-subscribe"> 906 <a href="https://subscriber.ssir.org/"> 907 <img class="js-no-account-only widget-subscribe__img" src="/assets/img/sidebar-sign-up-free-account.png" alt="Free Weekly eNewsletter" loading="lazy" style="display: none;" /> 908 <img class="js-free-only widget-subscribe__img" src="/assets/img/sidebar-sign-up-subscribe.png" alt="Free Weekly eNewsletter" loading="lazy" style="display: none;" /> 909 </a> 910</li> 911 <li class="widget"> 912 <a href="https://ssir.org/donate"><img src="/css/images/support_ssir_300_250.jpeg" alt="Support SSIR"/></a> 913</li> 914 <li class="widget widget-banner"> 915 <div class="widget-body desktop-ad-container" data-ad-key="widget_ads_bottom"> 916 917 <div id='div-gpt-ad-1596665496550-0' style='width: 300px; height: 250px;'> 918
918<script> 919 googletag.cmd.push(function() {googletag.display('div-gpt-ad-1596665496550-0');}); 920 </script>
920 921 </div> 922 </div><!-- /.widget-body --> 923</li> 924 925 926 927 928 929 930 931 932 933 <li class="widget widget-published-by "> 934 <div class="widget-body"> 935 <a href="http://pacscenter.stanford.edu/" aria-label="Stanford Center on Philanthropy and Civil Society"> 936 <img src="/css/images/StanfordPACS_Wht_HR_resized.png" alt="Stanford Center on Philanthropy and Civil Society Logo" class="pacs-logo" width="269" height="83" /> 937 </a> 938 <br /> 939 <em>SSIR</em> is published by the<br /> 940 <a href="http://pacscenter.stanford.edu/">Stanford Center on Philanthropy and Civil<br /> 941 Society</a>, at <a href="http://www.stanford.edu/">Stanford University</a>. 942 </div><!-- published-by --> 943</li> 944 945 946 947 </ul> 948 949 </aside> 950 </div> 951 952 </div> 953 </div> 954 955 <footer class="footer"> 956 <div class="footer-top"> 957 <div class="shell"> 958 <div class="footer-top-inner"> 959 <nav class="footer-nav"> 960 <ul> 961 <li> 962 <a href="https://ssir.org/about/overview">About <em>SSIR</em></a> 963 </li> 964 <li> 965 <a href="http://pacscenter.stanford.edu/">Stanford PACS</a> 966 </li> 967 <li> 968 <a href="https://ssir.org/about/contact">Contact Us</a> 969 </li> 970 <li> 971 <a href="https://ssir.org/about/submission-guidelines">Submissions</a> 972 </li> 973 <li> 974 <a href="https://ssir.org/advertising">Advertise</a> 975 </li> 976 <li> 977 <a href="https://ssir.org/help">Help</a> 978 </li> 979 <li> 980 <a href="https://ssir.org/reprints-permissions">Reprints</a> 981 </li> 982 <li> 983 <a href="http://www.stanford.edu/site/terms.html">Terms of Use</a> 984 </li> 985 <li> 986 <a href="https://ssir.org/privacy-policy">Privacy</a> 987 </li> 988 <li> 989 <a href="https://www.stanford.edu/site/accessibility/">Accessibility</a> 990 </li> 991 <li> 992 <a href="https://ssir.org/site-map">Site Map</a> 993 </li> 994 995 </ul> 996 </nav><!-- /.footer-nav --> 997 </div><!-- /.footer-top-inner --> 998 </div><!-- /.shell --> 999 </div><!-- /.footer-top --> 1000 <div class="footer-bottom"> 1001 <div class="shell"> 1002 <div class="footer-bottom-inner"> 1003 <p class="copyright">Copyright © 2026 Stanford University. <span>Designed by <a href="#">Arsenal</a>, developed by <a href="http://www.hopstudios.com/" title="Web design and ExpressionEngine developers">Hop Studios</a></span></p><!-- /.copyright --> 1004 <button type="button" class="manage-cookie" style="background: none; width: 165px; height: 30px; border-radius: 3px; border: 1px solid #900; font-family: Roboto, Arial; font-size: 10px; color: #900; font-weight: 600; box-sizing: border-box; cursor: pointer; padding: 0; outline: none; margin-top: 8px;" onclick="displayPreferenceModal()">Manage Cookie Preferences</button> 1005 </div><!-- /.footer-bottom-inner --> 1006 </div><!-- /.shell --> 1007 </div><!-- /.footer-bottom --> 1008 </footer><!-- /.footer --> 1009 1010 </div><!-- /.wrapper --> 1011 1012
1012<script> 1013 let articleStatus, articleSponsored; 1014 1015 1016 1017 </script>
1017 1018 1019
1019<script src="https://ssir.org/site/functions?v=2026-07-29-2" defer></script>
1019 1020
1021<script src="https://subscriber.ssir.org/c/assets/pigeon.js" onload="console.log('pigeon.js loaded')" 1022 onerror="console.error('pigeon.js failed to load')"></script>
vendor: 1 bytes, line 1022
1022
1023<script type="text/javascript"> 1024 const Pigeon = new PigeonClass({ 1025 subdomain: 'subscriber.ssir.org', 1026 fingerprint: true 1027 }); 1028 // Mobile-only sidebar offset settings. 1029 // We keep the sidebar below the paywall promo panel with an extra 20px gap. 1030 const MOBILE_SIDEBAR_MEDIA_QUERY = '(max-width: 767px)'; 1031 const MOBILE_SIDEBAR_TOP_GAP = 20; 1032 1033 // Positions `.sidebar` below the paywall promo on mobile. 1034 // We use promo document top + promo outer height (+ 20px), then convert 1035 // that absolute target into a relative `top` shift for `.sidebar`. 1036 const updateMobileSidebarAndFooterTopOffset = () => { 1037 const sidebar = document.querySelector('.sidebar'); 1038 const footer = document.querySelector('.footer'); 1039 const promotionContent = document.querySelector('.pigeon-context-promotion-content'); 1040 const protectedOverlay = document.querySelector('.protected-overlay'); 1041 if (!sidebar || !footer || !promotionContent || !protectedOverlay) return; 1042 1043 if (!window.matchMedia(MOBILE_SIDEBAR_MEDIA_QUERY).matches) { 1044 sidebar.style.position = ''; 1045 sidebar.style.top = ''; 1046 footer.style.position = ''; 1047 footer.style.marginTop = ''; 1048 return; 1049 } 1050 1051 sidebar.style.position = 'relative'; 1052 sidebar.style.top = ''; 1053 1054 let mobileOffsetTop = Math.max(promotionContent.getBoundingClientRect().bottom - (protectedOverlay.getBoundingClientRect().top + protectedOverlay.scrollHeight), 0); 1055 1056 const sidebarOffset = mobileOffsetTop + 20; 1057 sidebar.style.top = `${sidebarOffset}px`; 1058 1059 footer.style.marginTop = ''; 1060 const footerOffset = mobileOffsetTop + 40; 1061 footer.style.marginTop = `${footerOffset}px`; 1062 }; 1063 1064 const debounce = (fn, delay) => { 1065 let timeoutId; 1066 return function () { 1067 clearTimeout(timeoutId); 1068 timeoutId = setTimeout(fn, delay); 1069 }; 1070 }; 1071 1072 // Reserve vertical space for absolutely positioned paywall promo content 1073 // by adding promo height to overlay height in the container min-height. 1074 const updatePromotionContainerSpacing = () => { 1075 const isMobileView = window.matchMedia(MOBILE_SIDEBAR_MEDIA_QUERY).matches; 1076 document.querySelectorAll('.pigeon-context-promotion').forEach((container) => { 1077 const protectedOverlay = container.querySelector('.protected-overlay'); 1078 const promotionContent = container.querySelector('.pigeon-context-promotion-content'); 1079 if (!protectedOverlay || !promotionContent) return; 1080 1081 if (isMobileView) { 1082 container.style.minHeight = ''; 1083 return; 1084 } 1085 1086 const containerDisplay = getComputedStyle(container).display; 1087 if (containerDisplay === 'none') { 1088 container.style.minHeight = ''; 1089 return; 1090 } 1091 1092 const promoStyles = getComputedStyle(promotionContent); 1093 const promoTopMargin = parseFloat(promoStyles.marginTop || '0') || 0; 1094 const promoBottomMargin = parseFloat(promoStyles.marginBottom || '0') || 0; 1095 const overlayHeight = protectedOverlay.offsetHeight || protectedOverlay.scrollHeight || 0; 1096 const promoHeight = promotionContent.offsetHeight + promoTopMargin + promoBottomMargin; 1097 const requiredHeight = Math.max(overlayHeight + promoHeight, 0); 1098 1099 container.style.minHeight = `${Math.ceil(requiredHeight)}px`; 1100 }); 1101 }; 1102 const recalculatePigeonLayout = () => { 1103 updatePromotionContainerSpacing(); 1104 updateMobileSidebarAndFooterTopOffset(); 1105 }; 1106 const recalculatePigeonLayoutDebounced = debounce(recalculatePigeonLayout, 100); 1107 1108 // Run one shared layout pass on initial load and viewport size changes. 1109 window.addEventListener('load', recalculatePigeonLayout); 1110 window.addEventListener('resize', recalculatePigeonLayoutDebounced); 1111 setTimeout(recalculatePigeonLayout, 0); 1112 1113 const free = (false || articleStatus == 'Paid Access Open' || articleSponsored == 'yes'); 1114 1115 Pigeon.paywall({ 1116 redirect: false, 1117 free: free, 1118 ignoreBodyHide: true, 1119 success: (response) => {}}); 1120 1121 const PIGEON_BASE = 'https://subscriber.ssir.org'; 1122 1123 Promise.resolve(Pigeon.paywallPromise).then((r) => { 1124 const { allowed, profile, user_status, restricted, meter_limit, meter } = r; 1125 const limit = Number(meter_limit || 0); 1126 const used = Number(meter || 0); 1127 const remaining = Math.max(0, limit - used); 1128 const loggedIn = user_status === 1 || (profile && profile.id); 1129 const isMeteredPage = restricted === 0 && !free; 1130 const plans = profile && profile.plans; 1131 const hasPlan = Array.isArray(plans) ? plans.length > 0 : Boolean(plans); 1132 const isFreeCategory = Boolean(profile) && ( 1133 plans === null || 1134 (Array.isArray(plans) && plans.length === 0) 1135 ); 1136 1137 const moveMobileAdsToSidebarWidgets = () => { 1138 const sidebarWidgets = document.querySelector('.sidebar .widgets'); 1139 if (!sidebarWidgets) return; 1140 document.querySelectorAll('.mobile-ad-container').forEach((adContainer) => {sidebarWidgets.appendChild(adContainer);}); 1141 }; 1142 const setVisibilityByAccess = () => { 1143 [ 1144 ['.js-no-account-only', !Boolean(profile)], 1145 ['.js-free-only', isFreeCategory], 1146 ['.js-plan-only', hasPlan] 1147 ].forEach(([selector, isVisible]) => { 1148 document.querySelectorAll(selector).forEach((el) => { 1149 el.style.display = isVisible ? '' : 'none'; 1150 }); 1151 }); 1152 }; 1153 setVisibilityByAccess(); 1154 const removeRestricted = (selector) => { 1155 document.querySelectorAll(selector).forEach((el) => { 1156 if (el.dataset.loginPrompt) { 1157 document.getElementById(el.dataset.loginPrompt).style.display = 'block'; 1158 } 1159 el.remove(); 1160 }); 1161 }; 1162 const shouldRemoveAllRestricted = !hasPlan && (!allowed || (isMeteredPage && remaining == 0)); 1163 1164 // Removing access required elements if the page is metered and the user has no remaining articles 1165 if (shouldRemoveAllRestricted) { 1166 removeRestricted('.js-access-required, .js-plan-required'); 1167 } else if (!hasPlan) {removeRestricted('.js-plan-required');} 1168 1169 // Desktop banner: status widget + show "pages left" only on metered pages (restricted === 0) 1170 const initStatusBanner = () => { 1171 if (typeof Pigeon.widget === 'undefined' || typeof Pigeon.widget.status !== 'function') return; 1172 const placeholder = document.querySelector('.widget-sticky .pigeon-widget-status'); 1173 if (!placeholder) return; 1174 Pigeon.widget.status({ 1175 customCopy: { 1176 page: ['article', 'articles'], 1177 meter: '%%available%% %%page%% left', 1178 login: loggedIn ? 'Sign In' : 'Log in', 1179 subscribe: loggedIn ? 'Subscribe' : 'Sign up' 1180 } 1181 }); 1182 1183 const setMeterVisibility = () => { 1184 const meterEl = document.querySelector('.widget-sticky .pigeon-widget-status ul li.meter'); 1185 if (meterEl) meterEl.style.display = isMeteredPage && remaining != 0 ? '' : 'none'; 1186 markFirstVisible(); 1187 }; 1188 const markFirstVisible = () => { 1189 const ul = document.querySelector('.widget-sticky .pigeon-widget-status ul'); 1190 if (!ul) return; 1191 const items = Array.from(ul.querySelectorAll(':scope > li'));
1192 items.forEach(li => li.classList.remove('first-visible')); 1193 const firstVisible = items.find(li => li.offsetParent !== null && getComputedStyle(li).display !== 'none'); 1194 if (firstVisible) firstVisible.classList.add('first-visible'); 1195 }; 1196 let attempts = 0; 1197 const trySetMeter = () => { 1198 setMeterVisibility(); 1199 if (document.querySelector('.widget-sticky .pigeon-widget-status ul li.meter') || attempts >= 20) return; 1200 attempts += 1; 1201 setTimeout(trySetMeter, 50); 1202 }; 1203 setTimeout(trySetMeter, 0); 1204 }; 1205 initStatusBanner(); 1206 const statusObs = new MutationObserver(() => { 1207 if (document.querySelector('.widget-sticky .pigeon-widget-status')) { 1208 initStatusBanner(); 1209 statusObs.disconnect(); 1210 } 1211 }); 1212 statusObs.observe(document.body, { childList: true, subtree: true }); 1213 1214 // Prompt widget (slider) copy 1215 if (free) return; 1216 1217 if (!Pigeon.widget || typeof Pigeon.widget.prompt !== 'function') { 1218 console.warn('Pigeon.widget.prompt is not available', Pigeon.widget); 1219 return; 1220 } 1221 const meterTitle = document.querySelector('.pigeon-meter-title'); 1222 const meterMessage = document.querySelector('.pigeon-meter-message'); 1223 const upgrade = document.querySelector('.pigeon-upgrade'); 1224 const subscribe = document.querySelector('.pigeon-subscribe'); 1225 const signIn = document.querySelector('.pigeon-sign-in'); 1226 1227 if (meterTitle && meterMessage && upgrade && subscribe && signIn) { 1228 upgrade.style.display = 'none'; 1229 subscribe.style.display = 'inline-block'; 1230 signIn.style.display = 'inline-block'; 1231 meterMessage.innerHTML = `You have ${remaining} more free article${remaining === 1 ? '' : 's'} this month. Sign up for a free account or subscribe for additional access.`; 1232 if (remaining >= 1 && profile && profile.plans === null) { 1233 meterTitle.innerHTML = 'Thank you for reading.'; 1234 meterMessage.innerHTML = `As a free subscriber, you have ${remaining} more free article${remaining === 1 ? '' : 's'} this month. Upgrade now to a paid subscription for unlimited access and to support <em>SSIR</em>.`; 1235 upgrade.style.display = 'inline-block'; 1236 subscribe.style.display = 'none'; 1237 signIn.style.display = 'none'; 1238 } else if (remaining === 0) { 1239 if (profile && profile.plans === null) { 1240 meterTitle.innerHTML = 'Support SSIR.'; 1241 meterMessage.innerHTML = 'This is your last free article this month. Upgrade to a paid subscription for unlimited access and to help <em>SSIR</em> share insights from social innovators around the world.'; 1242 upgrade.style.display = 'inline-block'; 1243 subscribe.style.display = 'none'; 1244 signIn.style.display = 'none'; 1245 } else { 1246 meterTitle.innerHTML = 'This is your last free article.'; 1247 meterMessage.innerHTML = '<em>SSIR</em> is a nonprofit that depends on readers like you. Sign up for a free account or subscribe for additional access.'; 1248 } 1249 } 1250 } 1251 1252 if (restricted === 1 || remaining <= 0) { 1253 moveMobileAdsToSidebarWidgets(); 1254 recalculatePigeonLayout(); 1255 if (profile && profile.plans === null) { 1256 const promotionContent = document.querySelector('.pigeon-context-promotion-content'); 1257 if (promotionContent) { 1258 promotionContent.innerHTML = '<h3>Youâve run out of free articles.</h3><p>Thanks for being a regular <em>SSIR</em> reader. We are a nonprofit and rely on readers like you to fund our work, so please subscribe to keep reading. For as little as $6 per month, youâll get:</p><ul><li>Unlimited access to new articles</li><li>Access to <em>SSIR</em>âs 20+ years of field-defining work</li><li>Digital PDF editions of every print issue</li></ul><p>And youâll make sure <em>SSIR</em> continues to support social innovators around the world with new ideas, insights, and inspiration.</p><div class="pigeon-cta-buttons"><a href="https://subscriber.ssir.org" class="pigeon-btn pigeon-btn-primary">Subscribe now</a></div><p class="pigeon-cta-footer">Interested in group subscription discounts for your organization? <a href="https://ssir.org/groups">Click here for group discounts</a>. Or <a href="https://ssir.org/gift">click here to give a gift subscription</a>.</p>'; 1259 // Promo HTML is injected asynchronously, so run one layout recalculation. 1260 recalculatePigeonLayout(); 1261 } 1262 } 1263 return; 1264 } 1265 1266 Pigeon.widget.prompt({}); 1267 recalculatePigeonLayout(); 1268 }).catch((err) => console.error('paywallPromise failed', err)); 1269 1270 if (typeof MutationObserver !== 'undefined') { 1271 const promotionObserver = new MutationObserver(recalculatePigeonLayoutDebounced); 1272 document.querySelectorAll('.pigeon-context-promotion').forEach((container) => { 1273 promotionObserver.observe(container, { 1274 childList: true, 1275 subtree: true, 1276 attributes: true, 1277 attributeFilter: ['class', 'style'] 1278 }); 1279 }); 1280 } 1281 1282 // .widget-sticky: scroll down = top follows scrollY (banner up);
1282 scroll up = top by pixels traveled up from anchor 1283 (function () { 1284 let maxTopOffset = 48; // fallback until we measure 1285 let ticking = false; 1286 1287 const initialScrollY = window.scrollY || document.documentElement.scrollTop; 1288 1289 let lastScrollY = initialScrollY; 1290 1291 // Initialize correctly based on scroll position 1292 let currentTop = initialScrollY > 0 ? -maxTopOffset : 0; 1293 1294 function clamp(n, min, max) { 1295 return Math.max(min, Math.min(max, n)); 1296 } 1297 1298 function measureMaxTopOffset() { 1299 const banner = document.querySelector('.widget-sticky'); 1300 if (banner && banner.offsetHeight > 0) { 1301 maxTopOffset = banner.offsetHeight; 1302 } 1303 } 1304 1305 function updateBannerTop() { 1306 const banner = document.querySelector('.widget-sticky'); 1307 if (!banner) return; 1308 1309 measureMaxTopOffset(); 1310 1311 banner.style.position = 'fixed'; 1312 banner.style.left = '0'; 1313 banner.style.width = '100%'; 1314 1315 const scrollY = window.scrollY || document.documentElement.scrollTop; 1316 const deltaY = scrollY - lastScrollY; 1317 lastScrollY = scrollY; 1318 1319 currentTop = clamp(currentTop - deltaY, -maxTopOffset, 0); 1320 1321 banner.style.top = `${currentTop}px`; 1322 ticking = false; 1323 } 1324 1325 function onScroll() { 1326 if (ticking) return; 1327 ticking = true; 1328 requestAnimationFrame(updateBannerTop); 1329 } 1330 1331 function onResizeEnd() { 1332 measureMaxTopOffset(); 1333 currentTop = clamp(currentTop, -maxTopOffset, 0); 1334 const banner = document.querySelector('.widget-sticky'); 1335 if (banner) { 1336 banner.style.top = `${currentTop}px`; 1337 } 1338 } 1339 1340 function debounce(fn, delay) { 1341 let timeoutId; 1342 return function () { 1343 clearTimeout(timeoutId); 1344 timeoutId = setTimeout(fn, delay); 1345 }; 1346 } 1347 1348 window.addEventListener('scroll', onScroll, { passive: true }); 1349 window.addEventListener('resize', debounce(onResizeEnd, 150)); 1350 1351 // Force initial render state 1352 updateBannerTop(); 1353 })(); 1354</script>
1354 1355<div class="pigeon-widget-prompt" style="display:none;"> 1356 <div> 1357 <span class="pigeon-close" title="Close"> 1358 <svg height="24" viewBox="0 0 24 24" width="24"> 1359 <path 1360 d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" /> 1361 <path d="M0 0h24v24H0z" fill="none" /> 1362 </svg> 1363 </span> 1364 <h2 class="pigeon-meter-title">This article is free.</h2> 1365 </div> 1366 <div> 1367 <div class="pigeon-meter-message">You have %%pigeonMeterAvailable%% more free articles this month. Sign up for a free account or subscribe for additional access.</div> 1368 </div> 1369 <div> 1370 <a class="pigeon-subscribe" href="#">Sign up</a> 1371 <a class="pigeon-sign-in" href="#">Log in</a> 1372 <a class="pigeon-upgrade" href="https://subscriber.ssir.org/" style="display: none;">Upgrade</a> 1373 </div> 1374</div> 1375 1376 1377 1378 1379 1380
1381<script src="/js/shared/facebook-sdk.js?v=2026-07-17" defer></script>
1381 1382 1383 1384</main>
1385<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"9b964b6cf6354e3ca2e8abbd7678fce6","r":1,"spa":2}' crossorigin="anonymous"></script>
1385 1386</body> 1387</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.