<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">

  <!-- Public marketing perimeter (GST-420 / Cluster B — CEO #1 private-preview rule).
       Anything NOT in this list is either app-frame, auth-gated, or ephemeral and
       carries `noindex,nofollow` via routeMeta.ts + robots.txt.

       Curated public surface (CEO #1):
         /, /energy, /energy/{solar,wind,battery}, /pricing, /methodology,
         /trust, /compliance, /status, /changelog, /blog, /terms, /privacy.
       Blog post URLs live in sitemap-blog.xml and are generated from
       src/lib/blog/registry.ts at build time. -->

  <!-- Homepage / Landing -->
  <url>
    <loc>https://finmodels.io/</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Energy hub + sector landings (GST-420 F-024) -->
  <url>
    <loc>https://finmodels.io/energy</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>

  <url>
    <loc>https://finmodels.io/energy/solar</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://finmodels.io/energy/wind</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://finmodels.io/energy/battery</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://finmodels.io/pricing</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- CR-D01-007: public vs-Excel comparison page (SEO migration funnel). -->
  <url>
    <loc>https://finmodels.io/vs-excel</loc>
    <lastmod>2026-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://finmodels.io/blog</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Information / trust pages -->
  <url>
    <loc>https://finmodels.io/methodology</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://finmodels.io/compliance</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://finmodels.io/trust</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://finmodels.io/changelog</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>

  <!-- GST-420 F-048: /status is a static incident page today — downgrade
       changefreq from daily to weekly until a real status feed ships. -->
  <url>
    <loc>https://finmodels.io/status</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.5</priority>
  </url>

  <!-- Legal -->
  <url>
    <loc>https://finmodels.io/terms</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>

  <url>
    <loc>https://finmodels.io/privacy</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>

  <url>
    <loc>https://finmodels.io/accessibility</loc>
    <lastmod>2026-06-09</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>

</urlset>
