diff --git a/competitions/GFC2024/ansible/roles/GFC2024/files/GFCExploreTable b/competitions/GFC2024/ansible/roles/GFC2024/files/GFCExploreTable
new file mode 100644
index 0000000000000000000000000000000000000000..74dacd0a44c6192702564615c21a4e0b1343e9e8
--- /dev/null
+++ b/competitions/GFC2024/ansible/roles/GFC2024/files/GFCExploreTable
@@ -0,0 +1,67 @@
+<div id="torque-explore--table-view">
+{%- set top_proposals = [] %}
+{%- set wildcard_proposals = [] %}
+{%- set other_proposals = [] %}
+{%- for proposal in proposal_data %}
+{%- if "Achievement Level" in proposal %}
+{%- if "Wildcard" in proposal["Achievement Level"] %}
+{{- '' if wildcard_proposals.append(proposal) }}
+{%- elif "Top Proposal" in proposal["Achievement Level"] %}
+{{- '' if top_proposals.append(proposal) }}
+{%- else %}
+{{- '' if other_proposals.append(proposal) }}
+{%- endif %}
+{%- endif %}
+{%- endfor %}
+{%- macro proposal_table(proposals, table_name) %}
+{% if proposals %}
+<h2>{{table_name}}</h2>
+<table class="ots--table" cellpadding="0" cellspacing="0">
+  <colgroup>
+    <col style="width:auto">
+    <col style="width:auto">
+    <col style="width:auto">
+    <col style="width:auto">
+    <col style="width:auto;max-width:30%">
+    <col style="width:auto">
+  </colgroup>
+  <thead>
+    <tr>
+      <th>Rank</th>
+      <th>Organization Name</th>
+      <th>Organization Location</th>
+      <th>Project Category</th>
+      <th>Tags</th>
+    </tr>
+  </thead>
+  <tbody>
+    {%- for proposal in proposals %}
+    <tr>
+      <td>{{proposal["Rank"]}}</td>
+      <td><a href="/GFC2024/index.php/{{proposal["MediaWiki Title"]}}">{{proposal["Organization Name"]}}</a></td>
+      <td>{{proposal["Organization Location"]["City"]}}, {{proposal["Organization Location"]["State/Province"]}}</td>
+      <td>
+        {%- set categories = [] %}
+        {%- for category in proposal['Project Category']['Selection'] -%}
+        {%- if category == 'My project addresses the Future of Environmental Change along the Gulf Coast.' %}
+        {{- '' if categories.append("Environmental Change") }}
+        {%- elif category == 'My project addresses  the Future of Healthy and Resilient Communities in the Gulf.' -%}
+        {{- '' if categories.append("Healthy and Resilitent Communities") }}
+        {%- elif category == 'My project addresses the Future of the Energy Transition.' -%}
+        {{- '' if categories.append("Energy Transition") }}
+        {%- else -%}
+        {{- '' if categories.append(category)}}
+        {% endif -%}
+        {% endfor -%}
+        {{ categories | join(", ") }}
+      </td>
+      <td>{{proposal["Tags"] | join(", ")}}</td>
+    </tr>
+    {%- endfor %}
+  </tbody>
+</table>
+{%- endif %}
+{%- endmacro %}
+{{ proposal_table(top_proposals, "Top Proposals") }}
+{{ proposal_table(wildcard_proposals, "Wildcards") }}
+{{ proposal_table(other_proposals, "Other") }}
diff --git a/competitions/GFC2024/ansible/roles/GFC2024/files/GFCLFCAnalysis b/competitions/GFC2024/ansible/roles/GFC2024/files/GFCLFCAnalysis
new file mode 100644
index 0000000000000000000000000000000000000000..6e843338c9000a8826ed9ebb2623c5b5957e6cca
--- /dev/null
+++ b/competitions/GFC2024/ansible/roles/GFC2024/files/GFCLFCAnalysis
@@ -0,0 +1,346 @@
+<div class="proposal-body">
+
+  <div class="proposal-content proposal-analysis">
+
+    <div class="proposal-analysis--logos">
+      <img src="/GFC2024/images/d/d4/LeverForChange_Logo.svg" class="proposal-analysis--logo--lfc" height="70" alt="Lever For Change logo">
+      <img src="/GFC2024/images/3/31/GFC2024_Logo.png" class="proposal-analysis--logo--competition" height="70" alt="GFC logo">
+    </div>
+
+    <div class="proposal-analysis--preflight">
+      <div class="proposal-analysis--preflight--organization">Organization: {{proposal["Organization Name"]}}</div>
+      <div class="proposal-analysis--preflight--spread-row">
+        <div>Evaluation Panel Score: <b>{{proposal["Panel Score"]["LFC Normalized"]}}</b></div>
+        <div>Evaluation Panel Rank: <b>{{proposal["Panel Rank"]["LFC Normalized"]}}</b></div>
+      </div>
+      <div class="proposal-analysis--preflight--spread-row">
+        <div>Participatory Review Score: <b>{{proposal["Peer Score"]["LFC Normalized"]}}</b></div>
+        <div>Participatory Review Rank: <b>{{proposal["Peer Rank"]["LFC Normalized"]}}</b></div>
+      </div>
+    </div>
+
+    <div class="proposal-analysis--project-details">
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Project Title</div>
+        </div>
+        <div class="proposal-analysis--section-body">{{ proposal['Project Title'] }} ({{ proposal['Application #'] }})</div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">One-Sentence Description</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="line" data-field="LFC Analysis||One Sentence Description">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          {{ proposal['LFC Analysis']['One Sentence Description'] }}
+        </div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Project Location</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="line" data-field="LFC Analysis||Project Location">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          {{ proposal['LFC Analysis']['Project Location'] }}
+        </div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Lead Organization Type</div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          {% if proposal['Organization Legal Status'] == 'An entity under section 501(c)(3) and 509(a)(1) or (2) of the IRC' %}
+            Nonprofit Organization, 501(c)(3)
+          {% elif proposal['Organization Legal Status'] == 'An entity under section 501(c)(4) of the IRC ' %}
+            Advocacy Organization, 501(c)(4)
+          {% elif proposal['Organization Legal Status'] == 'A private foundation under section 501(c)(3) of the IRC' %}
+            Private Foundation, 501(c)(3)
+          {% else %}
+          {{ proposal['Organization Legal Status'] }}
+          {% endif %}
+        </div>
+      </div>
+
+    </div>
+
+    <div class="proposal-analysis--main">
+      <h2 class="proposal-analysis--main-header">Lever for Change Insights</h2>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">The Challenge</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="callback" data-callback="LFCTheme.inlineMarkdown" data-field="LFC Analysis||The Challenge">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          <div class="lfc-theme--torque-markdown-section" data-field="LFC Analysis||The Challenge">
+            <div class="lfc-theme--torque-markdown-section--display">
+              {%- set default_value = "" -%}
+              {%- if proposal['LFC Analysis']['The Challenge'] -%}
+              {{ convert_md_to_html(proposal['LFC Analysis']['The Challenge']) }}
+              {%- else -%}
+              {{ convert_md_to_html(default_value) }}
+              {%- endif -%}
+            </div>
+            <pre class="lfc-theme--torque-markdown-section--default-value">
+  {{default_value | replace("\n", "_CR_")}}
+            </pre>
+            <div class="lfc-theme--torque-markdown-section--edit">
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">The Solutions</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="callback" data-callback="LFCTheme.inlineMarkdown" data-field="LFC Analysis||The Solutions">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          <div class="lfc-theme--torque-markdown-section" data-field="LFC Analysis||The Solutions">
+            <div class="lfc-theme--torque-markdown-section--display">
+              {%- set default_value = "" -%}
+              {%- if proposal['LFC Analysis']['The Solutions'] -%}
+              {{ convert_md_to_html(proposal['LFC Analysis']['The Solutions']) }}
+              {%- else -%}
+              {{ convert_md_to_html(default_value) }}
+              {%- endif -%}
+            </div>
+            <pre class="lfc-theme--torque-markdown-section--default-value">
+  {{default_value | replace("\n", "_CR_")}}
+            </pre>
+            <div class="lfc-theme--torque-markdown-section--edit">
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Implementation Plan</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="callback" data-callback="LFCTheme.inlineMarkdown" data-field="LFC Analysis||Implementation Plan">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          <div class="lfc-theme--torque-markdown-section" data-field="LFC Analysis||Implementation Plan">
+            <div class="lfc-theme--torque-markdown-section--display">
+              {%- set default_value = "" -%}
+              {%- if proposal['LFC Analysis']['Implementation Plan'] -%}
+              {{ convert_md_to_html(proposal['LFC Analysis']['Implementation Plan']) }}
+              {%- else -%}
+              {{ convert_md_to_html(default_value) }}
+              {%- endif -%}
+            </div>
+            <pre class="lfc-theme--torque-markdown-section--default-value">
+  {{default_value | replace("\n", "_CR_")}}
+            </pre>
+            <div class="lfc-theme--torque-markdown-section--edit">
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Partnerships (if applicable)</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="callback" data-callback="LFCTheme.inlineMarkdown" data-field="LFC Analysis||Partnerships">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          <div class="lfc-theme--torque-markdown-section" data-field="LFC Analysis||Partnerships">
+            <div class="lfc-theme--torque-markdown-section--display">
+              {%- set default_value = "" -%}
+              {%- if proposal['LFC Analysis']['Partnerships'] -%}
+              {{ convert_md_to_html(proposal['LFC Analysis']['Partnerships']) }}
+              {%- else -%}
+              {{ convert_md_to_html(default_value) }}
+              {%- endif -%}
+            </div>
+            <pre class="lfc-theme--torque-markdown-section--default-value">
+  {{default_value | replace("\n", "_CR_")}}
+            </pre>
+            <div class="lfc-theme--torque-markdown-section--edit">
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Strength of Approach</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="callback" data-callback="LFCTheme.inlineMarkdown" data-field="LFC Analysis||Strength of Approach">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          <div class="lfc-theme--torque-markdown-section" data-field="LFC Analysis||Strength of Approach">
+            <div class="lfc-theme--torque-markdown-section--display">
+              {%- set default_value = "" -%}
+              {%- if proposal['LFC Analysis']['Strength of Approach'] -%}
+              {{ convert_md_to_html(proposal['LFC Analysis']['Strength of Approach']) }}
+              {%- else -%}
+              {{ convert_md_to_html(default_value) }}
+              {%- endif -%}
+            </div>
+            <pre class="lfc-theme--torque-markdown-section--default-value">
+{{default_value | replace("\n", "_CR_")}}
+            </pre>
+            <div class="lfc-theme--torque-markdown-section--edit">
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Potential Challenges</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="callback" data-callback="LFCTheme.inlineMarkdown" data-field="LFC Analysis||Potential Challenges">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          <div class="lfc-theme--torque-markdown-section" data-field="LFC Analysis||Potential Challenges">
+            <div class="lfc-theme--torque-markdown-section--display">
+              {%- set default_value = "" -%}
+              {%- if proposal['LFC Analysis']['Potential Challenges'] -%}
+              {{ convert_md_to_html(proposal['LFC Analysis']['Potential Challenges']) }}
+              {%- else -%}
+              {{ convert_md_to_html(default_value) }}
+              {%- endif -%}
+            </div>
+            <pre class="lfc-theme--torque-markdown-section--default-value">
+  {{default_value | replace("\n", "_CR_")}}
+            </pre>
+            <div class="lfc-theme--torque-markdown-section--edit">
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Reputational Risks</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="callback" data-callback="LFCTheme.inlineMarkdown" data-field="LFC Analysis||Reputational Risks">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          <div class="lfc-theme--torque-markdown-section" data-field="LFC Analysis||Reputational Risks">
+            <div class="lfc-theme--torque-markdown-section--display">
+              {%- set default_value = "" -%}
+              {%- if proposal['LFC Analysis']['Reputational Risks'] -%}
+              {{ convert_md_to_html(proposal['LFC Analysis']['Reputational Risks']) }}
+              {%- else -%}
+              {{ convert_md_to_html(default_value) }}
+              {%- endif -%}
+            </div>
+            <pre class="lfc-theme--torque-markdown-section--default-value">
+{{default_value | replace("\n", "_CR_")}}
+            </pre>
+            <div class="lfc-theme--torque-markdown-section--edit">
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+
+    <div class="proposal-analysis--main">
+      <h2 class="proposal-analysis--main-header">Gulf Research Program Insights</h2>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Science-Specific Feedback</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="callback" data-callback="LFCTheme.inlineMarkdown" data-field="LFC Analysis||Science-Specific Feedback">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          <div class="lfc-theme--torque-markdown-section" data-field="LFC Analysis||Science-Specific Feedback">
+            <div class="lfc-theme--torque-markdown-section--display">
+              {%- set default_value = "" -%}
+              {%- if proposal['LFC Analysis']['Science-Specific Feedback'] -%}
+              {{ convert_md_to_html(proposal['LFC Analysis']['Science-Specific Feedback']) }}
+              {%- else -%}
+              {{ convert_md_to_html(default_value) }}
+              {%- endif -%}
+            </div>
+            <pre class="lfc-theme--torque-markdown-section--default-value">
+  {{default_value | replace("\n", "_CR_")}}
+            </pre>
+            <div class="lfc-theme--torque-markdown-section--edit">
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Grantee Status</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="callback" data-callback="LFCTheme.inlineMarkdown" data-field="LFC Analysis||Grantee Status">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          <div class="lfc-theme--torque-markdown-section" data-field="LFC Analysis||Grantee Status">
+            <div class="lfc-theme--torque-markdown-section--display">
+              {%- set default_value = "" -%}
+              {%- if proposal['LFC Analysis']['Grantee Status'] -%}
+              {{ convert_md_to_html(proposal['LFC Analysis']['Grantee Status']) }}
+              {%- else -%}
+              {{ convert_md_to_html(default_value) }}
+              {%- endif -%}
+            </div>
+            <pre class="lfc-theme--torque-markdown-section--default-value">
+  {{default_value | replace("\n", "_CR_")}}
+            </pre>
+            <div class="lfc-theme--torque-markdown-section--edit">
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="proposal-analysis--section">
+        <div class="proposal-analysis--section-header">
+          <div class="proposal-analysis--section-header-title">Alignment with GRP Grantmaking Approach</div>
+          <div class="proposal-analysis--section-header-actions">
+            <button class="lfc--button small torque-edit-button" data-type="callback" data-callback="LFCTheme.inlineMarkdown" data-field="LFC Analysis||Alignment with GRP Grantmaking Approach">Edit</button>
+          </div>
+        </div>
+        <div class="proposal-analysis--section-body">
+          <div class="lfc-theme--torque-markdown-section" data-field="LFC Analysis||Alignment with GRP Grantmaking Approach">
+            <div class="lfc-theme--torque-markdown-section--display">
+              {%- set default_value = "" -%}
+              {%- if proposal['LFC Analysis']['Alignment with GRP Grantmaking Approach'] -%}
+              {{ convert_md_to_html(proposal['LFC Analysis']['Alignment with GRP Grantmaking Approach']) }}
+              {%- else -%}
+              {{ convert_md_to_html(default_value) }}
+              {%- endif -%}
+            </div>
+            <pre class="lfc-theme--torque-markdown-section--default-value">
+  {{default_value | replace("\n", "_CR_")}}
+            </pre>
+            <div class="lfc-theme--torque-markdown-section--edit">
+            </div>
+          </div>
+        </div>
+      </div>
+
+    </div>
+
+  </div>
+
+</div>
+
diff --git a/competitions/GFC2024/ansible/roles/GFC2024/tasks/main.yml b/competitions/GFC2024/ansible/roles/GFC2024/tasks/main.yml
index 82fd99611f80a28054dfb112ba1275c9d6b11160..adac6bbe89f69abb8fbc55894d0cd016c89353ec 100644
--- a/competitions/GFC2024/ansible/roles/GFC2024/tasks/main.yml
+++ b/competitions/GFC2024/ansible/roles/GFC2024/tasks/main.yml
@@ -11,15 +11,73 @@
     regexp: ^\$wgLogos = [ '1x' => .* ];
     line: $wgLogos = [ '1x' => "$wgResourceBasePath/resources/assets/GFC2024_Logo.png" ];
 
