<?xml version="1.0" encoding="UTF-8"?>
<!--
  MoneyBadger sitemap. URLs and trailing-slash conventions are reconciled to what the
  SPA actually serves, verified against apps/web/src/App.tsx routes and the live nav /
  footer in apps/web/src/components/Layout.tsx:
    - tool / CTA routes carry NO trailing slash (/snap, /pricing)
    - SPA-native routes added since the port (/learn, /link, /nurse-schedule) also
      carry NO trailing slash, matching how the site's own nav links them
    - content pages ported from the oracle keep their trailing slash (/product/, /faq/, ...)
    - blog posts carry NO trailing slash and NO .html (the .html forms 301 to these)

  Lives in apps/web/public/ so Vite copies it into the publish dir (apps/web/dist), where
  Netlify serves it as a real static file before the SPA /* -> /index.html fallback.

  Intentionally excluded: /preview/* and /themoneybadger/ (see robots.txt), plus the
  unlinked app / funnel / member-only and contact routes, which stay out of the index and
  are noindexed at the header level (apps/web/public/_headers). Re-submit in Google Search
  Console > Sitemaps after this returns 200.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Home -->
  <url>
    <loc>https://moneybadger.us/</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Conversion / tool pages (the front doors for paid + organic intent).
       /assess retired 2026-07-18: it 301s to /snap (public/_redirects). -->
  <url>
    <loc>https://moneybadger.us/snap</loc>
    <lastmod>2026-07-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Profession doors (the four landing pages built to earn organic profession
       traffic; added 2026-07-18). Each speaks its own pay language, funnels to /snap. -->
  <url>
    <loc>https://moneybadger.us/firefighters</loc>
    <lastmod>2026-07-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/police</loc>
    <lastmod>2026-07-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/military</loc>
    <lastmod>2026-07-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/nurses</loc>
    <lastmod>2026-07-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <!-- The four public retirement previews (Retirement Preview Capture,
       2026-08-14). One "Your retirement" per vertical: each route lands on the
       furnished Future Self screen for its own track's demo fixture, public
       and indexed per the calculator-wall ruling. The three city calculators
       below them stayed live at their own URLs, so they keep their entries and
       every inbound link, redirect and indexed result keeps working. Trailing
       slash to match them. -->
  <url>
    <loc>https://moneybadger.us/firefighter-retirement/</loc>
    <lastmod>2026-08-14</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/police-retirement/</loc>
    <lastmod>2026-08-14</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/military-retirement/</loc>
    <lastmod>2026-08-14</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/nurse-retirement/</loc>
    <lastmod>2026-08-14</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/fdny-retirement/</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/sf-fire-retirement/</loc>
    <lastmod>2026-07-31</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/middlesex-retirement/</loc>
    <lastmod>2026-08-25</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/sf-police-retirement/</loc>
    <lastmod>2026-07-31</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/nurse-shift-calculator/</loc>
    <lastmod>2026-07-18</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <!-- The nurse schedule calculator: her month, priced shift by shift. Tap / snap /
       import are entry methods into this one page, not separate sitemap entries
       (/nurse-schedule/snap stays out on purpose). Ruled public and findable,
       founder 2026-08-03/04. -->
  <url>
    <loc>https://moneybadger.us/nurse-schedule</loc>
    <lastmod>2026-08-04</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/next-assignment/</loc>
    <lastmod>2026-08-19</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/active-duty-pay/</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/firefighter-overtime-calculator/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/police-overtime-calculator/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/paycodes/</loc>
    <lastmod>2026-08-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/pricing</loc>
    <lastmod>2026-07-14</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Marketing / content pages -->
  <url>
    <loc>https://moneybadger.us/product/</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/who/</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/research/</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/methodology/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/faq/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <!-- Marketing explainers, linked from the homepage's own nav (homeCopy.ts). -->
  <url>
    <loc>https://moneybadger.us/learn</loc>
    <lastmod>2026-08-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/link</loc>
    <lastmod>2026-08-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Blog -->
  <url>
    <loc>https://moneybadger.us/blog/</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/blog/why-is-my-overtime-taxed-so-much</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/blog/why-budget-calculators-get-your-paycheck-wrong</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/blog/the-paradigm-shift</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/blog/first-responders-financial-stress-crisis</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/blog/the-50-30-20-budget-rule-explained</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <!-- Legal / utility -->
  <url>
    <loc>https://moneybadger.us/privacy/</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/terms/</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/accessibility/</loc>
    <lastmod>2026-08-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://moneybadger.us/security/</loc>
    <lastmod>2026-07-12</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

</urlset>
