<?xml version="1.0" encoding="UTF-8"?>
<!-- Kept in sync with the route table in src/App.jsx by `npm run check:routes`.

     Every indexable page route appears here exactly once. Two classes are
     deliberately absent:
       - redirect routes (/blog, /blog/:slug) — they render <Navigate>, not content;
       - the individual tool pages (/tools/calibrate, /tools/bands-internal,
         /tools/pay-transparency-report) — they canonicalise to app.rewards-os.com,
         where the tool actually lives, so advertising them here would contradict
         their own canonical tag. See src/lib/toolMeta.js.
     The /tools hub stays: it is a real page here with no app equivalent.

     LASTMOD IS NOT GATED. check:routes verifies that every served route appears
     here exactly once - presence, not freshness - so these dates drift silently
     and did: on 2026-08-10 all five were weeks behind pages that had been
     rewritten. Update the date for any page whose CONTENT changed, not for
     metadata or styling touch-ups. A wrong lastmod is worse than a stale one:
     it asks a crawler to recrawl a page that has not changed. -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.rewards-os.com/</loc>
    <lastmod>2026-08-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.rewards-os.com/product</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.rewards-os.com/tools</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.rewards-os.com/privacy</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.rewards-os.com/terms</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