-- name: Transfer GFC Proposal
+- name: Transfer GFC Templates
   copy:
-    src: GFCProposal
-    dest: "{{ mediawiki_install_directory }}/GFCProposal"
+    src: "{{ item }}"
+    dest: "{{ mediawiki_install_directory }}/{{ item }}"
+  loop:
+    - GFCProposal
+    - GFCLFCAnalysis
+    - GFCExploreTable
 
-- name: Install GFC Proposal
-  raw: "php {{ mediawiki_install_directory }}/mediawiki-{{ mediawiki_version }}/maintenance/edit.php -b TorqueConfig:GFCProposal < {{ mediawiki_install_directory }}/GFCProposal"
+- name: Install GFC Templates
+  raw: "php {{ mediawiki_install_directory }}/mediawiki-{{ mediawiki_version }}/maintenance/edit.php -b TorqueConfig:{{ item }} < {{ mediawiki_install_directory }}/{{ item }}"
+  loop:
+    - GFCProposal
+    - GFCLFCAnalysis
+    - GFCExploreTable
 
-- name: Remove GFC Proposal
+- name: Remove GFC Templates
   file:
-    path: "{{ mediawiki_install_directory }}/GFCProposal"
+    path: "{{ mediawiki_install_directory }}/{{ item }}"
     state: absent
