{"id":972,"date":"2025-11-20T12:28:47","date_gmt":"2025-11-20T12:28:47","guid":{"rendered":"https:\/\/suportrleague-cic.org\/?page_id=972"},"modified":"2025-11-20T13:38:12","modified_gmt":"2025-11-20T13:38:12","slug":"councils-funding","status":"publish","type":"page","link":"https:\/\/suportrleague-cic.org\/?page_id=972","title":{"rendered":"Councils &amp; Funding"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"972\" class=\"elementor elementor-972\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2837df7 e-flex e-con-boxed e-con e-parent\" data-id=\"2837df7\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-290bc9b elementor-widget elementor-widget-html\" data-id=\"290bc9b\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"slcic-councils-funders\">\n\n  <h2>Councils & Funders<\/h2>\n  <p class=\"cf-lead\">\n    Suportr League CIC is built as a delivery partner for local authorities and funders, turning fan loyalty into\n    trackable local spend, stronger high streets, and inclusive community participation.\n  <\/p>\n\n  <div class=\"cf-section\">\n    <h3>Direct Alignment with UKSPF & Public Priorities<\/h3>\n    <p>\n      Our model aligns with core UKSPF investment pillars, giving you a single, coheisive lean programme that is easy\n      to fund and simple to explain:\n    <\/p>\n    <ul>\n      <li><strong>Communities & Place:<\/strong> neighbourhood-level activity that strengthens pride in place through everyday fan engagement.<\/li>\n      <li><strong>Supporting Local Business:<\/strong> measurable uplift in revenue for independent SMEs via Suportr Loyalty Vouchers.<\/li>\n      <li><strong>People & Skills:<\/strong> pathways for volunteers, young people, and local partners to co-design and deliver activity.<\/li>\n    <\/ul>\n  <\/div>\n\n  <div class=\"cf-section\">\n    <h3>Reporting Framework<\/h3>\n    <p>\n      Post funding we'll provide transparent reporting to councils and funders, via our Funder Portal\n      featuring live dashboards with KPI's including:\n    <\/p>\n    <ul>\n      <li>Sign-ups, voucher redemptions, and SME participation by postcode.<\/li>\n      <li>Estimated local spend uplift driven through participating SMEs.<\/li>\n      <li>Number and profile of local businesses, fan groups, and community partners engaged.<\/li>\n      <li>Participation in youth and grassroots programmes linked to clubs and neighbourhoods.<\/li>\n      <li>Simple \u201cpride in place\u201d and satisfaction measures tracked over time.<\/li>\n      <li>Quarterly narrative and quantitative reports aligned to your outcome frameworks.<\/li>\n      <li>Data exports in agreed formats for UKSPF, Lottery and other public fund monitoring.<\/li>\n    <\/ul>\n  <\/div>\n\n<style>\n  .slcic-councils-funders {\n    color: #ffffff;\n    font-family: \"Roboto\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n    max-width: 960px;\n    margin: 0 auto;\n    padding: 40px 20px;\n  }\n\n  .slcic-councils-funders h2,\n  .slcic-councils-funders h3 {\n    font-family: \"Anton\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n    text-transform: uppercase;\n    letter-spacing: 0.06em;\n    margin: 0 0 16px;\n    color: #ffffff;\n  }\n\n  .slcic-councils-funders h2 {\n    font-size: 32px;\n  }\n\n  .slcic-councils-funders h3 {\n    font-size: 20px;\n    margin-top: 32px;\n  }\n\n  .slcic-councils-funders p {\n    font-size: 15px;\n    line-height: 1.5;\n    margin: 0 0 14px;\n  }\n\n  .slcic-councils-funders .cf-lead {\n    font-size: 16px;\n    margin-bottom: 22px;\n  }\n\n  .slcic-councils-funders ul {\n    list-style: disc;\n    padding-left: 20px;\n    margin: 0 0 10px;\n  }\n\n  .slcic-councils-funders li {\n    margin-bottom: 6px;\n    font-size: 15px;\n    line-height: 1.4;\n  }\n\n  .slcic-councils-funders a {\n    color: #ffffff;\n    text-decoration: underline;\n  }\n\n  .slcic-councils-funders a:hover {\n    opacity: 0.85;\n  }\n\n  .slcic-councils-funders .cf-section {\n    margin-bottom: 8px;\n  }\n\n  .slcic-councils-funders .cf-downloads ul {\n    list-style: none;\n    padding-left: 0;\n  }\n\n  .slcic-councils-funders .cf-downloads li::before {\n    content: \"\u2193\";\n    margin-right: 8px;\n  }\n\n  @media (max-width: 767px) {\n    .slcic-councils-funders {\n      padding: 30px 16px;\n    }\n\n    .slcic-councils-funders h2 {\n      font-size: 26px;\n    }\n\n    .slcic-councils-funders h3 {\n      font-size: 18px;\n    }\n  }\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-62bf569 e-flex e-con-boxed e-con e-parent\" data-id=\"62bf569\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cb39226 elementor-widget elementor-widget-text-editor\" data-id=\"cb39226\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Below is a high-level demo version the Suportr League CIC Funder Portal Dashboard:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4cd334f e-flex e-con-boxed e-con e-parent\" data-id=\"4cd334f\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9be567c elementor-widget elementor-widget-html\" data-id=\"9be567c\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <title>CIC Funder Dashboard<\/title>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <style>\n    :root {\n      --bg: #050316;\n      --card-bg: #11111a;\n      --card-bg-soft: #151524;\n      --border-subtle: #1f2933;\n      --text-main: #f5f5f5;\n      --text-muted: #9ca3af;\n      --accent-blue: #3b82f6;\n      --accent-teal: #22c55e;\n      --accent-amber: #f59e0b;\n      --accent-red: #ef4444;\n      --accent-purple: #a855f7;\n      --accent-cyan: #22d3ee;\n      --good: #4ade80;\n      --bad: #fb7185;\n      --neutral: #9ca3af;\n      --pill-bg: #020617;\n      --pill-border: #1f2937;\n    }\n\n    * {\n      box-sizing: border-box;\n    }\n\n    html, body {\n      margin: 0;\n      padding: 0;\n      height: 100%;\n      background: radial-gradient(circle at top, #111827 0, #050316 55%);\n      color: var(--text-main);\n      font-family: -apple-system, BlinkMacSystemFont, \"Inter\", system-ui, sans-serif;\n    }\n\n    body {\n      display: flex;\n      justify-content: center;\n      align-items: stretch;\n    }\n\n    .dashboard-root {\n      width: 100%;\n      max-width: 1400px;\n      padding: 16px;\n      display: flex;\n      flex-direction: column;\n      gap: 16px;\n    }\n\n    .top-bar {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      background: linear-gradient(135deg, #020617, #0b1120);\n      border-radius: 16px;\n      padding: 16px 20px;\n      box-shadow: 0 18px 45px rgba(0,0,0,0.6);\n      border: 1px solid rgba(148,163,184,0.15);\n    }\n\n    .top-bar-title {\n      font-size: 24px;\n      font-weight: 700;\n      letter-spacing: 0.02em;\n    }\n\n    .top-bar-pill {\n      padding: 6px 14px;\n      border-radius: 999px;\n      border: 1px solid rgba(148,163,184,0.4);\n      background: radial-gradient(circle at top left, rgba(56,189,248,0.2), transparent 55%);\n      font-size: 12px;\n      text-transform: uppercase;\n      letter-spacing: 0.12em;\n      color: #e5e7eb;\n      white-space: nowrap;\n    }\n\n    .filter-bar {\n      background: var(--card-bg);\n      border-radius: 14px;\n      padding: 14px 16px 10px;\n      box-shadow: 0 16px 35px rgba(0,0,0,0.65);\n      border: 1px solid rgba(15,23,42,0.9);\n      display: grid;\n      grid-template-columns: repeat(4, minmax(0, 1fr));\n      gap: 10px 14px;\n    }\n\n    .filter-group {\n      display: flex;\n      flex-direction: column;\n      gap: 4px;\n      min-width: 0;\n    }\n\n    .filter-label {\n      font-size: 11px;\n      color: var(--text-muted);\n      text-transform: uppercase;\n      letter-spacing: 0.08em;\n    }\n\n    .filter-select,\n    .filter-button {\n      background: #020617;\n      border-radius: 999px;\n      border: 1px solid rgba(55,65,81,0.9);\n      padding: 6px 12px;\n      color: var(--text-main);\n      font-size: 13px;\n      outline: none;\n      min-height: 32px;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      gap: 6px;\n      cursor: pointer;\n      transition: border 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, transform 0.1s ease;\n      width: 100%;\n    }\n\n    .filter-select {\n      appearance: none;\n      background-image: linear-gradient(45deg, transparent 50%, #64748b 50%), linear-gradient(135deg, #64748b 50%, transparent 50%);\n      background-position: calc(100% - 12px) 50%, calc(100% - 8px) 50%;\n      background-size: 6px 6px, 6px 6px;\n      background-repeat: no-repeat;\n      padding-right: 24px;\n    }\n\n    .filter-select:focus,\n    .filter-button:focus {\n      box-shadow: 0 0 0 1px rgba(59,130,246,0.6);\n    }\n\n    .filter-select:hover,\n    .filter-button:hover {\n      border-color: rgba(129,140,248,0.9);\n      box-shadow: 0 10px 24px rgba(15,23,42,0.8);\n      transform: translateY(-0.5px);\n    }\n\n    .filter-button.secondary {\n      justify-content: center;\n      background: #020617;\n      font-size: 12px;\n      padding-inline: 10px;\n    }\n\n    .filter-button.secondary.reset {\n      background: radial-gradient(circle at top left, rgba(248,250,252,0.13), #020617 60%);\n      border-color: rgba(148,163,184,0.9);\n    }\n\n    .filter-button.secondary.export {\n      background: radial-gradient(circle at top left, rgba(45,212,191,0.18), #020617 65%);\n      border-color: rgba(45,212,191,0.7);\n    }\n\n    .filter-button.secondary.hzoom {\n      border-style: dashed;\n      border-color: rgba(148,163,184,0.7);\n    }\n\n    .filter-actions {\n      display: flex;\n      gap: 6px;\n      flex-wrap: wrap;\n    }\n\n    .filter-pill-row {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 6px;\n      margin-top: 2px;\n    }\n\n    .sector-pill {\n      border-radius: 999px;\n      padding: 4px 9px;\n      font-size: 11px;\n      border: 1px solid var(--pill-border);\n      background: var(--pill-bg);\n      color: var(--text-muted);\n      cursor: pointer;\n      display: inline-flex;\n      align-items: center;\n      gap: 4px;\n      transition: all 0.15s ease;\n    }\n\n    .sector-pill::before {\n      content: \"\";\n      width: 8px;\n      height: 8px;\n      border-radius: 999px;\n      background: var(--text-muted);\n    }\n\n    .sector-pill[data-sector=\"Food & Beverage\"]::before { background: var(--accent-blue); }\n    .sector-pill[data-sector=\"Apparel & Merchandise\"]::before { background: var(--accent-teal); }\n    .sector-pill[data-sector=\"Electronics\"]::before { background: var(--accent-amber); }\n    .sector-pill[data-sector=\"Health & Fitness\"]::before { background: var(--accent-red); }\n    .sector-pill[data-sector=\"Entertainment & Events\"]::before { background: var(--accent-purple); }\n    .sector-pill[data-sector=\"Other SME Categories\"]::before { background: var(--accent-cyan); }\n\n    .sector-pill.active {\n      color: #e5e7eb;\n      border-color: rgba(59,130,246,0.7);\n      box-shadow: 0 0 0 1px rgba(59,130,246,0.7);\n      background: radial-gradient(circle at top left, rgba(59,130,246,0.18), #020617 65%);\n    }\n\n    .sector-pill.inactive {\n      opacity: 0.45;\n    }\n\n    .main-grid {\n      display: grid;\n      grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.1fr);\n      grid-template-rows: auto auto;\n      gap: 16px;\n    }\n\n    .card {\n      background: var(--card-bg-soft);\n      border-radius: 16px;\n      padding: 16px 18px 14px;\n      border: 1px solid rgba(15,23,42,0.9);\n      box-shadow: 0 18px 40px rgba(0,0,0,0.9);\n      position: relative;\n      overflow: hidden;\n    }\n\n    .card::before {\n      content: \"\";\n      position: absolute;\n      inset: -40%;\n      background: radial-gradient(circle at top left, rgba(56,189,248,0.04), transparent 55%);\n      opacity: 1;\n      pointer-events: none;\n    }\n\n    .card-inner {\n      position: relative;\n      z-index: 1;\n    }\n\n    .card-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: baseline;\n      margin-bottom: 8px;\n      gap: 8px;\n    }\n\n    .card-title {\n      font-size: 15px;\n      font-weight: 600;\n    }\n\n    .card-subtitle {\n      font-size: 11px;\n      color: var(--text-muted);\n    }\n\n    .card-subtitle strong {\n      color: #e5e7eb;\n      font-weight: 500;\n    }\n\n    .card-actions {\n      display: flex;\n      gap: 6px;\n      align-items: center;\n    }\n\n    .chart-container {\n      width: 100%;\n      height: 270px;\n    }\n\n    .chart-container.small {\n      height: 70px;\n    }\n\n    .chart-container.bar {\n      height: 260px;\n    }\n\n    .chart-container.donut {\n      height: 260px;\n    }\n\n    .kpi-list {\n      margin-top: 4px;\n      display: flex;\n      flex-direction: column;\n      gap: 6px;\n    }\n\n    .kpi-row {\n      display: grid;\n      grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.2fr) minmax(0, 1.5fr);\n      align-items: center;\n      padding: 6px 0;\n      border-top: 1px solid rgba(31,41,55,0.8);\n      column-gap: 10px;\n    }\n\n    .kpi-row:first-child {\n      border-top: none;\n    }\n\n    .kpi-label {\n      display: flex;\n      align-items: center;\n      gap: 6px;\n      font-size: 13px;\n    }\n\n    .kpi-dot {\n      width: 9px;\n      height: 9px;\n      border-radius: 999px;\n    }\n\n    .kpi-value {\n      font-size: 14px;\n      font-weight: 600;\n    }\n\n    .kpi-change {\n      font-size: 12px;\n      margin-left: 6px;\n    }\n\n    .kpi-change.good { color: var(--good); }\n    .kpi-change.bad { color: var(--bad); }\n    .kpi-change.neutral { color: var(--neutral); }\n\n    .stacked-footer {\n      margin-top: 10px;\n      display: flex;\n      justify-content: flex-end;\n      align-items: baseline;\n      gap: 6px;\n      font-size: 13px;\n    }\n\n    .stacked-footer span.totals-label {\n      color: var(--text-muted);\n      font-size: 12px;\n    }\n\n    .stacked-footer span.totals-value {\n      font-size: 18px;\n      font-weight: 700;\n    }\n\n    .row-full {\n      grid-column: 1 \/ -1;\n    }\n\n    .donut-layout {\n      display: grid;\n      grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.1fr);\n      gap: 14px;\n      align-items: center;\n    }\n\n    .donut-legend {\n      display: flex;\n      flex-direction: column;\n      gap: 7px;\n      font-size: 12px;\n    }\n\n    .donut-legend-group {\n      display: flex;\n      justify-content: space-between;\n      align-items: baseline;\n      gap: 8px;\n      padding: 4px 6px;\n      border-radius: 8px;\n      transition: background 0.15s ease, transform 0.1s ease;\n    }\n\n    .donut-legend-group.active {\n      background: rgba(30,64,175,0.25);\n      transform: translateY(-0.5px);\n    }\n\n    .donut-legend-left {\n      display: flex;\n      align-items: center;\n      gap: 6px;\n    }\n\n    .donut-legend-dot {\n      width: 9px;\n      height: 9px;\n      border-radius: 999px;\n    }\n\n    .donut-legend-label {\n      font-size: 12px;\n    }\n\n    .donut-legend-right {\n      text-align: right;\n      white-space: nowrap;\n    }\n\n    .donut-legend-percentage {\n      font-size: 12px;\n    }\n\n    .donut-legend-value {\n      font-size: 12px;\n      color: var(--text-muted);\n    }\n\n    .impact-grid {\n      display: grid;\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n      gap: 10px;\n      margin-top: 6px;\n    }\n\n    .impact-group {\n      border-radius: 12px;\n      padding: 10px 11px;\n      background: rgba(15,23,42,0.95);\n      border: 1px solid rgba(30,64,175,0.4);\n      box-shadow: 0 10px 30px rgba(0,0,0,0.8);\n    }\n\n    .impact-heading {\n      font-size: 11px;\n      text-transform: uppercase;\n      letter-spacing: 0.09em;\n      color: rgba(191,219,254,0.9);\n      margin-bottom: 6px;\n    }\n\n    .impact-stat {\n      margin-bottom: 5px;\n    }\n\n    .impact-value {\n      font-size: 17px;\n      font-weight: 700;\n    }\n\n    .impact-caption {\n      font-size: 11px;\n      color: var(--text-muted);\n    }\n\n    .impact-stat:last-child {\n      margin-bottom: 0;\n    }\n\n    .impact-tagline {\n      margin-top: 6px;\n      font-size: 11px;\n      color: rgba(148,163,184,0.9);\n    }\n\n    .subtitle-context {\n      font-size: 11px;\n      color: var(--text-muted);\n      margin-top: 2px;\n    }\n\n    .subtitle-context strong {\n      color: #e5e7eb;\n      font-weight: 500;\n    }\n\n    button {\n      font-family: inherit;\n    }\n\n    @media (max-width: 1199px) {\n      .filter-bar {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n      }\n      .main-grid {\n        grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.2fr);\n      }\n      .donut-layout {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    @media (max-width: 900px) {\n      .filter-bar {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n      }\n      .main-grid {\n        grid-template-columns: 1fr;\n      }\n      .row-full {\n        grid-column: 1;\n      }\n      .impact-grid {\n        grid-template-columns: 1fr;\n      }\n    }\n\n    @media (max-width: 640px) {\n      .dashboard-root {\n        padding: 10px;\n      }\n      .filter-bar {\n        grid-template-columns: 1fr;\n      }\n      .top-bar {\n        flex-direction: column;\n        align-items: flex-start;\n        gap: 8px;\n      }\n      .chart-container {\n        height: 240px;\n      }\n      .card {\n        padding-inline: 14px;\n      }\n    }\n  <\/style>\n<\/head>\n<body>\n  <div class=\"dashboard-root\">\n    <header class=\"top-bar\">\n      <div class=\"top-bar-title\">CIC Funder Dashboard<\/div>\n      <div class=\"top-bar-pill\">Suportr League CIC<\/div>\n    <\/header>\n\n    <section class=\"filter-bar\">\n      <div class=\"filter-group\">\n        <label class=\"filter-label\" for=\"metricSelect\">Metric<\/label>\n        <select id=\"metricSelect\" class=\"filter-select\">\n          <option>Avg. SLP Redemption Value<\/option>\n          <option>Total SLP Redemptions<\/option>\n          <option>Local Spend Uplift<\/option>\n          <option>SMEs Supported<\/option>\n          <option>Active Fans<\/option>\n        <\/select>\n      <\/div>\n\n      <div class=\"filter-group\">\n        <label class=\"filter-label\" for=\"dateRangeSelect\">Date Range<\/label>\n        <select id=\"dateRangeSelect\" class=\"filter-select\">\n          <option>Last 7 Days<\/option>\n          <option selected>Last 30 Days<\/option>\n          <option>Last 90 Days<\/option>\n          <option>Year to Date<\/option>\n          <option disabled>Custom (coming soon)<\/option>\n        <\/select>\n      <\/div>\n\n      <div class=\"filter-group\">\n        <label class=\"filter-label\" for=\"countrySelect\">Country<\/label>\n        <select id=\"countrySelect\" class=\"filter-select\">\n          <option>All Countries<\/option>\n          <option selected>UK<\/option>\n        <\/select>\n      <\/div>\n\n      <div class=\"filter-group\">\n        <label class=\"filter-label\" for=\"regionSelect\">Region<\/label>\n        <select id=\"regionSelect\" class=\"filter-select\">\n          <option>All Regions<\/option>\n          <option selected>North West<\/option>\n          <option>London<\/option>\n          <option>Midlands<\/option>\n          <option>North East<\/option>\n          <option>Scotland<\/option>\n          <option>Wales<\/option>\n        <\/select>\n      <\/div>\n\n      <div class=\"filter-group\">\n        <label class=\"filter-label\" for=\"citySelect\">City \/ Local Authority<\/label>\n        <select id=\"citySelect\" class=\"filter-select\">\n          <option>All Cities<\/option>\n          <option selected>Liverpool<\/option>\n          <option>Manchester<\/option>\n          <option>Leeds<\/option>\n          <option>Glasgow<\/option>\n        <\/select>\n      <\/div>\n\n      <div class=\"filter-group\">\n        <label class=\"filter-label\" for=\"fundingSelect\">Funding Stream<\/label>\n        <select id=\"fundingSelect\" class=\"filter-select\">\n          <option>All Streams<\/option>\n          <option selected>UKSPF \u2013 Communities &amp; Place<\/option>\n          <option>UKSPF \u2013 Supporting Local Business<\/option>\n          <option>UKSPF \u2013 People &amp; Skills<\/option>\n          <option>Lottery<\/option>\n          <option>Corporate Sponsors<\/option>\n          <option>Other Grants<\/option>\n        <\/select>\n      <\/div>\n\n      <div class=\"filter-group\">\n        <label class=\"filter-label\" for=\"pillarSelect\">UKSPF Pillar<\/label>\n        <select id=\"pillarSelect\" class=\"filter-select\">\n          <option>All Pillars<\/option>\n          <option selected>Community &amp; Place<\/option>\n          <option>Supporting Local Business<\/option>\n          <option>People &amp; Skills<\/option>\n        <\/select>\n      <\/div>\n\n      <div class=\"filter-group\">\n        <div class=\"filter-label\">SME Sectors<\/div>\n        <div class=\"filter-pill-row\" id=\"sectorPills\">\n          <button type=\"button\" class=\"sector-pill active\" data-sector=\"Food & Beverage\">Food &amp; Beverage<\/button>\n          <button type=\"button\" class=\"sector-pill active\" data-sector=\"Apparel & Merchandise\">Apparel &amp; Merchandise<\/button>\n          <button type=\"button\" class=\"sector-pill active\" data-sector=\"Electronics\">Electronics<\/button>\n          <button type=\"button\" class=\"sector-pill active\" data-sector=\"Health & Fitness\">Health &amp; Fitness<\/button>\n          <button type=\"button\" class=\"sector-pill active\" data-sector=\"Entertainment & Events\">Entertainment &amp; Events<\/button>\n          <button type=\"button\" class=\"sector-pill active\" data-sector=\"Other SME Categories\">Other SME Categories<\/button>\n        <\/div>\n      <\/div>\n\n      <div class=\"filter-group\">\n        <div class=\"filter-label\">Actions<\/div>\n        <div class=\"filter-actions\">\n          <button type=\"button\" class=\"filter-button secondary reset\" id=\"resetFiltersBtn\">Reset<\/button>\n          <button type=\"button\" class=\"filter-button secondary export\">Download CSV<\/button>\n          <button type=\"button\" class=\"filter-button secondary export\">Download PNG<\/button>\n          <button type=\"button\" class=\"filter-button secondary hzoom\">\u2212H<\/button>\n          <button type=\"button\" class=\"filter-button secondary hzoom\">+H<\/button>\n        <\/div>\n      <\/div>\n    <\/section>\n\n    <main class=\"main-grid\">\n      <section class=\"card\">\n        <div class=\"card-inner\">\n          <div class=\"card-header\">\n            <div>\n              <div class=\"card-title\" id=\"overviewTitle\">Avg. SLP Redemption Value<\/div>\n              <div class=\"card-subtitle\" id=\"overviewSubtitle\">\n                By SME Category \u2013 last 30 days\n              <\/div>\n              <div class=\"subtitle-context\" id=\"overviewContext\">\n                Showing: <strong>Liverpool<\/strong> \u2022 <strong>UKSPF \u2013 Communities &amp; Place<\/strong> \u2022 <strong>Last 30 Days<\/strong>\n              <\/div>\n            <\/div>\n          <\/div>\n          <div class=\"chart-container\">\n            <canvas id=\"overviewChart\" aria-label=\"Average SLP Redemption Value chart\" role=\"img\"><\/canvas>\n          <\/div>\n        <\/div>\n      <\/section>\n\n      <section class=\"card\">\n        <div class=\"card-inner\">\n          <div class=\"card-header\">\n            <div>\n              <div class=\"card-title\">Category Snapshot \u2013 Last 30 Days<\/div>\n              <div class=\"card-subtitle\">Headline averages &amp; trend by SME category<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"kpi-list\">\n            <div class=\"kpi-row\" data-sector=\"Food & Beverage\">\n              <div class=\"kpi-label\">\n                <div class=\"kpi-dot\" style=\"background: var(--accent-blue);\"><\/div>\n                <span>Food &amp; Beverage<\/span>\n              <\/div>\n              <div>\n                <span class=\"kpi-value\" id=\"kpiValueFood\">\u00a325.00<\/span>\n                <span class=\"kpi-change good\" id=\"kpiChangeFood\">+4.2%<\/span>\n              <\/div>\n              <div class=\"chart-container small\">\n                <canvas id=\"sparkFood\"><\/canvas>\n              <\/div>\n            <\/div>\n            <div class=\"kpi-row\" data-sector=\"Apparel & Merchandise\">\n              <div class=\"kpi-label\">\n                <div class=\"kpi-dot\" style=\"background: var(--accent-teal);\"><\/div>\n                <span>Apparel &amp; Merchandise<\/span>\n              <\/div>\n              <div>\n                <span class=\"kpi-value\" id=\"kpiValueApparel\">\u00a345.00<\/span>\n                <span class=\"kpi-change good\" id=\"kpiChangeApparel\">+4.7%<\/span>\n              <\/div>\n              <div class=\"chart-container small\">\n                <canvas id=\"sparkApparel\"><\/canvas>\n              <\/div>\n            <\/div>\n            <div class=\"kpi-row\" data-sector=\"Electronics\">\n              <div class=\"kpi-label\">\n                <div class=\"kpi-dot\" style=\"background: var(--accent-amber);\"><\/div>\n                <span>Electronics<\/span>\n              <\/div>\n              <div>\n                <span class=\"kpi-value\" id=\"kpiValueElectronics\">\u00a391.00<\/span>\n                <span class=\"kpi-change good\" id=\"kpiChangeElectronics\">+12.3%<\/span>\n              <\/div>\n              <div class=\"chart-container small\">\n                <canvas id=\"sparkElectronics\"><\/canvas>\n              <\/div>\n            <\/div>\n            <div class=\"kpi-row\" data-sector=\"Health & Fitness\">\n              <div class=\"kpi-label\">\n                <div class=\"kpi-dot\" style=\"background: var(--accent-red);\"><\/div>\n                <span>Health &amp; Fitness<\/span>\n              <\/div>\n              <div>\n                <span class=\"kpi-value\" id=\"kpiValueHealth\">\u00a331.00<\/span>\n                <span class=\"kpi-change neutral\" id=\"kpiChangeHealth\">0.0%<\/span>\n              <\/div>\n              <div class=\"chart-container small\">\n                <canvas id=\"sparkHealth\"><\/canvas>\n              <\/div>\n            <\/div>\n            <div class=\"kpi-row\" data-sector=\"Entertainment & Events\">\n              <div class=\"kpi-label\">\n                <div class=\"kpi-dot\" style=\"background: var(--accent-purple);\"><\/div>\n                <span>Entertainment &amp; Events<\/span>\n              <\/div>\n              <div>\n                <span class=\"kpi-value\" id=\"kpiValueEvents\">\u00a353.00<\/span>\n                <span class=\"kpi-change bad\" id=\"kpiChangeEvents\">-11.7%<\/span>\n              <\/div>\n              <div class=\"chart-container small\">\n                <canvas id=\"sparkEvents\"><\/canvas>\n              <\/div>\n            <\/div>\n            <div class=\"kpi-row\" data-sector=\"Other SME Categories\">\n              <div class=\"kpi-label\">\n                <div class=\"kpi-dot\" style=\"background: var(--accent-cyan);\"><\/div>\n                <span>Other SME Categories<\/span>\n              <\/div>\n              <div>\n                <span class=\"kpi-value\" id=\"kpiValueOther\">\u00a329.00<\/span>\n                <span class=\"kpi-change bad\" id=\"kpiChangeOther\">-9.4%<\/span>\n              <\/div>\n              <div class=\"chart-container small\">\n                <canvas id=\"sparkOther\"><\/canvas>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n\n      <section class=\"card row-full\">\n        <div class=\"card-inner\">\n          <div class=\"card-header\">\n            <div>\n              <div class=\"card-title\">Daily Redemption Sessions<\/div>\n              <div class=\"card-subtitle\">Stacked by SME category<\/div>\n            <\/div>\n            <div class=\"card-actions\">\n              <button type=\"button\" class=\"filter-button secondary hzoom\">\u2212<\/button>\n              <button type=\"button\" class=\"filter-button secondary hzoom\">+<\/button>\n            <\/div>\n          <\/div>\n          <div class=\"chart-container bar\">\n            <canvas id=\"sessionsChart\" aria-label=\"Daily Redemption Sessions stacked bar chart\" role=\"img\"><\/canvas>\n          <\/div>\n          <div class=\"stacked-footer\">\n            <span class=\"totals-label\">Totals (30 days)<\/span>\n            <span class=\"totals-value\" id=\"sessionsTotal\">83,307<\/span>\n          <\/div>\n        <\/div>\n      <\/section>\n\n      <section class=\"card\">\n        <div class=\"card-inner\">\n          <div class=\"card-header\">\n            <div>\n              <div class=\"card-title\">Vendor Market Share<\/div>\n              <div class=\"card-subtitle\">Share of total SLP redemptions by SME category<\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"donut-layout\">\n            <div class=\"chart-container donut\">\n              <canvas id=\"marketShareChart\" aria-label=\"Vendor Market Share donut chart\" role=\"img\"><\/canvas>\n            <\/div>\n\n            <div class=\"donut-legend\" id=\"marketLegend\">\n              <div class=\"donut-legend-group active\" data-sector=\"Food & Beverage\">\n                <div class=\"donut-legend-left\">\n                  <span class=\"donut-legend-dot\" style=\"background: var(--accent-blue);\"><\/span>\n                  <span class=\"donut-legend-label\">Food &amp; Beverage<\/span>\n                <\/div>\n                <div class=\"donut-legend-right\">\n                  <div class=\"donut-legend-percentage\" data-type=\"percentage\">15.7%<\/div>\n                  <div class=\"donut-legend-value\">\u00a37.1M<\/div>\n                <\/div>\n              <\/div>\n              <div class=\"donut-legend-group active\" data-sector=\"Apparel & Merchandise\">\n                <div class=\"donut-legend-left\">\n                  <span class=\"donut-legend-dot\" style=\"background: var(--accent-teal);\"><\/span>\n                  <span class=\"donut-legend-label\">Apparel &amp; Merchandise<\/span>\n                <\/div>\n                <div class=\"donut-legend-right\">\n                  <div class=\"donut-legend-percentage\">18.4%<\/div>\n                  <div class=\"donut-legend-value\">\u00a38.3M<\/div>\n                <\/div>\n              <\/div>\n              <div class=\"donut-legend-group active\" data-sector=\"Electronics\">\n                <div class=\"donut-legend-left\">\n                  <span class=\"donut-legend-dot\" style=\"background: var(--accent-amber);\"><\/span>\n                  <span class=\"donut-legend-label\">Electronics<\/span>\n                <\/div>\n                <div class=\"donut-legend-right\">\n                  <div class=\"donut-legend-percentage\">21.7%<\/div>\n                  <div class=\"donut-legend-value\">\u00a39.8M<\/div>\n                <\/div>\n              <\/div>\n              <div class=\"donut-legend-group active\" data-sector=\"Health & Fitness\">\n                <div class=\"donut-legend-left\">\n                  <span class=\"donut-legend-dot\" style=\"background: var(--accent-red);\"><\/span>\n                  <span class=\"donut-legend-label\">Health &amp; Fitness<\/span>\n                <\/div>\n                <div class=\"donut-legend-right\">\n                  <div class=\"donut-legend-percentage\">13.3%<\/div>\n                  <div class=\"donut-legend-value\">\u00a36M<\/div>\n                <\/div>\n              <\/div>\n              <div class=\"donut-legend-group active\" data-sector=\"Entertainment & Events\">\n                <div class=\"donut-legend-left\">\n                  <span class=\"donut-legend-dot\" style=\"background: var(--accent-purple);\"><\/span>\n                  <span class=\"donut-legend-label\">Entertainment &amp; Events<\/span>\n                <\/div>\n                <div class=\"donut-legend-right\">\n                  <div class=\"donut-legend-percentage\">16.0%<\/div>\n                  <div class=\"donut-legend-value\">\u00a37.2M<\/div>\n                <\/div>\n              <\/div>\n              <div class=\"donut-legend-group active\" data-sector=\"Other SME Categories\">\n                <div class=\"donut-legend-left\">\n                  <span class=\"donut-legend-dot\" style=\"background: var(--accent-cyan);\"><\/span>\n                  <span class=\"donut-legend-label\">Other SME Categories<\/span>\n                <\/div>\n                <div class=\"donut-legend-right\">\n                  <div class=\"donut-legend-percentage\">14.9%<\/div>\n                  <div class=\"donut-legend-value\">\u00a36.7M<\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n\n        <\/div>\n      <\/section>\n\n      <section class=\"card\">\n        <div class=\"card-inner\">\n          <div class=\"card-header\">\n            <div>\n              <div class=\"card-title\">Impact Summary KPIs<\/div>\n              <div class=\"card-subtitle\">Community &amp; Place, Local Business, People &amp; Skills, Funding &amp; Engagement<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"impact-grid\">\n            <div class=\"impact-group\">\n              <div class=\"impact-heading\">Community &amp; Place<\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">\u00a32.5M<\/div>\n                <div class=\"impact-caption\">Projected local spend uplift from SLP redemptions<\/div>\n              <\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">5<\/div>\n                <div class=\"impact-caption\">Boroughs engaged across Merseyside<\/div>\n              <\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">72<\/div>\n                <div class=\"impact-caption\">Community &amp; match-day events supported<\/div>\n              <\/div>\n            <\/div>\n\n            <div class=\"impact-group\">\n              <div class=\"impact-heading\">Supporting Local Business<\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">350+<\/div>\n                <div class=\"impact-caption\">Independent SMEs onboarded as partners<\/div>\n              <\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">\u00a31,140<\/div>\n                <div class=\"impact-caption\">Avg. incremental revenue per SME \/ month<\/div>\n              <\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">8.9 \/ 10<\/div>\n                <div class=\"impact-caption\">SME satisfaction score (pilot cohort)<\/div>\n              <\/div>\n            <\/div>\n\n            <div class=\"impact-group\">\n              <div class=\"impact-heading\">People &amp; Skills<\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">24<\/div>\n                <div class=\"impact-caption\">Youth sports programmes backed via vouchers<\/div>\n              <\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">1,200+<\/div>\n                <div class=\"impact-caption\">Young people participating in Suportr activities<\/div>\n              <\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">420<\/div>\n                <div class=\"impact-caption\">Training, mentoring &amp; volunteer hours logged<\/div>\n              <\/div>\n            <\/div>\n\n            <div class=\"impact-group\">\n              <div class=\"impact-heading\">Funding &amp; Leverage<\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">\u00a33.2M<\/div>\n                <div class=\"impact-caption\">Grant funding deployed into local economies<\/div>\n              <\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">\u00a31.6M<\/div>\n                <div class=\"impact-caption\">Match-funding &amp; sponsor contributions leveraged<\/div>\n              <\/div>\n              <div class=\"impact-stat\">\n                <div class=\"impact-value\">68 \/ 32<\/div>\n                <div class=\"impact-caption\">Delivery vs. admin ratio (target &gt; 65 \/ 35)<\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n          <div class=\"impact-tagline\">\n            These KPIs roll up Community &amp; Place, Supporting Local Business, People &amp; Skills and fan engagement outcomes into a grant-ready view of Suportr League CIC\u2019s impact.\n          <\/div>\n        <\/div>\n      <\/section>\n    <\/main>\n  <\/div>\n\n  <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n  <script>\n    (function() {\n      const colorPalette = {\n        \"Food & Beverage\": getComputedStyle(document.documentElement).getPropertyValue('--accent-blue').trim(),\n        \"Apparel & Merchandise\": getComputedStyle(document.documentElement).getPropertyValue('--accent-teal').trim(),\n        \"Electronics\": getComputedStyle(document.documentElement).getPropertyValue('--accent-amber').trim(),\n        \"Health & Fitness\": getComputedStyle(document.documentElement).getPropertyValue('--accent-red').trim(),\n        \"Entertainment & Events\": getComputedStyle(document.documentElement).getPropertyValue('--accent-purple').trim(),\n        \"Other SME Categories\": getComputedStyle(document.documentElement).getPropertyValue('--accent-cyan').trim()\n      };\n\n      const sectors = Object.keys(colorPalette);\n\n      const baseLabels30 = [\n        \"29 Sept\", \"30 Sept\", \"01 Oct\", \"02 Oct\", \"03 Oct\", \"04 Oct\", \"05 Oct\",\n        \"06 Oct\", \"07 Oct\", \"08 Oct\", \"09 Oct\", \"10 Oct\", \"11 Oct\", \"12 Oct\",\n        \"13 Oct\", \"14 Oct\", \"15 Oct\", \"16 Oct\", \"17 Oct\", \"18 Oct\", \"19 Oct\",\n        \"20 Oct\", \"21 Oct\", \"22 Oct\", \"23 Oct\", \"24 Oct\", \"25 Oct\", \"26 Oct\",\n        \"27 Oct\", \"28 Oct\"\n      ];\n\n      function sliceForRange(labels, range) {\n        if (range === \"Last 7 Days\") return labels.slice(-7);\n        if (range === \"Last 30 Days\") return labels.slice(-30);\n        if (range === \"Last 90 Days\" || range === \"Year to Date\") return labels.slice();\n        return labels.slice();\n      }\n\n      function randomSeries(length, base, volatility) {\n        const data = [];\n        let current = base;\n        for (let i = 0; i < length; i++) {\n          const change = (Math.random() - 0.5) * volatility;\n          current = Math.max(0, current + change);\n          data.push(parseFloat(current.toFixed(1)));\n        }\n        return data;\n      }\n\n      function deepClone(obj) {\n        return JSON.parse(JSON.stringify(obj));\n      }\n\n      const metricConfigs = {\n        \"Avg. SLP Redemption Value\": {\n          unit: \"\u00a3\",\n          yTitle: \"Average SLP Redemption (\u00a3)\",\n          generator: () => ({\n            \"Food & Beverage\": randomSeries(baseLabels30.length, 28, 2),\n            \"Apparel & Merchandise\": randomSeries(baseLabels30.length, 53, 3),\n            \"Electronics\": randomSeries(baseLabels30.length, 96, 6),\n            \"Health & Fitness\": randomSeries(baseLabels30.length, 34, 3),\n            \"Entertainment & Events\": randomSeries(baseLabels30.length, 68, 4),\n            \"Other SME Categories\": randomSeries(baseLabels30.length, 32, 3)\n          })\n        },\n        \"Total SLP Redemptions\": {\n          unit: \"\",\n          yTitle: \"Total Redemptions\",\n          generator: () => ({\n            \"Food & Beverage\": randomSeries(baseLabels30.length, 900, 80),\n            \"Apparel & Merchandise\": randomSeries(baseLabels30.length, 650, 70),\n            \"Electronics\": randomSeries(baseLabels30.length, 740, 80),\n            \"Health & Fitness\": randomSeries(baseLabels30.length, 520, 60),\n            \"Entertainment & Events\": randomSeries(baseLabels30.length, 680, 80),\n            \"Other SME Categories\": randomSeries(baseLabels30.length, 560, 60)\n          })\n        },\n        \"Local Spend Uplift\": {\n          unit: \"\u00a3\",\n          yTitle: \"Local Spend Uplift (\u00a3)\",\n          generator: () => ({\n            \"Food & Beverage\": randomSeries(baseLabels30.length, 21000, 1800),\n            \"Apparel & Merchandise\": randomSeries(baseLabels30.length, 16500, 1500),\n            \"Electronics\": randomSeries(baseLabels30.length, 24000, 2200),\n            \"Health & Fitness\": randomSeries(baseLabels30.length, 13100, 1400),\n            \"Entertainment & Events\": randomSeries(baseLabels30.length, 17600, 1700),\n            \"Other SME Categories\": randomSeries(baseLabels30.length, 14200, 1500)\n          })\n        },\n        \"SMEs Supported\": {\n          unit: \"\",\n          yTitle: \"Active SMEs (rolling)\",\n          generator: () => ({\n            \"Food & Beverage\": randomSeries(baseLabels30.length, 120, 4),\n            \"Apparel & Merchandise\": randomSeries(baseLabels30.length, 85, 3),\n            \"Electronics\": randomSeries(baseLabels30.length, 60, 2),\n            \"Health & Fitness\": randomSeries(baseLabels30.length, 50, 2),\n            \"Entertainment & Events\": randomSeries(baseLabels30.length, 42, 2),\n            \"Other SME Categories\": randomSeries(baseLabels30.length, 56, 2)\n          })\n        },\n        \"Active Fans\": {\n          unit: \"\",\n          yTitle: \"Active Fans (DAU)\",\n          generator: () => ({\n            \"Food & Beverage\": randomSeries(baseLabels30.length, 3900, 320),\n            \"Apparel & Merchandise\": randomSeries(baseLabels30.length, 3350, 280),\n            \"Electronics\": randomSeries(baseLabels30.length, 4100, 350),\n            \"Health & Fitness\": randomSeries(baseLabels30.length, 2800, 260),\n            \"Entertainment & Events\": randomSeries(baseLabels30.length, 3600, 300),\n            \"Other SME Categories\": randomSeries(baseLabels30.length, 3100, 280)\n          })\n        }\n      };\n\n      const metricDataCache = {};\n      for (const key in metricConfigs) {\n        metricDataCache[key] = metricConfigs[key].generator();\n      }\n\n      const stackedSessionsData = deepClone(metricDataCache[\"Total SLP Redemptions\"]);\n\n      const donutBaseData = {\n        \"Food & Beverage\": 15.7,\n        \"Apparel & Merchandise\": 18.4,\n        \"Electronics\": 21.7,\n        \"Health & Fitness\": 13.3,\n        \"Entertainment & Events\": 16.0,\n        \"Other SME Categories\": 14.9\n      };\n\n      const activeSectors = new Set(sectors);\n\n      const metricSelect = document.getElementById(\"metricSelect\");\n      const dateRangeSelect = document.getElementById(\"dateRangeSelect\");\n      const countrySelect = document.getElementById(\"countrySelect\");\n      const regionSelect = document.getElementById(\"regionSelect\");\n      const citySelect = document.getElementById(\"citySelect\");\n      const fundingSelect = document.getElementById(\"fundingSelect\");\n      const pillarSelect = document.getElementById(\"pillarSelect\");\n      const resetFiltersBtn = document.getElementById(\"resetFiltersBtn\");\n      const sectorPillsContainer = document.getElementById(\"sectorPills\");\n      const overviewTitleEl = document.getElementById(\"overviewTitle\");\n      const overviewSubtitleEl = document.getElementById(\"overviewSubtitle\");\n      const overviewContextEl = document.getElementById(\"overviewContext\");\n      const sessionsTotalEl = document.getElementById(\"sessionsTotal\");\n\n      let currentMetric = metricSelect.value;\n      let currentDateRange = dateRangeSelect.value;\n\n      Chart.defaults.color = '#e5e7eb';\n      Chart.defaults.font.family = '-apple-system, BlinkMacSystemFont, \"Inter\", system-ui, sans-serif';\n      Chart.defaults.plugins.legend.labels.boxWidth = 12;\n      Chart.defaults.plugins.legend.labels.boxHeight = 12;\n      Chart.defaults.plugins.tooltip.backgroundColor = 'rgba(15,23,42,0.96)';\n      Chart.defaults.plugins.tooltip.borderColor = 'rgba(55,65,81,1)';\n      Chart.defaults.plugins.tooltip.borderWidth = 1;\n\n      const overviewCtx = document.getElementById(\"overviewChart\").getContext(\"2d\");\n      const sessionsCtx = document.getElementById(\"sessionsChart\").getContext(\"2d\");\n      const marketCtx = document.getElementById(\"marketShareChart\").getContext(\"2d\");\n\n      const sparkContexts = {\n        \"Food & Beverage\": document.getElementById(\"sparkFood\").getContext(\"2d\"),\n        \"Apparel & Merchandise\": document.getElementById(\"sparkApparel\").getContext(\"2d\"),\n        \"Electronics\": document.getElementById(\"sparkElectronics\").getContext(\"2d\"),\n        \"Health & Fitness\": document.getElementById(\"sparkHealth\").getContext(\"2d\"),\n        \"Entertainment & Events\": document.getElementById(\"sparkEvents\").getContext(\"2d\"),\n        \"Other SME Categories\": document.getElementById(\"sparkOther\").getContext(\"2d\")\n      };\n\n      const baseDatasetProps = sector => ({\n        label: sector,\n        borderColor: colorPalette[sector],\n        backgroundColor: colorPalette[sector],\n        fill: false,\n        tension: 0.35,\n        pointRadius: 2,\n        pointHitRadius: 8,\n        pointHoverRadius: 4,\n        borderWidth: 2\n      });\n\n      const overviewChart = new Chart(overviewCtx, {\n        type: \"line\",\n        data: {\n          labels: sliceForRange(baseLabels30, currentDateRange),\n          datasets: sectors.map(sector => ({\n            ...baseDatasetProps(sector),\n            data: metricDataCache[currentMetric][sector].slice(-sliceForRange(baseLabels30, currentDateRange).length)\n          }))\n        },\n        options: {\n          maintainAspectRatio: false,\n          scales: {\n            x: {\n              grid: { display: false },\n              ticks: {\n                maxRotation: 45,\n                minRotation: 30,\n                color: '#6b7280'\n              }\n            },\n            y: {\n              grid: { color: 'rgba(31,41,55,0.6)' },\n              title: {\n                display: true,\n                text: metricConfigs[currentMetric].yTitle,\n                color: '#9ca3af',\n                font: { size: 12 }\n              }\n            }\n          },\n          plugins: {\n            legend: {\n              position: \"top\",\n              labels: { color: \"#e5e7eb\", usePointStyle: true, pointStyle: 'circle' },\n              onClick: (e, legendItem, legend) => {\n                const index = legendItem.datasetIndex;\n                const meta = legend.chart.getDatasetMeta(index);\n                meta.hidden = meta.hidden === null ? !legend.chart.data.datasets[index].hidden : null;\n                legend.chart.update();\n              }\n            },\n            tooltip: {\n              callbacks: {\n                label: function(ctx) {\n                  const dataset = ctx.dataset;\n                  const index = ctx.dataIndex;\n                  const dataArr = dataset.data;\n                  const value = dataArr[index];\n                  const prev = index > 0 ? dataArr[index - 1] : null;\n                  const diff = prev !== null ? (value - prev) : null;\n                  const metricConfig = metricConfigs[currentMetric];\n                  const unit = metricConfig.unit;\n                  let label = `${dataset.label}: `;\n                  if (unit === \"\u00a3\") {\n                    label += `\u00a3${value.toFixed(1)}`;\n                  } else {\n                    label += value.toFixed(1);\n                  }\n                  if (diff !== null) {\n                    const sign = diff >= 0 ? \"+\" : \"\";\n                    label += ` (${sign}${diff.toFixed(1)} vs prev)`;\n                  }\n                  return label;\n                }\n              }\n            }\n          }\n        }\n      });\n\n      const sessionsChart = new Chart(sessionsCtx, {\n        type: \"bar\",\n        data: {\n          labels: sliceForRange(baseLabels30, currentDateRange),\n          datasets: sectors.map(sector => ({\n            label: sector,\n            data: stackedSessionsData[sector].slice(-sliceForRange(baseLabels30, currentDateRange).length),\n            backgroundColor: colorPalette[sector],\n            borderWidth: 0\n          }))\n        },\n        options: {\n          maintainAspectRatio: false,\n          interaction: {\n            mode: 'index',\n            intersect: false\n          },\n          scales: {\n            x: {\n              stacked: true,\n              grid: { display: false },\n              ticks: {\n                maxRotation: 45,\n                minRotation: 30,\n                color: '#6b7280'\n              }\n            },\n            y: {\n              stacked: true,\n              grid: { color: 'rgba(31,41,55,0.6)' },\n              title: {\n                display: true,\n                text: \"Redemption Sessions\",\n                color: '#9ca3af',\n                font: { size: 12 }\n              }\n            }\n          },\n          plugins: {\n            legend: {\n              position: 'top',\n              labels: {\n                color: '#e5e7eb',\n                usePointStyle: true,\n                pointStyle: 'rectRounded'\n              }\n            },\n            tooltip: {\n              callbacks: {\n                footer: function(items) {\n                  const total = items.reduce((sum, item) => sum + item.parsed.y, 0);\n                  return `Total: ${total.toLocaleString()}`;\n                },\n                label: function(ctx) {\n                  const total = ctx.chart.data.datasets.reduce((sum, ds) => {\n                    const val = ds.data[ctx.dataIndex];\n                    return sum + (typeof val === 'number' ? val : 0);\n                  }, 0);\n                  const value = ctx.parsed.y;\n                  const pct = total ? ((value \/ total) * 100).toFixed(1) : 0;\n                  return `${ctx.dataset.label}: ${value.toFixed(0)} (${pct}%)`;\n                }\n              }\n            }\n          }\n        }\n      });\n\n      const marketShareChart = new Chart(marketCtx, {\n        type: \"doughnut\",\n        data: {\n          labels: sectors,\n          datasets: [{\n            data: sectors.map(s => donutBaseData[s]),\n            backgroundColor: sectors.map(s => colorPalette[s]),\n            borderWidth: 1,\n            borderColor: '#020617',\n            hoverOffset: 6\n          }]\n        },\n        options: {\n          maintainAspectRatio: false,\n          cutout: '68%',\n          plugins: {\n            legend: { display: false },\n            tooltip: {\n              callbacks: {\n                label: function(ctx) {\n                  const label = ctx.label;\n                  const value = ctx.raw;\n                  const valueMillions = (value \/ 100 * 45).toFixed(2);\n                  const margin = (12 + Math.random() * 8).toFixed(1);\n                  return `${label} \u2014 ${value.toFixed(1)}% (\u00a3${valueMillions}M) \u2014 Margin ${margin}%`;\n                }\n              }\n            }\n          }\n        }\n      });\n\n      const sparkCharts = {};\n      sectors.forEach(sector => {\n        sparkCharts[sector] = new Chart(sparkContexts[sector], {\n          type: \"line\",\n          data: {\n            labels: sliceForRange(baseLabels30, currentDateRange),\n            datasets: [{\n              data: metricDataCache[\"Avg. SLP Redemption Value\"][sector].slice(-sliceForRange(baseLabels30, currentDateRange).length),\n              borderColor: colorPalette[sector],\n              tension: 0.35,\n              borderWidth: 1.6,\n              pointRadius: 0,\n              fill: false\n            }]\n          },\n          options: {\n            maintainAspectRatio: false,\n            plugins: { legend: { display: false } },\n            scales: {\n              x: { display: false },\n              y: { display: false }\n            },\n            elements: {\n              point: { radius: 0 }\n            }\n          }\n        });\n      });\n\n      function updateOverviewChart() {\n        const labels = sliceForRange(baseLabels30, currentDateRange);\n        overviewChart.data.labels = labels;\n        sectors.forEach((sector, idx) => {\n          overviewChart.data.datasets[idx].data = metricDataCache[currentMetric][sector].slice(-labels.length);\n        });\n        overviewChart.options.scales.y.title.text = metricConfigs[currentMetric].yTitle;\n        overviewChart.update();\n      }\n\n      function updateSessionsChart() {\n        const labels = sliceForRange(baseLabels30, currentDateRange);\n        sessionsChart.data.labels = labels;\n        sectors.forEach((sector, idx) => {\n          sessionsChart.data.datasets[idx].data = stackedSessionsData[sector].slice(-labels.length);\n        });\n        sessionsChart.update();\n        const totals = labels.map((_, index) => {\n          return sessionsChart.data.datasets.reduce((sum, ds) => sum + ds.data[index], 0);\n        });\n        const totalAll = totals.reduce((sum, v) => sum + v, 0);\n        sessionsTotalEl.textContent = totalAll.toLocaleString();\n      }\n\n      function updateSparklines() {\n        const labels = sliceForRange(baseLabels30, currentDateRange);\n        sectors.forEach(sector => {\n          const chart = sparkCharts[sector];\n          chart.data.labels = labels;\n          chart.data.datasets[0].data = metricDataCache[\"Avg. SLP Redemption Value\"][sector].slice(-labels.length);\n          chart.update();\n        });\n      }\n\n      function updateDonutChart() {\n        const dataset = marketShareChart.data.datasets[0];\n        dataset.data = sectors.map(sector => activeSectors.has(sector) ? donutBaseData[sector] : 0);\n        marketShareChart.update();\n      }\n\n      function refreshContextSubtitle() {\n        const city = citySelect.value;\n        const funding = fundingSelect.value;\n        const dateRange = dateRangeSelect.value;\n        overviewSubtitleEl.textContent = `By SME Category \u2013 ${dateRange.toLowerCase()}`;\n        overviewContextEl.innerHTML = `Showing: <strong>${city}<\/strong> \u2022 <strong>${funding}<\/strong> \u2022 <strong>${dateRange}<\/strong>`;\n      }\n\n      metricSelect.addEventListener(\"change\", () => {\n        currentMetric = metricSelect.value;\n        overviewTitleEl.textContent = currentMetric;\n        updateOverviewChart();\n      });\n\n      dateRangeSelect.addEventListener(\"change\", () => {\n        currentDateRange = dateRangeSelect.value;\n        updateOverviewChart();\n        updateSessionsChart();\n        updateSparklines();\n        refreshContextSubtitle();\n      });\n\n      [countrySelect, regionSelect, citySelect, fundingSelect, pillarSelect].forEach(sel => {\n        sel.addEventListener(\"change\", refreshContextSubtitle);\n      });\n\n      sectorPillsContainer.addEventListener(\"click\", (e) => {\n        const pill = e.target.closest(\".sector-pill\");\n        if (!pill) return;\n        const sector = pill.getAttribute(\"data-sector\");\n        if (activeSectors.has(sector) && activeSectors.size === 1) return;\n        if (activeSectors.has(sector)) {\n          activeSectors.delete(sector);\n          pill.classList.remove(\"active\");\n          pill.classList.add(\"inactive\");\n        } else {\n          activeSectors.add(sector);\n          pill.classList.add(\"active\");\n          pill.classList.remove(\"inactive\");\n        }\n\n        sectors.forEach((sec, idx) => {\n          const hidden = !activeSectors.has(sec);\n          overviewChart.getDatasetMeta(idx).hidden = hidden;\n          sessionsChart.getDatasetMeta(idx).hidden = hidden;\n        });\n        overviewChart.update();\n        sessionsChart.update();\n\n        Object.keys(sparkCharts).forEach(sec => {\n          const chart = sparkCharts[sec];\n          chart.getDatasetMeta(0).hidden = !activeSectors.has(sec);\n          chart.update();\n        });\n\n        const legendGroups = document.querySelectorAll(\".donut-legend-group\");\n        legendGroups.forEach(group => {\n          const sec = group.getAttribute(\"data-sector\");\n          if (activeSectors.has(sec)) {\n            group.classList.add(\"active\");\n          } else {\n            group.classList.remove(\"active\");\n          }\n        });\n\n        updateDonutChart();\n      });\n\n      resetFiltersBtn.addEventListener(\"click\", () => {\n        metricSelect.value = \"Avg. SLP Redemption Value\";\n        dateRangeSelect.value = \"Last 30 Days\";\n        countrySelect.value = \"UK\";\n        regionSelect.value = \"North West\";\n        citySelect.value = \"Liverpool\";\n        fundingSelect.value = \"UKSPF \u2013 Communities & Place\";\n        pillarSelect.value = \"Community & Skills\";\n        pillarSelect.value = \"Community & Place\";\n\n        sectors.forEach(sec => activeSectors.add(sec));\n        document.querySelectorAll(\".sector-pill\").forEach(pill => {\n          pill.classList.add(\"active\");\n          pill.classList.remove(\"inactive\");\n        });\n        document.querySelectorAll(\".donut-legend-group\").forEach(group => group.classList.add(\"active\"));\n\n        currentMetric = metricSelect.value;\n        currentDateRange = dateRangeSelect.value;\n        overviewTitleEl.textContent = currentMetric;\n        updateOverviewChart();\n        updateSessionsChart();\n        updateSparklines();\n        updateDonutChart();\n        refreshContextSubtitle();\n      });\n\n      document.querySelectorAll(\".donut-legend-group\").forEach(group => {\n        group.addEventListener(\"mouseenter\", () => {\n          const index = sectors.indexOf(group.getAttribute(\"data-sector\"));\n          marketShareChart.setActiveElements([{ datasetIndex: 0, index }]);\n          marketShareChart.tooltip.setActiveElements([{ datasetIndex: 0, index }]);\n          marketShareChart.update();\n        });\n        group.addEventListener(\"mouseleave\", () => {\n          marketShareChart.setActiveElements([]);\n          marketShareChart.tooltip.setActiveElements([]);\n          marketShareChart.update();\n        });\n      });\n\n      updateOverviewChart();\n      updateSessionsChart();\n      updateSparklines();\n      updateDonutChart();\n      refreshContextSubtitle();\n    })();\n  <\/script>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9f5134a e-flex e-con-boxed e-con e-parent\" data-id=\"9f5134a\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7bc192a elementor-widget elementor-widget-html\" data-id=\"7bc192a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"cf-section\" >\n   <h3 style=\"color: white;\">Social Value & Impact Measurement<\/h3>\n   <p>\n     Impact is baked into the platform from day one, giving you clear evidence of value for money and community benefit.\n   <\/p>\n   <ul>\n     <li>Estimated local spend uplift driven through participating SMEs.<\/li>\n     <li>Number and profile of local businesses, fan groups, and community partners engaged.<\/li>\n     <li>Participation in youth and grassroots programmes linked to clubs and neighbourhoods.<\/li>\n     <li>Simple \u201cpride in place\u201d and satisfaction measures tracked over time.<\/li>\n   <\/ul>\n <\/div>\n\n<\/div>\n\n<style>\n .slcic-councils-funders {\n   color: #ffffff;\n   font-family: \"Roboto\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n   max-width: 960px;\n   margin: 0 auto;\n   padding: 40px 20px;\n }\n\n .slcic-councils-funders h2,\n .slcic-councils-funders h3 {\n   font-family: \"Anton\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n   text-transform: uppercase;\n   letter-spacing: 0.06em;\n   margin: 0 0 16px;\n   color: #ffffff;\n }\n\n .slcic-councils-funders h2 {\n   font-size: 32px;\n }\n\n .slcic-councils-funders h3 {\n   font-size: 20px;\n   margin-top: 32px;\n }\n\n .slcic-councils-funders p {\n   font-size: 15px;\n   line-height: 1.5;\n   margin: 0 0 14px;\n }\n\n .slcic-councils-funders .cf-lead {\n   font-size: 16px;\n   margin-bottom: 22px;\n }\n\n .slcic-councils-funders ul {\n   list-style: disc;\n   padding-left: 20px;\n   margin: 0 0 10px;\n }\n\n .slcic-councils-funders li {\n   margin-bottom: 6px;\n   font-size: 15px;\n   line-height: 1.4;\n }\n\n .slcic-councils-funders a {\n   color: #ffffff;\n   text-decoration: underline;\n }\n\n .slcic-councils-funders a:hover {\n   opacity: 0.85;\n }\n\n .slcic-councils-funders .cf-section {\n   margin-bottom: 8px;\n      color: #ffffff;\n\n }\n\n .slcic-councils-funders .cf-downloads ul {\n   list-style: none;\n   padding-left: 0;\n }\n\n .slcic-councils-funders .cf-downloads li::before {\n   content: \"\u2193\";\n   margin-right: 8px;\n }\n\n @media (max-width: 767px) {\n   .slcic-councils-funders {\n     padding: 30px 16px;\n   }\n\n   .slcic-councils-funders h2 {\n     font-size: 26px;\n   }\n\n   .slcic-councils-funders h3 {\n     font-size: 18px;\n   }\n }\n<\/style>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-fc51e79 e-flex e-con-boxed e-con e-parent\" data-id=\"fc51e79\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9663867 elementor-widget elementor-widget-text-editor\" data-id=\"9663867\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tGet in touch, partner with us <a href=\"https:\/\/suportrleague-cic.org\/#contact\"><span style=\"color: white;\">HERE<\/span><\/a>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Councils &#038; Funders Suportr League CIC is built as a delivery partner for local authorities and funders, turning fan loyalty [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-972","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Councils &amp; Funding - Turning Local Passion into Local Prosperity.<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/suportrleague-cic.org\/?page_id=972\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Councils &amp; Funding - Turning Local Passion into Local Prosperity.\" \/>\n<meta property=\"og:description\" content=\"Councils &#038; Funders Suportr League CIC is built as a delivery partner for local authorities and funders, turning fan loyalty [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/suportrleague-cic.org\/?page_id=972\" \/>\n<meta property=\"og:site_name\" content=\"Turning Local Passion into Local Prosperity.\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-20T13:38:12+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/suportrleague-cic.org\/?page_id=972\",\"url\":\"https:\/\/suportrleague-cic.org\/?page_id=972\",\"name\":\"Councils &amp; Funding - Turning Local Passion into Local Prosperity.\",\"isPartOf\":{\"@id\":\"https:\/\/suportrleague-cic.org\/#website\"},\"datePublished\":\"2025-11-20T12:28:47+00:00\",\"dateModified\":\"2025-11-20T13:38:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/suportrleague-cic.org\/?page_id=972#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/suportrleague-cic.org\/?page_id=972\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/suportrleague-cic.org\/?page_id=972#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/suportrleague-cic.org\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Councils &amp; Funding\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/suportrleague-cic.org\/#website\",\"url\":\"https:\/\/suportrleague-cic.org\/\",\"name\":\"Turning Local Passion into Local Prosperity.\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/suportrleague-cic.org\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/suportrleague-cic.org\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/suportrleague-cic.org\/#organization\",\"name\":\"Turning Local Passion into Local Prosperity.\",\"url\":\"https:\/\/suportrleague-cic.org\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/suportrleague-cic.org\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/suportrleague-cic.org\/wp-content\/uploads\/2025\/11\/Logo_Horizontal_On_Blue-1-27.02-NOBG-scaled.png\",\"contentUrl\":\"https:\/\/suportrleague-cic.org\/wp-content\/uploads\/2025\/11\/Logo_Horizontal_On_Blue-1-27.02-NOBG-scaled.png\",\"width\":2560,\"height\":1028,\"caption\":\"Turning Local Passion into Local Prosperity.\"},\"image\":{\"@id\":\"https:\/\/suportrleague-cic.org\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Councils &amp; Funding - Turning Local Passion into Local Prosperity.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/suportrleague-cic.org\/?page_id=972","og_locale":"en_GB","og_type":"article","og_title":"Councils &amp; Funding - Turning Local Passion into Local Prosperity.","og_description":"Councils &#038; Funders Suportr League CIC is built as a delivery partner for local authorities and funders, turning fan loyalty [&hellip;]","og_url":"https:\/\/suportrleague-cic.org\/?page_id=972","og_site_name":"Turning Local Passion into Local Prosperity.","article_modified_time":"2025-11-20T13:38:12+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/suportrleague-cic.org\/?page_id=972","url":"https:\/\/suportrleague-cic.org\/?page_id=972","name":"Councils &amp; Funding - Turning Local Passion into Local Prosperity.","isPartOf":{"@id":"https:\/\/suportrleague-cic.org\/#website"},"datePublished":"2025-11-20T12:28:47+00:00","dateModified":"2025-11-20T13:38:12+00:00","breadcrumb":{"@id":"https:\/\/suportrleague-cic.org\/?page_id=972#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/suportrleague-cic.org\/?page_id=972"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/suportrleague-cic.org\/?page_id=972#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/suportrleague-cic.org\/"},{"@type":"ListItem","position":2,"name":"Councils &amp; Funding"}]},{"@type":"WebSite","@id":"https:\/\/suportrleague-cic.org\/#website","url":"https:\/\/suportrleague-cic.org\/","name":"Turning Local Passion into Local Prosperity.","description":"","publisher":{"@id":"https:\/\/suportrleague-cic.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/suportrleague-cic.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/suportrleague-cic.org\/#organization","name":"Turning Local Passion into Local Prosperity.","url":"https:\/\/suportrleague-cic.org\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/suportrleague-cic.org\/#\/schema\/logo\/image\/","url":"https:\/\/suportrleague-cic.org\/wp-content\/uploads\/2025\/11\/Logo_Horizontal_On_Blue-1-27.02-NOBG-scaled.png","contentUrl":"https:\/\/suportrleague-cic.org\/wp-content\/uploads\/2025\/11\/Logo_Horizontal_On_Blue-1-27.02-NOBG-scaled.png","width":2560,"height":1028,"caption":"Turning Local Passion into Local Prosperity."},"image":{"@id":"https:\/\/suportrleague-cic.org\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/suportrleague-cic.org\/index.php?rest_route=\/wp\/v2\/pages\/972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/suportrleague-cic.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/suportrleague-cic.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/suportrleague-cic.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/suportrleague-cic.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=972"}],"version-history":[{"count":34,"href":"https:\/\/suportrleague-cic.org\/index.php?rest_route=\/wp\/v2\/pages\/972\/revisions"}],"predecessor-version":[{"id":1010,"href":"https:\/\/suportrleague-cic.org\/index.php?rest_route=\/wp\/v2\/pages\/972\/revisions\/1010"}],"wp:attachment":[{"href":"https:\/\/suportrleague-cic.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}