+  loop:
+    - GFCProposal
+    - GFCLFCAnalysis
+    - GFCExploreTable
+
+- name: Explore Setup
+  blockinfile:
+    path: "{{ mediawiki_install_directory }}/mediawiki-{{ mediawiki_version }}/LocalSettings.php"
+    marker: "## {mark} ANSIBLE EXPLORE CONFIG"
+    block: |
+      $wgTorquePrimaryFilters = [
+        "achievement_level",
+        "tags",
+      ];
+      $wgTorqueFilterDefaults = [
+        "achievement_level" => ["Top Proposal", "Wildcard"],
+      ];
+      $wgTorqueFilterGroups = [
+        [
+          "name" => "primary",
+          "filters" => [
+            "tags",
+            "achievement_level",
+            "organization_location",
+          ]
+        ],
+      ];
+      $tdcOverrideMessage["torque-explore-filter-organization_location"] = "Filter by State";
+
+
+- name: Install additional tab configurations
+  blockinfile:
+    path: "{{ mediawiki_install_directory }}/mediawiki-{{ mediawiki_version }}/LocalSettings.php"
+    marker: "## {mark} ANSIBLE ADDITIONAL TAB CONFIG"
+    block: |
+      $wgLFCExtraTabOverrides["FINALIST_CANDIDATE"] = function() {
+        global $wgUser;
+        if($wgUser->isSafeToLoad() && $wgUser->isAllowed("lfcanalysis")) {
+          return [
+            ["", "Original Proposal"],
+            ["Evaluations of ", "Evaluations"],
+            ["LFC Analysis of ",  "Analysis"],
+          ];
+        } else {
+          return [
+            ["", "Original Proposal"],
+            ["Evaluations of ", "Evaluations"],
+          ];
+        }
+      };