<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:dc="https://purl.org/dc/elements/1.1/"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:media="http://search.yahoo.com/mrss/"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:cf="https://www.futureplc.com/rss/content-flags"
>
    <channel>
                    <atom:link rel="alternate" hreflang="en-GB"
                       href="https://www.tomsguide.com/uk/feeds/tag/fitbit"
                       type="application/rss+xml"/>
                            <title><![CDATA[ Latest from Tom's Guide UK in Fitbit ]]></title>
                <link>https://www.tomsguide.com/uk/tag/fitbit</link>
        <description><![CDATA[ All the latest fitbit content from the Tom's Guide  UK team ]]></description>
                                    <lastBuildDate>Mon, 27 Jul 2026 11:30:00 +0000</lastBuildDate>
                            <language>en</language>
                                <item>
                                                            <title><![CDATA[ I walked 7,000 steps with the Garmin Cirqa vs Fitbit Air — and there's a clear winner ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-walked-7-000-steps-with-the-garmin-cirqa-vs-fitbit-air-and-theres-a-clear-winner</link>
                                                                            <description>
                            <![CDATA[ Which screen-free fitness tracker is more accurate, the Fitbit Air or the Garmin Cirqa? I decided to find out by popping one on either wrist and logging a long walk. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">LwQwWeoBCGf93yqLSoC9Ba</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/y55QpRXhUiM9N8DKrxbLSe-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Mon, 27 Jul 2026 11:30:00 +0000</pubDate>                                                                                                                                <updated>Thu, 30 Jul 2026 14:01:24 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/y55QpRXhUiM9N8DKrxbLSe-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Garmin Cirqa screen-free fitness tracker]]></media:description>                                                            <media:text><![CDATA[Close-up of the Garmin Cirqa screen-free fitness tracker]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Garmin Cirqa screen-free fitness tracker]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/y55QpRXhUiM9N8DKrxbLSe-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Which new screen-free fitness tracker is more accurate, the Fitbit Air or the Garmin Cirqa? I decided to find out by popping one on either wrist and logging a long walk.</p><p>Even though the <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-just-went-hands-on-with-the-garmin-cirqa-and-it-strikes-a-near-perfect-balance-between-the-fitbit-air-and-whoop-5-0">Garmin Cirqa</a> is twice the cost of the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> — $199 vs $99 — these two trackers have a lot in common. Screen-free, your primary method for interacting with either is through the companion app. That said, the Cirqa also has one physical button to start and stop workouts.</p><p>More importantly, neither has onboard GPS, so both require you to bring your paired phone along when logging an outdoor workout so that they can piggyback off its location and elevation data. </p><p>Now, on to the test!</p><div class="product star-deal"><a data-dimension112="b4bf739a-87ad-11f1-b5bc-45577e1d0439" data-action="Star Deal Block" data-label="At $99, the screen-free Fitbit Air is a fantastic little fitness tracker that's super comfortable, long-lasting, and discreet. Kind of like a Fitbit Inspire 3 minus the display, it's one of my favorite wearables of 2026." data-dimension48="At $99, the screen-free Fitbit Air is a fantastic little fitness tracker that's super comfortable, long-lasting, and discreet. Kind of like a Fitbit Inspire 3 minus the display, it's one of my favorite wearables of 2026." href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMTZF3V/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:794px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="UcGoezMNaNCCtsaSfVKrqL" name="Google Fitbit Air" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/UcGoezMNaNCCtsaSfVKrqL.jpg" mos="" align="middle" fullscreen="" width="794" height="794" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>At $99, the screen-free Fitbit Air is a fantastic little fitness tracker that's super comfortable, long-lasting, and discreet. Kind of like a Fitbit Inspire 3 minus the display, it's one of my favorite wearables of 2026.<a class="view-deal button" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMTZF3V/?th=1" target="_blank" rel="nofollow" data-dimension112="b4bf739a-87ad-11f1-b5bc-45577e1d0439" data-action="Star Deal Block" data-label="At $99, the screen-free Fitbit Air is a fantastic little fitness tracker that's super comfortable, long-lasting, and discreet. Kind of like a Fitbit Inspire 3 minus the display, it's one of my favorite wearables of 2026." data-dimension48="At $99, the screen-free Fitbit Air is a fantastic little fitness tracker that's super comfortable, long-lasting, and discreet. Kind of like a Fitbit Inspire 3 minus the display, it's one of my favorite wearables of 2026." data-dimension25="">View Deal</a></p></div><div class="product"><a data-dimension112="b4bf741c-87ad-11f1-9865-cfcc6d58b1e4" data-action="Deal Block" data-label="The Garmin Cirqa is a screen-less fitness tracker with only a single button to start and stop workouts. Boasting up to ten days of battery and a lightweight design, it's Garmin's answer to the Whoop 5.0 and Fitbit Air." data-dimension48="The Garmin Cirqa is a screen-less fitness tracker with only a single button to start and stop workouts. Boasting up to ten days of battery and a lightweight design, it's Garmin's answer to the Whoop 5.0 and Fitbit Air." data-dimension25="$" href="https://www.amazon.com/Garmin-CIRQATM-Smart-Subscription-French/dp/B0H94C68DZ/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:903px;"><p class="vanilla-image-block" style="padding-top:110.30%;"><img id="9hSH5VJVhpTbr5YMN8Adsm" name="Screenshot 2026-07-24 at 3.20.34 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/9hSH5VJVhpTbr5YMN8Adsm.png" mos="" align="middle" fullscreen="" width="903" height="996" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Garmin Cirqa is a screen-less fitness tracker with only a single button to start and stop workouts. Boasting up to ten days of battery and a lightweight design, it's Garmin's answer to the Whoop 5.0 and Fitbit Air.<a class="view-deal button" href="https://www.amazon.com/Garmin-CIRQATM-Smart-Subscription-French/dp/B0H94C68DZ/" target="_blank" rel="nofollow" data-dimension112="b4bf741c-87ad-11f1-9865-cfcc6d58b1e4" data-action="Deal Block" data-label="The Garmin Cirqa is a screen-less fitness tracker with only a single button to start and stop workouts. Boasting up to ten days of battery and a lightweight design, it's Garmin's answer to the Whoop 5.0 and Fitbit Air." data-dimension48="The Garmin Cirqa is a screen-less fitness tracker with only a single button to start and stop workouts. Boasting up to ten days of battery and a lightweight design, it's Garmin's answer to the Whoop 5.0 and Fitbit Air." data-dimension25="$">View Deal</a></p></div><h3 class="article-body__section" id="section-fitbit-air-vs-garmin-cirqa-walk-test-rules"><span>Fitbit Air vs Garmin Cirqa: Walk test rules</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5712px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zrwLhcy7pE9gHz99a3wDGf" name="GarminCirqa-v-FitbitAir-02" alt="Close-up of the Garmin Cirqa screen-free fitness tracker" src="https://cdn.mos.cms.futurecdn.net/zrwLhcy7pE9gHz99a3wDGf.jpg" mos="" align="middle" fullscreen="" width="5712" height="3213" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>I manually counted 7,000 steps — using my <a href="https://www.amazon.com/SDARMING-Counters-Counting-Knitting-Coaching/dp/B0971CF137/" target="_blank" rel="nofollow">trusty $6 tally counter</a> to log every hundred — with the Fitbit Air on my left wrist and the Garmin Cirqa on my right wrist to determine which is the more accurate fitness tracker. </p><p>I also ran Strava on my iPhone 16 Plus for additional step count, distance, elevation, and pace data. For the Fitbit Air, I manually began a walking workout from the Google Health app. For the Garmin Cirqa, I started the workout by pressing the single button. This proved to be a mistake.</p><h3 class="article-body__section" id="section-fitbit-air-vs-garmin-cirqa-walk-test-results"><span>Fitbit Air vs Garmin Cirqa: Walk test results </span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Garmin Cirqa</p></th><th  ><p>Control</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Steps</strong></p></td><td  ><p>6,990 steps</p></td><td  ><p>7,070 steps</p></td><td  ><p>7,000 steps (manual count)</p></td></tr><tr><td class="firstcol " ><p><strong>Distance</strong></p></td><td  ><p>3.86 miles</p></td><td  ><p>not provided</p></td><td  ><p>3.86 miles (Strava)</p></td></tr><tr><td class="firstcol " ><p><strong>Climb</strong></p></td><td  ><p>236 feet</p></td><td  ><p>not provided</p></td><td  ><p> 405 feet (Strava)</p></td></tr><tr><td class="firstcol " ><p><strong>Average pace </strong></p></td><td  ><p> 16 mins 17 secs</p></td><td  ><p>not provided</p></td><td  ><p>16 mins 35 secs (Strava)</p></td></tr><tr><td class="firstcol " ><p><strong>Average heart rate</strong></p></td><td  ><p>115 bpm</p></td><td  ><p>123 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Max heart rate</strong></p></td><td  ><p>135 bpm</p></td><td  ><p>160 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Calories burned</strong></p></td><td  ><p>532 calories</p></td><td  ><p>464 calories </p></td><td  ><p>n/a</p></td></tr></tbody></table></div><p>It took me about one hour to walk 7,000 steps around sunny Seattle, Washington, a step count total that all three tracking methods came remarkably close to. For these tests, I consider any tally within 100 steps of my actual total to be outstanding. </p><p>Ultimately, the Fitbit Air undercounted by a mere ten steps, while the Garmin Cirqa overcounted by 70. Strava, meanwhile, overcounted by ten. </p><p>Unfortunately, because the Cirqa logged my efforts as a generic workout rather than an outdoor walk, it frustratingly didn't register any distance, climb, or pace data for this test.</p><p>The Fitbit Air, on the other hand, logged the same distance as Strava, which isn't too surprising given both are making use of the same GPS data. However, its climb data is seemingly waaaay off. This is <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-4-000-steps-with-the-fitbit-air-vs-pixel-watch-4-and-im-genuinely-shocked-by-the-results">neither the first</a> nor <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-5-000-steps-with-the-apple-watch-11-vs-fitbit-air-and-theres-a-clear-winner">the second time</a> I've had an issue with climb data when it comes to the Air.</p><p>Fortunately, the Air's pace data is much more aligned with Strava's. </p><p>The lack of consistency between the Air and Cirqa for heart rate data is a tad concerning. Without control data, it's hard to say for sure which watch is more accurate in this regard, but I suspect it's the Garmin, given my walk involved quickly ascending several very steep hills, which definitely got the blood pumping.</p><h3 class="article-body__section" id="section-samsung-galaxy-watch-ultra-2-vs-apple-watch-ultra-3-winner"><span>Samsung Galaxy Watch Ultra 2 vs Apple Watch Ultra 3: Winner </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3615px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="V5bphk5nqaWqaTZMwFPFaL" name="IMG_0408" alt="a photo of the Fitbit Air and the Garmin Cirqa on the wrist" src="https://cdn.mos.cms.futurecdn.net/V5bphk5nqaWqaTZMwFPFaL.jpg" mos="" align="middle" fullscreen="" width="3615" height="2034" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Despite continuing to struggle with climb data, the Fitbit Air beats the Garmin Cirqa in this walk test head-to-head by a small but legit margin. This is similar to the results my colleague Jane discovered when she tested these two gadgets against one another in a <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-5-000-steps-with-the-garmin-cirqa-and-fitbit-air-and-the-winner-is-clear">4,000-step comparison</a>.</p><p>Stay tuned for more testing and coverage of the Garmin Cirqa, including my full review, coming soon.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/can-the-usd99-fitbit-air-beat-the-usd799-apple-watch-ultra-3-at-fitness-tracking-i-manually-counted-4-500-steps-to-find-out">Can the $99 Fitbit Air beat the $799 Apple Watch Ultra 3 at fitness tracking? I manually counted 4,500 steps to find out</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-manually-counted-4-000-steps-to-test-the-apple-watch-ultra-3-vs-samsung-galaxy-watch-ultra-2-and-samsung-wins-the-accuracy-battle-with-better-elevation-data-too">I walked 4,000 steps with the Apple Watch Ultra 3 vs Samsung Galaxy Watch Ultra 2 — and the winning margin was razor-thin</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-whoop-or-fitbit-air-5-questions-to-ask-yourself-before-buying-a-screen-free-fitness-tracker">Oura vs Whoop vs Fitbit Air — 5 questions to ask yourself before buying a screen-free fitness tracker</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’ve tested over 100 fitness trackers head-to-head — 3 workout stats I trust the least ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/ive-tested-over-100-fitness-trackers-head-to-head-3-workout-stats-i-trust-the-least</link>
                                                                            <description>
                            <![CDATA[ Not all smartwatches or fitness trackers get these basic workout stats wrong, but a surprising amount do. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">vfFaEqZgofmCRrd7daEqC9</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Lroa7D5aKGPJEjsjwKJkB7-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 18 Jul 2026 05:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Lroa7D5aKGPJEjsjwKJkB7-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Amazfit Active Max next to the Garmin Forerunner 570 on a bright orange table]]></media:description>                                                            <media:text><![CDATA[Close-up of the Amazfit Active Max next to the Garmin Forerunner 570 on a bright orange table]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Amazfit Active Max next to the Garmin Forerunner 570 on a bright orange table]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Lroa7D5aKGPJEjsjwKJkB7-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I test a lot of smartwatches and fitness trackers here at Tom’s Guide. I mean A LOT. If the device was released in the past three years, there’s a very good chance I’ve not only helped to review it but also tested it head-to-head against the competition.</p><p>The vast majority of name-brand wearables track heart rate, distance, and step count — assuming you're going for a walk or hike — with impressive consistency, in my experience. For example, I’ve performed <a href="https://www.tomsguide.com/wellness/fitness-trackers/can-the-usd99-fitbit-air-beat-the-usd799-apple-watch-ultra-3-at-fitness-tracking-i-manually-counted-4-500-steps-to-find-out">dozens of walk tests</a> where I wear a device on either wrist and manually count my steps to see which comes closer.</p><p>Not only do most modern wearables come within a few hundred steps of my actual count — an impressive accomplishment when we're talking 5,000 or more steps per walk — but most also report similar distance data, down to a few tenths of a mile, and broadly the same heart rate data, give or take a handful of beats per minute. </p><p>That said, there are three workout stats that are consistently, well... inconsistent. And it's not just wallet-friendly models that struggle; even some of the <a href="https://www.tomsguide.com/wellness/smartwatches/best-smartwatch">best smartwatches</a> and <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness trackers</a> occasionally have hiccups tracking these metrics. </p><h3 class="article-body__section" id="section-the-three-fitness-tracking-stats-i-trust-the-least"><span>The three fitness tracking stats I trust the least</span></h3><h3 class="article-body__section" id="section-1-elevation-gain"><span>1. Elevation gain</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5011px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="mKcWHy4FyfXAdxg6cMjXUM" name="Forerunner70-02" alt="Close-up of the Garmin Forerunner 70 entry-level running watch in white" src="https://cdn.mos.cms.futurecdn.net/mKcWHy4FyfXAdxg6cMjXUM.jpg" mos="" align="middle" fullscreen="" width="5011" height="2818" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>As an avid <a href="https://www.tomsguide.com/wellness/smartwatches/i-took-the-apple-watch-ultra-3-vs-garmin-instinct-3-snowboarding-and-there-was-one-clear-winner">mountain sports enthusiast</a> and someone who enjoys urban hiking and <a href="https://www.tomsguide.com/wellness/smartwatches/i-biked-11-miles-with-the-apple-watch-ultra-3-vs-strava-and-theres-a-clear-winner">biking</a> in a particularly hilly part of the U.S. (Seattle, WA), inconsistent elevation tracking seriously irks me. For example, it’s not unusual for a standard midday, two-mile walk to involve several hundred feet of climb.</p><p>Unfortunately, a lot of wearables come up short when it comes to assessing upward effort. </p><p>Not only that, some popular wearables don’t even offer a metric for elevation gain in the post-workout report, like the <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a>. Others, like the newer <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> — a wearable I otherwise really like — measure elevation about as accurately as a <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-5-000-steps-with-the-apple-watch-11-vs-fitbit-air-and-theres-a-clear-winner">newborn shooting pool</a>.</p><p>Even the <a href="https://www.tomsguide.com/best-picks/best-apple-watch">best Apple Watch</a> models occasionally report inaccurate climb data. From my experience, the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-ultra-3-review">Ultra 3</a> is rock-solid, but both the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-11-review">Series 11</a> and <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-se-3-review">SE 3</a> have been known to log <a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-5-550-steps-with-the-apple-watch-11-vs-apple-watch-se-3-and-im-genuinely-surprised-by-the-results">slightly inflated elevation</a> stats from time to time.</p><p>For what it’s worth, the brand I’ve found most consistent with elevation tracking is Garmin, that is, assuming you purchase one of the <a href="https://www.tomsguide.com/best-picks/best-garmin-watch">best Garmin </a>watches, specifically, one with an onboard barometric altimeter. The new <a href="https://www.tomsguide.com/wellness/smartwatches/garmin-forerunner-70-review">Forerunner 70</a>, for example, lacks one.</p><h3 class="article-body__section" id="section-2-pace"><span>2. Pace</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3692px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="aWCNwEsfVamfA2tPee55CW" name="AW11-v-AW-SE3-02" alt="Close-up of the Apple Watch SE 3 and Apple Watch Series 11 in a user's hand with a colorful, out-of-focus background" src="https://cdn.mos.cms.futurecdn.net/aWCNwEsfVamfA2tPee55CW.jpg" mos="" align="middle" fullscreen="" width="3692" height="2077" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Speaking of Garmin, it’s one of the few smartwatch brands that provides two pace metrics for outdoor activities like walks, hikes, runs, and bike rides: an average moving pace and an average elapsed (total) pace. </p><p>For most of us, the former is the more valuable metric, as it ignores long pauses — like waiting at a traffic light or stopping for a sip of water — thereby providing a more accurate measure of your <em>actual</em> moving effort. </p><p>Unfortunately, brands like Apple and Google only offer one pace metric in their respective workout reports. And though they don’t specify which pace metric it is, it's almost always slower than the competition’s moving pace stat, suggesting both are reporting elapsed pace, the less valuable one.</p><h3 class="article-body__section" id="section-3-calories"><span>3. Calories</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3215px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="42FrbtdE7qLX8u4Kv6drRi" name="AW10-v-GalaxyWatch8-01" alt="Close-up of the Apple Watch Series 10 and Samsung Galaxy Watch 8 Classic in a user's hand showing the results of a logged bike ride" src="https://cdn.mos.cms.futurecdn.net/42FrbtdE7qLX8u4Kv6drRi.jpg" mos="" align="middle" fullscreen="" width="3215" height="1809" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Post-workout calorie counts are perhaps the most all over the place in my testing. For example, it’s not uncommon for one device to log <a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-7-500-steps-with-the-apple-watch-se-3-vs-amazfit-active-max-and-theres-a-clear-winner">one hundred or more calories</a> burned than another after the exact same workout. </p><p>In fact, this metric tends to be so inconsistent that I mostly ignore it completely. Not only are most manufacturers opaque about how the calorie counts are even calculated in the first place, but key factors like a user's metabolism or muscle mass are rarely taken into account when generating them. </p><p>Which fitness tracking stats do you think are bupkis? Let me know in the poll below.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Xr0NKW"></div>                            </div>                            <script src="https://kwizly.com/embed/Xr0NKW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/can-the-usd99-fitbit-air-beat-the-usd799-apple-watch-ultra-3-at-fitness-tracking-i-manually-counted-4-500-steps-to-find-out"><strong>Can the $99 Fitbit Air beat the $799 Apple Watch Ultra 3 at fitness tracking? I manually counted 4,500 steps to find out</strong></a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-5-500-steps-with-the-apple-watch-se-3-vs-garmin-forerunner-70-and-this-smartwatch-won"><strong>I walked 5,500 steps with the Apple Watch SE 3 vs Garmin Forerunner 70 — and the results surprised me</strong></a></li><li><a href="https://www.tomsguide.com/wellness/fitness/i-ran-a-5k-with-the-garmin-forerunner-570-vs-apple-watch-ultra-3-5-things-i-learned"><strong>I ran a 5K with the Garmin Forerunner 570 vs Apple Watch Ultra 3, and although the pace data matched up perfectly across both devices, the Garmin’s exercise load metric and detailed vertical ratio analysis made it the clear winner</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Can the $99 Fitbit Air beat the $799 Apple Watch Ultra 3 at fitness tracking? I manually counted 4,500 steps to find out ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/can-the-usd99-fitbit-air-beat-the-usd799-apple-watch-ultra-3-at-fitness-tracking-i-manually-counted-4-500-steps-to-find-out</link>
                                                                            <description>
                            <![CDATA[ I wanted to find out if a $99 Fitbit can compete with a $799 Apple Watch to track a basic workout so I counted out the steps while wearing both. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">gyus8k88TVomBvo9ULVyjj</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/jbht4R2m2ZyXg96fHtRNy8-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 16 Jul 2026 16:41:22 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/jbht4R2m2ZyXg96fHtRNy8-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Apple Watch Ultra 3 and Fitbit Air]]></media:description>                                                            <media:text><![CDATA[Close-up of the Apple Watch Ultra 3 and Fitbit Air]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Apple Watch Ultra 3 and Fitbit Air]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/jbht4R2m2ZyXg96fHtRNy8-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Can the $99 Fitbit Air beat the $799 Apple Watch Ultra 3? I manually counted 4,500 steps to find out.</p><p>Steps are, of course, just one of the many metrics these high-tech wearables keep tally of, but for this head-to-head, it’s the primary figure I’ll be using to declare a winner. </p><p>I also tracked my <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> vs <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-ultra-3-review">Apple Watch Ultra 3</a> walk using the Strava app as a control for distance, climb, and pace.</p><p>Read on for the results!</p><div class="product"><a data-dimension112="ea922704-8089-11f1-ab35-9bdb9843106c" data-action="Deal Block" data-label="best fitness trackers" data-dimension48="best fitness trackers" data-dimension25="$99" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:95.22%;"><img id="6rQV9bADzd2zqYvNPGPxwE" name="Screenshot 2026-05-28 at 12.55.35 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6rQV9bADzd2zqYvNPGPxwE.png" mos="" align="middle" fullscreen="" width="858" height="817" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>With no screen, buttons, or alerts to distract you — plus nearly a week of battery — the Fitbit Air is as easy-going as it is affordable. It’s also one of the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html" data-dimension112="ea922704-8089-11f1-ab35-9bdb9843106c" data-action="Deal Block" data-label="best fitness trackers" data-dimension48="best fitness trackers" data-dimension25="$99">best fitness trackers </a>of the year.<a class="view-deal button" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow" data-dimension112="ea922704-8089-11f1-ab35-9bdb9843106c" data-action="Deal Block" data-label="best fitness trackers" data-dimension48="best fitness trackers" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="ea92277c-8089-11f1-a288-7d29c57a3eec" data-action="Deal Block" data-label="best smartwatches" data-dimension48="best smartwatches" data-dimension25="$729" href="https://www.bestbuy.com/product/apple-watch-ultra-3-gps-cellular-49mm-titanium-case-with-black-alpine-loop-medium-black-2025/JJGCQL87VH/sku/6572974" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="jZmNn7NgmEcxvn6y45BBZX" name="Apple Watch Ultra 3 sq" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/jZmNn7NgmEcxvn6y45BBZX.jpg" mos="" align="middle" fullscreen="" width="1600" height="1600" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Its name says it all. The Apple Watch Ultra 3 is Cupertino’s toughest-built, longest-lasting, most feature-packed smartwatch. No wonder it’s one of the <a href="https://www.tomsguide.com/wellness/smartwatches/best-smartwatch" data-dimension112="ea92277c-8089-11f1-a288-7d29c57a3eec" data-action="Deal Block" data-label="best smartwatches" data-dimension48="best smartwatches" data-dimension25="$729">best smartwatches</a> of 2026<a class="view-deal button" href="https://www.bestbuy.com/product/apple-watch-ultra-3-gps-cellular-49mm-titanium-case-with-black-alpine-loop-medium-black-2025/JJGCQL87VH/sku/6572974" target="_blank" rel="nofollow" data-dimension112="ea92277c-8089-11f1-a288-7d29c57a3eec" data-action="Deal Block" data-label="best smartwatches" data-dimension48="best smartwatches" data-dimension25="$729">View Deal</a></p></div><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="high" data-lazy-src="https://www.youtube-nocookie.com/embed/LCKJ8K4sdXk" allowfullscreen></iframe></div></div><h3 class="article-body__section" id="section-can-a-99-fitbit-beat-a-799-apple-watch"><span>Can a $99 Fitbit beat a $799 Apple Watch?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4398px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="PbdEY3fyuMA89RVPd3VUx7" name="AWU3-v-FitbitA-01" alt="Close-up of the Apple Watch Ultra 3 and Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/PbdEY3fyuMA89RVPd3VUx7.jpg" mos="" align="middle" fullscreen="" width="4398" height="2474" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>But first, if you’re thinking that this isn’t really a fair competition given the price difference between the Fitbit Air and Apple Watch Ultra 3, you’d be right! But who doesn’t love a good old-fashioned underdog showdown? </p><p>It is worth noting just a few of the key differences between these two trendy wearables before moving on to the outcome. The Fitbit Air is a discreet, screen-free health and fitness tracker with no buttons, notifications, or onboard GPS. While tracking a workout, the Air relies on a paired smartphone for location and elevation data. </p><p>The Apple Watch Ultra 3 sports a sizable, ultra-bright display and is easily one of the most high-tech, feature-packed smartwatches on the market. It boasts a dual-frequency GPS antenna and dedicated altimeter for logging outdoor adventures. </p><p>With that out of the way, here are the results of my 4,500-step walk test between the $99 Fitbit Air and the $799 Apple Watch Ultra 3. </p><h3 class="article-body__section" id="section-fitbit-air-vs-apple-watch-ultra-3-walk-test-results"><span>Fitbit Air vs Apple Watch Ultra 3: Walk test results </span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Apple Watch Ultra 3</p></th><th  ><p>Control</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Steps</strong></p></td><td  ><p>4,375 steps</p></td><td  ><p>4,469 steps</p></td><td  ><p>4,500 (manual count)</p></td></tr><tr><td class="firstcol " ><p><strong>Distance</strong></p></td><td  ><p>2.36 miles</p></td><td  ><p>2.39 miles</p></td><td  ><p>2.45  miles (Strava)</p></td></tr><tr><td class="firstcol " ><p><strong>Climb</strong></p></td><td  ><p>No data</p></td><td  ><p>377 feet</p></td><td  ><p>360 feet (Strava)</p></td></tr><tr><td class="firstcol " ><p><strong>Average pace </strong></p></td><td  ><p>18 mins 11 secs</p></td><td  ><p>17 mins 44 secs</p></td><td  ><p>17 mins 21 secs (Strava)</p></td></tr><tr><td class="firstcol " ><p><strong>Average heart rate</strong></p></td><td  ><p>133 bpm</p></td><td  ><p>138 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Max heart rate</strong></p></td><td  ><p>165 bpm</p></td><td  ><p>166 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Calories burned</strong></p></td><td  ><p>354 calories</p></td><td  ><p>371 calories </p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Battery usage</strong></p></td><td  ><p>1%</p></td><td  ><p>4%</p></td><td  ><p>n/a</p></td></tr></tbody></table></div><p>Both wearables calculated my total steps with passable accuracy, but the Ultra 3 was closer. As a rule of thumb, I consider any step count total that's within ~150 steps of my actual count to be within a reasonable margin for error/impressive.</p><p>Strava, for what's worth, noted 4,496 total steps.</p><p>The Fitbit Air's distance measurement is a little further off from the control than the Apple Watch Ultra 3's, but not by a concerning amount. </p><p>What is a tad concerning is the fact that Google seemingly removed climb data from the post-workout report. Notably, because every other time I've logged a walking workout using the Air, the metric was there.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3903px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="EvMxy8b2KjzH2ks5YVcSAA" name="FitbitAir-06" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/EvMxy8b2KjzH2ks5YVcSAA.jpg" mos="" align="middle" fullscreen="" width="3903" height="2195" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>However, after some poking around, it appears the lack of climb data may be due to my inadvertently changing the Google Health app's location data setting on my paired phone from "always" to "while using the app" via an ill-timed pop-up. </p><p>Then again, I had the app open for the duration of my test, and it managed to pull all the other usual location-based metrics, so I'm not 100% convinced this caused the hiccup.</p><p>Coincidentally, as noted in my<a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-4-000-steps-with-the-fitbit-air-vs-pixel-watch-4-and-im-genuinely-shocked-by-the-results"> Fitbit Air vs Pixel Watch 4</a> and<a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-5-000-steps-with-the-apple-watch-11-vs-fitbit-air-and-theres-a-clear-winner"> Fitbit Air vs Apple Watch <u>11</u></a> walk tests, accurate elevation tracking isn't exactly the Air's strong suit. Whether inconsistent or missing entirely, I'm hopeful this is something Google irons out with future firmware.</p><p>Moving on, the Fitbit Air noted a slower pace than the competition, which is a bit strange, given it measured less distance than Strava and the Ultra 3. More reassuringly, heart rate and calorie data from the Fitbit and Apple Watch pretty much align for this hilly, ~42-minute walk.</p><h3 class="article-body__section" id="section-fitbit-air-vs-apple-watch-ultra-3-winner"><span>Fitbit Air vs Apple Watch Ultra 3: Winner </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3816px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="ojGeHvLY8ci8xyzHZZBa38" name="AW-Ultra3-01" alt="Close-up of the Apple Watch Ultra 3" src="https://cdn.mos.cms.futurecdn.net/ojGeHvLY8ci8xyzHZZBa38.jpg" mos="" align="middle" fullscreen="" width="3816" height="2147" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>When pondering whether the $99 Fitbit Air can keep up with the $799 Apple Watch Ultra 3 at reliably tracking an outdoor workout, the answer is, well, not quite. The Apple Watch Ultra 3 proved more precise across the board, not just at tracking total steps, but pace and climb, too.</p><p>When it comes to the Fitbit Air, even though it didn't log my workout as accurately as its pricier rival, the results were still in the ballpark (missing elevation data aside). For most folks, myself included, that's more than good enough for my exercise logging needs. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OqRBRX"></div>                            </div>                            <script src="https://kwizly.com/embed/OqRBRX.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-000-steps-with-the-fitbit-air-vs-garmin-forerunner-70-and-im-seriously-amazed-by-the-results">I walked 3,000 steps with the Fitbit Air vs Garmin Forerunner 70 — and I’m seriously amazed by the results</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing">The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-whoop-or-fitbit-air-5-questions-to-ask-yourself-before-buying-a-screen-free-fitness-tracker">Oura vs Whoop vs Fitbit Air — 5 questions to ask yourself before buying a screen-free fitness tracker</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I counted 4,000 steps to test the Fitbit Air vs Pixel Watch 4 — and the Fitbit Air wins the accuracy battle with one major caveat ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-walked-4-000-steps-with-the-fitbit-air-vs-pixel-watch-4-and-im-genuinely-shocked-by-the-results</link>
                                                                            <description>
                            <![CDATA[ I pitted the $99 Fitbit Air against the $349 Pixel Watch 4 in a head-to-head fitness tracking comparison to determine which is the more precise Google wearable. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">HYafMbbwJyHnhSasJTYJuS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/p7EE7sd3jMDNJaHNhZksb-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 09 Jul 2026 09:30:00 +0000</pubDate>                                                                                                                                <updated>Thu, 09 Jul 2026 23:59:03 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/p7EE7sd3jMDNJaHNhZksb-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Google Pixel Watch 4 and Fitbit Air on a user&#039;s wrist against a yellow/green background]]></media:description>                                                            <media:text><![CDATA[Close-up of the Google Pixel Watch 4 and Fitbit Air on a user&#039;s wrist against a yellow/green background]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Google Pixel Watch 4 and Fitbit Air on a user&#039;s wrist against a yellow/green background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/p7EE7sd3jMDNJaHNhZksb-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <div class="product"><a data-dimension112="8bf0b0e6-7aec-11f1-9120-ddbc45e99d13" data-action="Deal Block" data-label="best fitness trackers" data-dimension48="best fitness trackers" data-dimension25="$99" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:95.22%;"><img id="6rQV9bADzd2zqYvNPGPxwE" name="Screenshot 2026-05-28 at 12.55.35 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6rQV9bADzd2zqYvNPGPxwE.png" mos="" align="middle" fullscreen="" width="858" height="817" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Air is one of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html" data-dimension112="8bf0b0e6-7aec-11f1-9120-ddbc45e99d13" data-action="Deal Block" data-label="best fitness trackers" data-dimension48="best fitness trackers" data-dimension25="$99">best fitness trackers</a> in 2026, especially if you want an easy-to-wear, set-it-and-forget-it piece of tech that keeps tabs on your key health and fitness metrics with no distractions or fuss. <a class="view-deal button" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow" data-dimension112="8bf0b0e6-7aec-11f1-9120-ddbc45e99d13" data-action="Deal Block" data-label="best fitness trackers" data-dimension48="best fitness trackers" data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="8bf0b168-7aec-11f1-8dcb-11e95c55bbe9" data-action="Deal Block" data-label="best full-featured smartwatches" data-dimension48="best full-featured smartwatches" data-dimension25="$349" href="https://www.bestbuy.com/product/google-pixel-watch-4-41mm-wi-fi-polished-silver-case-porcelain-band-2025/J39TC8JK7T/sku/6637232" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1348px;"><p class="vanilla-image-block" style="padding-top:109.35%;"><img id="ivKPobCKkt5YfBEYBd2tgR" name="Screenshot 2026-01-27 at 12.40.43 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ivKPobCKkt5YfBEYBd2tgR.png" mos="" align="middle" fullscreen="" width="1348" height="1474" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Pixel Watch 4 is Google's flagship smartwatch and one of the<a href="https://www.tomsguide.com/wellness/smartwatches/best-smartwatch#section-best-smartwatch-for-android" data-dimension112="8bf0b168-7aec-11f1-8dcb-11e95c55bbe9" data-action="Deal Block" data-label="best full-featured smartwatches" data-dimension48="best full-featured smartwatches" data-dimension25="$349"> best full-featured smartwatches</a> you can buy, with loads of health and safety tools, workout insights, AI features, and more.<a class="view-deal button" href="https://www.bestbuy.com/product/google-pixel-watch-4-41mm-wi-fi-polished-silver-case-porcelain-band-2025/J39TC8JK7T/sku/6637232" target="_blank" rel="nofollow" data-dimension112="8bf0b168-7aec-11f1-8dcb-11e95c55bbe9" data-action="Deal Block" data-label="best full-featured smartwatches" data-dimension48="best full-featured smartwatches" data-dimension25="$349">View Deal</a></p></div><p>I pitted the $99 Fitbit Air against the $349 Pixel Watch 4 in a head-to-head fitness tracking comparison to determine which is the more precise Google wearable. The results genuinely surprised me.</p><p>The <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> is a lightweight, screen-free fitness tracking band that's as easy on the wallet as it is comfortable on the wrist. The <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-google-pixel-watch-4-and-it-could-be-my-new-favorite-smartwatch-for-android">Pixel Watch 4</a> is Google's flagship smartwatch, with a large, bright display and features galore, including a handy, voice- or gesture-activated Gemini AI assistant. </p><p>To find out which of these flagship Google products is the more competent fitness tracker — at least when it comes to step-counting — I walked 4,000 steps with the Fitbit Air on my right wrist and the Pixel Watch 4 on my left. My primary control metric for the comparison is total steps taken. To ensure a precise tally on my end, I manually counted my steps, noting every hundred with a click of my old-school tally counter. </p><p>As a control for distance, pace, and climb, I brought along my iPhone 16 Plus and logged the walk using the Strava app. Find the results of the Fitbit Air vs Pixel Watch 4 walk test below.</p><h3 class="article-body__section" id="section-fitbit-air-vs-pixel-watch-4-fitness-tracking-accuracy-compared"><span>Fitbit Air vs Pixel Watch 4: fitness tracking accuracy compared</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5212px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="uAUZPAs6PTLr7NyeADhfgH" name="Pixel4-v-FitbitAir-02" alt="Close-up of the Google Pixel Watch 4 and Fitbit Air in a user's hand against a bright red background" src="https://cdn.mos.cms.futurecdn.net/uAUZPAs6PTLr7NyeADhfgH.jpg" mos="" align="middle" fullscreen="" width="5212" height="2931" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>When it comes to tracking outdoor workouts, it's important to note a key difference between the Fitbit Air and Pixel Watch 4. The former lacks onboard GPS, so for location-based insights, you need to carry along a paired smartphone. </p><p>In addition to piggybacking off of your phone's GPS antenna, the Fitbit Air also relies on its altimeter for elevation data. The Pixel Watch 4, meanwhile, boasts both an onboard GPS antenna and a barometric altimeter. </p><p>Now, on to the test results!</p><h3 class="article-body__section" id="section-fitbit-air-vs-pixel-watch-4-walk-test-results"><span>Fitbit Air vs Pixel Watch 4: Walk test results </span></h3><div ><table><caption>4,000-step walk comparison: Fitbit Air vs Pixel Watch 4</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Pixel Watch 4</p></th><th  ><p>Control</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Steps</strong></p></td><td  ><p>3,993 steps</p></td><td  ><p>3,985 steps</p></td><td  ><p>4,000 steps (manual count)</p></td></tr><tr><td class="firstcol " ><p><strong>Distance</strong></p></td><td  ><p>2.15 miles</p></td><td  ><p>2.09 miles</p></td><td  ><p>2.14 miles (Strava)</p></td></tr><tr><td class="firstcol " ><p><strong>Climb</strong></p></td><td  ><p>184 feet</p></td><td  ><p> 288 feet</p></td><td  ><p>255 feet (Strava)</p></td></tr><tr><td class="firstcol " ><p><strong>Average pace</strong></p></td><td  ><p>18 mins 02 secs</p></td><td  ><p>18 mins 33 secs</p></td><td  ><p> 17 mins 51 secs (Strava)</p></td></tr><tr><td class="firstcol " ><p><strong>Average heart rate</strong></p></td><td  ><p>114 bpm</p></td><td  ><p>121 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Max heart rate</strong></p></td><td  ><p>147 bpm</p></td><td  ><p>161 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Calories burned</strong></p></td><td  ><p>284 calories</p></td><td  ><p>303 calories</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Battery usage</strong></p></td><td  ><p>3%</p></td><td  ><p>4%</p></td><td  ><p>n/a</p></td></tr></tbody></table></div><p>I took exactly 4,000 steps (manually counted) during my 38-minute walk, including a stroll up <a href="https://www.tomsguide.com/home/electric-bikes/i-tried-to-ride-treks-new-ebike-up-the-steepest-hill-in-seattle-and-it-didnt-go-as-planned">Seattle's steepest block </a>(for old-time's sake). While both wearables noted step count totals within 15 steps of my actual count — a seriously impressive result and well within a reasonable margin for error — much to my surprise, the Fitbit Air was a little bit closer than the Pixel Watch 4.</p><p>The Air and Pixel Watch 4 also beat Strava, which logged 3,978 steps. </p><p>The Fitbit Air's distance data is additionally more in line with the control; the same goes for pace. However, the Air's climb data is woefully inaccurate, a result I noted in my previous walk test with the <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-5-000-steps-with-the-apple-watch-11-vs-fitbit-air-and-theres-a-clear-winner">Fitbit Air vs Apple Watch 11</a>.</p><p>When it comes to heart rate and calories, the Air logged a slightly less aggressive workout compared to the Pixel Watch 4. The Air also used marginally less battery — not surprising, since it lacks a display.</p><h3 class="article-body__section" id="section-fitbit-air-vs-pixel-watch-4-winner"><span>Fitbit Air vs Pixel Watch 4: Winner </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4805px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bFju7tvNftUTkppemXS2tT" name="Fitbit-Air-lead-05" alt="Close-up of the Fitbit Air on-wrist on a red strap against a blue background" src="https://cdn.mos.cms.futurecdn.net/bFju7tvNftUTkppemXS2tT.jpg" mos="" align="middle" fullscreen="" width="4805" height="2703" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>And the winner is... the Fitbit Air, thanks to a slightly more accurate step count total, pace metric, and distance data. That said, the Air's win versus the Pixel Watch 4 comes with an asterisk due to disappointing elevation tracking performance.</p><p>The Pixel Watch 4, meanwhile, performed with acceptable accuracy across the board, including measuring my climb. For this reason, as someone who loves mountain sports, I'd likely opt for the latest Pixel Watch over the Fitbit Air for logging my next adventure. What do you think? Let me know which Google wearable <em>you</em> prefer in the poll below.</p><p>Which fitness trackers or smartwatches should I test head-to-head next?</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ORMGAW"></div>                            </div>                            <script src="https://kwizly.com/embed/ORMGAW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-000-steps-with-the-fitbit-air-vs-garmin-forerunner-70-and-im-seriously-amazed-by-the-results">I walked 3,000 steps with the Fitbit Air vs Garmin Forerunner 70 — and I’m seriously amazed by the results</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-whoop-or-fitbit-air-5-questions-to-ask-yourself-before-buying-a-screen-free-fitness-tracker">Oura vs Whoop vs Fitbit Air — 5 questions to ask yourself before buying a screen-free fitness tracker</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/exclusive-google-design-director-says-fitbit-air-reception-proves-they-made-the-right-decision-going-screen-free">Exclusive: Google design director says Fitbit Air reception proves they 'made the right decision' going screen-free</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I manually counted 5,000 steps to test the Apple Watch 11 vs Fitbit Air, and Apple wins the accuracy battle while offering superior elevation data ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-walked-5-000-steps-with-the-apple-watch-11-vs-fitbit-air-and-theres-a-clear-winner</link>
                                                                            <description>
                            <![CDATA[ Which popular wearable is the more competent fitness tracker, the Apple Watch 11 or the Fitbit Air? I decided to find out by tracking the same workout with both. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">UUAxKKpkGzg6ubeodyLVWJ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/4gLpwabHDL6mCHnbXWz6uM-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 08 Jul 2026 11:30:00 +0000</pubDate>                                                                                                                                <updated>Wed, 08 Jul 2026 19:52:52 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/4gLpwabHDL6mCHnbXWz6uM-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Apple Watch Series 11 next to the Fitbit Air; both are on colorful straps]]></media:description>                                                            <media:text><![CDATA[Close-up of the Apple Watch Series 11 next to the Fitbit Air; both are on colorful straps]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Apple Watch Series 11 next to the Fitbit Air; both are on colorful straps]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/4gLpwabHDL6mCHnbXWz6uM-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Apple Watch Series 11 or Fitbit Air, which popular wearable is the more competent/reliable fitness tracker? I decided to find out by performing one of my renowned head-to-head walk tests.</p><p>For this showdown, I wore the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-11-review">Apple Watch 11</a> on my left wrist and the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> on my right wrist for a 5,000-step walk around beautiful Seattle, Washington. How do I know it was 5,000 steps? I counted every darn one, with some assistance from my trusty tally counter (one click= 100 steps).  </p><p>Now, if I were a betting man (I'm not), my money would be on the Series 11 to come out victorious. Not only is it one of the <a href="https://www.tomsguide.com/wellness/smartwatches/best-smartwatch">best smartwatches</a> in 2026, but it's also four times the cost of the Fitbit Air: $399 vs $99.</p><p>Then again, the Fitbit Air may be affordable, but it's also one of the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html">best fitness trackers </a>in 2026. Not only that, when I pitted in a separate walk test versus the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-se-3-review">Apple Watch SE 3</a>, the Air surprisingly came out victorious. Will this be a repeat win? Read on!</p><div class="product"><a data-dimension112="5cba36ea-7a41-11f1-b31b-af2e03721331" data-action="Deal Block" data-label="The Fitbit Air is a diminutive, comfortable fitness tracker with no screen or buttons. Just $99, it boasts nearly a week of battery and lots of health, sleep, and workout insights." data-dimension48="The Fitbit Air is a diminutive, comfortable fitness tracker with no screen or buttons. Just $99, it boasts nearly a week of battery and lots of health, sleep, and workout insights." data-dimension25="$99" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:95.22%;"><img id="6rQV9bADzd2zqYvNPGPxwE" name="Screenshot 2026-05-28 at 12.55.35 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6rQV9bADzd2zqYvNPGPxwE.png" mos="" align="middle" fullscreen="" width="858" height="817" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Air is a diminutive, comfortable fitness tracker with no screen or buttons. Just $99, it boasts nearly a week of battery and lots of health, sleep, and workout insights. <a class="view-deal button" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow" data-dimension112="5cba36ea-7a41-11f1-b31b-af2e03721331" data-action="Deal Block" data-label="The Fitbit Air is a diminutive, comfortable fitness tracker with no screen or buttons. Just $99, it boasts nearly a week of battery and lots of health, sleep, and workout insights." data-dimension48="The Fitbit Air is a diminutive, comfortable fitness tracker with no screen or buttons. Just $99, it boasts nearly a week of battery and lots of health, sleep, and workout insights." data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="5cba3776-7a41-11f1-a017-358c1246c879" data-action="Deal Block" data-label="The Apple Watch Series 11 is one of the most high-tech smartwatches money can buy, with plenty of apps and features to keep you connected, healthy, safe, and fit. It also boasts a big, bright touchscreen and up to 24 hours of battery per charge." data-dimension48="The Apple Watch Series 11 is one of the most high-tech smartwatches money can buy, with plenty of apps and features to keep you connected, healthy, safe, and fit. It also boasts a big, bright touchscreen and up to 24 hours of battery per charge." data-dimension25="$329" href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminum-Always/dp/B0FQFL8PZ5?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3574px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="jng7bX5CBKGUQwXAqm8PR8" name="AW 11" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/jng7bX5CBKGUQwXAqm8PR8.jpg" mos="" align="middle" fullscreen="" width="3574" height="3574" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Apple Watch Series 11 is one of the most high-tech smartwatches money can buy, with plenty of apps and features to keep you connected, healthy, safe, and fit. It also boasts a big, bright touchscreen and up to 24 hours of battery per charge. <a class="view-deal button" href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminum-Always/dp/B0FQFL8PZ5?th=1" target="_blank" rel="nofollow" data-dimension112="5cba3776-7a41-11f1-a017-358c1246c879" data-action="Deal Block" data-label="The Apple Watch Series 11 is one of the most high-tech smartwatches money can buy, with plenty of apps and features to keep you connected, healthy, safe, and fit. It also boasts a big, bright touchscreen and up to 24 hours of battery per charge." data-dimension48="The Apple Watch Series 11 is one of the most high-tech smartwatches money can buy, with plenty of apps and features to keep you connected, healthy, safe, and fit. It also boasts a big, bright touchscreen and up to 24 hours of battery per charge." data-dimension25="$329">View Deal</a></p></div><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/LCKJ8K4sdXk" allowfullscreen></iframe></div></div><h3 class="article-body__section" id="section-apple-watch-11-vs-fitbit-air-tech-compared"><span>Apple Watch 11 vs Fitbit Air: tech compared</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4835px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="kQiKSFbo9N8ktNQvJumyeN" name="FitbitAir-v-AW11-03" alt="Close-up of the Apple Watch Series 11 next to the Fitbit Air; both are on colorful straps" src="https://cdn.mos.cms.futurecdn.net/kQiKSFbo9N8ktNQvJumyeN.jpg" mos="" align="middle" fullscreen="" width="4835" height="2720" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>When it comes to wrist-based trackers, the Fitbit Air and Apple Watch 11 couldn't be more different. The former has no screens, buttons, or notifications, and lasts up to a week. </p><p>The Series 11, meanwhile, is a super-connected device, boasting a large, bright touchscreen, multiple physical buttons, and compatibility with a dizzying array of apps. That said, the Series 11 comes up short on battery life; 24 hours per charge is the norm.</p><p>Another major difference: the Fitbit Air has no onboard GPS for location tracking or altimeter for elevation data, so you need to carry a smartphone along when logging an outdoor workout. The Apple Watch 11, on the other wrist, has both GPS and an altimeter.</p><p>With that out of the way, let's move on to the results!</p><h3 class="article-body__section" id="section-apple-watch-11-vs-fitbit-air-walk-test-results"><span>Apple Watch 11 vs Fitbit Air: Walk test results </span></h3><div ><table><caption>5,000-step walk comparison: Apple Watch 11 vs Fitbit Air</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Apple Watch 11</p></th><th  ><p>Fitbit Air</p></th><th  ><p>Control</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Steps</p></td><td  ><p>5,053 steps</p></td><td  ><p> 5,108 steps</p></td><td  ><p>steps (manual count)</p></td></tr><tr><td class="firstcol " ><p>Distance</p></td><td  ><p>2.63 miles</p></td><td  ><p>2.72 miles</p></td><td  ><p>2.39 miles (Strava)</p></td></tr><tr><td class="firstcol " ><p>Climb</p></td><td  ><p>372 feet</p></td><td  ><p>205 feet</p></td><td  ><p>328 feet (Strava)</p></td></tr><tr><td class="firstcol " ><p>Average pace </p></td><td  ><p>18 mins 51 secs</p></td><td  ><p>18 mins 03 secs</p></td><td  ><p>17 mins 22 secs (Strava)</p></td></tr><tr><td class="firstcol " ><p>Average heart rate</p></td><td  ><p>119 bpm</p></td><td  ><p>119 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Max heart rate</p></td><td  ><p> 153 bpm</p></td><td  ><p>153 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Calories burned</p></td><td  ><p>312 calories </p></td><td  ><p>373 calories</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Battery usage</p></td><td  ><p>6%</p></td><td  ><p>1%</p></td><td  ><p>n/a</p></td></tr></tbody></table></div><p>Before we begin, it's worth noting that Strava appears to have had a "hiccup" while recording this walk test. How do I know? The app logged just 4,506 steps, which is a major red flag. Normally, Strava's step-count data is within 10-20 steps of my actual count. TLDR: Take Strava's distance, climb, and pace data with a grain of salt.</p><p>Anyhow, both the Apple Watch 11 and Fitbit Air performed admirably when it came to keeping an accurate tally of my steps — anything within ~150 steps of the control is considered excellent in my book —  but the Apple Watch was just a little closer!</p><p>Distance data between the Apple Watch and Fitbit Air is similar enough for my liking. The Fitbit noted slightly more ground covered but also a faster pace, which checks out.</p><p>The Fitbit Air's elevation metric is concerningly inaccurate (this walk was particularly hill-heavy), which doesn't make a whole lot of sense, given the device can piggyback off of the iPhone 16 Plus's climb data. This also isn't the first time I experienced less-than-precise elevation tracking insights from the Fitbit Air; it was also way lower than expected versus the <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-4-500-steps-with-the-fitbit-air-vs-apple-watch-se-3-and-im-surprised-by-the-winner">Apple Watch SE 3</a>.</p><p>Fortunately, the Fitbit Air finishes strong: Heart rate data is a perfect match with the Apple Watch Series 11, a result I love to see. Meanwhile, the Air logged slightly more calories burned, but used way less battery during my ~42-minute stroll. </p><h3 class="article-body__section" id="section-apple-watch-11-vs-fitbit-air-winner"><span>Apple Watch 11 vs Fitbit Air: Winner </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5477px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="WcgA326oXsje3z5eX8zdrM" name="FitbitAir-v-AW11-02" alt="Close-up of the Apple Watch Series 11 next to the Fitbit Air; both are on colorful straps" src="https://cdn.mos.cms.futurecdn.net/WcgA326oXsje3z5eX8zdrM.jpg" mos="" align="middle" fullscreen="" width="5477" height="3081" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Ultimately, the Apple Watch Series 11 wins this showdown of fitness tracking accuracy against the Fitbit Air, with a more precise total step count and climb data. </p><p>Which fitness trackers or smartwatches should I pit head-to-head next? Let me know in the comments below. Also, which do you prefer, the Apple Watch 11 or the Fitbit Air? Share your opinion in the poll below.  </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-e47DBX"></div>                            </div>                            <script src="https://kwizly.com/embed/e47DBX.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-000-steps-with-the-fitbit-air-vs-garmin-forerunner-70-and-im-seriously-amazed-by-the-results">I walked 3,000 steps with the Fitbit Air vs Garmin Forerunner 70 — and I’m seriously amazed by the results</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing">The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-whoop-or-fitbit-air-5-questions-to-ask-yourself-before-buying-a-screen-free-fitness-tracker">Oura vs Whoop vs Fitbit Air — 5 questions to ask yourself before buying a screen-free fitness tracker</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Oura vs Whoop vs Fitbit Air — 5 questions to ask yourself before buying a screen-free fitness tracker ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/oura-whoop-or-fitbit-air-5-questions-to-ask-yourself-before-buying-a-screen-free-fitness-tracker</link>
                                                                            <description>
                            <![CDATA[ From the Oura Ring 5 to the Fitbit Air to the Whoop 5.0, screen-less health and fitness trackers are more popular than ever. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">8AGUdKRTVHgAwtdJvVRtk6</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/m58aY2hFFy6FdCrzDEoo69-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 07 Jul 2026 11:30:00 +0000</pubDate>                                                                                                                                <updated>Thu, 09 Jul 2026 23:41:40 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/m58aY2hFFy6FdCrzDEoo69-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[a photo of Oura Ring 5, Fitbit Air, Whoop MG]]></media:description>                                                            <media:text><![CDATA[a photo of Oura Ring 5, Fitbit Air, Whoop MG]]></media:text>
                                <media:title type="plain"><![CDATA[a photo of Oura Ring 5, Fitbit Air, Whoop MG]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/m58aY2hFFy6FdCrzDEoo69-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>From the Oura Ring 5 to the Fitbit Air to the Whoop 5.0, screen-less health and fitness trackers are more popular than ever. But is a display-free wearable better than, say, the <a href="https://www.tomsguide.com/us/best-gps-watches,review-2638.html">best smartwatch</a> on the market today?</p><p>That depends on your expectations for the device, namely, whether you want a piece of tech that monitors your health passively or something you interact with more actively. </p><p>As TG’s resident wearables expert — and someone who just reviewed the new <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> — below are the five biggest things to consider before committing to the no-screen lifestyle. </p><h3 class="article-body__section" id="section-1-is-distraction-free-the-way-to-be"><span>1. Is distraction-free the way to be?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4654px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3ZgyaboUC5K2rnhcC6Kifi" name="Inspire3-v-Air-02" alt="Close-up of the Fitbit Inspire 3 next to the Fitbit Air on a user's wrist" src="https://cdn.mos.cms.futurecdn.net/3ZgyaboUC5K2rnhcC6Kifi.jpg" mos="" align="middle" fullscreen="" width="4654" height="2618" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Whether you're considering one of the <a href="https://www.tomsguide.com/wellness/fitness-trackers/best-smart-rings">best smart rings</a>, like the <a href="https://www.tomsguide.com/wellness/smart-rings/oura-ring-5-hands-on-review-ive-worn-the-worlds-smallest-smart-ring-for-a-week-and-it-changes-fitness-tracking-forever">Oura Ring 5</a> or the more wallet-friendly <a href="https://www.tomsguide.com/wellness/smart-rings/ringconn-gen-2-air-review-this-budget-smart-ring-beats-the-oura-ring-4-in-three-big-ways">Ringconn Gen 2 Air</a>, or a screen-less fitness band, like the <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop 5.0</a> or Fitbit Air, all of these wearables promise distraction-free health and fitness tracking insights.</p><p>Of course, if you want mirrored smartphone notifications, there is no shortage of wrist-based wearables that fill the role, including the <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">$99 Fitbit Inspire 3</a> and <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-reviewed-this-usd49-fitness-tracker-almost-a-year-ago-and-im-still-wearing-it-today-heres-why">$50 Amazfit Band 7</a>. In fact, when comparing the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-vs-fitbit-inspire-3-which-usd99-fitness-tracker-wins">Fitbit Air vs. the Fitbit Inspire 3</a>, both devices offer broadly the same set of data; the Inspire 3 is just a little more "connected."</p><p>The point is, when it comes to screen-free fitness trackers in 2026, giving up the display also means giving up the ability to receive on-wrist/finger smartphone alerts. If that sounds delightful, read on.</p><h3 class="article-body__section" id="section-2-am-i-ready-to-bond-with-a-companion-app"><span>2. Am I ready to bond with a companion app?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1920px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="GcmoiqjEbMzcEdFygVHbAY" name="Oura sleep tracking prompts" alt="A woman's hand with pink nails wearing a silver Oura Ring on index finger surrounded by screenshots from Oura app of sleep tracking prompts" src="https://cdn.mos.cms.futurecdn.net/GcmoiqjEbMzcEdFygVHbAY.jpg" mos="" align="middle" fullscreen="" width="1920" height="1080" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Most of the best screen-free wellness trackers, including the Oura Ring 5 and Fitbit Air, lack buttons, which means the companion app is your new best friend, whether you're checking how much battery you have left or trying to start tracking a workout. </p><p>As such, it's a good idea to get a sense of whether or not you vibe with, say, the Google Health app (<a href="https://www.tomsguide.com/wellness/fitness/the-fitbit-app-is-officially-dead-but-dont-panic-its-replacement-is-even-better">formerly the Fitbit app</a>) if you're considering the Fitbit Air. It's also worth mentioning that both Oura and Whoop charge monthly fees for their respective apps. </p><p>That said, there are plenty of subscription-free smart rings and trackers available (some with screens, some without). The tradeoff is that Oura and Whoop's holistic insights are the most in-depth across the board, especially for hardcore athletes. The Fitbit Air, on the other wrist, is subscription-optional and more geared toward casual health-conscious users.</p><h3 class="article-body__section" id="section-3-smart-features-what-smart-features"><span>3. Smart features? What smart features? </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3346px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DrGLk5J27hSMuPjPQNnEkM" name="IMG_3567" alt="a photo of the Whoop MG on the wrist" src="https://cdn.mos.cms.futurecdn.net/DrGLk5J27hSMuPjPQNnEkM.jpg" mos="" align="middle" fullscreen="" width="3346" height="1882" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>With no display, buttons, or notifications, it probably doesn't come as much of a surprise that the best screen-free fitness trackers also lack support for smart features. Still, I would love to see NFC added to a smart ring, if for no other reason, because paying for something with a tap of the finger sounds positively futuristic. </p><h3 class="article-body__section" id="section-4-no-gps-no-problem"><span>4. No GPS, no problem?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2725px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="3NGtETDM2oCM52k7CxYYoe" name="RingConn2Air-14" alt="Close-up of the Ringconn Gen 2 Air smart ring on a user's index finger" src="https://cdn.mos.cms.futurecdn.net/3NGtETDM2oCM52k7CxYYoe.jpg" mos="" align="middle" fullscreen="" width="2725" height="1533" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>For my outdoor workout peeps, one of the biggest considerations to make before investing in a screen-free wearable is whether or not you can get by without onboard GPS. </p><p>While many of the best smartwatches and some of the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html">best fitness trackers</a> have built-in GPS antennas, no smart rings or screen-free trackers do. This means, for accurate location-based data when working out, you'll need to bring your paired smartphone along for insights into your distance, speed, pace, climb, and more after a run, walk, bike ride, etc.</p><h3 class="article-body__section" id="section-5-am-i-big-on-battery-life"><span>5. Am I big on battery life?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3986px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9ZrfpRB5krdJGJhqZGcMMg" name="IMG_8507" alt="a photo of the Whoop MG and Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/9ZrfpRB5krdJGJhqZGcMMg.jpg" mos="" align="middle" fullscreen="" width="3986" height="2242" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>It still kind of blows my mind that one of the most popular smartwatches in 2026 only lasts for roughly 24 hours per charge. I'm speaking, of course, of the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-11-review">Apple Watch Series 11</a>.</p><p>Fortunately, screen-free wearables, by and large, beat their display-graced siblings when it comes to longevity. In fact, from smart rings to fitness bands, most will last up to a week, sometimes more, per charge. </p><p>What do you think of screen-free wearables? Do you already own one? Are you considering one? Let me know in the poll or comments below. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XkwQ3X"></div>                            </div>                            <script src="https://kwizly.com/embed/XkwQ3X.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/exclusive-google-design-director-says-fitbit-air-reception-proves-they-made-the-right-decision-going-screen-free">Exclusive: Google design director says Fitbit Air reception proves they 'made the right decision' going screen-free</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/leaked-apple-watch-12-design-change-is-the-opposite-of-an-upgrade-and-that-has-me-worried">Leaked Apple Watch 12 design change is the opposite of an upgrade — and that has me worried</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/take-off-that-apple-watch-5-reasons-why-its-okay-to-swap-your-smartwatch-for-a-dumb-watch">5 reasons why I sometimes still wear a 'dumb' watch</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’m a deep sleeper, and I wish I’d found this hidden Fitbit Air setting weeks ago ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/im-a-deep-sleeper-and-i-wish-id-found-this-hidden-fitbit-air-setting-weeks-ago</link>
                                                                            <description>
                            <![CDATA[ Making this simple tweak can change how well your Fitbit Air wakes you up, if you're a deep sleeper, that is. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">GjGDzgRRxys5FNyrUBigcc</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Mimn2jQmsFeajNnNQ8NWGU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 05 Jul 2026 07:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ jane.mcguire@futurenet.com (Jane McGuire) ]]></author>                    <dc:creator><![CDATA[ Jane McGuire ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/vV4Uj3e5TZvBqmmsjT2EU6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jane McGuire is Tom&#039;s Guide&#039;s Fitness Managing Editor, which means she looks after everything fitness-related — from running gear and fitness trackers to yoga mats and sports bras. An avid runner, Jane has tested and reviewed fitness products for the past five years, so she knows what to look for when finding a good running watch or a pair of shorts with pockets big enough for your smartphone, running gels, and house keys. &lt;/p&gt;&lt;p&gt;Jane has run six marathons — the London Marathon five times, and the Berlin Marathon once -and is still on a quest to tick off all of the marathon majors. Her marathon PR is 3:30, which she ran in the New Balance Supercomp Elite V5&#039;s, but she also spends a lot of time talking about her  ‘joy plan’, where she runs for happiness, not for PR’s. &lt;/p&gt;&lt;p&gt;Previous to Tom’s Guide, Jane worked for Runner’s World, where she co-hosted the Runner’s World podcast. She also presents on a YouTube channel called the Run Testers, alongside other running-mad journalists, where they review the latest shoes, kit, and tech. Her work has also appeared in Coach, Get Sweat Go, and Women’s Health. &lt;/p&gt;&lt;p&gt;When she&#039;s not pounding the pavements, you&#039;ll find Jane striding round the Surrey Hills, taking far too many photos of her spaniel, Toby. &lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Mimn2jQmsFeajNnNQ8NWGU-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[a photo of the Fitbit Air on the wrist ]]></media:description>                                                            <media:text><![CDATA[a photo of the Fitbit Air on the wrist ]]></media:text>
                                <media:title type="plain"><![CDATA[a photo of the Fitbit Air on the wrist ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Mimn2jQmsFeajNnNQ8NWGU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I’m not sure whether it’s the fact I’m training for a marathon (again), or that I have a toddler who wakes me up at least once a night, but when I do sleep, I go into a coma. </p><p>I’ve been seriously impressed with the new $99 <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> — in fact, I’d go as far as to say it’s one of the best wearables to launch so far this year, but I’ve had one issue with it: the haptic alarm just isn’t strong enough to wake me from said sleep coma in the mornings. </p><p>I know what you’re thinking — surely my two-year-old is my alarm clock, and you’d be right, but as any parent knows, if I want to drink a warm cup of coffee, do a quick Pilates workout, or just sit and stare at my phone in silence, the only way to do so is to wake up before he does. Luckily, I’ve found a hidden Fitbit Air hack that solves this problem — read on to find out more. </p><section class="howto-block">                    <h3>How to change vibration settings on Fitbit Air</h3>                    <figure>                            <p class="bordeaux-image-check">                                <img    src="https://cdn.mos.cms.futurecdn.net/zCBBhA82yv8MGUKAmpHWt5.jpg"                                        alt="Close-up of the sensors on the Fitbit Air"                                        onerror="this.parentNode.replaceChild(window.missingImage(),this)"                                        data-pin-media="https://cdn.mos.cms.futurecdn.net/zCBBhA82yv8MGUKAmpHWt5.jpg"                                        class="expandable van-old-layout-image">                            </p><div class="credit">(Image: © Dan Bracaglia/Tom's Guide)</div></figure>                    <p><p>I’m not sure why Fitbit made this simple tweak so difficult to find, but you can, in fact, change the level of vibration on your Fitbit Air. By default, the haptic alerts on the alarm feature are set to low, so if, like me, you’re not finding them powerful enough to wake you up in the morning, here’s how to fix it.</p><p>Head to the <strong>Google Health app</strong>, and tap on <strong>Devices</strong> in the top left-hand corner. Select your <strong>Fitbit Air. </strong>Tap <strong>Device Preferences. </strong>The top option is <strong>Vibration Settings. </strong>By default, you’ll see that Vibration is set to low, so if you’re finding this hasn’t been strong enough to wake you up, you can switch this to <strong>High</strong>. </p></p>                </section><p>I found that by making this simple tweak, I was <em>definitely </em>able to feel the alarm going off on my wrist in the morning. It was still silent enough that it didn’t wake my toddler if he had crept into my bed at 2 am, and I was able to have 20 minutes of peace before my day began. </p><p>If I didn’t have a human alarm clock, I’d love the custom alarm schedule on the Fitbit Air, which allows you to set different alarms for different days of the week. The Smart Wake feature also looks great for those who don’t want such an abrupt start to their day — the Fitbit Air will gently wake you up in a timeframe that’s best for your REM sleep, helping you wake up feeling more refreshed. A girl can only dream. </p><p>Did you know about this hidden vibration setting? Follow Tom’s Guide for more Fitbit Air tips and tricks. </p><p><em><strong>Follow </strong></em><a href="https://www.instagram.com/tomsguidefitness/" target="_blank"><em><strong>Tom's Guide fitness</strong></em></a><em><strong> on Instagram for more workouts, routines, tips, and tricks.</strong></em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/take-off-that-apple-watch-5-reasons-why-its-okay-to-swap-your-smartwatch-for-a-dumb-watch">I review smartwatches for a living, but these are 5 reasons why I sometimes still wear a 'dumb' watch</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-12-everything-we-know-so-far">Apple Watch Series 12 rumors — everything we know so far</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/garmins-rumored-screen-less-wearable-just-might-be-the-subscription-free-whoop-rival-ive-been-waiting-for">Garmin’s rumored screen-less wearable just might be the subscription-free Whoop rival I’ve been waiting for</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I tracked my sleep on Fitbit Air vs Whoop for a week — does spending more buy you better sleep data? ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-tracked-sleep-fitbit-air-vs-whoop-mg-one-week</link>
                                                                            <description>
                            <![CDATA[ I compared Fitbit Air and Whoop MG sleep tracking over seven nights to see how closely the two agreed. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nttfASf4kzrc36seBiJzY8</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/WSbSWrhCAzEANUyvE5kg4M-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 04 Jul 2026 06:15:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                                    <dc:creator><![CDATA[ Sanuj Bhatia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/8p5BvMVA7cnu5AWkxnTjRC.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/WSbSWrhCAzEANUyvE5kg4M-1280-80.jpg">
                                                            <media:credit><![CDATA[Sanuj Bhatia / Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Google Fitbit Air in the hands of the author]]></media:description>                                                            <media:text><![CDATA[Google Fitbit Air in the hands of the author]]></media:text>
                                <media:title type="plain"><![CDATA[Google Fitbit Air in the hands of the author]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/WSbSWrhCAzEANUyvE5kg4M-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Ever since the <a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-a-user-friendly-fitness-tracker-thats-just-usd99-at-best-buy">Fitbit Air launched</a> in May 2026, the conversation has almost always been about its price point. Reviews have been calling it a "$100 Whoop killer," and even we named it the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">best Whoop alternative <em>for the rest of us</em></a>. But one thing everyone seems to be missing is whether the tracking is actually any good. </p><p>Sure, it costs less, but does the Fitbit and Google name automatically mean it's great at tracking your health? Does it even give insights that are, first of all, accurate and then actually useful? </p><p>I've been tracking my sleep with both the <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-tested-fitbit-air-vs-whoop-side-by-side-heres-the-screenless-fitness-tracker-id-buy">Fitbit Air and the Whoop MG</a> for a week, and the Fitbit Air actually held up much better than I expected. It's not perfect, though, and there are a few things you should know before buying one.</p><h2 id="here-s-how-i-tested-both-trackers-side-by-side">Here's how I tested both trackers side by side</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="SGCZVmHfd2ygyWi2Jy45xL" name="fitbit-air-3" alt="Google Fitbit Air in the hands of the author" src="https://cdn.mos.cms.futurecdn.net/SGCZVmHfd2ygyWi2Jy45xL.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>Before we get into the numbers, there's one thing worth knowing upfront: I've been using the Whoop MG for over a year now. It's been my primary <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">fitness and health tracking device</a> for that entire time, which means it has a lot more context about my body compared to the Fitbit Air. </p><p>I got the Fitbit Air around June 16 and started properly testing it from the night of June 17. For this test, I wore the Fitbit Air on my left, non-dominant wrist, while my Whoop MG has been on a bicep band on the same arm for the past three months. I tracked a full week across both devices from June 17 to June 25, with two nights being an exception where I actually slept without any of the bands because I fell sick. </p><p>Before we dive into the numbers, though, it's worth knowing that since the Fitbit Air was brand new out of the box, it was still building its baseline during the first couple of nights. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Cp6RfTemyGYHBGMZgpFN5M" name="awhoop-mg-fitbit-air-1" alt="Google Fitbit Air in the hands of the author" src="https://cdn.mos.cms.futurecdn.net/Cp6RfTemyGYHBGMZgpFN5M.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>It's also worth noting that wearing the Whoop MG on the bicep rather than the wrist does influence readings. Both are valid measurement points, but it's commonly believed that less movement leads to more accurate results. </p><p>The wrist moves around a lot, while the bicep stays relatively still, so the Whoop data could be slightly more accurate because of that, though I can't say for certain. Either way, the Fitbit Air doesn't offer a bicep band yet, so if a bicep option is something you need, the Whoop MG is currently the only choice.</p><h2 id="fitbit-needed-a-few-nights-before-the-data-made-sense">Fitbit needed a few nights before the data made sense</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9RQGTxBse9fSaGqQz5GiiL" name="fitbit-air-4" alt="Google Fitbit Air in the hands of the author" src="https://cdn.mos.cms.futurecdn.net/9RQGTxBse9fSaGqQz5GiiL.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>As expected, the Fitbit Air took a couple of days to calibrate to my body and sleep patterns. I wasn't expecting it to agree with the Whoop MG right from the first night, and that was pretty obvious in the data. On day one, there was almost a one-hour difference in total sleep. Fitbit Air logged just 5 hours and 15 minutes of sleep, while the Whoop MG recorded around 6 hours and 15 minutes. </p><p>Thankfully, things improved quickly after that. From the second night onward, the two trackers became much more consistent. On the final two nights of my testing (June 22 and June 25), both devices recorded roughly seven hours of sleep on one night and around seven and a half hours on the other, with only about a 15-minute difference. </p><p>I'd call that accurate enough for tracking total sleep duration. If all you care about is knowing how long you slept, the Fitbit Air becomes much more reliable after a few days of wear. </p><div ><table><caption>Fitbit Air vs Whoop MG </caption><thead><tr><th class="firstcol " ><p>Night</p></th><th  ><p>Whoop MG</p></th><th  ><p>Fitbit Air</p></th><th  ><p>Difference</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Jun 17<br>(Fitbit calibrating)</p></td><td  ><p>Duration: 6h 15m<br>Deep sleep: 1h 30m<br>REM: 1h 3m</p></td><td  ><p>Duration: 5h 15m<br>Deep sleep: 34 min<br>REM: 1h 14m</p></td><td  ><p>Duration: 60 min<br>Deep sleep: 56 min<br>REM: 11 min</p></td></tr><tr><td class="firstcol " ><p>Jun 18</p></td><td  ><p>Duration: 6h 39m<br>Deep sleep: 58 min<br>REM: 57 min</p></td><td  ><p>Duration: 6h 53m<br>Deep sleep: 44 min<br>REM: 41 min</p></td><td  ><p>Duration: 14 min<br>Deep sleep: 14 min<br>REM: 16 min</p></td></tr><tr><td class="firstcol " ><p>Jun 19</p></td><td  ><p>Duration: 6h 56m<br>Deep sleep: 1h 25m<br>REM: 1h 7m</p></td><td  ><p>Duration: 7h 33m<br>Deep sleep: 1h 10m<br>REM: 1h 17m</p></td><td  ><p>Duration: 37 min<br>Deep sleep: 15 min<br>REM: 10 min</p></td></tr><tr><td class="firstcol " ><p>Jun 22</p></td><td  ><p>Duration: 6h 32m<br>Deep sleep: 1h 14m<br>REM: 1h 10m</p></td><td  ><p>Duration: 6h 48m<br>Deep sleep: 54 min<br>REM: 1h 16m</p></td><td  ><p>Duration: 16 min<br>Deep sleep: 20 min<br>REM: 6 min</p></td></tr><tr><td class="firstcol " ><p>Jun 25</p></td><td  ><p>Duration: 7h 17m<br>Deep sleep: 45 min<br>REM: 1h 11m</p></td><td  ><p>Duration: 7h 34m<br>Deep sleep: 42 min<br>REM: 1h 58m</p></td><td  ><p>Duration: 17 min<br>Deep sleep: 3 min<br>REM: 47 min</p></td></tr></tbody></table></div><p>Sleep stages, though, are a completely different story. Even after a week, both devices continued to disagree quite a bit on deep sleep and REM sleep. You can see from the table above that there are some pretty noticeable differences between the two, despite both devices tracking the exact same nights. </p><p>Which one is actually right? Honestly, it's hard to tell after just a week of testing. A longer testing period might reveal whether the two begin converging over time, but that is something I'll give one or two months to test. </p><p>It's also worth noting that placement could be playing a role here. As I mentioned above, I wore the Whoop MG on my left bicep while the Fitbit Air stayed on my left wrist, and this might have led the trackers to produce slightly different readings. </p><p>One area where the Fitbit Air clearly felt better to me, however, was the representation of the data collected overnight.</p><h2 id="fitbit-s-app-actually-won-me-over">Fitbit's app actually won me over</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bUEQ7ZBJq48hf5cha6TdkW" name="google-fibit-air-screenshot" alt="Sleep tracking on the Google Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/bUEQ7ZBJq48hf5cha6TdkW.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I've said this before, and I'll say it again. While Whoop has become popular with casual users, it's still a product built primarily for athletes. That means the moment you open the app after waking up, you're greeted with a wall of numbers, graphs, and recovery metrics. </p><p>I can't believe I'm saying this, but I actually think Google has done a great job with the <a href="https://www.tomsguide.com/wellness/fitness/the-fitbit-app-is-officially-dead-but-dont-panic-its-replacement-is-even-better">Google Health app</a> that powers the Fitbit Air, even though plenty of Fitbit users might disagree with me.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="aRinS32WEMo5G74gWPMBbJ" name="whoop-app-sleep-stats" alt="Sleep stats inside the Whoop app" src="https://cdn.mos.cms.futurecdn.net/aRinS32WEMo5G74gWPMBbJ.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>I don't want to wake up and immediately analyze a dashboard full of metrics. Instead, Fitbit Air gives me a quick summary of how I slept, and for most mornings, that's all I need to know whether I had a good night's sleep or not. I also like that I can tell the app when I don't agree with how I'm feeling, rather than blindly accepting the data. </p><p>One thing I also noticed during my testing was how much faster Fitbit Air processes sleep data. Most mornings, it gave me my sleep summary within five to seven minutes of waking up. </p><p>The Whoop app, on the other hand, often took much longer. There were days when I didn't get my sleep report for nearly 30 minutes, and sometimes I even had to manually end the sleep session before it would process the data. </p><h2 id="verdict">Verdict</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9YLsF7HXdWUUN3ENeQckxL" name="fitbit-air-2" alt="Google Fitbit Air in the hands of the author" src="https://cdn.mos.cms.futurecdn.net/9YLsF7HXdWUUN3ENeQckxL.jpg" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Sanuj Bhatia / Tom's Guide)</span></figcaption></figure><p>Overall, I still think the Fitbit Air offers a better experience for the average user. Sure, the data differed from Whoop, but that's true of almost every consumer sleep tracker. None of these devices are clinical-grade after all.</p><p>After a week of wearing both trackers, I don't think sleep tracking alone is a good enough reason to spend significantly more on a Whoop. Once the Fitbit Air had a few nights to calibrate, its total sleep tracking was consistently close enough that I stopped paying attention to the differences.</p><p>What you're really paying the Whoop premium for isn't better sleep tracking. It has other features as well, like ECG, blood pressure insights, strain tracking, and a whole recovery ecosystem built for athletes. If those features matter to you, the subscription makes sense.</p><p>But if your main priority is simply understanding how well you slept each night, I honestly think the $100 Fitbit Air gets you most of the way there, with a friendlier app experience <em>and</em> for a fraction of the yearly cost.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/sleep-tech/apple-watch-vs-whoop-mg-sleep-tracker-comparison">I used the Apple Watch and Whoop to track my sleep for a year — there's a clear winner for me</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-500-steps-with-the-fitbit-air-vs-fitbit-inspire-3-and-theres-a-clear-winner">I walked 3,500 steps with the Fitbit Air vs Fitbit Inspire 3 — and there's a clear winner</a></li><li><a href="https://www.tomsguide.com/audio/airpods/forget-the-apple-watch-i-use-airpods-pro-3-for-live-heart-rate-tracking-while-running-and-theyre-usd70-off-right-now">Forget the Apple Watch: I use AirPods Pro 3 for Live Heart Rate Tracking while running</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Exclusive: Google design director says Fitbit Air reception proves they 'made the right decision' going screen-free ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/exclusive-google-design-director-says-fitbit-air-reception-proves-they-made-the-right-decision-going-screen-free</link>
                                                                            <description>
                            <![CDATA[ I spoke to the lead designer behind the Fitbit Air to learn more about Google’s new $99 tracker and to determine if the Fitbit brand is actually here to stay. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">FMBWthhcB3yswm44bNJRsE</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/UDs8Ptawp2Ta84dW6N8vJD-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 02 Jul 2026 04:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/UDs8Ptawp2Ta84dW6N8vJD-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the sensors on the underside of the Fitbit Air fitness tracker]]></media:description>                                                            <media:text><![CDATA[Close-up of the sensors on the underside of the Fitbit Air fitness tracker]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the sensors on the underside of the Fitbit Air fitness tracker]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/UDs8Ptawp2Ta84dW6N8vJD-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I must admit, as a wearable tech writer, I predicted that Fitbit would <a href="https://www.tomsguide.com/wellness/fitness-trackers/google-just-killed-another-fitbit-feature-and-now-im-certain-the-brand-is-as-good-as-dead">die under Google</a>, which acquired the brand in 2021. I was wrong.</p><p>So, when the opportunity arose to sit down and chat with Jonah Becker  — design director for wearables at Google — about the recently debuted <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a>, I was a tad embarrassed. Fortunately, Jonah didn’t take my doomsday predictions personally, which is a relief given he’s been working on Fitbit products for over a decade.</p><p>Jonah started at Fitbit in 2016 and moved over to Google during the <a href="https://www.tomsguide.com/news/google-acquires-fitbit-for-21-billion">2021 acquisition</a>. He currently leads the industrial design teams behind the Pixel Watch, Pixel Buds, and, of course, Fitbit. </p><p>Our chat touched on the inspiration and design process behind the Fitbit Air (i.e., one of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness trackers</a> in 2026), the reason it doesn’t have onboard GPS, and the possibility of other Google-built screen-free wearables. I also got his candid thoughts on the outcome of the Google x Fitbit acquisition, five years on. </p><h3 class="article-body__section" id="section-inspired-by-his-children-s-friendship-bracelets"><span>Inspired by his children's friendship bracelets</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4923px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v4R3RdVkt2tearzZXDp52N" name="FitbitAir-rev-07" alt="Close-up of the Fitbit Air on a person's wrist" src="https://cdn.mos.cms.futurecdn.net/v4R3RdVkt2tearzZXDp52N.jpg" mos="" align="middle" fullscreen="" width="4923" height="2769" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><div><blockquote><p>"The inspiration we had from the start was the friendship bracelet."</p></blockquote></div><p>The Fitbit Air is a $99 screen- and button-free fitness tracker that doesn’t require a subscription and works with both Android and iOS devices. Incredibly lightweight and comfortable, it barely even looks like a piece of wearable tech, and that’s the point. </p><p>“The inspiration we had from the start was the friendship bracelet — the idea that you have this thing that is super lightweight, comfortable —  it's not a typical fitness watch or fitness tracker,” says Becker. It’s “something that has a more casual, all-hours-in-the-day vibe. I would see my kids at summer camp; they'd put on a friendship bracelet and wear it for months on end until basically the threads went bare and they fell off.”</p><p>The beauty of the Fitbit Air is that all of the tracking technology is condensed into a small, bean-like object that can easily be popped in and out of bands for maximum customization. Google even released a hardware development kit allowing DIYers to design and 3D-print their own bands for the Air. </p><p>“There are a lot of creative people in the world who have unique situations, and the idea that it becomes something that people can have fun with," says Becker on the subject of creating your own straps for the Air. "You know, as long as it's working in a way that it's supporting their health, that's what's most important.”</p><h3 class="article-body__section" id="section-a-whoop-alternative-for-you-and-me"><span>A Whoop alternative for you and me</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4805px;"><p class="vanilla-image-block" style="padding-top:50.01%;"><img id="wNxwSP3oTrgcw3KuNCjzw" name="Fitbit-Air-lead-05-header" alt="Close-up of the Fitbit Air on-wrist on a red strap against a blue background" src="https://cdn.mos.cms.futurecdn.net/wNxwSP3oTrgcw3KuNCjzw.jpg" mos="" align="middle" fullscreen="" width="4805" height="2403" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><div><blockquote><p>"I see it as sort of the archetype of the ambient fitness tracker. We have so many devices around us demanding our attention all the time, and at the same time, health is every hour of every day, seven days a week."</p></blockquote></div><p>Of course, the Fitbit Air is far from the only screen-free fitness tracker out there. Its primary competition is the <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop 5.0</a>, a subscription-based tracker that’s big on heady training stats and recovery insights. Perfect for hardcore athletes and pros, the Fitbit Air is essentially the exact opposite. </p><p>While Whoop-wearers are less likely to need daily motivation to work out, the rest of us, well, could probably benefit from it.</p><p>"You have your high-tier athletes, and then you have like the other 99.7% of the population. There are a lot of people who don't have that motivation and guidance. So for me, it's like, that's where the real opportunity is, this broad population health."</p><p>As I noted in my <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">review of the Fitbit Air</a>, the device is basically a “Whoop alternative for the rest of us.” And after chatting with Becker, it seems that was the intention behind its development. </p><p>"I see [the Fitbit Air] as sort of the archetype of the ambient fitness tracker, the displayless tracker that's not demanding your attention. We have so many devices around us demanding our attention all the time, and at the same time, health is every hour of every day, seven days a week." </p><h3 class="article-body__section" id="section-no-gps-no-problem-for-most-people"><span>No GPS, no problem... for most people</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4654px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3ZgyaboUC5K2rnhcC6Kifi" name="Inspire3-v-Air-02" alt="Close-up of the Fitbit Inspire 3 next to the Fitbit Air on a user's wrist" src="https://cdn.mos.cms.futurecdn.net/3ZgyaboUC5K2rnhcC6Kifi.jpg" mos="" align="middle" fullscreen="" width="4654" height="2618" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><div><blockquote><p>“The reality is that like 99% of people who might want to track a run or a hike or something like that are going to have their phones with them."</p></blockquote></div><p>It's worth noting that the Fitbit Air lacks onboard GPS, something I critiqued in the review, but why? According to Becker, the size, cost, and battery implications of including GPS didn’t align with the overall design intent of the Air. </p><p>Moreover, “the reality is that like 99% of people who might want to track a run or a hike or something like that are going to have their phones with them. So, having the paired GPS with the phone is going to provide a great experience,” adds Becker. </p><h3 class="article-body__section" id="section-on-the-longterm-outcome-of-google-s-fitbit-acquisition"><span>On the longterm outcome of Google’s Fitbit acquisition </span></h3><div><blockquote><p>"To launch [the Fitbit Air] now feels in many ways like the first big move in delivering upon the promise of the [Google] acquisition."</p></blockquote></div><p>Becker has the unique perspective of working on the Fitbit brand both when it was a standalone company and under Google. And much to my surprise, he revealed that Fitbit Air has been under development since shortly after the acquisition in 2021. That's a long time! </p><p>“To launch [the Fitbit Air] now feels in many ways like the first big move in delivering upon the promise of the acquisition,” admits Becker. </p><p>“I think one of the great things about Fitbit becoming part of Google is that Fitbit brings a ton of health expertise, history, brand recognition, and many years — a decade plus — of data collection, so an understanding of people's biometrics and behaviors,” says Becker. “And Google is a company that can probably do the best job in the world of making sense of all that data, and I think that's what it's really unlocked.”</p><h3 class="article-body__section" id="section-what-s-next-for-fitbit"><span>What’s next for Fitbit? </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ktst4G4aEo3tp2SAEDwt7A" name="FitbitAir-01" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/ktst4G4aEo3tp2SAEDwt7A.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><div><blockquote><p>"I think we are seeing a really great reception to Fitbit Air, so it gives us confidence that we made the right decision in pursuing a screen-free form factor."</p></blockquote></div><p>All of this begs the question: Is the Fitbit brand <em>actually</em> here to stay? When I asked Becker, he was coy, but I picked up on a glimmer of excitement. So, I pushed further. "With word of a <a href="https://www.tomsguide.com/wellness/smart-rings/samsung-confirms-galaxy-ring-2-is-coming-and-it-might-even-work-with-ios">Samsung Galaxy Ring 2</a> under development, might we expect other screen-free wearables from Google in the near future?" I asked. </p><p>“I think we are seeing a really great reception to Fitbit Air, so it gives us confidence that we made the right decision in pursuing a screen-free form factor, and I, and I'll have to leave it at that.” </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-performance-issues-3-ways-to-make-sure-the-fitbit-air-accurately-tracks-your-next-workout">Fitbit Air performance issues? 3 ways to make sure the Fitbit Air accurately tracks your next workout</a></li><li><a href="https://www.tomsguide.com/wellness/fitness/an-iphone-moment-for-your-eyes-why-xpanceo-is-betting-big-on-smart-contact-lenses-as-the-future-of-ar">An ‘iPhone moment’ for your eyes — why Xpanceo is betting big on smart contact lenses as the future of AR</a></li><li><a href="https://www.tomsguide.com/wellness/fitness/i-went-to-sweden-to-watch-bike-helmets-get-smashed-into-anvils-3-things-i-learned-at-the-mips-test-lab">I went to Sweden to watch bike helmets get smashed into anvils — 3 things I learned at the MIPS test lab</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Fitbit Air performance issues? 3 ways to make sure the Fitbit Air accurately tracks your next workout ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-performance-issues-3-ways-to-make-sure-the-fitbit-air-accurately-tracks-your-next-workout</link>
                                                                            <description>
                            <![CDATA[ Some users are reporting fitness-tracking performance issues with the new Fitbit Air. However, these hiccups may actually be technical limitations rather than bugs. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">kAYs5ctQBMpYbzhrcqpG29</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EvMxy8b2KjzH2ks5YVcSAA-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 27 Jun 2026 11:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/EvMxy8b2KjzH2ks5YVcSAA-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap]]></media:description>                                                            <media:text><![CDATA[Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap]]></media:text>
                                <media:title type="plain"><![CDATA[Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EvMxy8b2KjzH2ks5YVcSAA-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If you’re having issues with your Fitbit Air’s fitness tracking accuracy, I’m here to help. I just reviewed the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> and have been wearing one pretty much nonstop for nearly a month. I’ve tested it against numerous other wearables, as well as Strava, while walking, running, hiking, and cycling with mostly impressive results. </p><p>Of course, shiny new pieces of consumer tech often ship with “quirks” —  who could forget Apple's “Antennagate” — but with a growing number of Fitbit Air users reporting issues with fitness tracking accuracy via TikTok and Reddit, it’s worth rehashing the device’s technical limitations, along with some troubleshooting tips. </p><p>So, if you’re having issues with Fitbit Air fitness tracking accuracy, try these three things.</p><h3 class="article-body__section" id="section-1-manually-start-your-workouts-from-the-app-don-t-use-auto-tracking"><span>1. Manually start your workouts from the app; don’t use auto-tracking </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ktst4G4aEo3tp2SAEDwt7A" name="FitbitAir-01" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/ktst4G4aEo3tp2SAEDwt7A.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air’s auto workout tracking needs, well, work. At present, it only logs walks, bike rides, "sports," and "other activities." Moreover, you need to spend 15-20 consecutive minutes or more doing a supported activity for tracking to kick in. That’s hardly ideal.</p><p>For instance, <a href="https://www.tomsguide.com/wellness/running/im-a-running-noob-doing-my-first-5k-heres-all-the-tech-im-using-to-cross-the-finish-line">I'm a beginner runner</a> who averages about two miles per outdoor session. As a result, my runs tend to be shorter than 20 minutes, which means the Fitbit Air is hit-or-miss at automatically logging them.</p><p>Fortunately, the solution to this issue is simple: If you want to ensure the Fitbit Air <em>actually</em> records your workout, manually start a workout session for your activity of choice in the Google Health app (formerly the Fitbit app) before beginning. </p><h3 class="article-body__section" id="section-2-for-accurate-daily-step-counts-carry-your-phone-at-all-times"><span>2. For accurate daily step counts, carry your phone at all times</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4382px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="YVcdQrtyDuQoDUeaZKAmLi" name="SE3-v-Air-03" alt="Close-up of the Apple Watch SE 3 and Fitbit Air in a user's hand against a bright, colorful background" src="https://cdn.mos.cms.futurecdn.net/YVcdQrtyDuQoDUeaZKAmLi.jpg" mos="" align="middle" fullscreen="" width="4382" height="2465" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>One of the biggest complaints I've heard about the Fitbit Air is that daily step count totals are far from accurate. However, there's a good reason this might be the case.</p><p>As a reminder, the Fitbit Air lacks an onboard GPS. This means you need to carry a paired smartphone with you at all times if you want precise daily step count totals, as the Air piggybacks off your phone’s GPS signal. </p><h3 class="article-body__section" id="section-3-when-tracking-outdoor-workouts-always-bring-your-phone"><span>3. When tracking outdoor workouts, always bring your phone </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4114px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="m3zAnMrGySMYrDxq46JKLY" name="Fitbit-Air-lead-03" alt="Close-up of the sensors on the Fitbit Air screenless fitness tracker" src="https://cdn.mos.cms.futurecdn.net/m3zAnMrGySMYrDxq46JKLY.jpg" mos="" align="middle" fullscreen="" width="4114" height="2315" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Similarly, if you want accurate run, hike, walk, or bike data in your post-workout report, you must carry your phone along; otherwise, metrics like distance and pace will be far from accurate. </p><p>In my testing, you can start an outdoor-based workout from your phone, then leave it behind, and the Fitbit Air will try its best to measure location-based stats, but the results are <em>faaaar</em> from reliable. It’s also worth noting that there’s no onboard altimeter in the Fitbit Air. So, like GPS, the wearable relies on a paired phone, carried with you, for that info.</p><p>Ultimately, Google might be wise to add a warning in the Google Health app when users start an outdoor workout stating that a paired phone is required for accurate data. </p><p>Alternatively, Google could simply turn off all location-based metrics in the post-workout report when no GPS or altimeter info is available. If nothing else, this might help folks better understand the technical limitations of the Fitbit Air. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-500-steps-with-the-fitbit-air-vs-fitbit-inspire-3-and-theres-a-clear-winner">I walked 3,500 steps with the Fitbit Air vs Fitbit Inspire 3 — and there's a clear winner</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-went-for-a-run-with-the-fitbit-air-and-garmin-forerunner-70-to-see-how-the-usd99-tracker-compared-and-im-impressed">I went for a run with the Fitbit Air and Garmin Forerunner 70 to see how the $99 tracker compared, and I’m impressed</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-vs-fitbit-inspire-3-which-usd99-fitness-tracker-wins">Fitbit Air vs Fitbit Inspire 3 — which $99 fitness tracker wins?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Apple Watch, Garmin, Oura, Whoop and Fitbit — all the best Prime Day sleep tracker deals in one place, from $86 ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/sleep-tech/apple-watch-garmin-oura-whoop-and-fitbit-all-the-best-prime-day-sleep-tracker-deals-in-one-place-from-usd86</link>
                                                                            <description>
                            <![CDATA[ From medical-grade armbands to stylish rings, here are all the US and UK Prime Day deals on the best sleep trackers we've tested —starting at $86 and £57 ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ergZhd4SxyX9FyGsCBGo7c</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/bLpssSppeqQCRsCaLWBS4G-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 25 Jun 2026 22:55:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Sleep Tech]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Sleep]]></category>
                                                                                                                    <dc:creator><![CDATA[ Frances Daniels ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/gwtHaY4CfWtqYQH6EuKPGE.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/bLpssSppeqQCRsCaLWBS4G-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A woman wears a Garmin Index Sleep Monitor. In the top right hand corner, there is a Prime Day deals badge. ]]></media:description>                                                            <media:text><![CDATA[A woman wears a Garmin Index Sleep Monitor. In the top right hand corner, there is a Prime Day deals badge. ]]></media:text>
                                <media:title type="plain"><![CDATA[A woman wears a Garmin Index Sleep Monitor. In the top right hand corner, there is a Prime Day deals badge. ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/bLpssSppeqQCRsCaLWBS4G-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Amazon is full of sleep tracker deals this Prime Day, but it can be hard to know what's a good deal or what tech is worth buying. That's why we've rounded up every deal on every sleep tracker we've ever tested and loved, and that includes the <a href="https://www.amazon.com/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WVYHL6/ref" target="_blank"><strong>Oura Ring 4 (now down to $226</strong></a> at Amazon and <a href="https://www.amazon.co.uk/dp/B0D9WWHXHD" target="_blank"><strong>£199.99 at Amazon UK</strong></a>)</p><p>The Oura Ring 4 may be our favorite sleep tracker, but it's not the only entry in our<a href="https://www.tomsguide.com/wellness/sleep-tech/best-sleep-tracker"> best sleep trackers</a> guide to get a price drop this Prime Day. In this sleep-tracking deals hub we've included all the best Amazon discounts on top choices from Apple Watch, Garmin, Oura, Whoop, Withings, and Fitbit, all reviewed by the Tom's Guide team. </p><p>While Amazon's Prime Day event has, to be honest, been underwhelming in some areas, it definitely hasn't let us down in the sleep tech department. So, here's a list of the top five sleep tracker discount in both the US and UK, and why they're the best <a href="https://www.tomsguide.com/wellness/mattresses/amazon-prime-day-mattress-deals">Amazon Prime Day mattress and sleep deals </a>we've seen so far. </p><h2 id="don-t-forget-your-prime-membership">Don't forget your Prime Membership...</h2><div class="product"><a data-dimension112="04f4cd62-5e03-410e-bcd0-39e63eedf558" data-action="Deal Block" data-label="Amazon is offering a free 30-day trial of Amazon Prime this week. As soon as you sign up, you'll get access to this year's Prime Day discounts on thousands of items, from mattresses to air fryers. Prime memberships (from $14.99 a month) also include access to Prime Video, Prime Reading, Prime Music, Amazon photo storage, plus free shipping." data-dimension48="Amazon is offering a free 30-day trial of Amazon Prime this week. As soon as you sign up, you'll get access to this year's Prime Day discounts on thousands of items, from mattresses to air fryers. Prime memberships (from $14.99 a month) also include access to Prime Video, Prime Reading, Prime Music, Amazon photo storage, plus free shipping." data-dimension25="$0" href="https://www.amazon.com/amazonprime" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:57.15%;"><img id="k4vqt3qVs98dCVuWg7KzWJ" name="Amazon Prime logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/k4vqt3qVs98dCVuWg7KzWJ.jpg" mos="" align="middle" fullscreen="" width="4000" height="2286" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Amazon is offering a free 30-day trial of Amazon Prime this week. As soon as you sign up, you'll get access to this year's Prime Day discounts on thousands of items, from mattresses to air fryers. Prime memberships (from $14.99 a month) also include access to Prime Video, Prime Reading, Prime Music, Amazon photo storage, plus free shipping.<a class="view-deal button" href="https://www.amazon.com/amazonprime" target="_blank" rel="nofollow" data-dimension112="04f4cd62-5e03-410e-bcd0-39e63eedf558" data-action="Deal Block" data-label="Amazon is offering a free 30-day trial of Amazon Prime this week. As soon as you sign up, you'll get access to this year's Prime Day discounts on thousands of items, from mattresses to air fryers. Prime memberships (from $14.99 a month) also include access to Prime Video, Prime Reading, Prime Music, Amazon photo storage, plus free shipping." data-dimension48="Amazon is offering a free 30-day trial of Amazon Prime this week. As soon as you sign up, you'll get access to this year's Prime Day discounts on thousands of items, from mattresses to air fryers. Prime memberships (from $14.99 a month) also include access to Prime Video, Prime Reading, Prime Music, Amazon photo storage, plus free shipping." data-dimension25="$0">View Deal</a></p></div><h3 class="article-body__section" id="section-top-5-sleep-tracker-us-prime-day-deals"><span>Top 5 sleep tracker US Prime Day deals </span></h3><div class="product"><a data-dimension112="a9e24260-6499-4626-936d-f29d76cfdb98" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="$226" href="https://www.amazon.com/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WVYHL6/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:898px;"><p class="vanilla-image-block" style="padding-top:86.97%;"><img id="gZJwTTiTSeCKqGf7Yh5Y88" name="image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZJwTTiTSeCKqGf7Yh5Y88.png" mos="" align="middle" fullscreen="" width="898" height="781" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Oura Ring 4 is a sleek, stylish ring that sits comfortably on your index finger, tracking key sleep metrics. Its accompanying app features an AI sleep advisor, which analyses your sleep data and tells you how you can improve. The Oura Ring is now 43% off at AMazon, but remember there's a $5.99 monthly subscription fee to unlock all features (but the first month is completely free). </p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-ring-4-review" data-dimension112="a9e24260-6499-4626-936d-f29d76cfdb98" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="$226"><strong>Oura Ring 4 review score:</strong></a><strong> </strong>★★★★★<br><a href="https://www.amazon.com/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WVSZ56/ref?th=1"><strong>User score</strong></a><strong>: </strong>★★★★ (8,000+ reviews)<a class="view-deal button" href="https://www.amazon.com/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WVYHL6/ref" target="_blank" rel="nofollow" data-dimension112="a9e24260-6499-4626-936d-f29d76cfdb98" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="$226">View Deal</a></p></div><div class="product"><a data-dimension112="84996d86-9b43-47d8-a859-2b2bfa406acb" data-action="Deal Block" data-label="Our Fitbit Charge 6 review score" data-dimension48="Our Fitbit Charge 6 review score" data-dimension25="$85.45" href="https://www.amazon.com/gp/aw/d/B0CC62ZG1M/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:916px;"><p class="vanilla-image-block" style="padding-top:119.21%;"><img id="7SyXAycyiGG6YApyTLSkSj" name="Fitbit Charge 6 deal block.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/7SyXAycyiGG6YApyTLSkSj.jpeg" mos="" align="middle" fullscreen="" width="916" height="1092" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Charge 6 tracks sleep using an SpO2 sensor for patterns, displaying total time and scores on-wrist, with deeper stages reserved for Premium app users. In testing, its metrics closely mirrored the more expensive Oura Ring, proving highly impressive and accurate for a fraction of the price. t just under $86, the Fitbit Charge 6 is the Prime Day deal that offers the best value for money. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/reviews/fitbit-charge-6" data-dimension112="84996d86-9b43-47d8-a859-2b2bfa406acb" data-action="Deal Block" data-label="Our Fitbit Charge 6 review score" data-dimension48="Our Fitbit Charge 6 review score" data-dimension25="$85.45"><strong>Fitbit Charge 6 review score</strong></a><strong>:</strong><a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><strong> </strong></a>★★★<br><a href="https://www.amazon.com/dp/B0B4MZWCXK/ref" target="_blank"><strong>User score</strong></a><strong>: </strong>★★★★<strong>½</strong> (6,600+ reviews)<a class="view-deal button" href="https://www.amazon.com/gp/aw/d/B0CC62ZG1M/" target="_blank" rel="nofollow" data-dimension112="84996d86-9b43-47d8-a859-2b2bfa406acb" data-action="Deal Block" data-label="Our Fitbit Charge 6 review score" data-dimension48="Our Fitbit Charge 6 review score" data-dimension25="$85.45">View Deal</a></p></div><div class="product"><a data-dimension112="f84a5f9b-94de-466d-bbb5-bc0d4e896c9b" data-action="Deal Block" data-label="Our Whoop 5.0/MG score" data-dimension48="Our Whoop 5.0/MG score" data-dimension25="$299" href="https://www.amazon.com/WHOOP-Life-12-Month-Membership-Pressure/dp/B0DY2PB7RB/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:679px;"><p class="vanilla-image-block" style="padding-top:113.25%;"><img id="hoKNR4oZqDAFmbNaVfpUYB" name="whoop 5.0" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/hoKNR4oZqDAFmbNaVfpUYB.jpg" mos="" align="middle" fullscreen="" width="679" height="769" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Whoop 5.0/MG is an advanced recovery and sleep tracker designed for athletes. It tracks essential fitness and health metrics, including VO2 max, HRV status, blood oxygen levels, and sleep efficiency scores. Additionally, it delivers live ECG readings and monitors your overnight skin temperature to help optimize your training.It uses a subscription model instead of charging upfront for hardware. This Prime Day, the advanced annual fee is discounted to $299 (down from $359), while the entry-level subscription is $199.</p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker" data-dimension112="f84a5f9b-94de-466d-bbb5-bc0d4e896c9b" data-action="Deal Block" data-label="Our Whoop 5.0/MG score" data-dimension48="Our Whoop 5.0/MG score" data-dimension25="$299"><strong>Whoop 5.0/MG score</strong></a><strong>:</strong><a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><strong> </strong></a>★★★★<br><a href="https://www.amazon.com/WHOOP-Life-12-Month-Membership-Pressure/dp/B0DY2PB7RB/ref" target="_blank"><strong>User score</strong></a><strong>: </strong>★★★★<strong>½</strong> (3,600+ reviews)<a class="view-deal button" href="https://www.amazon.com/WHOOP-Life-12-Month-Membership-Pressure/dp/B0DY2PB7RB/ref" target="_blank" rel="nofollow" data-dimension112="f84a5f9b-94de-466d-bbb5-bc0d4e896c9b" data-action="Deal Block" data-label="Our Whoop 5.0/MG score" data-dimension48="Our Whoop 5.0/MG score" data-dimension25="$299">View Deal</a></p></div><div class="product"><a data-dimension112="c5798819-72e6-4880-aadd-8a2f1bba6829" data-action="Deal Block" data-label="Our Garmin Index Sleep Monitor review score" data-dimension48="Our Garmin Index Sleep Monitor review score" data-dimension25="$130.5" href="https://www.amazon.com/SOMNDEEP-Contactless-Breathing-Non-Wearable-Suggestion/dp/B0GS1F9YPD/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="RWo9DyHcP7kCeRzfRK2UCQ" name="Index Sleep Monitor 4" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RWo9DyHcP7kCeRzfRK2UCQ.jpg" mos="" align="middle" fullscreen="" width="800" height="800" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Garmin Index Sleep Monitor is a screenless, lightweight armband with a week-long battery and smart alarm. This dedicated tracker offers accurate sleep metrics, letting users charge their main smartwatch overnight without missing health data. Down from $169.14 to $130.50, it's one of the more budget-friendly options. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/sleep-tech/garmin-index-sleep-monitor-review" data-dimension112="c5798819-72e6-4880-aadd-8a2f1bba6829" data-action="Deal Block" data-label="Our Garmin Index Sleep Monitor review score" data-dimension48="Our Garmin Index Sleep Monitor review score" data-dimension25="$130.5"><strong>Garmin Index Sleep Monitor review score</strong></a><strong>:</strong><a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><strong> </strong></a>★★★★<br><a href="https://www.amazon.com/Garmin-Monitor-Advanced-Tracking-Recovery/dp/B0FCMW5K7P/ref=sr_1_1" target="_blank"><strong>User score</strong></a><strong>: </strong>★★★(200+ reviews)<a class="view-deal button" href="https://www.amazon.com/SOMNDEEP-Contactless-Breathing-Non-Wearable-Suggestion/dp/B0GS1F9YPD/ref" target="_blank" rel="nofollow" data-dimension112="c5798819-72e6-4880-aadd-8a2f1bba6829" data-action="Deal Block" data-label="Our Garmin Index Sleep Monitor review score" data-dimension48="Our Garmin Index Sleep Monitor review score" data-dimension25="$130.5">View Deal</a></p></div><div class="product"><a data-dimension112="df999393-9749-428a-a766-8cf6ad377b7a" data-action="Deal Block" data-label="Our Apple Watch 11 review score" data-dimension48="Our Apple Watch 11 review score" data-dimension25="$279" href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminum-Always/dp/B0FQFPB851/ref=sr_1_1_sspa" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1264px;"><p class="vanilla-image-block" style="padding-top:118.67%;"><img id="zpTresKtjPzk37YdCtdZd9" name="Apple Watch 11 deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/zpTresKtjPzk37YdCtdZd9.jpg" mos="" align="middle" fullscreen="" width="1264" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Apple Watch features the famous Sleep Score, a metric which scores sleep quality out of 100. The comfortable smart watch breaks down data into three key areas: sleep duration, bedtime consistency, and interruptions. This targeted breakdown helps users identify specific habits, such as irregular schedules, allowing them to make focused improvements to their routine. At Amazon, this 30% discount is selling fast, so Prime Day really is the best time to buy.<br><br><strong>Our </strong><a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-11-review" data-dimension112="df999393-9749-428a-a766-8cf6ad377b7a" data-action="Deal Block" data-label="Our Apple Watch 11 review score" data-dimension48="Our Apple Watch 11 review score" data-dimension25="$279"><strong>Apple Watch 11 review score</strong></a><strong>:</strong><a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><strong> </strong></a>★★★★<br><a href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminum-Always/dp/B0FQFPB851/ref=sr_1_1_sspa" target="_blank"><strong>User score</strong></a><strong>: </strong>★★★<strong>½</strong>(5,000+ reviews)<a class="view-deal button" href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminum-Always/dp/B0FQFPB851/ref=sr_1_1_sspa" target="_blank" rel="nofollow" data-dimension112="df999393-9749-428a-a766-8cf6ad377b7a" data-action="Deal Block" data-label="Our Apple Watch 11 review score" data-dimension48="Our Apple Watch 11 review score" data-dimension25="$279">View Deal</a></p></div><h3 class="article-body__section" id="section-top-5-sleep-tracker-uk-prime-day-deals"><span>Top 5 sleep tracker UK Prime Day deals </span></h3><div class="product"><a data-dimension112="ff0d2fa9-e9ef-4fa6-92d0-2834216877fc" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="£199.99" href="https://www.amazon.co.uk/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WWB3WX/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:898px;"><p class="vanilla-image-block" style="padding-top:86.97%;"><img id="gZJwTTiTSeCKqGf7Yh5Y88" name="image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZJwTTiTSeCKqGf7Yh5Y88.png" mos="" align="middle" fullscreen="" width="898" height="781" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Oura Ring 4 is our top choice for sleep tracking thanks t its accurate data. comfortable and stylish fit, and an intuitive app featuring AI-assisted sleep coaching. The downside is a subscription fee of £5.99 a month, but we think it's worth it as it unlocks key features. (There's a first-month free trial.) Now 43% off at Amazon, this is your chance to save big this summer. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-ring-4-review" data-dimension112="ff0d2fa9-e9ef-4fa6-92d0-2834216877fc" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="£199.99"><strong>Oura Ring 4 review score:</strong></a><strong> </strong>★★★★★<br><a href="https://target.georiot.com/Proxy.ashx?tsid=45724&GR_URL=https%3A%2F%2Famazon.com%2FOura-Ring-Tracking-Wearable-Fitness%2Fdp%2FB0D9WW6RPJ%3Ftag%3Dftr-tomsguide-us-20%26ascsubtag%3Dtomsguide-gb-1099464785133196552-20"><strong>User score</strong></a><strong>: </strong>★★★★ (3,800+ reviews)<a class="view-deal button" href="https://www.amazon.co.uk/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WWB3WX/ref" target="_blank" rel="nofollow" data-dimension112="ff0d2fa9-e9ef-4fa6-92d0-2834216877fc" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="£199.99">View Deal</a></p></div><div class="product"><a data-dimension112="c8c39a3e-62ab-4c0a-9273-24960703ce7b" data-action="Deal Block" data-label="Our Withings Sleep Analyser review score" data-dimension48="Our Withings Sleep Analyser review score" data-dimension25="£88.99" href="https://www.amazon.co.uk/Withings-Sleep-Analyzer-Clinically-Under-Mattress/dp/B084HS3HRD/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="ajAbuA6CSc4Ku3Nh53Jo9H" name="withings_sleep_tracker_square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ajAbuA6CSc4Ku3Nh53Jo9H.jpg" mos="" align="middle" fullscreen="" width="800" height="800" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Unlike every sleep tracker in this hub, the Withings Sleep Analyzer is actually a discreet sleep-tracking mat that slides under your mattress. It's great for anyone who finds wearables irritating or sleep-disrupting, and it even has sleep apnea detection. Now 32% off at Amazon, the Withings is a top pick if you need a sleep tracker under £100. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/sleep-tech/withings-sleep-analyzer-review" data-dimension112="c8c39a3e-62ab-4c0a-9273-24960703ce7b" data-action="Deal Block" data-label="Our Withings Sleep Analyser review score" data-dimension48="Our Withings Sleep Analyser review score" data-dimension25="£88.99"><strong>Withings Sleep Analyser review score</strong></a><strong>: </strong>★★★★<br><a href="https://www.amazon.co.uk/Withings-Sleep-Analyzer-Clinically-Under-Mattress/dp/B084HS3HRD/ref" target="_blank"><strong>User score</strong></a><strong>: </strong>★★★★ (2,300+ reviews)<a class="view-deal button" href="https://www.amazon.co.uk/Withings-Sleep-Analyzer-Clinically-Under-Mattress/dp/B084HS3HRD/ref" target="_blank" rel="nofollow" data-dimension112="c8c39a3e-62ab-4c0a-9273-24960703ce7b" data-action="Deal Block" data-label="Our Withings Sleep Analyser review score" data-dimension48="Our Withings Sleep Analyser review score" data-dimension25="£88.99">View Deal</a></p></div><div class="product"><a data-dimension112="e022af70-5608-4887-b5be-cbaf0d66a6e1" data-action="Deal Block" data-label="Our Fitbit Inspire 3 review score" data-dimension48="Our Fitbit Inspire 3 review score" data-dimension25="£56.99" href="https://www.amazon.co.uk/Fitbit-Activity-6-months-Membership-Readiness/dp/B0B6WRFY5S/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:679px;"><p class="vanilla-image-block" style="padding-top:135.35%;"><img id="kvAhR7mf4oG5Nhd2ebsemS" name="Fitbit Inspire 3" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/kvAhR7mf4oG5Nhd2ebsemS.jpg" mos="" align="middle" fullscreen="" width="679" height="919" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Fitbit accurately tracks sleep onset and nightly wakeups. However, in-depth metrics—including guided sleep programs and the overall nightly sleep score (calculated from heart rate, restlessness, and sleep stages) — are locked behind a Fitbit Premium paywall of £7.99 a month, while free members only see total time asleep.</p><p><strong>Our </strong><a href="https://www.tomsguide.com/reviews/fitbit-inspire-3" data-dimension112="e022af70-5608-4887-b5be-cbaf0d66a6e1" data-action="Deal Block" data-label="Our Fitbit Inspire 3 review score" data-dimension48="Our Fitbit Inspire 3 review score" data-dimension25="£56.99"><strong>Fitbit Inspire 3 review score</strong></a><strong>: </strong>★★★★<strong>½</strong><br><a href="https://www.amazon.co.uk/Fitbit-Activity-6-months-Membership-Readiness/dp/B0B6WRFY5S/ref" target="_blank"><strong>User score</strong></a><strong>: </strong>★★★★<strong>½</strong> (11,000+ reviews)<a class="view-deal button" href="https://www.amazon.co.uk/Fitbit-Activity-6-months-Membership-Readiness/dp/B0B6WRFY5S/ref" target="_blank" rel="nofollow" data-dimension112="e022af70-5608-4887-b5be-cbaf0d66a6e1" data-action="Deal Block" data-label="Our Fitbit Inspire 3 review score" data-dimension48="Our Fitbit Inspire 3 review score" data-dimension25="£56.99">View Deal</a></p></div><div class="product"><a data-dimension112="765010b2-a880-434c-a4f5-d9730656c810" data-action="Deal Block" data-label="sleep apnea alerts" data-dimension48="sleep apnea alerts" data-dimension25="£186.15" href="https://www.amazon.co.uk/Apple-Smartwatch-Midnight-Aluminium-Resistant/dp/B0FQFJSX87/ref=sr_1_7" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:679px;"><p class="vanilla-image-block" style="padding-top:113.25%;"><img id="hoKNR4oZqDAFmbNaVfpUYB" name="whoop 5.0" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/hoKNR4oZqDAFmbNaVfpUYB.jpg" mos="" align="middle" fullscreen="" width="679" height="769" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Like all Apple Watch sleep trackers, the SE 3 provides a daily Sleep Score out of 100, and you can look at your sleep metrics on the intutive Health app. However, the Apple Watch SE 3 is the first model in Apple's entry-level range with <a href="https://www.tomsguide.com/wellness/smartwatches/apple-gets-fda-approval-to-bring-sleep-apnea-notifications-to-apple-watch" data-dimension112="765010b2-a880-434c-a4f5-d9730656c810" data-action="Deal Block" data-label="sleep apnea alerts" data-dimension48="sleep apnea alerts" data-dimension25="£186.15">sleep apnea alerts</a>. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-se-3-review"><strong>Apple Watch SE 3 review score</strong></a><strong>:</strong><a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><strong> </strong></a>★★★★<br><a href="https://www.amazon.co.uk/Apple-Smartwatch-Midnight-Aluminium-Resistant/dp/B0FQFJSX87/ref=sr_1_7"><strong>User score</strong></a><strong>: </strong>★★★★<strong>½</strong> (469+ reviews)<a class="view-deal button" href="https://www.amazon.co.uk/Apple-Smartwatch-Midnight-Aluminium-Resistant/dp/B0FQFJSX87/ref=sr_1_7" target="_blank" rel="nofollow" data-dimension112="765010b2-a880-434c-a4f5-d9730656c810" data-action="Deal Block" data-label="sleep apnea alerts" data-dimension48="sleep apnea alerts" data-dimension25="£186.15">View Deal</a></p></div><div class="product"><a data-dimension112="c5bf573d-a5bd-49b0-b124-ddd58e0cb744" data-action="Deal Block" data-label="Our Garmin Index Sleep Monitor review score" data-dimension48="Our Garmin Index Sleep Monitor review score" data-dimension25="$132.26" href="https://www.amazon.co.uk/Garmin-Monitor-Advanced-Tracking-Recovery/dp/B0FCMWRMHV/ref=sr_1_1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="RWo9DyHcP7kCeRzfRK2UCQ" name="Index Sleep Monitor 4" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RWo9DyHcP7kCeRzfRK2UCQ.jpg" mos="" align="middle" fullscreen="" width="800" height="800" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Garmin Index Sleep Monitor is a rare, screenless upper-arm tracker that provides a comfortable, distraction-free alternative to watches. At just under $133, it precisely captures overnight sleep data at a fraction of the price of some sleep trackers. However, be warned that Bluetooth connectivity can be a problem. <br><br><strong>Our </strong><a href="https://www.tomsguide.com/wellness/sleep-tech/garmin-index-sleep-monitor-review" data-dimension112="c5bf573d-a5bd-49b0-b124-ddd58e0cb744" data-action="Deal Block" data-label="Our Garmin Index Sleep Monitor review score" data-dimension48="Our Garmin Index Sleep Monitor review score" data-dimension25="$132.26"><strong>Garmin Index Sleep Monitor review score</strong></a><strong>:</strong><a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><strong> </strong></a>★★★★<br><a href="https://www.amazon.co.uk/Garmin-Monitor-Advanced-Tracking-Recovery/dp/B0FCMWRMHV/ref=sr_1_1"><strong>User score</strong></a><strong>: </strong>★★★<strong>½</strong> (200+ reviews)<a class="view-deal button" href="https://www.amazon.co.uk/Garmin-Monitor-Advanced-Tracking-Recovery/dp/B0FCMWRMHV/ref=sr_1_1" target="_blank" rel="nofollow" data-dimension112="c5bf573d-a5bd-49b0-b124-ddd58e0cb744" data-action="Deal Block" data-label="Our Garmin Index Sleep Monitor review score" data-dimension48="Our Garmin Index Sleep Monitor review score" data-dimension25="$132.26">View Deal</a></p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’m a smartwatch expert — and these are the 5 best Prime Day deals I actually recommend ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/smartwatches/im-a-smartwatch-expert-and-these-are-the-5-best-prime-day-deals-i-actually-recommend</link>
                                                                            <description>
                            <![CDATA[ Save nearly 50% off these hand-picked smartwatch deals, including my favorite Garmins, Apple Watches, and Fitbits. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2yTDAcsy3rbtLtXnvNFojV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ifNkDfjTiBhiy4T7xaRX6a-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 25 Jun 2026 04:51:35 +0000</pubDate>                                                                                                                                <updated>Thu, 25 Jun 2026 04:53:33 +0000</updated>
                                                                                                                                            <category><![CDATA[Smartwatches]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ifNkDfjTiBhiy4T7xaRX6a-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Garmin Instinct 3 and Apple Watch Series 11]]></media:description>                                                            <media:text><![CDATA[Close-up of the Garmin Instinct 3 and Apple Watch Series 11]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Garmin Instinct 3 and Apple Watch Series 11]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ifNkDfjTiBhiy4T7xaRX6a-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Amazon Prime Day, excuse me, week, is hit or miss when it comes to the <a href="https://www.tomsguide.com/live/news/savings-squad-prime-day-live-blog-amazon-best-buy-walmart">best tech deals</a>, and this time around is no exception. That said, as a smartwatch and wearables expert, I’ve scoured Amazon far and wide to hunt down the five best deals so far.</p><p>For my <a href="https://www.tomsguide.com/wellness/running/im-a-running-noob-doing-my-first-5k-heres-all-the-tech-im-using-to-cross-the-finish-line">beginner runners</a>, the easy-wearing, feature-packed Garmin Forerunner 165 is nearly <a href="https://www.amazon.com/Garmin-Forerunner-Smartwatch-Colorful-Training/dp/B0CT3SGHXL?th=1" target="_blank" rel="nofollow">50% off</a> on Amazon. Meanwhile, the latest Apple Watch Series 11 is <a href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminum-Always/dp/B0FQFL8PZ5/" target="_blank" rel="nofollow">on sale for 30% off.</a></p><p>Find all details on these deals and my other favorites below.</p><h3 class="article-body__section" id="section-quick-links"><span>Quick Links</span></h3><ul><li><strong>Fitbit Inspire 3: </strong><a href="https://www.amazon.com/Fitbit-Management-Intensity-Tracking-Midnight/dp/B0B5F9SZW7/" target="_blank" rel="nofollow"><strong>was $99 now $66 @ Amazon</strong></a></li><li><strong>Fitbit Charge 6: was </strong><a href="https://www.amazon.com/Fitbit-Charge-Fitness-Tracker-Google/dp/B0CC62ZG1M/" target="_blank" rel="nofollow"><strong>$159 now $85 @ Amazon</strong></a></li><li><strong>Garmin Forerunner 165: </strong><a href="https://www.amazon.com/Garmin-Forerunner-Smartwatch-Colorful-Training/dp/B0CT3SGHXL?th=1" target="_blank" rel="nofollow"><strong>was $249 now $129 @ Amazon</strong></a></li><li><strong>Apple Watch Series 11: </strong><a href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminum-Always/dp/B0FQFL8PZ5/" target="_blank" rel="nofollow"><strong>was $399 now $279 @ Amazon</strong></a></li><li><strong>Garmin Instinct 3: </strong><a href="https://www.amazon.com/Garmin-Instinct%C2%AE-Smartwatch-Metal-Reinforced-Flashlight/dp/B0DSC8JF59/" target="_blank" rel="nofollow"><strong>was $449 now $299 @ Amazon</strong></a></li></ul><h3 class="article-body__section" id="section-best-prime-day-2026-smartwatch-deals"><span>Best Prime Day 2026 smartwatch deals </span></h3><div class="product"><a data-dimension112="7e5e3c2c-86fe-4fdf-ab9e-2b09bdb9897a" data-action="Deal Block" data-label="Fitbit Inspire 3" data-dimension48="Fitbit Inspire 3" data-dimension25="$66" href="https://www.amazon.com/Fitbit-Management-Intensity-Tracking-Midnight/dp/B0B5F9SZW7/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:95.22%;"><img id="wBB4ZfJMwwzqWzRfDKHY4d" name="Inspire3-comp" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/wBB4ZfJMwwzqWzRfDKHY4d.jpg" mos="" align="middle" fullscreen="" width="858" height="817" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3" data-dimension112="7e5e3c2c-86fe-4fdf-ab9e-2b09bdb9897a" data-action="Deal Block" data-label="Fitbit Inspire 3" data-dimension48="Fitbit Inspire 3" data-dimension25="$66">Fitbit Inspire 3</a> is one of the <a href="https://www.tomsguide.com/best-picks/best-cheap-fitness-trackers">best fitness wearables</a> for folks who don’t like adding bulk to the wrist. Sure, it’s not as slender as the newer <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a>, but it does offer a small AMOLED screen, support for most common workout types, mirrored smartphone notifications, and detailed sleep insights. All for just $66.<a class="view-deal button" href="https://www.amazon.com/Fitbit-Management-Intensity-Tracking-Midnight/dp/B0B5F9SZW7/" target="_blank" rel="nofollow" data-dimension112="7e5e3c2c-86fe-4fdf-ab9e-2b09bdb9897a" data-action="Deal Block" data-label="Fitbit Inspire 3" data-dimension48="Fitbit Inspire 3" data-dimension25="$66">View Deal</a></p></div><div class="product"><a data-dimension112="e1c7fd44-01bc-4091-bd3d-c787f6796fc2" data-action="Deal Block" data-label="Fitbit Charge 6" data-dimension48="Fitbit Charge 6" data-dimension25="$85" href="https://www.amazon.com/Fitbit-Charge-Fitness-Tracker-Google/dp/B0CC62ZG1M/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="XJdcnPAkGqaCLqcmrHCQib" name="Fitbit Charge 6.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/XJdcnPAkGqaCLqcmrHCQib.jpg" mos="" align="middle" fullscreen="" width="1200" height="1200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/reviews/fitbit-charge-6" data-dimension112="e1c7fd44-01bc-4091-bd3d-c787f6796fc2" data-action="Deal Block" data-label="Fitbit Charge 6" data-dimension48="Fitbit Charge 6" data-dimension25="$85">Fitbit Charge 6 </a>is the most well-rounded fitness tracker in 2026, boasting onboard GPS, a bright, albeit small display, support for Google Maps and Google Wallet, nearly a week of battery, and mirrored notifications, all packed into a sleek, easy-wearing device. <a class="view-deal button" href="https://www.amazon.com/Fitbit-Charge-Fitness-Tracker-Google/dp/B0CC62ZG1M/" target="_blank" rel="nofollow" data-dimension112="e1c7fd44-01bc-4091-bd3d-c787f6796fc2" data-action="Deal Block" data-label="Fitbit Charge 6" data-dimension48="Fitbit Charge 6" data-dimension25="$85">View Deal</a></p></div><div class="product"><a data-dimension112="0a319c0e-fdf5-402f-8122-6950af729d59" data-action="Deal Block" data-label="Garmin Forerunner 165" data-dimension48="Garmin Forerunner 165" data-dimension25="$129" href="https://www.amazon.com/Garmin-Forerunner-Smartwatch-Colorful-Training/dp/B0CT3SGHXL?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:675px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="7GxV2AK4CUU5iZBg96GNiF" name="Garmin Forerunner 165 sq" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/7GxV2AK4CUU5iZBg96GNiF.jpg" mos="" align="middle" fullscreen="" width="675" height="675" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/wellness/smartwatches/garmin-forerunner-165" data-dimension112="0a319c0e-fdf5-402f-8122-6950af729d59" data-action="Deal Block" data-label="Garmin Forerunner 165" data-dimension48="Garmin Forerunner 165" data-dimension25="$129">Garmin Forerunner 165</a> is an excellent choice for folks who are just getting into running and looking to improve their speed, form, and endurance. Comfortable, lightweight, and easy to read in bright daylight, the Forerunner 165 offers ample physical controls, excellent battery life, reliable GPS, accurate heart rate tracking, and impressive sleep/workout recovery insights. <a class="view-deal button" href="https://www.amazon.com/Garmin-Forerunner-Smartwatch-Colorful-Training/dp/B0CT3SGHXL?th=1" target="_blank" rel="nofollow" data-dimension112="0a319c0e-fdf5-402f-8122-6950af729d59" data-action="Deal Block" data-label="Garmin Forerunner 165" data-dimension48="Garmin Forerunner 165" data-dimension25="$129">View Deal</a></p></div><div class="product"><a data-dimension112="afd8b980-25b6-4a68-befe-fd07526be52c" data-action="Deal Block" data-label="Apple Watch 11" data-dimension48="Apple Watch 11" data-dimension25="$279" href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminum-Always/dp/B0FQFL8PZ5/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1264px;"><p class="vanilla-image-block" style="padding-top:118.67%;"><img id="zpTresKtjPzk37YdCtdZd9" name="Apple Watch 11 deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/zpTresKtjPzk37YdCtdZd9.jpg" mos="" align="middle" fullscreen="" width="1264" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-11-review" data-dimension112="afd8b980-25b6-4a68-befe-fd07526be52c" data-action="Deal Block" data-label="Apple Watch 11" data-dimension48="Apple Watch 11" data-dimension25="$279">Apple Watch 11</a> is one of the <a href="https://www.tomsguide.com/wellness/smartwatches/best-smartwatch">best smartwatches</a> in 2026, especially if you want a well-rounded wearable packed to the brim with smart features, safety tools, health and fitness insights, and apps galore. I’m an especially big fan of the Series 11’s support for <a href="https://www.tomsguide.com/wellness/smartwatches/from-fall-detection-to-hypertension-10-apple-watch-innovations-that-changed-the-game#section-2025-hypertension-alerts">Hypertension Alerts</a>, something you’ll find on few other smartwatches. <a class="view-deal button" href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminum-Always/dp/B0FQFL8PZ5/" target="_blank" rel="nofollow" data-dimension112="afd8b980-25b6-4a68-befe-fd07526be52c" data-action="Deal Block" data-label="Apple Watch 11" data-dimension48="Apple Watch 11" data-dimension25="$279">View Deal</a></p></div><div class="product"><a data-dimension112="93b81301-1d88-4f53-8f48-8b99f556cd69" data-action="Deal Block" data-label="enormous fan" data-dimension48="enormous fan" data-dimension25="$229" href="https://www.amazon.com/Garmin-Instinct%C2%AE-Smartwatch-Metal-Reinforced-Flashlight/dp/B0DSC8JF59/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1392px;"><p class="vanilla-image-block" style="padding-top:105.17%;"><img id="ftM9z5bRyFZM4QgKoEHhiZ" name="Screenshot 2025-01-21 at 4.21.06 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ftM9z5bRyFZM4QgKoEHhiZ.png" mos="" align="middle" fullscreen="" width="1392" height="1464" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>I’m an <a href="https://www.tomsguide.com/wellness/smartwatches/im-a-smartwatch-expert-and-this-is-the-one-garmin-deal-im-recommending-most-on-prime-day" data-dimension112="93b81301-1d88-4f53-8f48-8b99f556cd69" data-action="Deal Block" data-label="enormous fan" data-dimension48="enormous fan" data-dimension25="$229">enormous fan</a> of the <a href="https://www.tomsguide.com/Garmin-Instinct-3-review">Garmin Instinct 3</a>. In fact, it’s my go-to wearable anytime I’m embarking on an outdoor adventure. Built like a tank with weeks of battery life and 100 meters of water resistance, the Instinct 3 is just as tough as you are. It also boasts rock-solid GPS location and elevation tracking performance, and sports a handy LED flashlight built into the case. <a class="view-deal button" href="https://www.amazon.com/Garmin-Instinct%C2%AE-Smartwatch-Metal-Reinforced-Flashlight/dp/B0DSC8JF59/" target="_blank" rel="nofollow" data-dimension112="93b81301-1d88-4f53-8f48-8b99f556cd69" data-action="Deal Block" data-label="enormous fan" data-dimension48="enormous fan" data-dimension25="$229">View Deal</a></p></div><h3 class="article-body__section" id="section-we-re-tracking-all-the-best-prime-day-smartwatch-deals"><span>We're tracking all the best Prime Day smartwatch deals</span></h3><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=Wearables+%26+Fitness+Tech&price=60_&min_discount_ratio=0.95&offer_type=all&rows=4&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&show_countdown=true&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right {      right: 0;      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.previousElementSibling.scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>\n        \x3C/div>\n      \x3C/div>\n    \x3C/div>          \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: q,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                 if(!r) return;                                  if (typeof trackHawkEvent !== 'undefined') {                     trackHawkEvent({                         clickType: "CC",                         widgetId: this.widgetId,                         productCategoryName: "deals",                         zeroBasedProductIndexOrNull: null,                         totalDealsOrProducts: null,                         areaClicked: "Category Roundel",                         revenueId: this.revenueId,                         isoCurrencyCode: typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD',                         queryName: r.label,                         widgetTypeName: this.widgetTypeName                     });                 }                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          } else {             this.displayLimit += (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const encodedTag = encodeURIComponent(this.activeDealTag.toLowerCase().replace(/\s+/g, '-'));             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    if (this.rowsSelect && this.rowsSelect.value) {            url.searchParams.append('rows', this.rowsSelect.value);          } else {             url.searchParams.append('rows', '12'); // default          }          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = 12;          if (this.rowsSelect && this.rowsSelect.value) {            rowLimit = parseInt(this.rowsSelect.value, 10) || 12;          }          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map(v => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              return `                \x3Ca href="${this.escapeHTML(linkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item">                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let existingChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             if (this.getViewMode() === 'carousel') {                 if (!existingChevron) {                     gridWrapper.insertAdjacentHTML('beforeend', '\n                 \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.previousElementSibling.scrollBy({left: 200, behavior: \'smooth\'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>');                 }             } else {                 if (existingChevron) {                     existingChevron.remove();                 }             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12);                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');            if (!this.processArticleFired) {                  this.processArticleFired = true;                  document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));               }            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I test sleep trackers for a living and these are the 4 best Prime Day deals on the Oura Ring, Whoop, Fitbit and more ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/sleep-tech/i-test-sleep-trackers-for-a-living-these-are-the-most-top-rated-prime-day-deals-on-oura-ring-whoop-fitbit-and-more</link>
                                                                            <description>
                            <![CDATA[ I've spent the year finding the most top-rated sleep trackers from Oura, Whoop, and Fitbit. Trust me, these are the Amazon Prime Day deals you don't want to miss... ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nEGJiA4crTVxwVxovvqvZC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/9iXdoRJgdgYtKm5BayMHyG-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 24 Jun 2026 16:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Sleep Tech]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Sleep]]></category>
                                                                                                                    <dc:creator><![CDATA[ Eve Davies ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/MyvW9VLArpyJoqfRp3GDDb.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/9iXdoRJgdgYtKm5BayMHyG-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[A collage of Tom&#039;s Guide sleep tech reviewer wearing sleep trackers including the Oura Ring 4 (top left), the Whoop MG (top right), placing the Withings Sleep Analyser under mattress (bottom left), the Fitbit Versa 4 on woman&#039;s wrist (bottom right). ]]></media:description>                                                            <media:text><![CDATA[A collage of Tom&#039;s Guide sleep tech reviewer wearing sleep trackers including the Oura Ring 4 (top left), the Whoop MG (top right), placing the Withings Sleep Analyser under mattress (bottom left), the Fitbit Versa 4 on woman&#039;s wrist (bottom right). ]]></media:text>
                                <media:title type="plain"><![CDATA[A collage of Tom&#039;s Guide sleep tech reviewer wearing sleep trackers including the Oura Ring 4 (top left), the Whoop MG (top right), placing the Withings Sleep Analyser under mattress (bottom left), the Fitbit Versa 4 on woman&#039;s wrist (bottom right). ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/9iXdoRJgdgYtKm5BayMHyG-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Amazon Prime Day is a great time to shop tech. While not all gadgets are good news for sleep (your smartphone could be what's robbing you of quality ZZZs), wearable tech from trusted brands certainly has a place in the bedroom. </p><p>Right now, you can <a href="https://www.amazon.com/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WVYHL6/ref" target="_blank"><strong>save 48% on the Oura Ring 4 at Amazon</strong></a> and <a href="https://www.amazon.com/dp/B0B4MZWCXK/ref" target="_blank"><strong>take 33% off the Fitbit Versa 4 at Amazon</strong></a>. These devices can help you learn more about your sleep habits and supercharge your rest this summer. </p><p>I've spent the past two years on the hunt for the <a href="https://www.tomsguide.com/wellness/sleep-tech/best-sleep-tracker">best sleep trackers</a> on the market, putting various watches, rings, armbands, and mats through our sleep tracker testing methodology, and recording their sale prices along the way. </p><p>That means a) I know what design elements, software, and sensors make a good sleep tracker, and b) I can spot a worthy deal when I see one. So, here I'm zoning in on the best tracker deals in current<a href="https://www.tomsguide.com/wellness/mattresses/amazon-prime-day-mattress-deals#section-best-amazon-prime-day-sleep-tech-deals-2026"> Amazon Prime Day sleep sales</a> on both sides of the Atlantic right now.</p><h2 id="don-t-forget-your-prime-membership-2">Don't forget your Prime Membership...</h2><div class="product"><a data-dimension112="04f4cd62-5e03-410e-bcd0-39e63eedf558" data-action="Deal Block" data-label="Amazon is offering a free 30-day trial of Amazon Prime this week. As soon as you sign up, you'll get access to this year's Prime Day discounts on thousands of items, from mattresses to air fryers. Prime memberships (from $14.99 a month) also include access to Prime Video, Prime Reading, Prime Music, Amazon photo storage, plus free shipping." data-dimension48="Amazon is offering a free 30-day trial of Amazon Prime this week. As soon as you sign up, you'll get access to this year's Prime Day discounts on thousands of items, from mattresses to air fryers. Prime memberships (from $14.99 a month) also include access to Prime Video, Prime Reading, Prime Music, Amazon photo storage, plus free shipping." data-dimension25="$0" href="https://www.amazon.com/amazonprime" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:57.15%;"><img id="k4vqt3qVs98dCVuWg7KzWJ" name="Amazon Prime logo.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/k4vqt3qVs98dCVuWg7KzWJ.jpg" mos="" align="middle" fullscreen="" width="4000" height="2286" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Amazon is offering a free 30-day trial of Amazon Prime this week. As soon as you sign up, you'll get access to this year's Prime Day discounts on thousands of items, from mattresses to air fryers. Prime memberships (from $14.99 a month) also include access to Prime Video, Prime Reading, Prime Music, Amazon photo storage, plus free shipping.<a class="view-deal button" href="https://www.amazon.com/amazonprime" target="_blank" rel="nofollow" data-dimension112="04f4cd62-5e03-410e-bcd0-39e63eedf558" data-action="Deal Block" data-label="Amazon is offering a free 30-day trial of Amazon Prime this week. As soon as you sign up, you'll get access to this year's Prime Day discounts on thousands of items, from mattresses to air fryers. Prime memberships (from $14.99 a month) also include access to Prime Video, Prime Reading, Prime Music, Amazon photo storage, plus free shipping." data-dimension48="Amazon is offering a free 30-day trial of Amazon Prime this week. As soon as you sign up, you'll get access to this year's Prime Day discounts on thousands of items, from mattresses to air fryers. Prime memberships (from $14.99 a month) also include access to Prime Video, Prime Reading, Prime Music, Amazon photo storage, plus free shipping." data-dimension25="$0">View Deal</a></p></div><h3 class="article-body__section" id="section-top-4-sleep-tracker-us-prime-day-deals"><span>Top 4 sleep tracker US Prime Day deals </span></h3><p>From 48% off the world's top-rated smart ring (need we mention, it's the Oura Ring) to $38 savings on an up-and-coming, contact-free sleep monitor, here are the deals I recommend checking out if you're in America...</p><div class="product"><a data-dimension112="a9e24260-6499-4626-936d-f29d76cfdb98" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="$226" href="https://www.amazon.com/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WVYHL6/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:898px;"><p class="vanilla-image-block" style="padding-top:86.97%;"><img id="gZJwTTiTSeCKqGf7Yh5Y88" name="image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZJwTTiTSeCKqGf7Yh5Y88.png" mos="" align="middle" fullscreen="" width="898" height="781" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>You simply won't get a more accurate, more reliable sleep tracker than the Oura Ring 4. Although it's recently had an upgrade with the launch of the Ring 5, the Ring 4 is the one to shop with up to 48% off this Prime Day. That cuts the black, brushed silver, and stealth colorways to $226 (from $399) and the gold ring to $259 from $499. Meanwhile, the Ring 5 sits at MSRP of $399. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-ring-4-review" data-dimension112="a9e24260-6499-4626-936d-f29d76cfdb98" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="$226"><strong>Oura Ring 4 review score:</strong></a><strong> </strong>★★★★★<br><a href="https://target.georiot.com/Proxy.ashx?tsid=45724&GR_URL=https%3A%2F%2Famazon.com%2FOura-Ring-Tracking-Wearable-Fitness%2Fdp%2FB0D9WW6RPJ%3Ftag%3Dftr-tomsguide-us-20%26ascsubtag%3Dtomsguide-gb-1099464785133196552-20"><strong>User score</strong></a><strong>: </strong>★★★★ (3,800+ reviews)<a class="view-deal button" href="https://www.amazon.com/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WVYHL6/ref" target="_blank" rel="nofollow" data-dimension112="a9e24260-6499-4626-936d-f29d76cfdb98" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="$226">View Deal</a></p></div><div class="product"><a data-dimension112="84996d86-9b43-47d8-a859-2b2bfa406acb" data-action="Deal Block" data-label="Our Fitbit Versa 4 review score" data-dimension48="Our Fitbit Versa 4 review score" data-dimension25="$134.95" href="https://www.amazon.com/dp/B0B4MZWCXK/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1509px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="EDKiptmAVfXg4nKuhNQAdA" name="fitbit versa 4 deal block.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/EDKiptmAVfXg4nKuhNQAdA.jpg" mos="" align="middle" fullscreen="" width="1509" height="1509" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Fitbit can be described as the OG of sleep tracking and the brand remains the place to go if you want a health tracker for great value. The Fitbit Versa 4 Smartwatch has plenty of features geared towards sleep including sleep stage data, a smart alarm, do not disturb mode, and a monthly sleep profile that helps you understand your sleep tendencies. This Prime Day, Amazon are knocking a generous 33% off bringing the price of this well-rounded sleep and activity tracker down to $134.95 from $199.95.  </p><p><strong>Our </strong><a href="https://www.tomsguide.com/reviews/fitbit-versa-4" data-dimension112="84996d86-9b43-47d8-a859-2b2bfa406acb" data-action="Deal Block" data-label="Our Fitbit Versa 4 review score" data-dimension48="Our Fitbit Versa 4 review score" data-dimension25="$134.95"><strong>Fitbit Versa 4 review score</strong></a><strong>:</strong><a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><strong> </strong></a>★★★<br><a href="https://www.amazon.com/dp/B0B4MZWCXK/ref" target="_blank"><strong>User score</strong></a><strong>: </strong>★★★★<strong>½</strong> (6,600+ reviews)<a class="view-deal button" href="https://www.amazon.com/dp/B0B4MZWCXK/ref" target="_blank" rel="nofollow" data-dimension112="84996d86-9b43-47d8-a859-2b2bfa406acb" data-action="Deal Block" data-label="Our Fitbit Versa 4 review score" data-dimension48="Our Fitbit Versa 4 review score" data-dimension25="$134.95">View Deal</a></p></div><div class="product"><a data-dimension112="f84a5f9b-94de-466d-bbb5-bc0d4e896c9b" data-action="Deal Block" data-label="annual subscription fee" data-dimension48="annual subscription fee" data-dimension25="$299" href="https://www.amazon.com/WHOOP-Life-12-Month-Membership-Pressure/dp/B0DY2PB7RB/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:679px;"><p class="vanilla-image-block" style="padding-top:113.25%;"><img id="hoKNR4oZqDAFmbNaVfpUYB" name="whoop 5.0" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/hoKNR4oZqDAFmbNaVfpUYB.jpg" mos="" align="middle" fullscreen="" width="679" height="769" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Whoop 5.0/MG is our recommended sleep tracker for athletes looking to get a handle on and boost their recovery between training sessions. It's loaded with important fitness metrics from VO2 max readings to HRV status, blood oxygen levels, and sleep efficiency scores, alongside delivering ECG readings and overnight skin temperature. At Whoop, instead of paying for the hardware, you pay an <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-and-whoop-mg-just-announced-heres-everything-you-need-to-know" data-dimension112="f84a5f9b-94de-466d-bbb5-bc0d4e896c9b" data-action="Deal Block" data-label="annual subscription fee" data-dimension48="annual subscription fee" data-dimension25="$299">annual subscription fee</a> to use the device. The most advanced payment plan is on sale this Prime Day, with the annual fee down to $299 from $359; expect to pay $199 for the entry-level subscription. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker"><strong>Whoop 5.0/MG score</strong></a><strong>:</strong><a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><strong> </strong></a>★★★★<br><a href="https://www.amazon.com/WHOOP-Life-12-Month-Membership-Pressure/dp/B0DY2PB7RB/ref" target="_blank"><strong>User score</strong></a><strong>: </strong>★★★★<strong>½</strong> (3,600+ reviews)<a class="view-deal button" href="https://www.amazon.com/WHOOP-Life-12-Month-Membership-Pressure/dp/B0DY2PB7RB/ref" target="_blank" rel="nofollow" data-dimension112="f84a5f9b-94de-466d-bbb5-bc0d4e896c9b" data-action="Deal Block" data-label="annual subscription fee" data-dimension48="annual subscription fee" data-dimension25="$299">View Deal</a></p></div><div class="product"><a data-dimension112="c5798819-72e6-4880-aadd-8a2f1bba6829" data-action="Deal Block" data-label="User score" data-dimension48="User score" data-dimension25="$130.5" href="https://www.amazon.com/SOMNDEEP-Contactless-Breathing-Non-Wearable-Suggestion/dp/B0GS1F9YPD/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1080px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="yH9qB8btQTsjgVhRzsaEuL" name="SOMNDEEP sleep tracker" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/yH9qB8btQTsjgVhRzsaEuL.jpg" mos="" align="middle" fullscreen="" width="1080" height="1080" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>If, understandably, you're not a fan of wearing smart watch or ring to bed, the SOMNDEEP sleep tracker is the perfect alternative. This subtle device sits at your bedside, cleverly detecting your heart rate, breathing patterns, sleep stages, body motion, and nighttime waking. This Prime Day, there's 17% off saving you over $29. Rest assured, the few customers who have given reviews say it was "installed in no time" and is "incredibly accurate."</p><p><a href="https://www.amazon.com/SOMNDEEP-Contactless-Breathing-Non-Wearable-Suggestion/dp/B0GS1F9YPD/ref" target="_blank" data-dimension112="c5798819-72e6-4880-aadd-8a2f1bba6829" data-action="Deal Block" data-label="User score" data-dimension48="User score" data-dimension25="$130.5"><strong>User score</strong></a><strong>: </strong>★★★★★ (2 reviews)<a class="view-deal button" href="https://www.amazon.com/SOMNDEEP-Contactless-Breathing-Non-Wearable-Suggestion/dp/B0GS1F9YPD/ref" target="_blank" rel="nofollow" data-dimension112="c5798819-72e6-4880-aadd-8a2f1bba6829" data-action="Deal Block" data-label="User score" data-dimension48="User score" data-dimension25="$130.5">View Deal</a></p></div><h3 class="article-body__section" id="section-top-4-sleep-tracker-uk-prime-day-deals"><span>Top 4 sleep tracker UK Prime Day deals </span></h3><p>For UK folk, the best Prime Day deals feature Oura (shock), Fitbit and Withings. Read on for all the deets... </p><div class="product"><a data-dimension112="ff0d2fa9-e9ef-4fa6-92d0-2834216877fc" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="£232" href="https://www.amazon.co.uk/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WWB3WX/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:898px;"><p class="vanilla-image-block" style="padding-top:86.97%;"><img id="gZJwTTiTSeCKqGf7Yh5Y88" name="image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/gZJwTTiTSeCKqGf7Yh5Y88.png" mos="" align="middle" fullscreen="" width="898" height="781" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>No surprise here: The Oura Ring 4 is also great value in the UK this Prime Day. There's 34% off silver, black, and stealth models, cutting the cost to £232 from £349, and 46% off the gold colorway which now sits at £267 (was £499) —that's outstanding value if I've ever seen it. For the price, plus a £5.99 monthly fee, you get reliable sleep data and personalised sleep coaching via Oura's AI Advisor. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-ring-4-review" data-dimension112="ff0d2fa9-e9ef-4fa6-92d0-2834216877fc" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="£232"><strong>Oura Ring 4 review score:</strong></a><strong> </strong>★★★★★<br><a href="https://target.georiot.com/Proxy.ashx?tsid=45724&GR_URL=https%3A%2F%2Famazon.com%2FOura-Ring-Tracking-Wearable-Fitness%2Fdp%2FB0D9WW6RPJ%3Ftag%3Dftr-tomsguide-us-20%26ascsubtag%3Dtomsguide-gb-1099464785133196552-20"><strong>User score</strong></a><strong>: </strong>★★★★ (3,800+ reviews)<a class="view-deal button" href="https://www.amazon.co.uk/Oura-Ring-Tracking-Wearable-Fitness/dp/B0D9WWB3WX/ref" target="_blank" rel="nofollow" data-dimension112="ff0d2fa9-e9ef-4fa6-92d0-2834216877fc" data-action="Deal Block" data-label="Our Oura Ring 4 review score:" data-dimension48="Our Oura Ring 4 review score:" data-dimension25="£232">View Deal</a></p></div><div class="product"><a data-dimension112="c8c39a3e-62ab-4c0a-9273-24960703ce7b" data-action="Deal Block" data-label="Our Withings Sleep Analyser review score" data-dimension48="Our Withings Sleep Analyser review score" data-dimension25="£76.5" href="https://www.amazon.co.uk/Withings-Sleep-Analyzer-Clinically-Under-Mattress/dp/B084HS3HRD/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:800px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="ajAbuA6CSc4Ku3Nh53Jo9H" name="withings_sleep_tracker_square" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/ajAbuA6CSc4Ku3Nh53Jo9H.jpg" mos="" align="middle" fullscreen="" width="800" height="800" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>This is a deal you don't want to miss. We rarely see money off at Withings and the current Prime Day deal knocks the Sleep Analyser to nigh on its lowest-ever price at £76.50 from £129.95 (£74.96 is the price to beat, so there's hardly anything in it). In short, if you want a discreet tracker that needn't be in contact with your body overnight, or clutter up your bedside, the Withings Sleep Analyser is a great pick. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/sleep-tech/withings-sleep-analyzer-review" data-dimension112="c8c39a3e-62ab-4c0a-9273-24960703ce7b" data-action="Deal Block" data-label="Our Withings Sleep Analyser review score" data-dimension48="Our Withings Sleep Analyser review score" data-dimension25="£76.5"><strong>Withings Sleep Analyser review score</strong></a><strong>: </strong>★★★★<br><a href="https://www.amazon.co.uk/Withings-Sleep-Analyzer-Clinically-Under-Mattress/dp/B084HS3HRD/ref" target="_blank"><strong>User score</strong></a><strong>: </strong>★★★★ (2,300+ reviews)<a class="view-deal button" href="https://www.amazon.co.uk/Withings-Sleep-Analyzer-Clinically-Under-Mattress/dp/B084HS3HRD/ref" target="_blank" rel="nofollow" data-dimension112="c8c39a3e-62ab-4c0a-9273-24960703ce7b" data-action="Deal Block" data-label="Our Withings Sleep Analyser review score" data-dimension48="Our Withings Sleep Analyser review score" data-dimension25="£76.5">View Deal</a></p></div><div class="product"><a data-dimension112="e022af70-5608-4887-b5be-cbaf0d66a6e1" data-action="Deal Block" data-label="Our Fitbit Inspire 3 review score" data-dimension48="Our Fitbit Inspire 3 review score" data-dimension25="£56.99" href="https://www.amazon.co.uk/Fitbit-Activity-6-months-Membership-Readiness/dp/B0B6WRFY5S/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:95.22%;"><img id="wBB4ZfJMwwzqWzRfDKHY4d" name="Inspire3-comp" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/wBB4ZfJMwwzqWzRfDKHY4d.jpg" mos="" align="middle" fullscreen="" width="858" height="817" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Honestly, the wearable deals are popping off this Prime Day. The already great value Fitbit Inspire 3, which I tend to recommend to people looking for a basic, entry-level sleep tracker, is 33% off bringing the price to just $56.99 from $84.99. That doesn't mean it falls short in reliability, our reviewer says it accurately predicted the time she fell asleep and woke up at night, differentiating sleep time from laying in bed on her phone. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/reviews/fitbit-inspire-3" data-dimension112="e022af70-5608-4887-b5be-cbaf0d66a6e1" data-action="Deal Block" data-label="Our Fitbit Inspire 3 review score" data-dimension48="Our Fitbit Inspire 3 review score" data-dimension25="£56.99"><strong>Fitbit Inspire 3 review score</strong></a><strong>: </strong>★★★★<strong>½</strong><br><a href="https://www.amazon.co.uk/Fitbit-Activity-6-months-Membership-Readiness/dp/B0B6WRFY5S/ref" target="_blank"><strong>User score</strong></a><strong>: </strong>★★★★<strong>½</strong> (11,000+ reviews)<a class="view-deal button" href="https://www.amazon.co.uk/Fitbit-Activity-6-months-Membership-Readiness/dp/B0B6WRFY5S/ref" target="_blank" rel="nofollow" data-dimension112="e022af70-5608-4887-b5be-cbaf0d66a6e1" data-action="Deal Block" data-label="Our Fitbit Inspire 3 review score" data-dimension48="Our Fitbit Inspire 3 review score" data-dimension25="£56.99">View Deal</a></p></div><div class="product"><a data-dimension112="765010b2-a880-434c-a4f5-d9730656c810" data-action="Deal Block" data-label="Our Whoop 5.0/MG score" data-dimension48="Our Whoop 5.0/MG score" data-dimension25="£189" href="https://www.amazon.co.uk/WHOOP-Peak-Membership-Personalized-Healthspan-Black/dp/B0DY2SWV16/ref" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:679px;"><p class="vanilla-image-block" style="padding-top:113.25%;"><img id="hoKNR4oZqDAFmbNaVfpUYB" name="whoop 5.0" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/hoKNR4oZqDAFmbNaVfpUYB.jpg" mos="" align="middle" fullscreen="" width="679" height="769" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Here's a deal to give a whoop about: 17% off the Peak annual plan at Whoop. That cuts the cost of Whoop's mid-level subscription to £189 from £229. For the serious athletes among us, the Whoop 5.0/MG screen-less wristband is the most in depth, scientifically-backed sleep and recovery tracker you can buy. It may be a commercial device, but it's worn by elite athletes from Christiano Ronaldo to the Ferrari Formula One team who value the personalised sleep, strain, and recovery insights it delivers. </p><p><strong>Our </strong><a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker" data-dimension112="765010b2-a880-434c-a4f5-d9730656c810" data-action="Deal Block" data-label="Our Whoop 5.0/MG score" data-dimension48="Our Whoop 5.0/MG score" data-dimension25="£189"><strong>Whoop 5.0/MG score</strong></a><strong>:</strong><a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><strong> </strong></a>★★★★<br><a href="https://www.amazon.com/WHOOP-Life-12-Month-Membership-Pressure/dp/B0DY2PB7RB/ref"><strong>User score</strong></a><strong>: </strong>★★★★<strong>½</strong> (3,600+ reviews)<a class="view-deal button" href="https://www.amazon.co.uk/WHOOP-Peak-Membership-Personalized-Healthspan-Black/dp/B0DY2SWV16/ref" target="_blank" rel="nofollow" data-dimension112="765010b2-a880-434c-a4f5-d9730656c810" data-action="Deal Block" data-label="Our Whoop 5.0/MG score" data-dimension48="Our Whoop 5.0/MG score" data-dimension25="£189">View Deal</a></p></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I test wearable tech for a living — and my favorite fitness tracker is nearly 40% off right now ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness/i-test-wearable-tech-for-a-living-and-my-favorite-fitness-tracker-is-nearly-40-percent-off-right-now</link>
                                                                            <description>
                            <![CDATA[ The Fitbit Charge 6 is one of the best fitness trackers I've ever tested, and now is a great time to buy one, thanks to this epic price reduction. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">N9DRR8bTcmMGc4qeT8h6qH</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/apvvNRr9FpJt4KdmJD4j5Q-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 18 Jun 2026 18:23:20 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/apvvNRr9FpJt4KdmJD4j5Q-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Fitbit Charge 6 on an orange strap next to a Tom&#039;s Guide deals badge]]></media:description>                                                            <media:text><![CDATA[Close-up of the Fitbit Charge 6 on an orange strap next to a Tom&#039;s Guide deals badge]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Fitbit Charge 6 on an orange strap next to a Tom&#039;s Guide deals badge]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/apvvNRr9FpJt4KdmJD4j5Q-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The new<a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review"> Fitbit Air</a> may be the talk of the town, but the Fitbit Charge 6 is actually a more competent health and fitness tracker thanks to onboard GPS and support for ECG readings. Better yet, it’s currently selling for the same price as the Fitbit Air. </p><p>The Fitbit Charge 6 is roughly the same size as the Fitbit Air but features a small AMOLED touchscreen. Normally priced at $159, you can score the <a href="https://www.amazon.com/dp/B0CC62ZG1M" target="_blank" rel="nofollow">Fitbit Charge 6 for just $99 via Amazon</a> right now. That’s nearly 40% off retail and one of my favorite early <a href="https://www.tomsguide.com/news/best-prime-day-deals-and-sales">Prime Day deals</a>.</p><h3 class="article-body__section" id="section-epic-fitbit-charge-6-deal"><span>Epic Fitbit Charge 6 deal</span></h3><div class="product"><a data-dimension112="7e5e3c2c-86fe-4fdf-ab9e-2b09bdb9897a" data-action="Deal Block" data-label="The Fitbit Charge 6 is one of the most well-rounded fitness trackers you can buy in 2026, especially when it’s on sale for 38% off. Comfortable, accurate, and long-lasting, it tracks a wide range of workout types while providing detailed sleep and wellness insights." data-dimension48="The Fitbit Charge 6 is one of the most well-rounded fitness trackers you can buy in 2026, especially when it’s on sale for 38% off. Comfortable, accurate, and long-lasting, it tracks a wide range of workout types while providing detailed sleep and wellness insights." data-dimension25="$99" href="https://www.amazon.com/dp/B0CC62ZG1M" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:679px;"><p class="vanilla-image-block" style="padding-top:119.29%;"><img id="cT9DuD2RvghnQbp7ggZByi" name="FitbitCharge6-deal" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/cT9DuD2RvghnQbp7ggZByi.jpg" mos="" align="middle" fullscreen="" width="679" height="810" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Charge 6 is one of the most well-rounded fitness trackers you can buy in 2026, especially when it’s on sale for 38% off. Comfortable, accurate, and long-lasting, it tracks a wide range of workout types while providing detailed sleep and wellness insights. <a class="view-deal button" href="https://www.amazon.com/dp/B0CC62ZG1M" target="_blank" rel="nofollow" data-dimension112="7e5e3c2c-86fe-4fdf-ab9e-2b09bdb9897a" data-action="Deal Block" data-label="The Fitbit Charge 6 is one of the most well-rounded fitness trackers you can buy in 2026, especially when it’s on sale for 38% off. Comfortable, accurate, and long-lasting, it tracks a wide range of workout types while providing detailed sleep and wellness insights." data-dimension48="The Fitbit Charge 6 is one of the most well-rounded fitness trackers you can buy in 2026, especially when it’s on sale for 38% off. Comfortable, accurate, and long-lasting, it tracks a wide range of workout types while providing detailed sleep and wellness insights." data-dimension25="$99">View Deal</a></p></div><h3 class="article-body__section" id="section-one-of-the-best-fitness-trackers-i-ve-tested"><span>One of the best Fitness trackers I've tested</span></h3><p>The <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a> may have arrived in late 2023, but it remains one of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness trackers </a>you can buy in 2026. </p><p>I frequently recommend it because it’s lightweight and comfortable, offers accurate health and fitness tracking insights, lasts nearly a week on a single charge, and has just the right amount of non-holistic smart features. These include support for Google Maps, Google Wallet, and mirrored smartphone notifications. </p><p>Plus, onboard GPS means you don’t need to carry a paired smartphone for location-based data when logging an outdoor workout. </p><p>How accurate is the Fitbit Charge 6’s fitness tracking performance? When I tested it <a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-5-000-steps-with-the-apple-watch-10-vs-fitbit-charge-6-this-device-was-more-accurate">versus the Apple Watch 10</a>, a much pricier wearable, it proved nearly as precise. And <a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-6-500-steps-with-the-fitbit-charge-6-vs-pixel-watch-3-and-im-surprised-by-the-winner">versus the Pixel Watch 3</a>, the Charge 6 bested its Google-built sibling. So, yeah, I’d say it’s pretty darn accurate. </p><div class="vizualizer-embed"><div class="tg-df-widget-host" data-widget-config="?search=Wearables+%26+Fitness+Tech&min_discount_ratio=0.95&offer_type=all&view_mode=carousel&widget_title=Top+Deals+Handpicked+by+Our+Editors&widget_subtitle=Discover+the+best+discounts+currently+available%2C+curated+daily+by+the+Tom%27s+Guide+Savings+Squad.&bg_color=transparent" data-vizualizer-embed="true"></div>    <script>    /**     * Tom's Guide Deals Finder - Vanilla JS Encapsulated Engine     */    (function() {      // --- Freyr Analytics Adapter ---      function initAnalytics() {        window.dataLayer = window.dataLayer || [];        window.googletag = window.googletag || {};        window.googletag.cmd = window.googletag.cmd || [];        window.hawk = window.hawk || { analytics: { freyr: [] } };        window.hawk.analytics = window.hawk.analytics || { freyr: [] };        window.hawk.analytics.freyr = window.hawk.analytics.freyr || [];        window.freyr = window.freyr || { cmd: [] };        const scriptSrc = 'https://freyr.futurecdn.net/freyr.js';        const hostname = typeof window !== 'undefined' ? window.location.hostname : '';        const isTestEnv = typeof window.navigator !== 'undefined' && (window.navigator.webdriver || window.navigator.userAgent.includes('Headless'));        const shouldSendRealAnalytics = !isTestEnv && hostname && hostname !== 'localhost' && hostname !== '127.0.0.1' && !hostname.includes('run.app');        if (shouldSendRealAnalytics && !document.querySelector(`script[src="${scriptSrc}"]`)) {          const script = document.createElement('script');          script.src = scriptSrc;          script.async = true;          document.head.appendChild(script);        }      }      function storeEventForDebug(name, data) {        if (!window.hawk || !window.hawk.analytics || !window.hawk.analytics.freyr) return;        window.hawk.analytics.freyr.push({ name, data });        try {          if (typeof window !== 'undefined' && window.localStorage) {            window.localStorage.setItem("hawk", JSON.stringify(window.hawk));          }        } catch (e) {          // Ignore storage issues        }        try {          window.dispatchEvent(new CustomEvent("hawk-analytics-update"));        } catch (e) {}      }      function sendToFreyr(eventName, data) {        if (typeof window === 'undefined') return;        window.freyr = window.freyr || { cmd: [] };        window.freyr.cmd.push(() => {          if (window.freyr && window.freyr.pushAndUpdate) {            window.freyr.pushAndUpdate(eventName, data);          }        });      }      function sendEvent(event, skip = false) {        try {          storeEventForDebug(event.name, event.data);          if (!skip) {            sendToFreyr(event.name, event.data);          }        } catch (e) {          // Ensure tracking errors don't surface to the user        }      }      function getCookie(name) {        try {          const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));          return match ? match[2] : null;        } catch (e) {          return null;        }      }      function normalizeCurrency(symbol) {        const map = {          '£': 'GBP',          '$': 'USD',          'A$': 'AUD',          'CA$': 'CAD',          '€': 'EUR'        };        return map[symbol] || symbol;      }      function trackElementInteraction(props) {        sendEvent({          name: 'elementInteraction',          data: {            element: {              action: props.action || "click",              id: props.id || undefined,              class: props.class || undefined,              name: props.name || undefined,              text: props.text || undefined,              label: props.label || undefined,              container: props.container || undefined,              url: props.url || undefined,              articleId: props.articleId || undefined            }          }        });      }      function generateRevenueId(url, productName, merchantName, modelId) {        const str = `${window.location.href}|${productName}|${merchantName}|${modelId || ''}|${new Date().toDateString()}|tomsguide`;        let hash = 0;        for (let i = 0; i < str.length; i++) {          const char = str.charCodeAt(i);          hash = ((hash << 5) - hash) + char;          hash = hash & hash;        }        let numericStr = Math.abs(hash).toString();        while (numericStr.length < 19) {          numericStr += Math.floor(Math.random() * 10).toString();        }        return numericStr.substring(0, 19);      }      function rewriteAffiliateLink(url, territory, revenueId) {        if (!url) return url;        const t = (territory || 'gb').toLowerCase();        return url.replace(/hawk-custom-tracking/g, `tomsguide-${t}-${revenueId}`);      }      function trackHawkEvent(params) {        const { clickType, widgetId, productCategoryName, product, productsArray, zeroBasedProductIndexOrNull, totalDealsOrProducts, areaClicked, merchant, revenueId, isoCurrencyCode, queryName, widgetTypeName } = params;        const data = {          event: "hawkEvent",          category: "Affiliates",          affiliate: {            action: {              type: clickType,              id: widgetId,              event: clickType === "appeared" ? "viewed" : "Click from",              timestamp: Date.now()            },            component: {              flag: "Editor",              product: productCategoryName || "deals",              category: `Signal Deal Finder ${widgetTypeName || "Carousel"} widget`,              type: clickType === "appeared" ? "review" : "signal product",              label: queryName || (product ? (product.name || "") : ""),              index: zeroBasedProductIndexOrNull === null || zeroBasedProductIndexOrNull === undefined ? -1 : zeroBasedProductIndexOrNull,              linkCount: totalDealsOrProducts || 0,              blockLayout: "",              areaClicked: areaClicked || ""            }          },          products: productsArray || (product && merchant ? [            {              product: {                primary: {                  id: product.id || product.matchId || null,                  name: product.name,                  type: "deal",                  price: product.price,                  previousPrice: product.previousPrice || null,                  currency: isoCurrencyCode || "USD",                  preorder: false,                  labels: [],                  link: product.link,                  originalLink: product.originalLink || null,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: null,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: product.globalId || null,                  inStock: product.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: isoCurrencyCode || "USD"                }              },              merchant: {                id: merchant.id || null,                name: merchant.name,                url: merchant.url || null,                network: merchant.network || null              },              model: {                id: product.modelId || null,                brand: product.brand || null,                name: product.name,                parent: product.parent || null              }            }          ] : []),          reviews: [],          _clear: true,          "gtm.uniqueEventId": Date.now() % 10000        };        sendEvent({ name: 'hawkEvent', data });      }      function trackDealClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card" });      }      function trackViewSimilarClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Product Card View Similar" });      }      function trackPriceComparisonClick(params) {        trackHawkEvent({ ...params, clickType: "retailer", areaClicked: "Signal Price Comparison" });      }      function trackReviewClick(params) {        trackHawkEvent({ ...params, clickType: "review", areaClicked: "Signal Product Card Review Link" });      }      function trackShare(params) {        trackHawkEvent({ ...params, clickType: "share", areaClicked: "Signal Product Card Share" });      }      function trackDealsAppeared(widgetId, deals, revenueId, currency, queryName, widgetTypeName) {         if (!deals || deals.length === 0) return;                  const productsArray = deals.slice(0, 50).map((deal) => {            let voucherPct = null;            let rawPrice = parseFloat(deal.rawPrice) || parseFloat(deal.price) || null;            let rawMsrp = parseFloat(deal.rawMsrp) || parseFloat(deal.msrp) || null;            if (rawMsrp > rawPrice && rawPrice > 0) {              voucherPct = Math.round((1 - (rawPrice / rawMsrp)) * 100);            }            let numId = null;            if (deal.externalProductId && !isNaN(parseInt(deal.externalProductId))) {              numId = parseInt(deal.externalProductId);            } else if (deal.id && !isNaN(parseInt(deal.id))) {              numId = parseInt(deal.id);            } else {              numId = deal.matchId || null;            }            return {              product: {                primary: {                  id: numId,                  name: deal.productName || deal.title || "",                  type: "deal",                  price: rawPrice,                  previousPrice: rawMsrp,                  currency: currency || 'USD',                  preorder: false,                  labels: deal.modelBrand || deal.brand ? [                     { type: "brand", value: deal.modelBrand || deal.brand }                  ] : [],                  link: deal.url,                  originalLink: deal.url,                  revenueId: revenueId || null,                  startTime: null,                  endTime: null,                  voucherCode: null,                  voucherAudience: null,                  voucherPercentageSaving: voucherPct,                  voucherMoneySaving: null,                  voucherType: null,                  offerExclusive: false,                  offerScope: null,                  globalId: deal.productKey || null,                  inStock: deal.inStock !== false,                  contractProvider: null,                  contractMinutes: null,                  contractTexts: null,                  contractData: null,                  contractLength: null,                  contractMonthlyPrice: null,                  contractCurrency: currency || 'USD'                }              },              merchant: {                id: deal.merchantId ? parseInt(deal.merchantId) : null,                name: deal.merchant || "Retailer",                url: deal.merchantUrl || null,                network: deal.merchantNetwork || null              },              model: {                id: deal.modelId ? parseInt(deal.modelId) : null,                brand: deal.modelBrand || deal.brand || null,                name: deal.productName || deal.title || "",                parent: deal.modelParent || null              }            };         });                  trackHawkEvent({             clickType: "appeared",             widgetId: widgetId,             productCategoryName: "deals",             zeroBasedProductIndexOrNull: null,             totalDealsOrProducts: deals.length,             productsArray: productsArray,             queryName: queryName,             widgetTypeName: widgetTypeName         });      }      // 1. Setup Shadow DOM Sandbox      const currentScript = document.currentScript;      let hostContainer = null;      let template = null;            if (currentScript) {        let prev = currentScript.previousElementSibling;        while (prev) {          if (prev.tagName === 'TEMPLATE' && prev.classList.contains('tg-df-widget-template')) {            template = prev;          } else if (prev.tagName === 'DIV' && prev.classList.contains('tg-df-widget-host') && !prev.hasAttribute('data-initialized')) {            hostContainer = prev;            break;          }          prev = prev.previousElementSibling;        }      }            // Fallbacks in case script is deferred      if (!hostContainer) {        const hosts = document.querySelectorAll('.tg-df-widget-host:not([data-initialized])');        if (hosts.length > 0) hostContainer = hosts[0];      }            // Safely embedded template for CMS environments      const rawTemplate = `  \x3Cstyle>    /* --- Shadow DOM Base Reset --- */    *, *::before, *::after {      box-sizing: border-box;    }    img, picture, svg, video {      max-width: 100%;      height: auto;      display: block;    }    /*       1. Scoped CSS for Tom's Guide Deals Widget       All classes are prefixed with \`tg-df-\` to prevent CMS style leakage.    */    .tg-df-container {      container-type: inline-size;      container-name: tg-df;      --tg-df-blue: #1F69FF;      --tg-df-blue-hover: #004d8c;      --tg-df-text: #222222;      --tg-df-text-muted: #555555;      --tg-df-bg: #ffffff;      --tg-df-bg-secondary: #f4f4f4;      --tg-df-border: #e2e8f0;      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;      color: var(--tg-df-text);      background-color: transparent;       width: 100%;      max-width: 1200px;      margin: 0 auto;      padding-bottom: 24px;    }    .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after {      margin: 0;      padding: 0;      box-sizing: border-box;    }    .tg-df-container img {      border: none;      margin: 0;      padding: 0;    }    .tg-df-container a {      text-decoration: none;      color: inherit;    }    /*       2. Search & Filter Bar    */    .tg-df-controls {      display: flex;      flex-direction: column;      align-items: center;      gap: 20px;      margin-bottom: 32px;      width: 100%;    }    .tg-df-top-bar {      display: flex;      width: 100%;      max-width: 760px;      gap: 12px;      align-items: center;    }    .tg-df-search-wrapper {      position: relative;      flex: 1;      width: 100%;      box-shadow: 0 8px 24px rgba(0,0,0,0.06);      border-radius: 40px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      z-index: 100;    }    .tg-df-autocomplete-dropdown {      position: absolute;      top: calc(100% + 4px);      left: 0;      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      max-height: 300px;      overflow-y: auto;      z-index: 200;      display: none;    }    .tg-df-autocomplete-dropdown.active {      display: block;    }    .tg-df-autocomplete-item {      padding: 12px 24px;      cursor: pointer;      font-size: 14px;      color: var(--tg-df-text);      transition: background 0.1s ease;    }    .tg-df-autocomplete-item:hover {      background: var(--tg-df-bg-secondary);    }    .tg-df-search-input {      width: 100%;      padding: 16px 64px 16px 24px;      font-size: 16px;      border: 2px solid transparent;      border-radius: 40px;      outline: none;      transition: border-color 0.2s ease, box-shadow 0.2s ease;      color: var(--tg-df-text);      background: transparent;    }    .tg-df-search-input:focus {      border-color: transparent;      box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15);    }    .tg-df-search-input::placeholder {      color: #999999;    }        .tg-df-search-btn {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      width: 40px;      height: 40px;      border-radius: 50%;      background: #222;      border: none;      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: background 0.2s ease;    }        .tg-df-search-btn:hover {      background: #000;    }    .tg-df-search-icon {      width: 16px;      height: 16px;      fill: #fff;    }    .tg-df-settings-wrapper {      position: relative;    }        .tg-df-settings-btn {      width: 48px;      height: 48px;      border-radius: 50%;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      box-shadow: 0 4px 12px rgba(0,0,0,0.04);      display: flex;      align-items: center;      justify-content: center;      cursor: pointer;      transition: all 0.2s ease;      color: var(--tg-df-text-muted);      flex-shrink: 0;    }    .tg-df-settings-btn:hover {      background: var(--tg-df-bg-secondary);      border-color: #0000ff;      color: var(--tg-df-text);    }    .tg-df-settings-btn svg {      width: 24px;      height: 24px;      fill: currentColor;    }    .tg-df-settings-dropdown {      position: absolute;      top: calc(100% + 8px);      right: 0;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 12px;      box-shadow: 0 8px 32px rgba(0,0,0,0.12);      width: 280px;      padding: 20px;      display: none;      z-index: 100;      flex-direction: column;      gap: 20px;    }    .tg-df-settings-dropdown.active {      display: flex;    }        .tg-df-settings-dropdown-backdrop {      display: none;      position: fixed;      inset: 0;      z-index: 99;    }        .tg-df-settings-dropdown-backdrop.active {      display: block;    }    .tg-df-setting-item {      display: flex;      flex-direction: column;      gap: 10px;    }    .tg-df-setting-label {      font-size: 11px;      font-weight: 700;      color: var(--tg-df-text-muted);      text-transform: uppercase;      letter-spacing: 0.5px;    }        .tg-df-region-select {        padding: 10px 12px;        border-radius: 8px;        border: 1px solid var(--tg-df-border);        font-size: 15px;        outline: none;        background: var(--tg-df-bg-secondary);        color: var(--tg-df-text);        cursor: pointer;        width: 100%;    }    .tg-df-toggle {        position: relative;        display: inline-block;        width: 44px;        height: 24px;        flex-shrink: 0;    }    .tg-df-toggle input {        opacity: 0;        width: 0;        height: 0;    }    .tg-df-slider {        position: absolute;        cursor: pointer;        top: 0; left: 0; right: 0; bottom: 0;        background-color: #ccc;        transition: .2s;        border-radius: 24px;    }    .tg-df-slider:before {        position: absolute;        content: "";        height: 18px;        width: 18px;        left: 3px;        bottom: 3px;        background-color: white;        transition: .2s;        border-radius: 50%;    }    .tg-df-toggle input:checked + .tg-df-slider {        background-color: #1F69FF;    }    .tg-df-toggle input:checked + .tg-df-slider:before {        transform: translateX(20px);    }    .tg-df-dl-row {        flex-direction: row;        align-items: center;        justify-content: space-between;    }    .tg-df-dl-row-text {        font-size: 14px;        font-weight: 600;        color: var(--tg-df-text);    }    .tg-df-dl-row-subtext {        font-size: 12px;        font-weight: 400;        line-height: 1.3;        color: var(--tg-df-text-muted);        margin-top: 4px;        display: block;    }    .tg-df-filters {      display: flex;      gap: 12px;      justify-content: center;      flex-wrap: wrap;    }    .tg-df-sort-wrapper {      position: relative;      display: flex;      align-items: center;    }        .tg-df-sort-icon {      position: absolute;      left: 14px;      width: 14px;      height: 14px;      fill: var(--tg-df-text-muted);      pointer-events: none;    }    .tg-df-sort-select, .tg-df-filter-select {      padding: 10px 36px 10px 38px;      font-size: 14px;      border: 1px solid var(--tg-df-border);      border-radius: 100px;      outline: none;      appearance: none;      background-color: var(--tg-df-bg-secondary);      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E");      background-repeat: no-repeat;      background-position: right 14px center;      color: var(--tg-df-text);      cursor: pointer;      font-weight: 500;      transition: all 0.2s ease;    }        .tg-df-price-input::-webkit-outer-spin-button,    .tg-df-price-input::-webkit-inner-spin-button {      -webkit-appearance: none;      margin: 0;    }    .tg-df-price-input {      -moz-appearance: textfield;    }    .tg-df-sort-select:hover, .tg-df-filter-select:hover {      background-color: #e2e8f0;    }    .tg-df-multiselect-container {      position: relative;    }        .tg-df-multiselect-trigger {      display: block;      background: #fff;      user-select: none;      width: 100%;      overflow: hidden;      white-space: nowrap;      text-overflow: ellipsis;    }        .tg-df-multiselect-dropdown {      display: none;      position: absolute;      top: calc(100% + 4px);      left: 0;      width: 100%;      min-width: 220px;      max-height: 300px;      overflow-y: auto;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);      z-index: 100;      padding: 8px 0;    }    .tg-df-multiselect-dropdown.active {      display: block;    }    .tg-df-ms-option {      padding: 8px 16px;      display: flex;      align-items: center;      gap: 8px;      cursor: pointer;      font-size: 14px;    }    .tg-df-ms-option:hover {      background-color: var(--tg-df-bg-secondary);    }        .tg-df-ms-option input {      cursor: pointer;      accent-color: #1f69ff;    }    .tg-df-sort-select:focus, .tg-df-filter-select:focus {      border-color: #0000ff;      box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2);      background-color: var(--tg-df-bg);    }    /*       3. Deal Grid Layout    */    .tg-df-grid.tg-df-grid-auto {      padding-top: 24px;    }    .tg-df-grid, .tg-df-grid.layout-grid {      display: grid;      grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));      gap: 10px;    }    .tg-df-grid.layout-row {      grid-template-columns: 1fr;      gap: 16px;    }        .tg-df-grid.layout-row .tg-df-card {      flex-direction: row;      align-items: stretch;      height: auto;      box-shadow: none;      border-bottom: 1px solid var(--tg-df-border);    }    .tg-df-grid.layout-row .tg-df-card:hover {      box-shadow: none;    }    .tg-df-grid.layout-row .tg-df-card-image-box {      width: 140px;      min-width: 140px;      aspect-ratio: 3/4;      border-right: none;      padding: 16px 16px 16px 32px;    }    .tg-df-grid.layout-row .tg-df-card-body {      padding: 16px;      justify-content: space-between;    }    .tg-df-grid.layout-row .tg-df-card-title {      font-size: 15px;      margin-bottom: 16px;    }    .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; }    .tg-df-grid.layout-row .tg-df-card-footer {      flex-direction: column;      align-items: flex-start;      gap: 0;    }    .tg-df-grid.layout-row .tg-df-card-merchant-pill {      margin-bottom: 4px;    }    .tg-df-grid.layout-row .tg-df-card-price-group {      margin-bottom: 8px;    }    .tg-df-grid.layout-row .tg-df-price-group {      width: auto;    }    .tg-df-grid.layout-row .tg-df-card-cta {      width: 100%;      max-width: 200px;      padding: 10px 24px;      font-size: 13px;      flex-shrink: 0;      text-align: center;      justify-content: center;    }    /*       4. Deal Card Design    */    .tg-df-card {      position: relative;      display: flex;      flex-direction: column;      background-color: #ffffff;      border-radius: 0;      overflow: hidden;      transition: transform 0.2s ease, box-shadow 0.2s ease;      text-decoration: none;      color: inherit;      height: 100%;      box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);      border: 1px solid var(--tg-df-border);    }    .tg-df-card:hover {      box-shadow: 0 0 24px rgba(0, 0, 0, 0.12);    }    .tg-df-card-image-box {      width: 100%;      aspect-ratio: 3/4;      background-color: #f8f8f8;      display: flex;      align-items: center;      justify-content: center;      position: relative;      overflow: hidden;      padding: 32px;      flex: 0 0 auto;    }    .tg-df-card-image {      max-width: 100%;      max-height: 100%;      width: auto;      height: auto;      object-fit: contain;      mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */      transition: transform 0.3s ease;    }    .tg-df-card:hover .tg-df-card-image {      transform: scale(1.05); /* Zoom in on hover */    }    .tg-df-card-discount-badge {      position: absolute;      top: 12px;      left: 12px;      background: #dc2626; /* Red */      color: #ffffff;      padding: 6px 8px;      font-size: 11px;      font-weight: 500;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      z-index: 10;    }        .tg-df-card-merchant-pill {      display: block;      padding: 0;      font-size: 11px;      font-weight: 600;      text-transform: uppercase;      letter-spacing: 0.5px;      border-radius: 0;      color: var(--tg-df-text-muted);      margin-bottom: 8px;      white-space: nowrap;      overflow: hidden;      text-overflow: ellipsis;    }    .tg-df-card-body {      padding: 16px;      display: flex;      flex-direction: column;      flex-grow: 1;      min-width: 0;    }    .tg-df-card-badges {      display: flex;      flex-wrap: wrap;      gap: 6px;      margin-bottom: 8px;    }    .tg-df-tag {      display: inline-flex;      align-items: center;      padding: 4px 6px;      font-size: 11px;      font-weight: 700;      text-transform: uppercase;      border-radius: 4px;      gap: 4px;    }    .tg-df-tag-prime {      background-color: #00A8E1;      color: #fff;    }    .tg-df-tag-coupons {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-coupons:hover {      background-color: #e2e8f0;    }        .tg-df-tag-outline {      background-color: #f1f5f9;      color: #334155;      border: 1px solid #cbd5e1;      cursor: pointer;      transition: background-color 0.2s;    }    .tg-df-tag-outline:hover {      background-color: #e2e8f0;    }        @keyframes tg-df-spin {      0% { transform: rotate(0deg); }      100% { transform: rotate(360deg); }    }    .tg-df-coupon-spinner {      border: 2px solid #e2e8f0;      border-top: 2px solid #3b82f6;      border-radius: 50%;      width: 14px;      height: 14px;      animation: tg-df-spin 1s linear infinite;      margin: 4px 8px;      display: inline-block;    }        /* Vouchers Modal */    .tg-df-modal-backdrop {      position: fixed;      top: 0; left: 0; right: 0; bottom: 0;      background: rgba(0,0,0,0.5);      z-index: 10000;      display: flex;      align-items: center;      justify-content: center;      opacity: 0;      pointer-events: none;      transition: opacity 0.3s;    }    .tg-df-modal-backdrop.active {      opacity: 1;      pointer-events: auto;    }    .tg-df-modal {      background: #fff;      border-radius: 12px;      width: 90%;      max-width: 400px;      max-height: 80vh;      display: flex;      flex-direction: column;      box-shadow: 0 10px 40px rgba(0,0,0,0.2);      transform: translateY(20px);      transition: transform 0.3s;    }    .tg-df-modal-backdrop.active .tg-df-modal {      transform: translateY(0);    }    .tg-df-modal-header {      padding: 16px;      border-bottom: 1px solid #e2e8f0;      display: flex;      align-items: center;      justify-content: space-between;    }    .tg-df-modal-title {      font-size: 16px;      font-weight: 600;      margin: 0;    }    .tg-df-modal-close {      background: none;      border: none;      cursor: pointer;      padding: 4px;      color: #64748b;    }    .tg-df-modal-body {      padding: 16px;      overflow-y: auto;    }    .tg-df-voucher-item {      padding: 12px;      border: 1px dashed #cbd5e1;      border-radius: 8px;      margin-bottom: 10px;      background: #f8fafc;      display: flex;      align-items: center;      gap: 12px;      text-decoration: none;      color: inherit;      transition: background-color 0.2s, border-color 0.2s;    }    .tg-df-voucher-item:hover {      background: #f1f5f9;      border-color: #94a3b8;    }    .tg-df-voucher-item:last-child {      margin-bottom: 0;    }    .tg-df-voucher-logo {      width: 48px;      height: 48px;      object-fit: contain;      border-radius: 4px;      background: #fff;      border: 1px solid #e2e8f0;      flex-shrink: 0;    }    .tg-df-voucher-content {      flex: 1;      min-width: 0;    }    .tg-df-voucher-title {      font-size: 14px;      font-weight: 600;      margin: 0 0 4px 0;      line-height: 1.3;      color: #0f172a;    }    .tg-df-voucher-expiry {      font-size: 12px;      color: #64748b;      display: flex;      align-items: center;      gap: 4px;      margin-top: 6px;    }    .tg-df-voucher-code {      display: inline-flex;      align-items: center;      background: #f1f5f9;      border: 1px dashed #cbd5e1;      padding: 6px 10px;      font-family: monospace;      font-weight: 700;      font-size: 14px;      color: #0f172a;      border-radius: 4px;      margin-top: 8px;      cursor: pointer;      transition: all 0.2s ease;    }    .tg-df-voucher-code:hover {      background: #e2e8f0;      border-color: #94a3b8;    }    .tg-df-voucher-code.copied {      background: #ecfdf5;      border-color: #10b981;      color: #10b981;    }    .tg-df-voucher-cta {      display: inline-block;      margin-top: 8px;      font-size: 13px;      font-weight: 600;      color: #2563eb;      text-decoration: none;    }    .tg-df-card-title {      font-size: 15px;      font-weight: 400;      line-height: 1.4;      margin: 0 0 12px 0;      color: var(--tg-df-text);      display: -webkit-box;      -webkit-line-clamp: 2;      -webkit-box-orient: vertical;      overflow: hidden;    }    .tg-df-card-footer {      margin-top: auto;      display: flex;      flex-direction: column;      width: 100%;    }    .tg-df-card-price-group {      display: flex;      flex-direction: row;      align-items: center;      gap: 8px;      margin-bottom: 12px;    }    .tg-df-card-price {      font-size: 16px;      font-weight: 700;      color: #dc2626; /* Red price */      line-height: 1;    }        .tg-df-card-msrp {      font-size: 13px;      color: var(--tg-df-text-muted);      text-decoration: line-through;    }    .tg-df-container .tg-df-card-cta {      display: flex;      align-items: center;      justify-content: center;      width: 100%;      box-sizing: border-box;      background-color: #1f69ff;      color: #ffffff;      font-size: 12px;      font-weight: 700;      text-transform: uppercase;      letter-spacing: 0.5px;      padding: 12px 16px;      border-radius: 0;      border: none;      cursor: pointer;      transition: background-color 0.2s ease;    }    .tg-df-card:hover .tg-df-card-cta,    .tg-df-card-cta:hover {      background-color: #1555cc;    }    .tg-df-container .tg-df-card-cta.tg-df-cta-savings-squad {      background-color: #3c8d0d;    }    .tg-df-card:hover .tg-df-card-cta.tg-df-cta-savings-squad,    .tg-df-card-cta.tg-df-cta-savings-squad:hover {      background-color: #2b6509;    }    /*       5. State & Skeleton Styles    */    .tg-df-message {      grid-column: 1 / -1;      text-align: center;      padding: 48px 24px;      color: var(--tg-df-text-muted);      font-size: 16px;      background: var(--tg-df-bg);      border: 1px solid var(--tg-df-border);      border-radius: 8px;    }    @keyframes tg-df-shimmer {      0% { background-position: -200% 0; }      100% { background-position: 200% 0; }    }    .tg-df-skeleton {      background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%);      background-size: 200% 100%;      animation: tg-df-shimmer 1.5s infinite;      border-radius: 4px;    }    .tg-df-skeleton-img {      width: 100%;      height: 100%;      position: absolute;      top: 0; left: 0;    }        .tg-df-skeleton-text {      height: 16px;      margin-bottom: 8px;      width: 100%;    }    .tg-df-skeleton-text.short { width: 40%; }    .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; }    /* Editor Floating Bar & Elements */    .tg-df-editor-bar {      position: sticky;      top: 0;      z-index: 1000;      background: #111827;      color: #fff;      padding: 12px 16px;      border-radius: 8px;      margin-bottom: 16px;      display: flex;      align-items: center;      justify-content: space-between;      box-shadow: 0 4px 12px rgba(0,0,0,0.15);    }    .tg-df-editor-bar-text {      font-weight: 600;      font-size: 14px;    }    .tg-df-editor-copy-btn {      background: #10b981;      color: #fff;      padding: 6px 16px;      border: none;      border-radius: 4px;      font-weight: 600;      cursor: pointer;      display: flex;      align-items: center;      font-size: 13px;    }    .tg-df-editor-copy-btn:hover { background: #059669; }        .tg-df-deal-checkbox {      position: absolute;      top: 12px;      right: 12px;      z-index: 10;      width: 20px;      height: 20px;      cursor: pointer;      pointer-events: auto;    }    /*       6. Mobile List View (Stacks into a cleaner horizontal row/list)    */    @container tg-df (max-width: 599px) {      .tg-df-controls {        padding: 0 16px;      }            .tg-df-top-bar {        width: 100%;      }            .tg-df-settings-dropdown {        position: fixed;        top: auto;        bottom: 0;        left: 0;        right: 0;        width: 100%;        border-radius: 20px 20px 0 0;        padding: 24px;        box-shadow: 0 -8px 32px rgba(0,0,0,0.15);        z-index: 1000;        border: none;        border-top: 1px solid var(--tg-df-border);      }            .tg-df-settings-dropdown-backdrop.active {        background: rgba(0,0,0,0.4);      }            .tg-df-search-wrapper {        box-shadow: 0 0 16px rgba(0,0,0,0.08);      }            .tg-df-filters {        width: calc(100% + 32px);        margin: 0 -16px;        padding: 0 16px 4px 16px;        display: flex;        justify-content: flex-start;        gap: 8px;        flex-wrap: nowrap;        overflow-x: auto;        -webkit-overflow-scrolling: touch;        scrollbar-width: none;      }      .tg-df-filters::after {        content: "";        display: block;        flex: 0 0 8px;      }      .tg-df-filters::-webkit-scrollbar {        display: none;      }            .tg-df-sort-wrapper {        flex: 0 0 max(42%, 130px);        min-width: 0;      }      .tg-df-sort-wrapper.tg-df-price-range-wrapper {        flex: 0 0 auto;        min-width: max-content;      }            .tg-df-sort-select, .tg-df-filter-select {        width: 100%;        text-align: left;        padding: 10px 24px 10px 32px;        background-position: right 8px center;        text-overflow: ellipsis;        white-space: nowrap;        overflow: hidden;      }      .tg-df-sort-icon {        left: 10px;      }      .tg-df-grid:not(.layout-grid):not(.layout-row),      .tg-df-grid.layout-row {        grid-template-columns: 1fr;        gap: 16px;      }            .tg-df-grid.tg-df-grid-auto {        padding-top: 24px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card,      .tg-df-grid.layout-row .tg-df-card {        flex-direction: row;        align-items: stretch;        height: auto;        box-shadow: none; /* simple line on mobile if preferred, or keep */        border-bottom: 1px solid var(--tg-df-border);      }      .tg-df-grid.tg-df-grid-auto .tg-df-card:hover,      .tg-df-grid.layout-row .tg-df-card:hover {        box-shadow: none;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box,      .tg-df-grid.layout-row .tg-df-card-image-box {        width: 120px;        min-width: 120px;        aspect-ratio: 3/4;        border-right: none;        padding: 12px;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-body,      .tg-df-grid.layout-row .tg-df-card-body {        padding: 12px;        justify-content: space-between;      }      .tg-df-grid.tg-df-grid-auto .tg-df-card-title,      .tg-df-grid.layout-row .tg-df-card-title {        font-size: 14px;        margin-bottom: 12px;        -webkit-line-clamp: 3;      }      /* Single column mobile grid override */      .tg-df-grid.layout-grid {        grid-template-columns: 1fr;        gap: 16px;      }      .tg-df-grid.layout-grid .tg-df-card-image-box {        padding: 12px;      }      .tg-df-grid.layout-grid .tg-df-card-body {        padding: 10px;      }      .tg-df-grid.layout-grid .tg-df-card-title {        font-size: 13px;        -webkit-line-clamp: 3;        margin-bottom: 8px;      }      .tg-df-grid.layout-grid .tg-df-card-price {        font-size: 14px;      }            .tg-df-card-footer {        flex-direction: column;        align-items: stretch;        gap: 0;        width: 100%;        min-width: 0;      }      .tg-df-card-merchant-pill {        margin-bottom: 4px;      }      .tg-df-card-price-group {        flex: 1 1 auto;        margin-bottom: 8px;      }      .tg-df-card-price {        font-size: 16px;      }      .tg-df-card-msrp {        display: block;       }      .tg-df-grid.layout-row .tg-df-card-cta,      .tg-df-container .tg-df-card-cta {        width: 100%;        max-width: none;        min-width: 0;        box-sizing: border-box;        padding: 8px 16px;        font-size: 12px;        flex: 0 0 auto;        text-align: center;        white-space: normal;        line-height: 1.2;      }    }    .tg-df-container.is-carousel {      min-height: 760px;      background-color: #E7F0FF;      padding: 0 0 24px 0;      border-radius: 24px;    }    .tg-df-container.is-carousel.hide-header-details {      min-height: 480px;    }    /*       7. Carousel View Mode    */    .tg-df-container .tg-df-carousel-host {      /* Layout is now handled by container wrapper */    }    .tg-df-container .tg-df-carousel-eyebrow {      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      padding: 24px 16px 0 16px;      display: none;    }    .tg-df-container .tg-df-carousel-query-title {      color: #011535;      font-size: 28px;      font-weight: 600;      padding: 0 16px 24px 16px;      line-height: 1.2;      display: none;    }    .tg-df-container .tg-df-carousel-blue-box {      background-color: transparent;      border-radius: 0;      padding: 24px 24px 0 24px;      margin: 0;      color: #1F69FF;          position: relative;      overflow: hidden;    }    .tg-df-container .tg-df-carousel-bg-circle-1 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-2 {      display: none;    }    .tg-df-container .tg-df-carousel-bg-circle-3 {      display: none;    }    .tg-df-container .tg-df-carousel-box-content {      position: relative;      z-index: 10;    }    .tg-df-container .tg-df-carousel-box-eyebrow {      background-color: transparent;      color: #1F69FF;      font-weight: 700;      font-size: 14px;      text-transform: uppercase;      letter-spacing: 1px;      display: inline-block;      padding: 0;      border-radius: 0;    }    .tg-df-container .tg-df-carousel-box-title {      font-size: 28px;      font-weight: 600;      line-height: 1.2;      margin-top: 8px;      color: #1e293b;    }    .tg-df-container .tg-df-countdown-wrapper {      position: absolute;      top: 0;      right: 0;      display: flex;      flex-direction: column;      align-items: flex-end;      gap: 12px;      transform: scale(0.67);      transform-origin: top right;    }    .tg-df-container .tg-df-countdown-title {      font-size: 16px;      text-align: center;      width: 100%;      font-weight: 600;      color: #011535;      margin: 0;    }    .tg-df-container .tg-df-countdown-blocks {      display: flex;      gap: 16px;    }    .tg-df-container .tg-df-countdown-item {      display: flex;      flex-direction: column;      align-items: center;      gap: 4px;    }    .tg-df-container .tg-df-countdown-box {      width: 59px;      height: 59px;      background: #03FE9E;      border-radius: 15px;      display: flex;      align-items: center;      justify-content: center;    }    .tg-df-container .tg-df-countdown-num {      font-family: 'Inter', sans-serif;      font-weight: 700;      font-size: 20px;      line-height: normal;      color: #011535;    }    .tg-df-container .tg-df-countdown-label {      font-family: 'Inter', sans-serif;      font-weight: 500;      font-size: 16px;      line-height: normal;      color: #1e293b;      text-transform: uppercase;    }    .tg-df-container .tg-df-carousel-box-subtitle {      font-size: 16px;      margin-top: 8px;      font-weight: 300;      color: #1e293b;      line-height: 24px;    }    .tg-df-container .tg-df-carousel-roundels-wrapper {      position: relative;      margin-top: 24px;      margin-left: -24px;      margin-right: -24px;    }    .tg-df-container .tg-df-carousel-roundels {      display: flex;      gap: 16px;      overflow-x: auto;            scrollbar-width: none;      padding-top: 12px;      padding-bottom: 24px;      padding-left: 24px;      padding-right: 24px;      margin-left: 0;      margin-right: 0;    }    .tg-df-container .tg-df-carousel-scroll-right {      position: absolute;      right: 8px;      top: 50%;      transform: translateY(-50%);      height: 36px;      width: 36px;      display: flex;      align-items: center;      justify-content: center;      border-radius: 50%;      background-color: #ffffff;      border: 1px solid #e2e8f0;      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);      color: #1F69FF;      cursor: pointer;      transition: all 0.2s;      margin-top: -4px;      z-index: 20;    }    .tg-df-container .tg-df-carousel-scroll-right:hover {      background-color: #f8fafc;      border-color: #cbd5e1;    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right {      right: 0;      background-color: rgba(255, 255, 255, 0.4);      border: none;      box-shadow: none;      backdrop-filter: blur(4px);      -webkit-backdrop-filter: blur(4px);    }    .tg-df-carousel-roundels-wrapper .tg-df-carousel-scroll-right:hover {      background-color: rgba(255, 255, 255, 0.6);      border: none;    }    .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar {      display: none;    }    .tg-df-container .tg-df-carousel-roundels::after {      content: "";      flex: 0 0 32px;    }    .tg-df-container .tg-df-roundel {      display: flex;      flex-direction: column;      align-items: center;      gap: 8px;      cursor: pointer;      min-width: 120px;      flex-shrink: 0;    }    .tg-df-container .tg-df-roundel-img-box {      width: 120px;      height: 120px;      border-radius: 50%;      background: white;      display: flex;      align-items: center;      justify-content: center;      overflow: hidden;      box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08);      transition: box-shadow 0.2s;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box {      box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px #1F69FF;    }    .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img {      transform: scale(1.08);    }    .tg-df-container .tg-df-roundel-img-box img {      width: 100%;      height: 100%;      object-fit: contain;      padding: 10px;      box-sizing: border-box;      transition: transform 0.3s ease;    }    .tg-df-container .tg-df-roundel-label {      font-size: 13px;      font-weight: 400;      color: #1e293b;      text-align: center;      transition: font-weight 0.2s;    }    .tg-df-container .tg-df-roundel.active .tg-df-roundel-label {      font-weight: 700;    }    .tg-df-container .tg-df-carousel-filters-label {      font-size: 16px;      font-weight: 400;      color: #1e293b;      white-space: nowrap;      margin-right: 4px;    }    .tg-df-container .tg-df-carousel-filters-wrap {      display: flex;      align-items: center;      flex-wrap: nowrap;      gap: 8px;      margin-top: 8px;      overflow-x: auto;      scrollbar-width: none;      -webkit-overflow-scrolling: touch;      padding-bottom: 8px;      margin-left: -24px;      margin-right: -24px;      padding-left: 24px;      padding-right: 24px;    }    .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar {      display: none;    }        .tg-df-container .tg-df-carousel-filter-btn img,    .tg-df-container .tg-df-carousel-filter-btn picture {      height: 20px;      width: 20px;      object-fit: contain;      object-position: center;      display: inline-flex;      align-items: center;      justify-content: center;      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn picture img {      margin-right: 0;      height: 100%;      width: 100%;    }    .tg-df-container .tg-df-carousel-filter-btn img.active-img,    .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) {      display: none;    }    .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img,    .tg-df-container .tg-df-carousel-filter-btn.active img.active-img,    .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img),    .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) {      display: inline-flex;    }    .tg-df-container .tg-df-carousel-filter-btn {      background: #ffffff;      border: 2px solid #1e293b;      color: #1e293b;      border-radius: 24px;      padding: 6px 16px;      font-size: 14px;      font-weight: 600;      cursor: pointer;      transition: all 0.2s;      flex-shrink: 0;      white-space: nowrap;      display: inline-flex;      align-items: center;      justify-content: center;      min-height: 36px;      box-sizing: border-box;    }    .tg-df-container .tg-df-carousel-filter-btn svg {      margin-right: 6px;    }    .tg-df-container .tg-df-carousel-filter-btn:hover {      background: #1e293b;      color: white;      border-color: #1e293b;    }    .tg-df-container .tg-df-carousel-filter-btn.active {      background: #1e293b;      color: white;      border-color: #1e293b;    }        .tg-df-grid.carousel-compact {      display: flex;      flex-wrap: nowrap;      overflow-x: auto;      gap: 16px;      padding: 16px 24px;      align-items: stretch;      scrollbar-width: none;    }    .tg-df-grid.carousel-compact::after {      content: "";      flex: 0 0 32px;    }    .tg-df-grid-wrapper {      position: relative;    }    .tg-df-grid.carousel-compact::-webkit-scrollbar {      display: none;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card {      flex: 0 0 auto;      width: 100px;      border-radius: 15px;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      border: 2px solid #1e293b;      background: white;      color: #1e293b;      display: flex;      flex-direction: column;      justify-content: center;      align-items: center;      font-weight: 600;      font-size: 14px;      cursor: pointer;      padding: 16px;      text-align: center;      transition: all 0.2s;    }    .tg-df-grid.carousel-compact .tg-df-load-more-card:hover {      background: #1e293b;      color: white;    }    .tg-df-grid.carousel-compact .tg-df-card {      flex: 0 0 auto;      width: 200px;      min-height: auto;      height: auto;      display: flex;      flex-direction: column;      border-radius: 15px;      border: none;      box-shadow: 0 0 16px rgba(0,0,0,0.08);      overflow: visible;    }    .tg-df-grid.carousel-compact .tg-df-card-image-box {      padding: 12px;      background-color: transparent;      border-radius: 15px 15px 0 0;      height: 130px;    }    .tg-df-grid.carousel-compact .tg-df-card-image {      mix-blend-mode: normal;    }    .tg-df-grid.carousel-compact .tg-df-card-discount-badge {      border-radius: 0;      top: 0px;      left: 0px;      padding: 4px 8px;      font-size: 11px;    }    .tg-df-grid.carousel-compact .tg-df-card-body {      padding: 8px 12px 12px 12px;    }    .tg-df-grid.carousel-compact .tg-df-card-title {      font-size: 14px;      font-weight: 400;      -webkit-line-clamp: 2;      margin-bottom: 8px;      color: #011535;    }    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title,    .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title {      -webkit-line-clamp: 3;    }    .tg-df-grid.carousel-compact .tg-df-card-cta {      border-radius: 5px;      padding: 8px 10px;      margin-top: 4px;      background-color: #1F69FF;    }    .tg-df-grid.carousel-compact .tg-df-card-price-group {      margin-bottom: 2px;    }    .tg-df-grid.carousel-compact .tg-df-card-merchant-pill {      margin-bottom: 2px;    }    @container tg-df (max-width: 599px) {      .tg-df-container .tg-df-carousel-blue-box-title {        font-size: 24px;      }      .tg-df-container .tg-df-countdown-title {        display: none;      }      .tg-df-container .tg-df-countdown-wrapper {        position: absolute;        top: 0;        right: 0;        align-items: flex-end;        transform: scale(0.45);        transform-origin: top right;      }      .tg-df-container .tg-df-roundel {        min-width: 88px;      }      .tg-df-container .tg-df-roundel-img-box {        width: 88px;        height: 88px;      }    }    /* REPLICA BLOCK STYLES */    .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; }    .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; }        .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; }    .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; }    .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; }    .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; }    .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; }    .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; }    .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; }    .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; }    .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; }    .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; }    .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; }    .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; }    .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; }        @container tg-df (min-width: 600px) {      .tg-df-mobile-only { display: none !important; }    }    @container tg-df (max-width: 599px) {      .tg-df-desktop-only { display: none !important; }      .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; }      .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; }    }    .tg-df-grid.savings-squad-cards .tg-df-card-title {      -webkit-line-clamp: unset !important;      display: block !important;      overflow: visible !important;    }    @container tg-df (max-width: 500px) {      .tg-df-container .hawk-deal-widget-wrap { display: block; }      .tg-df-container .hawk-deal-widget-image-container { display: block; float: left; margin: 0 16px 8px 0; width: 120px; max-width: 120px; height: auto; align-items: normal; justify-content: normal; }      .tg-df-container .hawk-deal-widget-text-cta-container { display: block; text-align: left; }      .tg-df-container .hawk-deal-widget-footer { display: block; margin-top: 16px; clear: both; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: block; width: 100%; }      .tg-df-container .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; max-width: none !important; width: 100% !important; margin: 0 !important; }    }        .tg-df-container .hawk-affiliate-link-deal-button {       align-items: center; background-color: #5aaf0b; box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s;     }    .tg-df-container .hawk-affiliate-link-deal-button:hover { background-color: #4a9109; text-decoration: none; }    .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; }    .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; }    .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; }    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title,    .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; }  \x3C/style>  \x3C!-- Widget Container --\x3E  \x3Cdiv class="tg-df-container" id="signal-deals-finder-root">    \x3C!-- Editor Floating Bar --\x3E    \x3Cdiv class="tg-df-editor-bar" id="tg-df-editor-bar" style="display:none;">      \x3Cdiv class="tg-df-editor-bar-text" style="display: flex; align-items: center;">        \x3Cspan id="tg-df-selected-count">0\x3C/span>\x26nbsp;Deals Selected        \x3Cbutton class="tg-df-editor-clear-btn" id="tg-df-editor-clear" type="button" style="margin-left: 12px; font-size: 13px; color: #9ca3af; background: none; border: none; cursor: pointer; text-decoration: underline;">Clear All\x3C/button>      \x3C/div>      \x3Cbutton class="tg-df-editor-copy-btn" id="tg-df-editor-copy" type="button">        \x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">\x3C/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">\x3C/path>\x3C/svg>        Copy to CMS      \x3C/button>    \x3C/div>    \x3Cdiv class="tg-df-carousel-host" id="tg-df-carousel-host" style="display: none;">      \x3Cdiv class="tg-df-carousel-eyebrow">DEAL FINDER\x3C/div>      \x3Cdiv class="tg-df-carousel-query-title" id="tg-df-carousel-title-label">Best Deals\x3C/div>            \x3Cdiv class="tg-df-carousel-blue-box">        \x3Cdiv class="tg-df-carousel-bg-circle-1" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-2" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-bg-circle-3" aria-hidden="true">\x26nbsp;\x3C/div>        \x3Cdiv class="tg-df-carousel-box-content">          \x3Cdiv class="tg-df-countdown-wrapper" id="tg-df-countdown-wrapper" style="display:none;">            \x3Cdiv class="tg-df-countdown-title" id="tg-df-countdown-title">Prime Day starts in\x3C/div>            \x3Cdiv class="tg-df-countdown-blocks">              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-days">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">DAYS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-hrs">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">HRS\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-min">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">MIN\x3C/div>\x3C/div>              \x3Cdiv class="tg-df-countdown-item">\x3Cdiv class="tg-df-countdown-box">\x3Cdiv class="tg-df-countdown-num" id="tg-df-cd-sec">0\x3C/div>\x3C/div>\x3Cdiv class="tg-df-countdown-label">SEC\x3C/div>\x3C/div>            \x3C/div>          \x3C/div>          \x3Cdiv class="tg-df-carousel-box-eyebrow">DEAL FINDER\x3C/div>          \x3Cdiv class="tg-df-carousel-box-title">Find Deals Fast\x3C/div>          \x3Cdiv class="tg-df-carousel-box-subtitle">The latest deals from the biggest retailers, all in one place\x3C/div>                    \x3Cdiv class="tg-df-carousel-roundels-wrapper">          \x3Cdiv class="tg-df-carousel-roundels">            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>            \x3Cdiv class="tg-df-roundel tg-df-roundel-skeleton">\x3Cdiv class="tg-df-roundel-img-box tg-df-skeleton">\x3C/div>\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="margin: 4px auto 0 auto; height: 13px; width: 48px;">\x3C/div>\x3C/div>          \x3C/div>          \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.previousElementSibling.scrollBy({left: 200, behavior: 'smooth'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-carousel-filters-wrap">                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="0">All\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_lightning">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-ot="amazon_prime">              \x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>            \x3Cbutton class="tg-df-carousel-filter-btn" data-d="10">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 10% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="15">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 15% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-d="25">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>            Min 25% off\x3C/button>                      \x3Cbutton class="tg-df-carousel-filter-btn" data-pr="under50">              \x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>            Under $50\x3C/button>\n        \x3C/div>\n      \x3C/div>\n    \x3C/div>          \x3C!-- Search & Filter Controls --\x3E    \x3Cdiv class="tg-df-controls" id="tg-df-controls" style="display:flex;">      \x3Cdiv class="tg-df-top-bar">        \x3Cdiv class="tg-df-search-wrapper">          \x3Cinput type="text" class="tg-df-search-input" placeholder="Search for deals, products, or brands...">          \x3Cbutton type="button" class="tg-df-search-btn" aria-label="Search">              \x3Csvg class="tg-df-search-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">                \x3Cpath d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>              \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-autocomplete-dropdown" id="tg-df-autocomplete">\x3C/div>        \x3C/div>                \x3Cdiv class="tg-df-settings-wrapper">          \x3Cbutton type="button" class="tg-df-settings-btn" aria-label="Settings" id="tg-df-settings-toggle">            \x3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20">                \x3Cpath d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.73 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .43-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.49-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"/>            \x3C/svg>          \x3C/button>          \x3Cdiv class="tg-df-settings-dropdown-backdrop" id="tg-df-settings-backdrop">\x3C/div>          \x3Cdiv class="tg-df-settings-dropdown" id="tg-df-settings-panel">            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Search Region\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-region-select">                \x3Coption value="auto">🌍 Auto-detect\x3C/option>                \x3Coption value="US">🇺🇸 United States (US)\x3C/option>                \x3Coption value="GB">🇬🇧 United Kingdom (UK)\x3C/option>                \x3Coption value="CA">🇨🇦 Canada (CA)\x3C/option>                \x3Coption value="AU">🇦🇺 Australia (AU)\x3C/option>                \x3Coption value="DE">🇩🇪 Germany (DE)\x3C/option>                \x3Coption value="FR">🇫🇷 France (FR)\x3C/option>                \x3Coption value="IT">🇮🇹 Italy (IT)\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Retailer\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-retailer-select">                \x3Coption value="">All Retailers\x3C/option>                \x3Coption value="Amazon">Amazon\x3C/option>                \x3Coption value="Walmart">Walmart\x3C/option>                \x3Coption value="Best Buy">Best Buy\x3C/option>                \x3Coption value="Target">Target\x3C/option>                \x3Coption value="John Lewis">John Lewis\x3C/option>                \x3Coption value="Currys">Currys\x3C/option>                \x3Coption value="Argos">Argos\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Offer Type\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-offer-type-select">                \x3Coption value="">All Offers\x3C/option>                \x3Coption value="amazon_prime">Amazon Prime\x3C/option>                \x3Coption value="recommended_promo">Recommended Promo\x3C/option>                \x3Coption value="amazon_lightning">Amazon Lightning Deal\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">Result Count\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-rows-select">                \x3Coption value="3">3 Items\x3C/option>                \x3Coption value="4">4 Items\x3C/option>                \x3Coption value="6">6 Items\x3C/option>                \x3Coption value="12" selected>12 Items\x3C/option>                \x3Coption value="24">24 Items\x3C/option>                \x3Coption value="48">48 Items\x3C/option>              \x3C/select>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Deal Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Only show products with active offers or previous prices (was_price)\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-deal-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item tg-df-dl-row">              \x3Cdiv>                \x3Cspan class="tg-df-dl-row-text">Editor Mode\x3C/span>                \x3Cspan class="tg-df-dl-row-subtext">Enable multi-select to copy deals to CMS\x3C/span>              \x3C/div>              \x3Clabel class="tg-df-toggle">                \x3Cinput type="checkbox" id="tg-df-editor-mode">                \x3Cspan class="tg-df-slider">\x3C/span>              \x3C/label>            \x3C/div>            \x3Cdiv class="tg-df-setting-item">              \x3Clabel class="tg-df-setting-label">View Mode\x3C/label>              \x3Cselect class="tg-df-region-select" id="tg-df-view-mode-select">                \x3Coption value="auto">Auto Collection\x3C/option>                \x3Coption value="carousel">Carousel\x3C/option>                \x3Coption value="savings_squad">Savings Squad\x3C/option>                \x3Coption value="grid">Grid (Columns)\x3C/option>                \x3Coption value="row">Row (List)\x3C/option>              \x3C/select>            \x3C/div>          \x3C/div>        \x3C/div>      \x3C/div>      \x3Cdiv class="tg-df-filters">        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-category-filter-wrapper" style="display: none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-category-filter" aria-label="Category">            \x3Coption value="all">All Categories\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-multiselect-container" id="tg-df-brand-filter-wrapper" style="display:none;">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"/>          \x3C/svg>          \x3Cdiv class="tg-df-filter-select tg-df-multiselect-trigger" id="tg-df-brand-trigger" tabindex="0">            Any Brand          \x3C/div>          \x3Cdiv class="tg-df-multiselect-dropdown" id="tg-df-brand-dropdown">            \x3C!-- Populated via script --\x3E          \x3C/div>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/>          \x3C/svg>          \x3Cselect class="tg-df-sort-select" aria-label="Sort Deals">            \x3Coption value="date_desc">Newest First\x3C/option>            \x3Coption value="best_match">Sort by: Match\x3C/option>            \x3Coption value="price_asc">Price Low to High\x3C/option>            \x3Coption value="price_desc">Price High to Low\x3C/option>            \x3Coption value="discount_desc">Biggest Discount\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper tg-df-price-range-wrapper" id="tg-df-custom-price-wrapper" style="display: flex; align-items:center; justify-content:center; padding: 10px 20px; gap: 8px; border: 1px solid var(--tg-df-border); border-radius: 100px; background-color: var(--tg-df-bg);">          \x3Cspan style="font-size:14px; font-weight:500; color:var(--tg-df-text-primary);">Price\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-min" placeholder="Min" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">          \x3Cspan style="color:var(--tg-df-text-muted)">-\x3C/span>          \x3Cinput type="number" class="tg-df-price-input" id="tg-df-custom-price-max" placeholder="Max" style="width: 48px; background: transparent; border: none; color: var(--tg-df-text-primary); outline: none; font-size: 14px; text-align: center; padding: 0;">        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-legacy-price-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-price-filter" aria-label="Filter Prices">            \x3Coption value="all">All Prices\x3C/option>            \x3Coption value="under50">Under $50\x3C/option>            \x3Coption value="50_100">$50 - $100\x3C/option>            \x3Coption value="100_200">$100 - $200\x3C/option>            \x3Coption value="200_500">$200 - $500\x3C/option>            \x3Coption value="over500">Over $500\x3C/option>          \x3C/select>        \x3C/div>        \x3Cdiv class="tg-df-sort-wrapper" id="tg-df-discount-filter-wrapper">          \x3Csvg class="tg-df-sort-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">            \x3Cpath d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"/>          \x3C/svg>          \x3Cselect class="tg-df-filter-select" id="tg-df-discount-filter" aria-label="Discount Amount">            \x3Coption value="all">Any discount\x3C/option>            \x3Coption value="5">Min 5%\x3C/option>            \x3Coption value="10">Min 10%\x3C/option>            \x3Coption value="15">Min 15%\x3C/option>            \x3Coption value="20">Min 20%\x3C/option>            \x3Coption value="25">Min 25%\x3C/option>            \x3Coption value="30">Min 30%\x3C/option>            \x3Coption value="40">Min 40%\x3C/option>            \x3Coption value="50">Min 50%\x3C/option>            \x3Coption value="60">Min 60%\x3C/option>            \x3Coption value="70">Min 70%\x3C/option>          \x3C/select>        \x3C/div>      \x3C/div>    \x3C/div>    \x3C!-- Deals Grid Wrapper --\x3E    \x3Cdiv class="tg-df-grid-wrapper tg-df-carousel-cards-wrapper" id="tg-df-grid-wrapper">      \x3Cdiv class="tg-df-grid" id="tg-df-grid">        \x3C!-- Content populated by JavaScript --\x3E      \x3C/div>    \x3C/div>        \x3C!-- Vouchers Modal --\x3E    \x3Cdiv class="tg-df-modal-backdrop" id="tg-df-vouchers-modal">      \x3Cdiv class="tg-df-modal">        \x3Cdiv class="tg-df-modal-header">          \x3Ch3 class="tg-df-modal-title" id="tg-df-vouchers-title">Available Coupons & Deals\x3C/h3>          \x3Cbutton class="tg-df-modal-close" id="tg-df-vouchers-close">            \x3Csvg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">              \x3Cline x1="18" y1="6" x2="6" y2="18">\x3C/line>              \x3Cline x1="6" y1="6" x2="18" y2="18">\x3C/line>            \x3C/svg>          \x3C/button>        \x3C/div>        \x3Cdiv class="tg-df-modal-body" id="tg-df-vouchers-content">          \x3C!-- Vouchers injected here --\x3E        \x3C/div>      \x3C/div>    \x3C/div>  \x3C/div>`;      if (!template) {        template = document.createElement('template');        template.innerHTML = rawTemplate;      }      let shadowRoot = null;      if (hostContainer && template) {        hostContainer.setAttribute('data-initialized', 'true');        shadowRoot = hostContainer.attachShadow({ mode: 'open' });        shadowRoot.appendChild(template.content.cloneNode(true));      }      class DealsFinderWidget {        constructor(config) {          this.rootNode = config.rootNode || document;          this.hostContainer = config.hostContainer || null;          this.rootId = config.rootId || 'signal-deals-finder-root';          this.root = this.rootNode.querySelector('#' + this.rootId);          if (!this.root) return;          this.widgetId = (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'widget-' + Date.now() + '-' + Math.random().toString(36).slice(2);          this.grid = this.root.querySelector('#tg-df-grid');          this.tagsContainer = this.root.querySelector('#tg-df-tags-container');          this.categoryFilter = this.root.querySelector('#tg-df-category-filter');          this.categoryFilterWrapper = this.root.querySelector('#tg-df-category-filter-wrapper');          this.searchInput = this.root.querySelector('.tg-df-search-input');          this.autocompleteDropdown = this.root.querySelector('#tg-df-autocomplete');          this.sortSelect = this.root.querySelector('.tg-df-sort-select');          this.searchBtn = this.root.querySelector('.tg-df-search-btn');                    this.settingsToggle = this.root.querySelector('#tg-df-settings-toggle');          this.settingsPanel = this.root.querySelector('#tg-df-settings-panel');          this.settingsBackdrop = this.root.querySelector('#tg-df-settings-backdrop');          this.regionSelect = this.root.querySelector('#tg-df-region-select');          this.retailerSelect = this.root.querySelector('#tg-df-retailer-select');          this.offerTypeSelect = this.root.querySelector('#tg-df-offer-type-select');          this.viewModeSelect = this.root.querySelector('#tg-df-view-mode-select');          this.rowsSelect = this.root.querySelector('#tg-df-rows-select');          this.dealModeToggle = this.root.querySelector('#tg-df-deal-mode');          this.editorModeToggle = this.root.querySelector('#tg-df-editor-mode');          this.priceFilter = this.root.querySelector('#tg-df-price-filter');          this.discountFilter = this.root.querySelector('#tg-df-discount-filter');                    this.editorBar = this.root.querySelector('#tg-df-editor-bar');          this.editorSelectedCount = this.root.querySelector('#tg-df-selected-count');          this.editorCopyBtn = this.root.querySelector('#tg-df-editor-copy');          this.editorClearBtn = this.root.querySelector('#tg-df-editor-clear');                    this.apiUrl = 'https://search-api.fie.future.net.uk/widget.php';          this.deals = [];          this.displayLimit = 12;          this.airedaleArticles = null;          this.airedaleTags = [];          this.airedaleTagCounts = {};          this.activeDealTag = null;          this.selectedBrands = [];          this.currentQuery = '';          this.editorMode = this.hostContainer ? this.hostContainer.hasAttribute('data-editor-mode') : false;          this.viewModeOverride = this.hostContainer ? this.hostContainer.getAttribute('data-view-mode') : null;          this.selectedDeals = new Map();                    this.brandFilterWrapper = this.root.querySelector('#tg-df-brand-filter-wrapper');          this.brandTrigger = this.root.querySelector('#tg-df-brand-trigger');          this.brandDropdown = this.root.querySelector('#tg-df-brand-dropdown');                    this.customPriceWrapper = this.root.querySelector('#tg-df-custom-price-wrapper');          this.customPriceMin = this.root.querySelector('#tg-df-custom-price-min');          this.customPriceMax = this.root.querySelector('#tg-df-custom-price-max');          this.legacyPriceWrapper = this.root.querySelector('#tg-df-legacy-price-wrapper');          this.discountFilterWrapper = this.root.querySelector('#tg-df-discount-filter-wrapper');          this.initResizeObserver();          this.init();            if (['carousel', 'carousel-compact', 'auto', 'grid', 'row'].includes(this.getViewMode())) { this.loadCarouselSpreadsheet(); }        }        getViewMode() {          if (this.viewModeOverride && (!this.editorMode || !this.viewModeSelect)) {            return this.viewModeOverride;          }          return (this.viewModeSelect && this.viewModeSelect.value) ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');        }        applyLayoutMode() {          if (!this.grid) return;          const mode = this.getViewMode();          this.grid.classList.remove('layout-row', 'layout-grid', 'tg-df-grid-auto', 'carousel-compact', 'layout-replica-1', 'layout-replica-2');                    const carouselHost = this.root.querySelector('#tg-df-carousel-host');          const controlsDiv = this.root.querySelector('#tg-df-controls');          if (mode === 'carousel' || mode === 'auto' || mode === 'grid' || mode === 'row') {             if (mode === 'carousel') this.grid.classList.add('carousel-compact');             if (carouselHost) carouselHost.style.display = 'block';             if (controlsDiv) controlsDiv.style.display = 'none';             if (this.root.classList.contains('tg-df-container') && mode === 'carousel') {               this.root.classList.add('is-carousel');             } else if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          } else {             if (carouselHost) carouselHost.style.display = 'none';             if (controlsDiv) controlsDiv.style.display = 'flex';             if (this.root.classList.contains('tg-df-container')) {               this.root.classList.remove('is-carousel');             }          }          if (mode === 'grid') {            this.grid.classList.add('layout-grid');          } else if (mode === 'row') {            this.grid.classList.add('layout-row');          } else if (mode === 'savings_squad') {            this.grid.classList.add('tg-df-grid-auto', 'savings-squad-cards');          } else if (mode !== 'carousel') {            this.grid.classList.add('tg-df-grid-auto');          }                    const settingsWrapper = this.root.querySelector('.tg-df-settings-wrapper');          if (settingsWrapper) {            settingsWrapper.style.display = mode === 'auto' ? 'none' : 'block';          }          if (this.customPriceWrapper) {             this.customPriceWrapper.style.display = mode === 'auto' ? 'flex' : 'none';          }          if (this.legacyPriceWrapper) {             this.legacyPriceWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }          if (this.discountFilterWrapper) {             this.discountFilterWrapper.style.display = mode === 'auto' ? 'none' : 'flex';          }        }        initResizeObserver() {          try {            if (window.parent === window) return;          } catch (e) {            // cross origin frame check threw          }          const emitHeight = () => {            try {              const height = document.documentElement.scrollHeight || document.body.scrollHeight;              const msg = { type: 'embed-size', height: height };              if (window.parent && window.parent !== window) {                window.parent.postMessage(msg, '*');                window.parent.postMessage(JSON.stringify({ ...msg, sentinel: 'amp' }), '*');              }            } catch (e) {}          };                    if (window.ResizeObserver) {            try {              const ro = new ResizeObserver(() => emitHeight());              ro.observe(document.body);              if (this.root) ro.observe(this.root);            } catch(e){ console.warn(e); }          }          window.addEventListener('resize', emitHeight);          setTimeout(emitHeight, 300);        }        initCountdown() {          this.cdWrapper = this.root.querySelector('#tg-df-countdown-wrapper');                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          this.showCountdown = params.get('show_countdown') === 'true';          const showHeaderDetails = params.get('show_header_details') !== 'false';          const eyebrow = this.root.querySelector('.tg-df-carousel-box-eyebrow');          const title = this.root.querySelector('.tg-df-carousel-box-title');          const subtitle = this.root.querySelector('.tg-df-carousel-box-subtitle');          if (!showHeaderDetails) {            let containerElement = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (containerElement) containerElement.classList.add('hide-header-details');            if (eyebrow) eyebrow.style.display = 'none';            if (title) title.style.display = 'none';            if (subtitle) subtitle.style.display = 'none';          }          if (!this.cdWrapper) return;          this.cdTitle = this.root.querySelector('#tg-df-countdown-title');          this.cdDays = this.root.querySelector('#tg-df-cd-days');          this.cdHrs = this.root.querySelector('#tg-df-cd-hrs');          this.cdMin = this.root.querySelector('#tg-df-cd-min');          this.cdSec = this.root.querySelector('#tg-df-cd-sec');          this.updateCountdown();          this.cdInterval = setInterval(() => this.updateCountdown(), 1000);        }        updateCountdown() {          if (!this.cdWrapper) return;          if (!this.showCountdown) {            this.cdWrapper.style.display = 'none';            return;          }          const area = this.getAreaCode();          let offset = '-04:00';          if (['DE', 'FR', 'IT', 'ES', 'NL'].includes(area)) {             offset = '+02:00';          } else if (['GB', 'IE', 'UK'].includes(area)) {             offset = '+01:00';          }          const startTime = new Date('2026-06-23T00:00:00' + offset).getTime();          const endTime = new Date('2026-06-26T00:00:00' + offset).getTime();          const now = Date.now();          let targetTime = 0;          if (now < startTime) {             targetTime = startTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day starts in';             this.cdWrapper.style.display = 'flex';          } else if (now < endTime) {             targetTime = endTime;             if (this.cdTitle) this.cdTitle.textContent = 'Prime Day ends in';             this.cdWrapper.style.display = 'flex';          } else {             this.cdWrapper.style.display = 'none';             if (this.cdInterval) clearInterval(this.cdInterval);             return;          }          const diff = Math.max(0, targetTime - now);          const d = Math.floor(diff / (1000 * 60 * 60 * 24));          const h = Math.floor((diff / (1000 * 60 * 60)) % 24);          const m = Math.floor((diff / 1000 / 60) % 60);          const s = Math.floor((diff / 1000) % 60);          if (this.cdDays) this.cdDays.textContent = d;          if (this.cdHrs) this.cdHrs.textContent = h;          if (this.cdMin) this.cdMin.textContent = m;          if (this.cdSec) this.cdSec.textContent = s;        }        init() {          this.initCountdown();          try {            initAnalytics();          } catch (e) {            console.warn('Deals Widget Analytics Error:', e);          }                    this.bindEvents();                    let initialQuery = '';                    let searchSource = window.location.search;          if (this.hostContainer && this.hostContainer.hasAttribute('data-widget-config')) {            searchSource = this.hostContainer.getAttribute('data-widget-config');          } else if (typeof window !== 'undefined' && window.__WIDGET_CONFIG__) {            searchSource = window.__WIDGET_CONFIG__;          }          const params = new URLSearchParams(searchSource);          let initialViewMode = params.get('view_mode');          if (!params.has('search') && !params.has('q') && !params.has('query') && initialViewMode !== 'savings_squad') {             initialQuery = 'Everything';             if (this.discountFilter && !params.has('min_discount_ratio')) {               this.discountFilter.value = '5';             }          }                    if (this.regionSelect) {            this.regionSelect.value = params.get('region') || 'auto';            this.updatePriceDropdownCurrency();          }                    if (this.retailerSelect && params.has('retailer')) {            this.retailerSelect.value = params.get('retailer');          }                    if (params.has('brands')) {            const b = params.get('brands');            if (b) {              this.selectedBrands = b.split(',');            }          }                    if (this.offerTypeSelect && params.has('offer_type')) {            this.offerTypeSelect.value = params.get('offer_type');          }          if (params.has('bg_color')) {            const bg = params.get('bg_color');            if (bg === 'white') {              this.root.style.setProperty('background-color', '#ffffff', 'important');            } else if (bg === 'transparent') {              this.root.style.setProperty('background-color', 'transparent', 'important');            } else if (bg === 'light_blue') {              this.root.style.setProperty('background-color', '#E7F0FF', 'important');            }          } else {             this.root.style.removeProperty('background-color');          }                    if (params.has('view_mode')) {            if (this.viewModeSelect) {              this.viewModeSelect.value = params.get('view_mode');            } else {              this.viewModeOverride = params.get('view_mode');            }          }          if (this.rowsSelect && params.has('rows')) {            this.rowsSelect.value = params.get('rows');          }          if (params.has('price')) {            const priceVal = params.get('price');            if (this.priceFilter) {               // Try assigning it directly to select. If it's not present implicitly ignores               this.priceFilter.value = priceVal;            }            if (priceVal.includes('_')) {               const parts = priceVal.split('_');               if (this.customPriceMin && parts[0]) this.customPriceMin.value = parts[0];               if (this.customPriceMax && parts[1]) this.customPriceMax.value = parts[1];            }          }          if (this.discountFilter && params.has('min_discount_ratio')) {            // Need to convert back from ratio (e.g. 0.8) to select value (e.g. "20")            const ratioStr = params.get('min_discount_ratio');            const ratioFloat = parseFloat(ratioStr);            if (!isNaN(ratioFloat)) {               const percentage = Math.round((1 - ratioFloat) * 100);               this.discountFilter.value = percentage.toString();            }          }          if (this.sortSelect) {            this.sortSelect.value = params.get('sort') || 'discount_desc';          }          if (this.dealModeToggle && params.has('deal_mode')) {            this.dealModeToggle.checked = params.get('deal_mode') === 'true' || params.get('deal_mode') === '1';          }                    // Re-apply layout after params have updated control values          this.applyLayoutMode();                    if (params.get('search')) {            initialQuery = params.get('search');          } else if (params.get('q')) {            initialQuery = params.get('q');          } else if (params.get('query')) {            initialQuery = params.get('query');          }                    this.currentQuery = initialQuery;          if (this.searchInput) {            this.searchInput.value = this.currentQuery;          }                    if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {            this.fetchDeals(this.currentQuery);          } else {            this.render();          }        }        updatePriceDropdownCurrency() {          if (!this.priceFilter || !this.regionSelect) return;          const currencySymbols = {            'US': '$',            'GB': '£',            'CA': '$CA',            'AU': '$AU',            'DE': '€',            'FR': '€',            'IT': '€',          };          const area = this.getAreaCode();          const cur = currencySymbols[area || 'US'] || '$';                    const options = this.priceFilter.options;          for (let i = 0; i < options.length; i++) {            const opt = options[i];            if (opt.value === 'all') {              opt.innerText = 'All Prices';            } else if (opt.value === 'under50') {              opt.innerText = `Under ${cur}50`;            } else if (opt.value === '50_100') {              opt.innerText = `${cur}50 - ${cur}100`;            } else if (opt.value === '100_200') {              opt.innerText = `${cur}100 - ${cur}200`;            } else if (opt.value === '200_500') {              opt.innerText = `${cur}200 - ${cur}500`;            } else if (opt.value === 'over500') {              opt.innerText = `Over ${cur}500`;            }          }        }        populateBrandDropdown(values) {          if (!this.brandDropdown || !this.brandFilterWrapper) return;          this.brandFilterWrapper.style.display = 'flex'; // show the wrapper                    let html = '';          const allChecked = this.selectedBrands.length === 0 ? 'checked' : '';          const _div = '<' + '/div>';          const _span = '<' + '/span>';          html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="" ${allChecked} class="tg-df-brand-chk"> Any Brand${_div}`;                    values.forEach(v => {             if (!v.formatted_value || v.formatted_value === 'Any Brand') return;             const isChecked = this.selectedBrands.includes(v.formatted_value) ? 'checked' : '';             html += `\x3Cdiv class="tg-df-ms-option">\x3Cinput type="checkbox" value="${this.escapeHTML(v.formatted_value)}" ${isChecked} class="tg-df-brand-chk"> ${this.escapeHTML(v.formatted_value)} \x3Cspan style="color:var(--tg-df-text-muted);font-size:12px">(${v.count || 0})${_span}${_div}`;          });                    this.brandDropdown.innerHTML = html;                    // Re-bind listeners          const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');          chks.forEach(chk => {            chk.addEventListener('change', (e) => {              const val = e.target.value;              if (val === '') {                this.selectedBrands = [];              } else {                if (e.target.checked) {                   if (!this.selectedBrands.includes(val)) this.selectedBrands.push(val);                } else {                   this.selectedBrands = this.selectedBrands.filter(b => b !== val);                }              }                            if (this.selectedBrands.length === 0) {                 this.brandTrigger.innerText = 'Any Brand';              } else if (this.selectedBrands.length === 1) {                 this.brandTrigger.innerText = this.selectedBrands[0];              } else {                 this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;              }                            // Only call API if changed from UI interactions              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.updateURLParams();                 this.fetchDeals(this.currentQuery);              }            });          });                    // Update button text on load          if (this.selectedBrands.length === 0) {             this.brandTrigger.innerText = 'Any Brand';          } else if (this.selectedBrands.length === 1) {             this.brandTrigger.innerText = this.selectedBrands[0];          } else {             this.brandTrigger.innerText = `${this.selectedBrands.length} Brands selected`;          }        }        updateURLParams() {          const url = new URL(window.location);          if (this.currentQuery && this.currentQuery !== 'Gaming laptops') {            url.searchParams.set('q', this.currentQuery);          } else {            url.searchParams.delete('q');            url.searchParams.delete('search');            url.searchParams.delete('query');          }                    if (this.regionSelect && this.regionSelect.value !== 'auto') {            url.searchParams.set('region', this.regionSelect.value);          } else {            url.searchParams.delete('region');          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.set('retailer', this.retailerSelect.value);          } else {            url.searchParams.delete('retailer');          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.set('brands', this.selectedBrands.join(','));          } else {            url.searchParams.delete('brands');          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.set('offer_type', this.offerTypeSelect.value);          } else {            url.searchParams.delete('offer_type');          }                    if (this.viewModeSelect && this.viewModeSelect.value !== 'auto') {            url.searchParams.set('view_mode', this.viewModeSelect.value);          } else {            url.searchParams.delete('view_mode');          }                    if (this.rowsSelect && this.rowsSelect.value !== '12') {            url.searchParams.set('rows', this.rowsSelect.value);          } else {            url.searchParams.delete('rows');          }                    const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             url.searchParams.set('price', `${min}_${max}`);          } else if (this.priceFilter && this.priceFilter.value !== 'all') {            url.searchParams.set('price', this.priceFilter.value);          } else {            url.searchParams.delete('price');          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {               const ratio = (100 - v) / 100;               url.searchParams.set('min_discount_ratio', ratio.toString());            }          } else {            url.searchParams.delete('min_discount_ratio');          }                    if (this.sortSelect && this.sortSelect.value !== 'discount_desc') {            url.searchParams.set('sort', this.sortSelect.value);          } else {            url.searchParams.delete('sort');          }                    if (this.dealModeToggle && this.dealModeToggle.checked) {            url.searchParams.set('deal_mode', 'true');          } else {            url.searchParams.delete('deal_mode');          }                    window.history.replaceState({}, '', url);        }        bindEvents() {          const roundels = this.root.querySelectorAll('.tg-df-carousel-cat.original-hardcoded');          roundels.forEach(r => {             r.addEventListener('click', () => {                const q = r.getAttribute('data-query');                const pr = r.getAttribute('data-pr');                this.currentQuery = q;                const label = this.root.querySelector('#tg-df-carousel-title-label');                if (label) label.textContent = 'Best ' + q;                if (this.priceFilter) this.priceFilter.value = pr || 'all';                if (this.discountFilter) this.discountFilter.value = '5';                if (this.searchInput) this.searchInput.value = q;                                roundels.forEach(ro => ro.classList.remove('active'));                r.classList.add('active');                this.fetchDeals(this.currentQuery);             });          });          const discBtns = this.root.querySelectorAll('.tg-df-carousel-filter-btn');          discBtns.forEach(b => {             b.addEventListener('click', () => {                const d = b.getAttribute('data-d');                const pr = b.getAttribute('data-pr');                const ot = b.getAttribute('data-ot');                let label = b.innerText ? b.innerText.trim() : '';                let filterType = 'unknown';                let filterVal = 'unknown';                if (d !== null) { filterType = 'discount'; filterVal = d; }                else if (pr !== null) { filterType = 'price'; filterVal = pr; }                else if (ot !== null) { filterType = 'offertype'; filterVal = ot; }                if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-${filterType}-${filterVal}`, name: 'Filter Button', label: label });                                if (d !== null) {                   if (this.discountFilter) this.discountFilter.value = this.discountFilter.value === d ? '0' : d;                } else if (pr !== null) {                   if (this.priceFilter) this.priceFilter.value = this.priceFilter.value === pr ? 'all' : pr;                } else if (ot !== null) {                   if (this.offerTypeSelect) this.offerTypeSelect.value = this.offerTypeSelect.value === ot ? 'all' : ot;                } else {                   if (this.discountFilter) this.discountFilter.value = '0';                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.offerTypeSelect) this.offerTypeSelect.value = 'all';                }                if (d === null && pr === null && ot === null && b.getAttribute("data-type") !== "custom") {                   discBtns.forEach(ro => ro.classList.remove('active'));                   b.classList.add('active');                } else if (b.getAttribute("data-type") !== "custom") {                   // Only operate on hardcoded buttons (those without data-type)                   discBtns.forEach(ro => {                      if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active');                   });                                      let makeActive = true;                   if (d !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-d') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (pr !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-pr') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   } else if (ot !== null) {                       if (b.classList.contains('active')) makeActive = false;                       discBtns.forEach(ro => { if (ro.getAttribute('data-ot') !== null && ro.getAttribute('data-type') !== 'custom') ro.classList.remove('active') });                   }                                      if (makeActive) b.classList.add('active');                                      // Check if anything is active, if not activate "All"                   let anyActive = false;                   discBtns.forEach(ro => { if (ro.classList.contains('active') && ro.getAttribute('data-type') !== 'custom') anyActive = true; });                   if (!anyActive) {                       discBtns.forEach(ro => { if (!ro.getAttribute('data-d') && !ro.getAttribute('data-pr') && !ro.getAttribute('data-ot') && ro.getAttribute('data-type') !== 'custom') ro.classList.add('active'); });                   }                }                                this.fetchDeals(this.currentQuery);             });          });          if (this.brandTrigger && this.brandDropdown) {            this.brandTrigger.addEventListener('click', () => {              this.brandDropdown.classList.toggle('active');            });            document.addEventListener('click', (e) => {              if (this.brandFilterWrapper && !e.composedPath().includes(this.brandFilterWrapper)) {                this.brandDropdown.classList.remove('active');              }            });          }          let debounceTimer;          if(this.searchInput) {            this.searchInput.addEventListener('input', (e) => {              clearTimeout(debounceTimer);              const query = e.target.value.trim();              this.currentQuery = query;              if (this.getViewMode() === 'savings_squad' && this.autocompleteDropdown && this.airedaleTags && query.length > 0) {                 const matches = this.airedaleTags.filter(t => t.toLowerCase().includes(query.toLowerCase()) && t.toLowerCase() !== query.toLowerCase()).slice(0, 5);                 if (matches.length > 0) {                    this.autocompleteDropdown.innerHTML = matches.map(m => `\x3Cdiv class="tg-df-autocomplete-item" data-tag="${this.escapeHTML(m)}">${this.escapeHTML(m)}<` + `/div>`).join('');                    this.autocompleteDropdown.classList.add('active');                 } else {                    this.autocompleteDropdown.classList.remove('active');                 }              } else if (this.autocompleteDropdown) {                 this.autocompleteDropdown.classList.remove('active');              }              debounceTimer = setTimeout(() => {                this.updateURLParams();                if (query.length > 2) {                  this.fetchDeals(query);                } else if (query.length === 0) {                  this.deals = [];                  this.render();                }              }, 400);            });            this.searchInput.addEventListener('keypress', (e) => {              if (e.key === 'Enter') {                if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');                clearTimeout(debounceTimer);                const query = e.target.value.trim();                this.currentQuery = query;                this.activeDealTag = null;                trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });                this.updateURLParams();                if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                   this.fetchDeals(query);                }              }            });          }          if (this.autocompleteDropdown) {             this.autocompleteDropdown.addEventListener('click', (e) => {                const item = e.target.closest('.tg-df-autocomplete-item');                if (item) {                   const tag = item.getAttribute('data-tag');                   this.currentQuery = tag;                   if (this.searchInput) this.searchInput.value = tag;                   this.activeDealTag = tag;                   this.autocompleteDropdown.classList.remove('active');                   this.updateURLParams();                   this.fetchDeals(tag);                }             });             document.addEventListener('click', (e) => {               if (this.autocompleteDropdown && this.searchInput && !e.composedPath().includes(this.searchInput) && !e.composedPath().includes(this.autocompleteDropdown)) {                 this.autocompleteDropdown.classList.remove('active');               }             });          }          if (this.searchBtn) {            this.searchBtn.addEventListener('click', () => {              if (this.autocompleteDropdown) this.autocompleteDropdown.classList.remove('active');              clearTimeout(debounceTimer);              const query = this.searchInput.value.trim();              trackElementInteraction({ id: 'search-submit', name: 'Ask', label: 'Ask (main search)', text: query });              this.activeDealTag = null;              this.currentQuery = query;              this.updateURLParams();              if (query.length > 2 || (this.getViewMode() === 'savings_squad')) {                 this.fetchDeals(query);              }            });          }          if(this.sortSelect) this.sortSelect.addEventListener('change', () => {            trackElementInteraction({ id: `sort-option-${this.sortSelect.value}`, name: 'Sort', label: `Sort: ${this.sortSelect.options[this.sortSelect.selectedIndex].text}` });            this.updateURLParams();            if (this.deals.length > 0) {              this.sortData();              this.render();            }          });                    const priceFilter = this.root.querySelector('#tg-df-price-filter');          if (priceFilter) {            this.priceFilter = priceFilter;            this.priceFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-price-${this.priceFilter.value}`, name: 'Price', label: this.priceFilter.options[this.priceFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          const updateCustomPrice = () => {             this.updateURLParams();             if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);             } else {                this.render();             }          };          if (this.customPriceMin) {             this.customPriceMin.addEventListener('change', updateCustomPrice);             this.customPriceMin.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          if (this.customPriceMax) {             this.customPriceMax.addEventListener('change', updateCustomPrice);             this.customPriceMax.addEventListener('keypress', (e) => {                if (e.key === 'Enter') updateCustomPrice();             });          }          const discountFilter = this.root.querySelector('#tg-df-discount-filter');          if (discountFilter) {            this.discountFilter = discountFilter;            this.discountFilter.addEventListener('change', () => {              trackElementInteraction({ id: `filter-discount-${this.discountFilter.value}`, name: 'Discount', label: this.discountFilter.options[this.discountFilter.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }            });          }          if (this.categoryFilter) {            this.categoryFilter.addEventListener('change', (e) => {               const val = e.target.value === 'all' ? null : e.target.value;               this.activeDealTag = val;               this.fetchSavingsSquad();            });          }                    if (this.settingsToggle) {            this.settingsToggle.addEventListener('click', () => {              const o = this.settingsPanel.classList.toggle('active');              this.settingsBackdrop.classList.toggle('active');              if (o) trackElementInteraction({ id: 'filter-open', name: 'Filters', label: 'Open filters' });            });          }                    if (this.settingsBackdrop) {            this.settingsBackdrop.addEventListener('click', () => {              this.settingsPanel.classList.remove('active');              this.settingsBackdrop.classList.remove('active');            });          }                    if (this.regionSelect) {            this.regionSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-region-${this.regionSelect.value}`, name: 'Region', label: this.regionSelect.options[this.regionSelect.selectedIndex].text });              this.updateURLParams();              this.updatePriceDropdownCurrency();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.retailerSelect) {            this.retailerSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-merchant-${this.retailerSelect.value}`, name: 'Retailer', label: this.retailerSelect.options[this.retailerSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.offerTypeSelect) {            this.offerTypeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-offertype-${this.offerTypeSelect.value}`, name: 'Offer Type', label: this.offerTypeSelect.options[this.offerTypeSelect.selectedIndex].text });              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.viewModeSelect) {            this._prevViewMode = this.viewModeSelect.value;            this.viewModeSelect.addEventListener('change', () => {              trackElementInteraction({ id: `filter-viewmode-${this.viewModeSelect.value}`, name: 'View Mode', label: this.viewModeSelect.options[this.viewModeSelect.selectedIndex].text });                            // Reset all active toggles and filters to prevent config carry-over              this.selectedBrands = [];              if (this.brandTrigger) this.brandTrigger.innerText = 'Select Brands';              if (this.brandDropdown) {                const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                chks.forEach(chk => { chk.checked = false; });              }              if (this.priceFilter) this.priceFilter.value = 'all';              if (this.customPriceMin) this.customPriceMin.value = '';              if (this.customPriceMax) this.customPriceMax.value = '';              if (this.sortSelect) this.sortSelect.value = this.viewModeSelect.value === 'savings_squad' ? 'date_desc' : 'discount_desc';              if (this.discountFilter) this.discountFilter.value = '0';              if (this.retailerSelect) this.retailerSelect.value = '';              if (this.offerTypeSelect) this.offerTypeSelect.value = '';              if (this.rowsSelect) this.rowsSelect.value = '12';              if (this.categoryFilter) this.categoryFilter.value = 'all';              this.activeDealTag = null;              this.updateURLParams();              this.applyLayoutMode();                            if (this.getViewMode() === 'savings_squad' || this._prevViewMode === 'savings_squad') {                this.fetchDeals(this.currentQuery);              } else {                this.render();              }              this._prevViewMode = this.viewModeSelect.value;            });          }                    if (this.rowsSelect) {            this.rowsSelect.addEventListener('change', () => {              this.updateURLParams();              if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {                this.fetchDeals(this.currentQuery);              }            });          }                    if (this.dealModeToggle) {            this.dealModeToggle.addEventListener('change', () => {              this.updateURLParams();              this.render();            });          }          if (this.editorModeToggle) {             this.editorModeToggle.addEventListener('change', (e) => {                this.editorMode = e.target.checked;                this.render();                this.updateFloatingCopyBar();             });          }          if (this.editorCopyBtn) {             this.editorCopyBtn.addEventListener('click', () => {                this.copySelectedDealsToCMS();             });          }          if (this.editorClearBtn) {             this.editorClearBtn.addEventListener('click', () => {                this.selectedDeals.clear();                this.render();                this.updateFloatingCopyBar();             });          }          if (this.grid) {            this.grid.addEventListener('change', (e) => {               if (e.target.classList.contains('tg-df-deal-checkbox')) {                  const dealId = e.target.getAttribute('data-id');                  if (e.target.checked) {                     const dealObj = this.deals.find(d => d.id === dealId);                     if (dealObj) this.selectedDeals.set(dealId, dealObj);                  } else {                     this.selectedDeals.delete(dealId);                  }                  this.updateFloatingCopyBar();               }            });            this.grid.addEventListener('click', (e) => {              const dealCard = e.target.closest('[data-action="deal-click"]');              const similarCard = e.target.closest('[data-action="view-similar-click"]');              const cardLink = dealCard || similarCard;              if (cardLink) {                const productName = cardLink.getAttribute('data-product-name');                const merchantName = cardLink.getAttribute('data-merchant-name');                const productId = cardLink.getAttribute('data-analytics-id');                const price = parseFloat(cardLink.getAttribute('data-price')) || null;                const prevPriceStr = cardLink.getAttribute('data-previous-price');                const previousPrice = prevPriceStr ? parseFloat(prevPriceStr) : null;                const originalLink = cardLink.getAttribute('data-original-link');                const rewrittenLink = cardLink.getAttribute('href');                const revenueId = cardLink.getAttribute('data-revenue-id');                const index = parseInt(cardLink.getAttribute('data-index'), 10) || 0;                const inStock = cardLink.getAttribute('data-in-stock') === 'true';                const totalText = cardLink.getAttribute('data-total');                const totalDeals = parseInt(totalText, 10) || 0;                const productCategoryName = 'deals';                const trackingParams = {                  widgetId: this.widgetId,                  productCategoryName: productCategoryName,                  product: {                    modelId: cardLink.getAttribute('data-model-id') || null,                    matchId: cardLink.getAttribute('data-match-id') || null,                    brand: cardLink.getAttribute('data-model-brand') || null,                    parent: cardLink.getAttribute('data-model-parent') || null,                    name: productName,                    price: price,                    previousPrice: previousPrice,                    link: rewrittenLink,                    originalLink: originalLink,                    inStock: inStock                  },                  zeroBasedProductIndexOrNull: index,                  totalDealsOrProducts: totalDeals,                   merchant: {                    id: cardLink.getAttribute('data-merchant-id') || null,                    network: cardLink.getAttribute('data-merchant-network') || null,                    url: cardLink.getAttribute('data-merchant-url') || null,                    name: merchantName                  },                  revenueId: revenueId,                  widgetTypeName: this.widgetTypeName,                  isoCurrencyCode: normalizeCurrency(this.escapeHTML(cardLink.getAttribute('data-currency') || '$'))                };                if (dealCard) {                  trackDealClick(trackingParams);                } else {                  trackViewSimilarClick(trackingParams);                }              }              const couponsBtn = e.target.closest('[data-action="coupons-click"]');              if (couponsBtn) {                trackElementInteraction({                  id: 'product-card-show-coupons',                  name: 'Coupons',                  label: `Product card coupons: ${couponsBtn.getAttribute('data-merchant')}`                });              }            });          }        }        get widgetTypeName() {          const mode = this.viewModeSelect ? this.viewModeSelect.value : (this.viewModeOverride || 'auto');          switch(mode) {              case 'carousel': return 'Carousel';              case 'savings_squad': return 'Savings Squad';              case 'grid': return 'Grid';              case 'row': return 'Row';              default: return 'Auto Collection';          }        }        getAreaCode() {          if (this.regionSelect && this.regionSelect.value) {            if (this.regionSelect.value === 'auto') return null;            return this.regionSelect.value;          }          let area = null;          try {            const locale = window.navigator.language || window.navigator.userLanguage;            if (locale && locale.includes('-')) {              area = locale.split('-')[1].toUpperCase();            } else if (locale && locale.length === 2) {              if (locale.toUpperCase() === 'EN') { area = 'US'; }              else { area = locale.toUpperCase(); }            }          } catch (e) { /* Ignore */ }                    // Map to known valid options or fallback to US          const valid = ['US', 'GB', 'CA', 'AU', 'DE', 'FR', 'IT'];          if (area === 'UK') area = 'GB';          if (valid.includes(area)) {             return area;          }          return 'US';        }                async loadCarouselSpreadsheet() {          try {              const parseCSVRow = (str) => {                  let result = [], cur = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (inQuotes) {                          if (char === '"') {                              if (str[i + 1] === '"') { cur += '"'; i++; }                              else { inQuotes = false; }                          } else { cur += char; }                      } else {                          if (char === '"') { inQuotes = true; }                          else if (char === ',') { result.push(cur); cur = ''; }                          else { cur += char; }                      }                  }                  result.push(cur); return result;              };              const parseCSV = (str) => {                  const rows = []; let curRow = '', inQuotes = false;                  for (let i = 0; i < str.length; i++) {                      let char = str[i];                      if (char === '"') inQuotes = !inQuotes;                      if ((char === '\n' || char === '\r') && !inQuotes) {                          if (char === '\r' && str[i+1] === '\n') i++;                          if (curRow) rows.push(parseCSVRow(curRow));                          curRow = '';                      } else { curRow += char; }                  }                  if (curRow) rows.push(parseCSVRow(curRow));                  return rows;              };              const preloadedCSV = decodeURIComponent(escape(atob("LCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNQ0KUm91bmRlbCB0ZXh0LEFsbCxUVnMsRm9vdHdlYXIsQXBwYXJlbCxNYXR0cmVzZXMsQXBwbGlhbmNlcyxXZWFyYWJsZSB0ZWNoLEhlYWRwaG9uZXMsU21hcnQgSG9tZSxTcGVha2VycyxMYXB0b3BzLFRhYmxldHMsQ29tcHV0aW5nLFBob25lcyxHYW1pbmcsTGVnbw0KUm91bmRlbCBpbWFnZSxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2FpLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3R2cy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvN2IzYTIyNGIwNzk2M2M2MjdiNmI5MDliZDc4MzM4MzZlMDJmZjgxOS5qcGcud2VicCxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy84NGRhYzVkNDhlZDJkNDQ4NTU5ZWJhNjdhY2U4MzE0Y2M2N2NjZDk0LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvbWF0dHJlc3Nlcy5wbmcsaHR0cHM6Ly9pbWFnZXMuZmllLmZ1dHVyZWNkbi5uZXQvcHJvZHVjdHMvNzY4ZTk3Y2ViMDcxODAxZmFlMjA5MTBkMDgyMGIxNmY3NDdhZjkzOS5qcGcud2VicCxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3dlbGxuZXNzLnBuZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL2hlYWRwaG9uZXMuanBnLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzg5NTM1YmVlYmUyMGRiYmQ0YTM0NmQ2ZDZiZGZlOTFkOGE4ODRhMjEuanBnLndlYnAsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9hdWRpby5qcGcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9sYXB0b3BzLmpwZyxodHRwczovL2ltYWdlcy5maWUuZnV0dXJlY2RuLm5ldC9wcm9kdWN0cy8yMzk3NTY0ZWQ3YTVmZjk0N2U5YjZiMzBlNTRmNDc0OTRiODQxZjg5LmpwZy53ZWJwLGh0dHBzOi8vd3d3LnRvbXNndWlkZS5jb20vcHJvZHVjdHMvY2Fyb3VzZWwvY29tcHV0aW5nLmpwZyxodHRwczovL3d3dy50b21zZ3VpZGUuY29tL3Byb2R1Y3RzL2Nhcm91c2VsL3Bob25lcy5wbmcsaHR0cHM6Ly93d3cudG9tc2d1aWRlLmNvbS9wcm9kdWN0cy9jYXJvdXNlbC9nYW1pbmcucG5nLGh0dHBzOi8vaW1hZ2VzLmZpZS5mdXR1cmVjZG4ubmV0L3Byb2R1Y3RzLzRmNmM2MjFjYWMwYmMxYTg1ZDU5M2UzNTk0YmE1YjM0OWVmZmQyOTIuanBnLndlYnANClNlYXJjaCBRdWVyeSxFdmVyeXRoaW5nLFRlbGV2aXNpb25zLCJTbmVha2VycywgcnVubmluZyBzaG9lcywgc2FuZGFscyIsQ2xvdGhpbmcsTWF0dHJlc3NlcyxIb21lIEFwcGxpYW5jZXMsV2VhcmFibGVzICYgRml0bmVzcyBUZWNoLEhlYWRwaG9uZXMsSG9tZSBUZWNoLFNwZWFrZXJzLExhcHRvcHMsVGFibGV0cyxDb21wdXRpbmcsUGhvbmVzLEdhbWluZyxDb25zdHJ1Y3Rpb24gVG95cw0KRGlzY291bnQgQW1vdW50LG1pbiA1JSxtaW4gMTAlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUsbWluIDUlLG1pbiA1JSxtaW4gNSUNClByaWNlIFJhbmdlLCwsLCxtaW4gJDQwMCwsLCxtaW4gJDI1LCxtaW4gJDMwMCwsLG1pbiAkMTAwLCwNCkJyYW5kIFNlbGVjdGlvbiwsLCwsLCwsLCwsLCwsLCwNCkZpbHRlciBidXR0b25zLCwsLCwsLCwsLCwsLCwsLA0KMSxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMsTGlnaHRuaW5nIGRlYWxzLExpZ2h0bmluZyBkZWFscyxMaWdodG5pbmcgZGVhbHMNCjIsQW1hem9uIGRlYWxzLFVuZGVyICQxMDAwLDUwJSBvZmYsQWRpZGFzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsNTAlIG9mZixBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscyxBbWF6b24gZGVhbHMsQW1hem9uIGRlYWxzLEFtYXpvbiBkZWFscw0KMyxPdmVyICQ0MDAsVW5kZXIgJDUwMCxIb2thLE5pa2UsU2FhdHZhLE5pbmphLDQwJSBvZmYsSkxhYiwsSkJMLERlbGwsLEFzdXMsQXBwbGUsQ29uc29sZXMsU3RhciBXYXJzDQo0LFVuZGVyICQxMDAwLDUwJSBvZmYsU2tlY2hlcnMsVW5kZXIgQXJtb3VyLEhlbGl4LFNoYXJrLEdhcm1pbixBbmtlciBTb3VuZGNvcmUsUmluZyxTb25vcyxBcHBsZSxBcHBsZSxUUC1saW5rLFNhbXN1bmcsQWNjZXNzb3JpZXMsVW5kZXIgJDI1DQo1LFVuZGVyICQ1MDAsTEcsQXNpY3MsQ29sdW1iaWEsRHJlYW1DbG91ZCxLZXVyaWcsQXBwbGUsU29ueSxHb3ZlZSxUcmliaXQsTGVub3ZvLFNhbXN1bmcsRWVybyxHb29nbGUsR2FtZXMsVW5kZXIgJDUwDQo2LDUwJSBvZmYsU2Ftc3VuZyxOaWtlLFBhdGFnb25pYSxOZWN0YXIsRGUnTG9uZ2hpLEFtYXpmaXQsQXBwbGUsS2FzYSBzbWFydCxTb255LEFsaWVud2FyZSxUQ0wsTmV0Z2VhcixNb3Rvcm9sYSxOaW50ZW5kbyxCb3RhbmljYWxzDQo3LEFtYXpvbixIaXNlbnNlLE5ldyBCYWxhbmNlLEFyYyd0ZXJ5eCxUZW1wdXItcGVkaWMsRHlzb24sRml0Yml0LEJlYXRzLFBoaWxpcHMgSHVlLEFua2VyLEFjZXIsT25lUGx1cyxEZWxsLE9uZVBsdXMsU29ueSxEaXNuZXkNCjgsQXBwbGUsVENMLEFkaWRhcyxDYXJoYXJ0dCxCZWFyLEJpc3NlbGwsU2Ftc3VuZyxFYXJmdW4sQmxpbmssQmVhdHMsTVNJLE1pY3Jvc29mdCxBY2VyLE5vdGhpbmcsWGJveCxNYXJ2ZWwNCjksLFNvbnksU2F1Y29ueSxUaGUgTm9ydGggRmFjZSxTaWVuYSxOdXRyaWJ1bGxldCxPdXJhLFNhbXN1bmcsR29vZ2xlIE5lc3QgLE1hcnNoYWxsLFNhbXN1bmcsTGVub3ZvLExlbm92bywsLFBva2Vtb24NCjEwLCxSb2t1LEJpcmtlbnN0b2NrLENSWiBZb2dhLFdpbmtCZWRzLEJsYWNrIGFuZCBEZWNrZXIsUmluZ2Nvbm4sQ01GLEV1ZnksU2Ftc3VuZyxNaWNyb3NvZnQsUmVNYXJrYWJsZSxBbGllbndhcmUsLCwNCjExLCwsQnJvb2tzLFRoZSBHeW0gUGVvcGxlLEJyb29rbHluIGJlZGRpbmcsTmVzcHJlc3NvLCwxTW9yZSxBcmxvLCxSYXplciwsQ29yc2FpciwsLA0KMTIsLCxDcm9jcywsRWlnaHQgU2xlZXAsQ3Vpc2luYXJ0LCxKQkwsLCwsLEhQLCwsDQpOb3RlcywsLCwsLCwsLCwsLCwsLCwNCiwsIlByaW9yaXRpc2UgYmlnZ2VzdCAlLyQgZGlzY291bnQsIFR2cyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiB0aGUgbW9zdCBwb3B1bGFyIGV2ZW4gaWYgdGhleSBhcmUgc3RpbGwgZXhwZW5zaXZlIiwiTm8gcGF0dGVybiB0byBwcmljaW5nL2Rpc2NvdW50LCByZWFkZXJzIG1haW5seSBzaG9wIGJ5IGJyYW5kL3JlY29nbmlzYWJsZSBzaG9lcyIsIk5vIHBhdHRlcm4gdG8gcHJpY2luZy9kaXNjb3VudCwgcmVhZGVycyBtYWlubHkgc2hvcCBieSBicmFuZCIsIkEgbGFiZWwgd2lsbCBkZWZpbml0ZWx5IGhlbHAgaGVyZSBlLmcuIGJlc3QgZm9yIHNpZGUgc2xlZXBlciwgYmVzdCBtZW1vcnkgZm9hbSIsIkFwcGxpYW5jZXMgaXMgYSBiaWcgY2F0ZWdvcnksIGlzIGl0IHBvc3NpYmxlIHRvIHNwbGl0IGludG8ga2l0Y2hlbiBhcHBsaWFuY2VzLCBmbG9vcmNhcmUsIGFpciBoZWFsdGgvY29vbGluZz8gT3Igc2ltaWxhciIsIkZvY3VzIG9uIHZhbHVlIGZvciBtb25leSwgR2FybWlucyB3aXRoIH41MCUgb2ZmIGhhdmUgYmVlbiBwb3B1bGFyIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIHN0aWxsICQ1MDAiLCwsLCxJbmNsdWRlIEtpbmRsZXMsSSB3b3VsZCBpbmNsdWRlIHdpZmkgcm91dGVycyBoZXJlIGluc3RlYWQgb2Ygc21hcnQgaG9tZSxDYW4gd2Ugc3VyZmFjZSBwaG9uZSBwcm92aWRlciBkZWFscz8gVC1tb2JpbGUgYW5kIHZlcml6b24gd291bGQgbWFrZSBhIGxvdCBtb3JlIG1vbmV5IHRoYW4gQW1hem9uLCwNCiwsaGF2aW5nIGEgJ2Jlc3QgZm9yJyBsYWJlbCB3b3VsZCBiZSBoZWxwZnVsIGUuZy4gYmVzdCBmb3IgYnJpZ2h0IHJvb20sQ2FuIHdlIHN0b3Aga2lkcyBzaG9lcyBmcm9tIHB1bGxpbmcgdGhyb3VnaD8sIldpbGwgdGhpcyBpbmNsdWRlIGFjY2Vzc29yaWVzIGUuZy4gY2FwcywgYmFncywgaWYgc28gbWFrZSBzdXJlIHRoZXNlIGFyZSBtaXhlZCB0aHJvdWdob3V0IGNsb3RoaW5nIGRlYWxzIixXaWxsIHRoaXMgaW5jbHVkZSB0b3BwZXJzIGFuZCBwaWxsb3dzPyBTZWVpbmcgbW9yZSBtb21lbnR1bSB3aXRoIHRoaXMgY2F0ZWdvcnkgcmVjZW50bHkgc28gYSBiZWRkaW5nIHRhYiBtaWdodCB3b3JrLCwiTmVlZCB0byBtYWtlIHN1cmUgYmFuZHMsIHNjcmVlbiBwcm90ZWN0b3JzIGV0Yy4gZG9uJ3QgcHVsbCBpbnRvIGhlcmUiLCwsLCwsLCwsDQosLCJQcmlvcml0aXNlIDY1JycgYW5kIDU1JyBpbmNoIFRWcywgdGhlbiBiaWdnZXIgc2NyZWVucyBiZWZvcmUgdGhlIHNtYWxsZXIgc2l6ZXMiLCwsUXVlZW4gaXMgdGhlIG1vc3QgcG9wdWxhciBzaXplIGluIHRoZSBVUyAtIHByaW9yaXRpc2UgZGVhbHMgZm9yIHRoaXMgc2l6ZSwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpDYXRlZ29yaWVzIHRvIGNvbnNpZGVyLCxQcm9kdWN0cyBpbmNsdWRlZCwsLCwsLCwsLCwsLCwsDQpVbmRlciAkNTA/LCxBaXIgdGFncywsLCwsLCwsLCwsLCwsDQosLFBvcnRhYmxlIGNoYXJnZXJzL3dpcmVsZXNzIGNoYXJnZXJzLCwsLCwsLCwsLCwsLCwNCiwsIldhdGVyIGJvdHRsZXMgKHN0YW5sZXlzLCBPd2FsYSwgSHlkcm8gZmxhc2ssIFlldGkpIiwsLCwsLCwsLCwsLCwsDQosLEhhbmQgaGVsZCBmYW5zLCwsLCwsLCwsLCwsLCwNCiwsLCwsLCwsLCwsLCwsLCwNCmhvbWUgb2ZmaWNlLCxvZmZpY2UgY2hhaXJzLCwsLCwsLCwsLCwsLCwNCiwsc3RhbmRpbmcgZGVza3MsLCwsLCwsLCwsLCwsLA0KLCxtb25pdG9ycywsLCwsLCwsLCwsLCwsDQosLEtleWJvYXJkcywsLCwsLCwsLCwsLCwsDQosLGRvY2tpbmcgc3RhdGlvbiwsLCwsLCwsLCwsLCwsDQosLCwsLCwsLCwsLCwsLCwsDQpHYW1pbmcsLENvbnNvbGVzLCwsLCwsLCwsLCwsLCwNCiwsQWNjZXNzb3JpZXMsLCwsLCwsLCwsLCwsLA0KLCxHYW1lcywsLCwsLCwsLCwsLCwsDQosLENvdWxkIGluY2x1ZGUgTGVnbz8sLCwsLCwsLCwsLCwsLA==")));              const text = preloadedCSV;              const parsed = parseCSV(text);                            const rowsByName = {};              let filterStart = -1;              parsed.forEach((rc, i) => {                 if (rc && rc.length > 0 && rc[0]) rowsByName[rc[0]] = rc;                 if (rc && rc.length > 0 && rc[0] === 'Filter buttons') filterStart = i;              });                            const cols = [];              if(rowsByName['Roundel text']) {                const headerRow = rowsByName['Roundel text'];                for(let col = 1; col < headerRow.length; col++) {                   let label = headerRow[col];                   if (!label) continue;                                      let q = rowsByName['Search Query'] && rowsByName['Search Query'][col] ? rowsByName['Search Query'][col] : '';                   let img = rowsByName['Roundel image'] && rowsByName['Roundel image'][col] ? rowsByName['Roundel image'][col] : '';                   let ds = rowsByName['Discount Amount'] && rowsByName['Discount Amount'][col] ? rowsByName['Discount Amount'][col] : '';                   let pr = rowsByName['Price Range'] && rowsByName['Price Range'][col] ? rowsByName['Price Range'][col] : '';                   let rt = rowsByName['Retailer'] && rowsByName['Retailer'][col] ? rowsByName['Retailer'][col] : '';                   let ot = rowsByName['Offer Type'] && rowsByName['Offer Type'][col] ? rowsByName['Offer Type'][col] : '';                                      let filters = [];                   if(filterStart > 0) {                     for(let r = filterStart + 1; r < parsed.length; r++) {                         if(!parsed[r] || parsed[r][0] === 'Notes' || parsed[r][0] === 'Categories to consider') break;                         let f = parsed[r][col];                         if(f) filters.push(f);                     }                   }                   cols.push({ label, img, q, ds, pr, rt, ot, filters });                }              }              this.carouselData = cols;              if (this.carouselData && this.carouselData.length > 0) {                 const isMatched = this.carouselData.some(c => c.q === this.currentQuery || c.label === this.currentQuery);                 if (!isMatched) {                    const first = this.carouselData[0];                    this.currentQuery = first.q || first.label;                    if (this.priceFilter) this.priceFilter.value = 'all';                    if (this.customPriceMin) this.customPriceMin.value = '';                    if (this.customPriceMax) this.customPriceMax.value = '';                    let dPr = first.pr || 'all';                    if (typeof dPr === 'string' && dPr !== 'all') {                       let prLower = dPr.toLowerCase();                       if (prLower.includes('min') || prLower.includes('over')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else if (prLower.includes('max') || prLower.includes('under')) {                          let m = dPr.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       }                    }                    let dAm = '0';                    if(first.ds && typeof first.ds === 'string') {                       let m = first.ds.match(/(\d+)/);                       if(m) dAm = m[1];                    }                    if (this.discountFilter) this.discountFilter.value = dAm;                    if (this.offerTypeSelect) this.offerTypeSelect.value = first.ot || '';                    if (this.retailerSelect) this.retailerSelect.value = first.rt || '';                    this.selectedBrands = [];                    if (this.brandDropdown) {                        const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                        chks.forEach(chk => chk.checked = false);                    }                    if (this.searchInput) this.searchInput.value = this.currentQuery;                 }              }              this.renderCarouselUI();          } catch(e){ console.warn(e); }        }                renderCarouselUI() {           const roundelWrapper = this.root.querySelector('.tg-df-carousel-roundels');           if(!roundelWrapper || !this.carouselData) return;                      let html = '';           this.carouselData.forEach(r => {              const q = r.q || r.label;              const isActive = (this.currentQuery === q || this.currentQuery === r.label) ? 'active' : '';              const imgHtml = r.img ? `\x3Cimg src="${r.img}" alt="${r.label}" />` : `\x3Csvg width="32" height="32" fill="#1F69FF" viewBox="0 0 24 24">\x3Cpath d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>\x3C/svg>`;              html += `                \x3Cdiv class="tg-df-roundel tg-df-carousel-cat ${isActive}" data-label="${this.escapeHTML(r.label)}">                  \x3Cdiv class="tg-df-roundel-img-box">${imgHtml}\x3C/div>                  \x3Cspan class="tg-df-roundel-label">${this.escapeHTML(r.label)}\x3C/span>                \x3C/div>              `;           });           roundelWrapper.innerHTML = html;                      // Rebind clicks           const roundels = this.root.querySelectorAll('.tg-df-carousel-cat');           roundels.forEach(rNode => {             rNode.addEventListener('click', () => {                const r = this.carouselData.find(c => c.label === rNode.getAttribute('data-label'));                if(!r) return;                this.currentQuery = r.q || r.label;                const labelTitle = this.root.querySelector('#tg-df-carousel-title-label');                if (labelTitle) labelTitle.textContent = 'Best ' + this.currentQuery;                if (this.priceFilter) this.priceFilter.value = 'all';                if (this.customPriceMin) this.customPriceMin.value = '';                if (this.customPriceMax) this.customPriceMax.value = '';                let dPr = r.pr || 'all';                if (typeof dPr === 'string' && dPr !== 'all') {                   let prLower = dPr.toLowerCase();                   if (prLower.includes('min') || prLower.includes('over')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMin) this.customPriceMin.value = m[1];                   } else if (prLower.includes('max') || prLower.includes('under')) {                      let m = dPr.match(/(\d+)/);                      if (m && this.customPriceMax) this.customPriceMax.value = m[1];                   }                }                                let discountAmount = '0';                if(r.ds && typeof r.ds === 'string') {                   let m = r.ds.match(/(\d+)/);                   if(m) discountAmount = m[1];                }                if (this.discountFilter) this.discountFilter.value = discountAmount;                if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                                // Clear brands                    this.selectedBrands = [];                    if (this.brandDropdown) {                    const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                    chks.forEach(chk => chk.checked = false);                }                                if (this.searchInput) this.searchInput.value = this.currentQuery;                                roundels.forEach(ro => ro.classList.remove('active'));                if (rNode) rNode.classList.add('active');                                this.renderCarouselFilters(r);                this.fetchDeals(this.currentQuery);             });           });                      // Auto-highlight active           const activeR = this.carouselData.find(c => c.q === this.currentQuery || c.label === this.currentQuery);           if(activeR) this.renderCarouselFilters(activeR);        }                renderCarouselFilters(r) {           const filtersWrap = this.root.querySelector('.tg-df-carousel-filters-wrap');           if(!filtersWrap) return;                      let html = `\x3Cbutton class="tg-df-carousel-filter-btn" data-type="all">All\x3C/button>`;                      r.filters.forEach(f => {              let fL = f.toLowerCase();              let icon = '';              let logic = `data-type="custom" data-v="${this.escapeHTML(f)}"`;              if (fL === 'amazon deals' || fL === 'prime deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/fwoVXvL79turN3Ph535m38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/u75QjVpt3w2EsMimJiRo38-600-100.png" class="active-img" alt="" /> Prime deals\x3C/button>`;              } else if (fL === 'lightning deals') {                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>\x3Cimg src="https://cdn.mos.cms.futurecdn.net/HqAui7w97ft2NPqBtQ5r38-600-100.png" class="inactive-img" alt="" />\x3Cimg src="https://cdn.mos.cms.futurecdn.net/yWPQ5yyQRhUwVKzGwYbh38-600-100.png" class="active-img" alt="" /> Lightning deals\x3C/button>`;              } else {                 if (fL.includes('lightning')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-zap">\x3Cpolygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2">\x3C/polygon>\x3C/svg>`;                 } else if (fL.includes('% off')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-tag">\x3Cpath d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z">\x3C/path>\x3Ccircle cx="7.5" cy="7.5" r=".5" fill="currentColor">\x3C/circle>\x3C/svg>`;                 } else if (fL.includes('under') || fL.includes('min ')) {                    icon = `\x3Csvg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-badge-dollar-sign">\x3Cpath d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z">\x3C/path>\x3Cpath d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8">\x3C/path>\x3Cpath d="M12 18V6">\x3C/path>\x3C/svg>`;                 }                 html += `\x3Cbutton class="tg-df-carousel-filter-btn" ${logic}>${icon} ${this.escapeHTML(f)}\x3C/button>`;              }           });                      filtersWrap.innerHTML = html;                      const btns = filtersWrap.querySelectorAll('button');           btns.forEach(b => {             b.addEventListener('click', () => {                const type = b.getAttribute('data-type');                if (type === 'custom') {                   const v = b.getAttribute('data-v');                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: `filter-custom-${(v||'').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`, name: 'Custom Filter', label: v });                }                if (type === 'all') {                   if (typeof trackElementInteraction === 'function') trackElementInteraction({ id: 'filter-clear-all', name: 'Clear all', label: 'Clear all filters' });                   // reset everything                   btns.forEach(btn => btn.classList.remove('active'));                   b.classList.add('active');                                      // Reset prices                   if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   if (this.brandDropdown) {                     const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                     chks.forEach(chk => chk.checked = false);                   }                } else {                   const v = b.getAttribute('data-v');                   const fL = v.toLowerCase();                                      let mapRet = ['amazon', 'walmart', 'best buy', 'target', 'john lewis', 'currys', 'argos'];                   const getCategory = (s) => {                      if (s === 'lightning deals' || s === 'amazon deals' || s === 'prime deals') return 'offer';                      if (s.includes('% off')) return 'discount';                      if (s.includes('under') || s.includes('over') || s.includes('min') || s.includes('max')) return 'price';                      if (mapRet.includes(s)) return 'retailer';                      return 'brand';                   };                   const cat = getCategory(fL);                   const wasActive = b.classList.contains('active');                   if (cat !== 'brand') {                      btns.forEach(btn => {                          if (btn === b) return;                          if (btn.getAttribute('data-type') === 'all') return;                          const bV = btn.getAttribute('data-v');                          if (!bV) return;                          if (getCategory(bV.toLowerCase()) === cat) btn.classList.remove('active');                      });                   }                   if (wasActive) b.classList.remove('active');                   else b.classList.add('active');                   let anyActive = Array.from(btns).some(btn => btn !== btns[0] && btn.classList.contains('active'));                   if (!anyActive) {                       btns[0].click();                       return;                   } else {                       btns[0].classList.remove('active');                   }                                      if (this.priceFilter) this.priceFilter.value = 'all';                   if (this.customPriceMin) this.customPriceMin.value = '';                   if (this.customPriceMax) this.customPriceMax.value = '';                   let dPr = r.pr || 'all';                   if (typeof dPr === 'string' && dPr !== 'all') {                      let prLower = dPr.toLowerCase();                      if (prLower.includes('min') || prLower.includes('over')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMin) this.customPriceMin.value = m[1];                      } else if (prLower.includes('max') || prLower.includes('under')) {                         let m = dPr.match(/(\d+)/);                         if (m && this.customPriceMax) this.customPriceMax.value = m[1];                      }                   }                                      let discountAmount = '0';                   if(r.ds && typeof r.ds === 'string') {                      let m = r.ds.match(/(\d+)/);                      if(m) discountAmount = m[1];                   }                   if (this.discountFilter) this.discountFilter.value = discountAmount;                   if (this.offerTypeSelect) this.offerTypeSelect.value = r.ot || '';                   if (this.retailerSelect) this.retailerSelect.value = r.rt || '';                   this.selectedBrands = [];                   btns.forEach(btn => {                       if (!btn.classList.contains('active') || btn.getAttribute('data-type') === 'all') return;                       const vv = btn.getAttribute('data-v');                       const vl = vv.toLowerCase();                                              if (vl === 'lightning deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_lightning';                       } else if (vl === 'amazon deals' || vl === 'prime deals') {                          if (this.offerTypeSelect) this.offerTypeSelect.value = 'amazon_prime';                       } else if (vl.includes('% off')) {                          let m = vl.match(/(\d+)%/);                          if (m && this.discountFilter) this.discountFilter.value = m[1];                       } else if (vl.includes('under') || vl.includes('max')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMax) this.customPriceMax.value = m[1];                       } else if (vl.includes('min') || vl.includes('over')) {                          let m = vl.match(/(\d+)/);                          if (m && this.customPriceMin) this.customPriceMin.value = m[1];                       } else {                          let foundR = mapRet.find(x => x === vl);                          if (foundR) {                             let realR = ['Amazon', 'Walmart', 'Best Buy', 'Target', 'John Lewis', 'Currys', 'Argos'].find(x => x.toLowerCase() === vl);                             if (this.retailerSelect) this.retailerSelect.value = realR;                          } else {                             this.selectedBrands.push(vv);                          }                       }                   });                                      if (this.brandDropdown) {                       const chks = this.brandDropdown.querySelectorAll('.tg-df-brand-chk');                       chks.forEach(c => c.checked = this.selectedBrands.includes(c.value));                   }                                      if (r.pr && typeof r.pr === 'string') {                       let prL = r.pr.toLowerCase();                       if (prL.includes('under $')) {                           let m = prL.match(/under \$(\d+)/i);                           if (m && this.customPriceMax && !this.customPriceMax.value) this.customPriceMax.value = m[1];                       }                   }                }                                this.fetchDeals(this.currentQuery);             });           });                      // default to highlighting first           btns[0].classList.add('active');        }async fetchDeals(query, append = false) {          if (!append) {             this.showLoading();             this.deals = [];             this.displayLimit = (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          } else {             this.displayLimit += (this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12;          }                    try {            if (this.getViewMode() === 'savings_squad') {               await this.fetchSavingsSquad(append);            } else {               if (this.isBroadQuery(query)) {                 await this.fetchAdviserDeals(query, append);               } else {                 await this.fetchHawkDeals(query, append);                 if (this.deals.length === 0) {                   await this.fetchAdviserDeals(query, append);                 }               }            }          } catch (error) {            console.warn("[Tom's Guide Widget] Fetch error:", error);            this.showError();          }        }        async fetchSavingsSquad() {          let topArticles = this.airedaleArticles;          if (!topArticles) {            const airedaleUrl = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`;            let res;            try {               res = await fetch(airedaleUrl);            } catch(e) {               try { res = await fetch(`https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50`); } catch (err) { console.warn("Fallback fetch failed", err); return; }            }            if (!res.ok) throw new Error('Airedale API Error');            const articles = await res.json();            topArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);            this.airedaleArticles = topArticles;                        let tagCounts = {};            topArticles.forEach((a) => {              let articleTags = new Set();              if (a.articlecategory && Array.isArray(a.articlecategory)) {                 a.articlecategory.forEach((t) => articleTags.add(t));              }              articleTags.forEach(t => {                 tagCounts[t] = (tagCounts[t] || 0) + 1;              });            });                        this.airedaleTags = Object.keys(tagCounts).sort((a, b) => tagCounts[b] - tagCounts[a]);            this.airedaleTagCounts = tagCounts;          }                    let targetArticles = topArticles;          if (this.activeDealTag) {             const encodedTag = encodeURIComponent(this.activeDealTag.toLowerCase().replace(/\s+/g, '-'));             const url = `https://airedale.futurecdn.net/feeds/feed_1776420579726.json?site=tomsguide&articleType=deals&limit=50&articleCategoryHandle=${encodedTag}`;             try {                const res = await fetch(url);                if (res.ok) {                   const articles = await res.json();                   targetArticles = Array.isArray(articles) ? articles.slice(0, 50) : ((articles.data && Array.isArray(articles.data)) ? articles.data.slice(0, 50) : []);                }             } catch(e) {                console.warn("Failed to fetch by activeDealTag", e);             }          }          let extractedDeals = [];          let dynamicBrandsCounts = {};                    targetArticles.forEach((article) => {             if (!article.articlepage) return;                          let pageData = [];             try {                pageData = JSON.parse(article.articlepage[0]);             } catch(e){ console.warn(e); }                          const savingsSquad = pageData.filter((p) => p.type === 'deal' || p.type === 'featured-product');                          savingsSquad.forEach((block, idx) => {                const data = block.data || {};                const isFeatured = block.type === 'featured-product';                                const link = data.link || {};                const priceObj = data.price || {};                const image = data.image || {};                                if (data.brand) {                   data.brand = data.brand.replace(/^\d+\.\s*/, '').trim();                   dynamicBrandsCounts[data.brand] = (dynamicBrandsCounts[data.brand] || 0) + 1;                }                const externalUrl = isFeatured ? data.url : (link.href || null);                let summaryTitle = isFeatured ? (data.name || data.brand) : (data.productName || link.label || article.articlename);                let description = isFeatured ? (data.strapline || '') : (data.text || '');                                if (!isFeatured && !data.productName && data.text) {                   const brSplit = data.text.split(new RegExp('\x3Cbr\\s*\\/?\\x3E', 'i'));                   if (brSplit.length > 1) {                     summaryTitle = brSplit[0].replace(/<[^>]+>/g, '').trim();                     description = brSplit.slice(1).join(' ').replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').trim();                   } else {                     const match = data.text.match(/\x3Cstrong>(.*?)<\/strong>/);                     if (match) {                       summaryTitle = match[1].replace(/<[^>]+>/g, '').trim();                       if (summaryTitle.endsWith(':')) summaryTitle = summaryTitle.slice(0, -1);                     }                   }                }                                let imageUrl = isFeatured ? image.mos : (image.src || null);                if (imageUrl && imageUrl.startsWith('//')) imageUrl = 'https:' + imageUrl;                                description = description.replace(/<br\s*\/?>/gi, ' ').replace(/<\/?(p|div)[^>]*>/gi, ' ').replace(/<[^>]+>/g, '').replace(/\s+/g, ' ').replace(/View Deal$/i, '').trim();                                let merchantName = data.retailer || '';                if (!merchantName && externalUrl) {                   try {                     merchantName = new URL(externalUrl).hostname.replace('www.', '').split('.')[0];                     merchantName = merchantName.charAt(0).toUpperCase() + merchantName.slice(1);                   }catch(e){ console.warn(e); }                }                if (!merchantName) merchantName = 'Retailer';                const q = (this.currentQuery || '').toLowerCase();                const activeTagLogic = (this.activeDealTag || '').toLowerCase();                if (q.length > 2 && q !== activeTagLogic) {                   const searchTarget = `${summaryTitle || ''} ${description || ''}`.toLowerCase();                   if (!searchTarget.includes(q)) return;                }                let rawPrice = 0;                let rawMsrp = 0;                let currencyStr = '$';                if (isFeatured) {                   rawPrice = typeof data.salePrice === 'number' && data.salePrice > 0 ? data.salePrice : (typeof data.price === 'number' ? data.price : 0);                   rawMsrp = typeof data.salePrice === 'number' && typeof data.price === 'number' && data.price > data.salePrice ? data.price : 0;                   currencyStr = data.currency === 'GBP' ? '£' : '$';                } else {                   rawPrice = priceObj.amount ? parseFloat(priceObj.amount) : 0;                   rawMsrp = priceObj.amountWas ? parseFloat(priceObj.amountWas) : 0;                   currencyStr = priceObj.currency === 'GBP' ? '£' : '$';                }                                let savingAmt = 0;                let savingLabel = '';                if (rawPrice > 0 && rawMsrp > rawPrice) {                   savingAmt = parseFloat((rawMsrp - rawPrice).toFixed(2));                   savingLabel = `Save ${currencyStr}${savingAmt}`;                }                                // Apply Brand filter                if (this.selectedBrands && this.selectedBrands.length > 0) {                   const itemBrand = (data.brand || '').toLowerCase();                   const hasMatch = this.selectedBrands.some(sb => sb.toLowerCase() === itemBrand);                   if (!hasMatch) return;                }                // Apply Price filter                let priceFilterVal = null;                const min = this.customPriceMin ? this.customPriceMin.value : '';                const max = this.customPriceMax ? this.customPriceMax.value : '';                if (min || max) {                   priceFilterVal = `${min}_${max}`;                } else if (this.priceFilter && this.priceFilter.value !== 'all') {                   priceFilterVal = this.priceFilter.value;                }                if (priceFilterVal && rawPrice > 0) {                   if (priceFilterVal === 'under50' && rawPrice >= 50) return;                   if (priceFilterVal === 'over50' && rawPrice <= 50) return;                   if (priceFilterVal === 'over30' && rawPrice <= 30) return;                   if (priceFilterVal === 'over500' && rawPrice <= 500) return;                   if (priceFilterVal.includes('_')) {                      const parts = priceFilterVal.split('_');                      const min = parseFloat(parts[0]);                      const max = parseFloat(parts[1]);                      if (!isNaN(min) && rawPrice < min) return;                      if (!isNaN(max) && rawPrice > max) return;                   }                }                // Apply Discount filter                if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {                   const requiredDiscount = parseInt(this.discountFilter.value);                   if (!isNaN(requiredDiscount) && requiredDiscount > 0) {                      if (!rawMsrp || rawMsrp <= rawPrice) return;                      const ratio = Math.round((1 - (rawPrice / rawMsrp)) * 100);                      if (ratio < requiredDiscount) return;                   }                }                                extractedDeals.push({                   id: `airedale-${article.id || Math.random()}-${idx}`,                   url: externalUrl,                   image: imageUrl,                   fallbackImage: imageUrl,                   title: summaryTitle,                   brand: data.brand || '',                   productName: data.productName || '',                   merchant: merchantName,                   rawPrice: rawPrice,                   rawMsrp: rawMsrp,                   price: rawPrice > 0 ? rawPrice.toString() : '',                   msrp: rawMsrp > 0 ? rawMsrp.toString() : '',                   currency: currencyStr,                   isCheckPrice: !rawPrice,                   savingLabel: savingLabel,                   savingType: rawMsrp > rawPrice ? 'amount' : 'none',                   isPrime: false,                   starRating: null,                   description: description,                   text: data.text || ''                });             });          });                    const airedaleBrandsList = Object.keys(dynamicBrandsCounts).map(b => ({              formatted_value: b,              count: dynamicBrandsCounts[b]          })).sort((a,b) => b.count - a.count);                    if (this.getViewMode() === 'savings_squad') {             this.populateBrandDropdown(airedaleBrandsList.slice(0, 15));             if (this.brandFilterWrapper) {                if (airedaleBrandsList.length === 0) {                    this.brandFilterWrapper.style.display = 'none';                } else {                    this.brandFilterWrapper.style.display = 'flex';                }             }          }                    this.deals = extractedDeals;          this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        isBroadQuery(query) {          const q = query.toLowerCase();          const intentModifiers = ['deals', 'best', 'sale', 'under', 'cheap', 'offers', 'discount'];          return intentModifiers.some(term => q.includes(term));        }        async fetchHawkDeals(query, append = false) {          const url = new URL(this.apiUrl);          url.searchParams.append('model_name', query);          const areaCode = this.getAreaCode();          if (areaCode) {            url.searchParams.append('area', areaCode);          }                    if (append && this.deals.length > 0) {            url.searchParams.append('offset', this.deals.length.toString());          }                    if (this.retailerSelect && this.retailerSelect.value) {            url.searchParams.append('filter_merchant_name', this.retailerSelect.value);          }                    if (this.selectedBrands && this.selectedBrands.length > 0) {            url.searchParams.append('filter_label[text_brand]', this.selectedBrands.join(','));          }                    let priceVal = null;          const min = this.customPriceMin ? this.customPriceMin.value : '';          const max = this.customPriceMax ? this.customPriceMax.value : '';          if (min || max) {             priceVal = `${min}_${max}`;          } else if (this.priceFilter && this.priceFilter.value !== 'all') {             priceVal = this.priceFilter.value;          }          if (priceVal) {            if (priceVal === 'under50') {              url.searchParams.append('filter_max_price', '50');            } else if (priceVal === 'over50') {              url.searchParams.append('filter_min_price', '50');            } else if (priceVal === 'over30') {              url.searchParams.append('filter_min_price', '30');            } else if (priceVal === 'over500') {              url.searchParams.append('filter_min_price', '500');            } else if (priceVal.includes('_')) {              const parts = priceVal.split('_');              if (parts[0]) url.searchParams.append('filter_min_price', parts[0]);              if (parts[1]) url.searchParams.append('filter_max_price', parts[1]);            }          }                    if (this.discountFilter && this.discountFilter.value !== 'all' && this.discountFilter.value !== '0') {            const v = parseInt(this.discountFilter.value);            if (!isNaN(v) && v > 0) {              const ratio = (100 - v) / 100;              url.searchParams.append('min_discount_ratio', ratio.toString());            }          }                    if (this.offerTypeSelect && this.offerTypeSelect.value) {            url.searchParams.append('offer', this.offerTypeSelect.value);          }                    url.searchParams.append('filter_product_types', 'deals');                    if (this.rowsSelect && this.rowsSelect.value) {            url.searchParams.append('rows', this.rowsSelect.value);          } else {             url.searchParams.append('rows', '12'); // default          }          let response;          try {             response = await fetch(url.toString());          } catch(e) {             if (window.location.protocol === 'file:') {                console.warn("[Tom's Guide Widget] fetch from file:// blocked by local CORS policy, falling back to Adviser mock.");                await this.fetchAdviserDeals(query);                return;             }             console.warn("Hawk fetch failed", e);             this.deals = [];             this.render();             return;          }          if (!response.ok) {            throw new Error('Hawk API Response Error');          }          const rawData = await response.json();          // Safely locate data array from potentially wrapped response          let offers = [];          let modelInfoArray = [];                    let brandFilterData = null;          if (rawData && rawData.widget && rawData.widget.data && Array.isArray(rawData.widget.data.filters)) {             brandFilterData = rawData.widget.data.filters.find(f => f.type === 'label_text_brand');          } else if (rawData && rawData.data && Array.isArray(rawData.data.filters)) {             brandFilterData = rawData.data.filters.find(f => f.type === 'label_text_brand');          }          if (brandFilterData && Array.isArray(brandFilterData.values) && brandFilterData.values.length > 0) {             this.populateBrandDropdown(brandFilterData.values);          } else {             if (this.brandFilterWrapper && this.selectedBrands.length === 0) {                this.brandFilterWrapper.style.display = 'none';             }          }                    if (rawData && rawData.widget && rawData.widget.data) {            if (Array.isArray(rawData.widget.data.offers)) offers = rawData.widget.data.offers;            if (rawData.widget.data.model_info && typeof rawData.widget.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.widget.data.model_info) ? rawData.widget.data.model_info : Object.values(rawData.widget.data.model_info);            }          } else if (rawData && rawData.data) {            if (Array.isArray(rawData.data.offers)) offers = rawData.data.offers;            if (rawData.data.model_info && typeof rawData.data.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.data.model_info) ? rawData.data.model_info : Object.values(rawData.data.model_info);            }          } else {            if (Array.isArray(rawData)) offers = rawData;            else if (rawData && Array.isArray(rawData.offers)) offers = rawData.offers;            else if (rawData && rawData.offers && Array.isArray(rawData.offers.offer)) offers = rawData.offers.offer;            else if (rawData && rawData.offers) offers = [].concat(rawData.offers);                        if (rawData && rawData.model_info && typeof rawData.model_info === 'object') {              modelInfoArray = Array.isArray(rawData.model_info) ? rawData.model_info : Object.values(rawData.model_info);            }          }          let modelDetails = {};          modelInfoArray.forEach(m => {            const mId = m.model_id || m.id;            if (mId) {              modelDetails[mId] = {                score: m.score != null ? parseFloat(m.score) : null,                brand: m.brand || null,                parent: (m.parents && Array.isArray(m.parents) && m.parents.length > 0) ? m.parents[0].name : null              };            }          });          offers.forEach(item => {            let data = { ...item };            const mId = data.model_id;            if (mId && modelDetails[mId]) {              data.review_score = modelDetails[mId].score;              data.model_brand = modelDetails[mId].brand;              data.model_parent = modelDetails[mId].parent;            } else {              data.review_score = null;            }                        let itemOffers = [];            if (Array.isArray(item.offers)) itemOffers = item.offers;            else if (Array.isArray(item.offer)) itemOffers = item.offer;            else if (item.offers && typeof item.offers === 'object') itemOffers = [item.offers];            else if (item.offer && typeof item.offer === 'object') itemOffers = [item.offer];            if (itemOffers.length > 0) {              itemOffers.forEach(subItem => {                let subData = { ...item, ...subItem };                const subId = subData.model_id;                if (subId && modelDetails[subId]) {                  subData.review_score = modelDetails[subId].score;                  subData.model_brand = modelDetails[subId].brand;                  subData.model_parent = modelDetails[subId].parent;                } else if (data.review_score != null) {                  subData.review_score = data.review_score;                }                if (subData.merchant && typeof subData.merchant === 'object') {                  subData.merchant_name = subData.merchant.name;                }                this.deals.push(this.extractDealData(subData));              });              return;            }                        if (item.merchant && typeof item.merchant === 'object') {              data.merchant_name = item.merchant.name;            }                        this.deals.push(this.extractDealData(data));          });                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        async fetchAdviserDeals(query) {          // ======================================================================          // TODO: ADVISER API REPLACEMENT          // The code below simulates the Adviser API response using mock data.          // Once the real endpoint is ready, remove getAdviserMockData() and           // perform an actual fetch() request similar to fetchHawkDeals().          // Example:          // const area = this.getAreaCode();          // let apiUrl = `https://your-adviser-api.com/search?q=${query}&area=${area}`;          // if (this.priceFilter && this.priceFilter.value !== 'all') {          //   const val = this.priceFilter.value;          //   if (val === 'under50') apiUrl += '&filter_max_price=50';          //   else if (val === '50_100') apiUrl += '&filter_max_price=100';          //   else if (val === '100_200') apiUrl += '&filter_max_price=200';          //   else if (val === '200_500') apiUrl += '&filter_max_price=500';          // }          // const res = await fetch(apiUrl);          // const rawData = await res.json();          // ======================================================================          // Simulating network latency          await new Promise(resolve => setTimeout(resolve, 400));                    const rawData = this.getAdviserMockData();          let offers = [];                    if (rawData && rawData.data && rawData.data.Get && Array.isArray(rawData.data.Get.Deal)) {            offers = rawData.data.Get.Deal;          }                    // Basic client-side filtering for the mock if we want it to react to the query          const q = query.toLowerCase();          const selectedRetailer = (this.retailerSelect && this.retailerSelect.value) ? this.retailerSelect.value.toLowerCase() : null;                    offers.forEach(item => {            const dataObj = item;                        // Apply retailer filter            const itemRetailer = (dataObj.dataRetailer || '').toLowerCase();            if (selectedRetailer && itemRetailer !== selectedRetailer && !itemRetailer.includes(selectedRetailer)) {              return;            }                        // Apply mock price filter            let price = dataObj.dataDiscountedPrice || 0;            if (typeof price === 'string') {              price = parseFloat(price.replace(/[^0-9.]/g, ''));            }            let priceVal = null;            const min = this.customPriceMin ? this.customPriceMin.value : '';            const max = this.customPriceMax ? this.customPriceMax.value : '';            if (min || max) {               priceVal = `${min}_${max}`;            } else if (this.priceFilter && this.priceFilter.value !== 'all') {               priceVal = this.priceFilter.value;            }            if (priceVal) {              if (priceVal === 'under50' && price >= 50) return;              if (priceVal === 'over50' && price <= 50) return;              if (priceVal === 'over30' && price <= 30) return;              if (priceVal === 'over500' && price <= 500) return;              if (priceVal.includes('_')) {                 const parts = priceVal.split('_');                 if (parts[0] && price < parseFloat(parts[0])) return;                 if (parts[1] && price > parseFloat(parts[1])) return;              }            }                        // Map Adviser schema to our widget's expected schema            const mappedData = {              url: dataObj.linkHREF || dataObj.dataLink || '#',              image: dataObj.imageURL || (dataObj.image && dataObj.image.src) || '',              title: dataObj.dataProduct || (dataObj.product && dataObj.product.name) || 'Product Deal',              merchant: dataObj.dataRetailer || 'Retailer',              price: dataObj.dataDiscountedPrice || 0,              currency: dataObj.dataCurrency === 'USD' ? '$' : (dataObj.dataCurrency || '$'),              msrp: dataObj.dataOriginalPrice || null            };                        const titleLow = mappedData.title.toLowerCase();            const merchLow = mappedData.merchant.toLowerCase();                        // Smarter mock filtering            let isMatch = false;            if (q === '' || this.isBroadQuery(q)) {              isMatch = true;            } else if (titleLow.includes(q) || merchLow.includes(q)) {              isMatch = true;            } else if ((q.includes('laptop') || q.includes('mac') || q.includes('pc')) && (titleLow.includes('macbook') || titleLow.includes('laptop'))) {              isMatch = true;            } else if ((q.includes('tv') || q.includes('television')) && (titleLow.includes('tv') || titleLow.includes('oled') || titleLow.includes('qled'))) {              isMatch = true;            } else if ((q.includes('phone') || q.includes('smartphone')) && (titleLow.includes('galaxy') || titleLow.includes('phone'))) {              isMatch = true;            } else if ((q.match(/watch|fitness|run|shoe/)) && (titleLow.includes('forerunner') || titleLow.includes('saucony') || titleLow.includes('watch'))) {              isMatch = true;            }                        if (isMatch) {               this.deals.push(this.extractDealData(mappedData));            }          });                    let rowLimit = 12;          if (this.rowsSelect && this.rowsSelect.value) {            rowLimit = parseInt(this.rowsSelect.value, 10) || 12;          }          // Intentionally omitting the slice here to allow "Load More" to work if the API returns more                    this.sortData();          this.render();          if (typeof trackDealsAppeared !== 'undefined') {             trackDealsAppeared(this.widgetId, this.deals, this.revenueId, typeof this.getAreaCode === 'function' ? (this.getAreaCode() === 'GB' ? 'GBP' : 'USD') : 'USD', this.currentQuery, this.widgetTypeName);          }        }        getAdviserMockData() {          return {            "data": {              "Get": {                "Deal": [                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 300,                    "dataOriginalPrice": 399,                    "dataProduct": "Samsung Galaxy A36",                    "dataRetailer": "Samsung",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/MqDYsukV3JBG54te6dEs7j.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 14,                    "dataOriginalPrice": 24,                    "dataProduct": "Blink Mini",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/3JurmAjHsDa5tPdaHAwEV8.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 59,                    "dataOriginalPrice": 99,                    "dataProduct": "Ring Video Doorbell",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/rAh4uR7AsAsALCCLTXnLNJ.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 10,                    "dataOriginalPrice": 599,                    "dataProduct": "MacBook Neo",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/Lg4Dvg68j9SbB5CPNrTEpH.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 749,                    "dataOriginalPrice": 849,                    "dataProduct": "65\\\" Fire TV Omni 4K QLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/SG34ZWodUkLTxJvMTbjPYR.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 71,                    "dataOriginalPrice": 160,                    "dataProduct": "Saucony Hurricane 24",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/vxf7UD5T2Am7guVzFoFcZ4.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 649,                    "dataOriginalPrice": 749,                    "dataProduct": "Garmin Forerunner 970",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/3GKnEu7CdhtxPMfnPCMCiA.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1049,                    "dataOriginalPrice": 1499,                    "dataProduct": "LG 48\\\" C4 4K OLED TV",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/imvwZV9zoMD6fn9Afuge35.jpg"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 1499,                    "dataOriginalPrice": 2199,                    "dataProduct": "Samsung 49\\\" Odyssey Neo G9 4K Gaming Monitor",                    "dataRetailer": "Amazon",                    "imageURL": "http://cdn.mos.cms.futurecdn.net/XWDEJ5dUAE2nhK8k3Jk7k7.png"                  },                  {                    "dataCurrency": "USD",                    "dataDiscountedPrice": 299,                    "dataOriginalPrice": 699,                    "dataProduct": "EGOHOME Black Memory Foam Mattress (queen)",                    "dataRetailer": "Amazon",                    "imageURL": "https://cdn.mos.cms.futurecdn.net/hMUemtAejNETLVYxNrktzm.jpg"                  }                ]              }            }          };        }        decodeHTML(html) {          if (!html) return '';          const txt = document.createElement("textarea");          txt.innerHTML = String(html);          return txt.value;        }        extractDealData(item) {          const priceRawStr = String(item.price || item.current_price || '0');          const msrpRawStr = String(item.was_price || item.msrp || item.original_price || '0');          const rawPrice = parseFloat(priceRawStr.replace(/[^\d.]/g, '')) || 0;          const rawMsrp = parseFloat(msrpRawStr.replace(/[^\d.]/g, '')) || 0;          const isCheckPrice = rawPrice === 0 || priceRawStr === '0.00' || priceRawStr === '0';                    let originalImageUrl = item.image || item.image_url || item.product_image || '';          let imageUrl = originalImageUrl;          if ((!imageUrl || isCheckPrice) && item.model_image_url) {             imageUrl = item.model_image_url;             originalImageUrl = imageUrl;          } else if ((!imageUrl || isCheckPrice) && item.model_image) {             imageUrl = item.model_image;             originalImageUrl = imageUrl;          }                    if (imageUrl) {            imageUrl = imageUrl.replace(/-(\d+)-(\d+)(\.[a-z.]+)$/i, '$3');          }                    let fallbackImage = '';          if (originalImageUrl && originalImageUrl !== imageUrl) {             fallbackImage = originalImageUrl;          } else if (item.model_image && item.model_image !== imageUrl) {             fallbackImage = item.model_image;          } else if (item.model_image_url && item.model_image_url !== imageUrl) {             fallbackImage = item.model_image_url;          }                    const rawCurrency = item.currency || item.currency_symbol || '$';                    let savingLabel = item.percentage_saving_label || '';          if (!savingLabel && rawMsrp > rawPrice && rawPrice > 0) {            const pct = Math.round(((rawMsrp - rawPrice) / rawMsrp) * 100);            if (pct > 0) {              savingLabel = `${pct}% OFF`;            }          }                    const isPrime = item.shipping && item.shipping.prime === true;                    let scoreRaw = (item.review_score !== undefined && item.review_score !== null && item.review_score > 0) ? parseFloat(item.review_score) : null;          let starRating = 0;          if (scoreRaw !== null) {            starRating = Math.round((scoreRaw > 10 ? scoreRaw / 20 : scoreRaw / 2) * 2) / 2;          }                    return {            id: item.offer_id || item.link || item.url || item.offer_link || Math.random().toString(),            url: item.link || item.url || item.offer_link || '#',            image: imageUrl,            fallbackImage: fallbackImage,            title: item.name || item.title || item.model_name || item.product_name || 'Unknown Product',            brand: item.brand || '',            productName: item.model_name || item.product_name || item.name || '',            merchant: item.merchant_name || item.merchant || item.retailer || 'Retailer',            price: item.price !== undefined ? String(item.price) : '0.00',            currency: this.decodeHTML(rawCurrency),            msrp: item.was_price || item.msrp || item.original_price || null,            rawPrice: rawPrice,            rawMsrp: rawMsrp,            hasWasPrice: (item.was_price !== undefined && item.was_price !== null),            isCheckPrice: isCheckPrice,            savingLabel: savingLabel,            isPrime: isPrime,            starRating: starRating > 0 ? starRating : null,            modelId: item.model_id || '',            productKey: item.product_key || '',            merchantId: (item.merchant && typeof item.merchant === 'object') ? item.merchant.id || '' : '',            matchId: item.match_id || '',            merchantNetwork: (item.merchant && typeof item.merchant === 'object') ? item.merchant.an || '' : '',            merchantUrl: (item.merchant && typeof item.merchant === 'object') ? item.merchant.url || '' : '',            modelBrand: item.model_brand || item.brand || '',            modelParent: item.model_parent || ''          };        }        sortData() {          const sortVal = this.sortSelect ? this.sortSelect.value : (this.getViewMode() === 'savings_squad' ? 'date_desc' : 'discount_desc');          if (sortVal === 'price_asc') {            this.deals.sort((a, b) => a.rawPrice - b.rawPrice);          } else if (sortVal === 'price_desc') {            this.deals.sort((a, b) => b.rawPrice - a.rawPrice);          } else if (sortVal === 'discount_desc') {            this.deals.sort((a, b) => {              const aDiscount = a.rawMsrp > a.rawPrice ? (a.rawMsrp - a.rawPrice) : 0;              const bDiscount = b.rawMsrp > b.rawPrice ? (b.rawMsrp - b.rawPrice) : 0;              return bDiscount - aDiscount;            });          } else if (sortVal === 'date_desc') {             this.deals.sort((a, b) => {                let dateA = 0;                let dateB = 0;                if (a && a.modifiedDate) {                   const valA = Array.isArray(a.modifiedDate) ? a.modifiedDate[0] : a.modifiedDate;                   dateA = new Date(valA).getTime();                   if (isNaN(dateA)) dateA = 0;                }                if (b && b.modifiedDate) {                   const valB = Array.isArray(b.modifiedDate) ? b.modifiedDate[0] : b.modifiedDate;                   dateB = new Date(valB).getTime();                   if (isNaN(dateB)) dateB = 0;                }                return dateB - dateA;             });          }        }        getFilteredDeals() {          let filteredDeals = [...this.deals];                    if (this.dealModeToggle && this.dealModeToggle.checked) {            filteredDeals = filteredDeals.filter(d => d.hasWasPrice || (d.msrp && d.rawMsrp > d.rawPrice));          }                    return filteredDeals;        }        showLoading() {          const _div = '<' + '/div>';          const skeletonCardHtml = `            \x3Cdiv class="tg-df-card">              \x3Cdiv class="tg-df-card-image-box">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-img">${_div}              ${_div}              \x3Cdiv class="tg-df-card-body">                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text title">${_div}                \x3Cdiv class="tg-df-card-footer mt-auto">                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text short" style="height:24px;">${_div}                  \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text" style="height:44px; margin-top:8px;">${_div}                ${_div}              ${_div}            ${_div}`;          this.grid.innerHTML = Array(4).fill(skeletonCardHtml).join('');        }        showError() {          const _div = '<' + '/div>';          this.grid.innerHTML = `\x3Cdiv class="tg-df-message">            An error occurred while finding deals. Please check your connection and try again.          ${_div}`;        }        escapeHTML(str) {          if (!str) return '';          return String(str).replace(/[&<>'"]/g, tag => ({              '&': '&', '<': '<', '>': '>', "'": ''', '"': '"'          }[tag] || tag));        }                bindCouponButtons() {          const btns = this.root.querySelectorAll('.tg-df-tag-coupons');          btns.forEach(btn => {            btn.addEventListener('click', (e) => {              e.preventDefault();              e.stopPropagation();              const merchant = btn.getAttribute('data-merchant');              this.openVouchersModal(merchant);            });          });                    const closeBtn = this.root.querySelector('#tg-df-vouchers-close');          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (closeBtn) {            closeBtn.onclick = () => this.closeVouchersModal();          }          if (backdrop) {            backdrop.onclick = (e) => {              if (e.target === backdrop) this.closeVouchersModal();            };          }        }                closeVouchersModal() {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          if (backdrop) backdrop.classList.remove('active');        }                async checkMerchantsCouponsBulk(merchants) {          if (!merchants || merchants.length === 0) return {};          const controller = new AbortController();          const timeoutId = setTimeout(() => controller.abort(), 4000);          try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchants.join(','));            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '120');            url.searchParams.append('origin', 'widgets-clientside');                        let res; try { res = await fetch(url.toString(), { signal: controller.signal }); } catch (e) { return {}; }            clearTimeout(timeoutId);            if (!res.ok) return {};            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        const foundMerchants = new Set();            offers.forEach(o => {              let mName = o.merchant_name || o.merchant || o.retailer;              if (mName && typeof mName === 'object') mName = mName.name;              if (mName) foundMerchants.add(String(mName).toLowerCase());            });            const resultMap = {};            merchants.forEach(m => {              if (m) resultMap[m] = foundMerchants.has(String(m).toLowerCase());            });            return resultMap;          } catch (e) {            return {};          }        }                async openVouchersModal(merchantName) {          const backdrop = this.root.querySelector('#tg-df-vouchers-modal');          const title = this.root.querySelector('#tg-df-vouchers-title');          const content = this.root.querySelector('#tg-df-vouchers-content');                    if (!backdrop || !content) return;                    // HACK: Hide closing tags          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h4 = '<' + '/h4>';          const _svg = '<' + '/svg>';          const _circle = '<' + '/circle>';          const _polyline = '<' + '/polyline>';          const _rect = '<' + '/rect>';          const _path = '<' + '/path>';                    title.innerText = `${merchantName} Coupons & Deals`;          content.innerHTML = `\x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}                               \x3Cdiv class="tg-df-skeleton tg-df-skeleton-text">${_div}`;          backdrop.classList.add('active');                    try {            const area = this.getAreaCode();            const url = new URL('https://search-api.fie.future.net.uk/widget.php');            url.searchParams.append('model_name', 'Everything');            url.searchParams.append('language', 'en-GB');            if (area) url.searchParams.append('area', area);            url.searchParams.append('combine_product_types', '1');            url.searchParams.append('filter_merchant_name', merchantName);            url.searchParams.append('all_filters', 'false');            url.searchParams.append('exclude_unlabelled', 'false');            url.searchParams.append('include_specs', 'false');            url.searchParams.append('sort', 'voucher');            url.searchParams.append('distinct_merchants', 'natural');            url.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');            url.searchParams.append('rows', '50');            url.searchParams.append('origin', 'widgets-clientside');                        const res = await fetch(url.toString());            if (!res.ok) throw new Error('API Error');            const data = await res.json();                        let offers = [];            if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {              offers = data.widget.data.offers;            } else if (data && data.data && Array.isArray(data.data.offers)) {              offers = data.data.offers;            } else if (Array.isArray(data)) {              offers = data;            } else if (data && Array.isArray(data.offers)) {              offers = data.offers;            } else if (data && data.offers && Array.isArray(data.offers.offer)) {              offers = data.offers.offer;            } else if (data && Array.isArray(data.data)) {              offers = data.data;            }                        if (offers.length === 0) {              content.innerHTML = `\x3Cdiv class="tg-df-message">No vouchers currently available for ${this.escapeHTML(merchantName)}.${_div}`;              return;            }                        content.innerHTML = offers.map(v => {              let offerObj = v;              if (v.offers && v.offers.offer) {                offerObj = Array.isArray(v.offers.offer) ? v.offers.offer[0] : v.offers.offer;              } else if (v.offer) {                offerObj = Array.isArray(v.offer) ? v.offer[0] : v.offer;              }              let logoUrl = v.logo_url || offerObj.logo_url || '';              if (!logoUrl && v.merchant) {                if (Array.isArray(v.merchant) && v.merchant.length > 0) logoUrl = v.merchant[0].logo_url || '';                else logoUrl = v.merchant.logo_url || '';              }                            const offerName = offerObj.name || offerObj.title || v.name || v.title || 'Special Offer';              const endTime = offerObj.end_time || v.end_time || '';              const linkUrl = offerObj.link || offerObj.url || v.link || v.url || '#';                            let foundVoucherCode = '';              const findVoucherCode = (obj) => {                if (!obj || typeof obj !== 'object') return;                if (obj.type === 'voucher_code' && obj.display_value) {                  foundVoucherCode = obj.display_value;                  return;                }                if (Array.isArray(obj)) {                  for (const item of obj) {                    findVoucherCode(item);                    if (foundVoucherCode) return;                  }                } else {                  for (const k in obj) {                    if (Object.prototype.hasOwnProperty.call(obj, k)) {                      findVoucherCode(obj[k]);                      if (foundVoucherCode) return;                    }                  }                }              };              findVoucherCode(offerObj);              if (!foundVoucherCode) findVoucherCode(v);                            const voucherCode = foundVoucherCode || offerObj.voucher_code || v.voucher_code || '';              const codeHtml = voucherCode ? `\x3Cspan class="tg-df-voucher-code" data-action="copy-code" data-code="${this.escapeHTML(voucherCode)}" title="Copy to clipboard">                \x3Cspan class="tg-df-voucher-code-text">${this.escapeHTML(voucherCode)}${_span}                \x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-left:6px;flex-shrink:0;" class="tg-df-voucher-copy-icon">                  \x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2">${_rect}                  \x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1">${_path}                ${_svg}              ${_span}` : '';                            const logoHtml = logoUrl                 ? `\x3Cimg src="${this.escapeHTML(logoUrl)}" alt="${this.escapeHTML(offerName)}" class="tg-df-voucher-logo" />`                 : `\x3Cdiv class="tg-df-voucher-logo" style="background:#e2e8f0;">${_div}`;                            let expiryHtml = '';              if (endTime) {                let dStr = endTime;                if (!isNaN(dStr) && String(dStr).length === 10) dStr = Number(dStr) * 1000;                const d = new Date(dStr);                if (!isNaN(d.getTime())) {                  const options = { year: 'numeric', month: 'short', day: 'numeric' };                  expiryHtml = `                    \x3Cdiv class="tg-df-voucher-expiry">                      \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                        \x3Ccircle cx="12" cy="12" r="10">${_circle}                        \x3Cpolyline points="12 6 12 12 16 14">${_polyline}                      ${_svg}                      Expires ${d.toLocaleDateString(undefined, options)}                    ${_div}`;                }              }              return `                \x3Ca href="${this.escapeHTML(linkUrl)}" target="_blank" rel="noopener nofollow" class="tg-df-voucher-item">                  ${logoHtml}                  \x3Cdiv class="tg-df-voucher-content">                    \x3Ch4 class="tg-df-voucher-title">${this.escapeHTML(offerName)}${_h4}                    ${codeHtml}                    ${expiryHtml}                  ${_div}                ${_a}              `;            }).join('');                        // Attach copy functionality            const copyBtns = content.querySelectorAll('[data-action="copy-code"]');            copyBtns.forEach(btn => {              btn.addEventListener('click', async (e) => {                e.preventDefault();                e.stopPropagation();                                const code = btn.getAttribute('data-code');                if (!code) return;                                try {                  const copyToClipboard = async (text) => {                     if (window.navigator.clipboard && window.isSecureContext) {                        try { await window.navigator.clipboard.writeText(text); return; } catch (e) {}                     }                     const textArea = document.createElement("textarea");                     textArea.value = text;                     textArea.style.position = "fixed";                     document.body.appendChild(textArea);                     textArea.focus();                     textArea.select();                     document.execCommand('copy');                     textArea.remove();                  };                  await copyToClipboard(code);                                    // Visual feedback                  btn.classList.add('copied');                  const textSpan = btn.querySelector('.tg-df-voucher-code-text');                  const iconSvg = btn.querySelector('.tg-df-voucher-copy-icon');                                    const origText = textSpan.innerText;                  const origIcon = iconSvg.innerHTML;                                    textSpan.innerText = 'Copied!';                  iconSvg.innerHTML = `\x3Cpolyline points="20 6 9 17 4 12">${_polyline}`;                                    setTimeout(() => {                    if (btn) {                      btn.classList.remove('copied');                      if (textSpan) textSpan.innerText = origText;                      if (iconSvg) iconSvg.innerHTML = origIcon;                    }                  }, 2000);                                    trackElementInteraction({                    id: 'voucher-code-copy',                    name: 'Copy Voucher Code',                    label: `Copied ${code} for ${merchantName}`                  });                } catch (err) {                  console.warn('Failed to copy text: ', err);                }              });            });                                  } catch (e) {            console.warn(e);            content.innerHTML = `\x3Cdiv class="tg-df-message">Failed to load vouchers.${_div}`;          }        }        render() {          try {            if (this.getViewMode() === 'savings_squad' && this.airedaleTags.length > 0) {              if (this.categoryFilterWrapper) {                 this.categoryFilterWrapper.style.display = 'flex';              }              if (this.categoryFilter) {                 const _option = '<' + '/option>';                 let optionsHtml = `\x3Coption value="all">All Categories${_option}`;                 this.airedaleTags.forEach(tag => {                    const isSelected = this.activeDealTag === tag ? 'selected' : '';                    optionsHtml += `\x3Coption value="${this.escapeHTML(tag)}" ${isSelected}>${this.escapeHTML(tag)} (${this.airedaleTagCounts[tag] || 0})${_option}`;                 });                 this.categoryFilter.innerHTML = optionsHtml;                 this.categoryFilter.value = this.activeDealTag || 'all';              }            } else {               if (this.categoryFilterWrapper) {                  this.categoryFilterWrapper.style.display = 'none';               }            }            const displayDeals = this.getFilteredDeals();          // HACK: Hide closing tags from the CMS HTML sanitizer so it doesn't strip them during in-page injection          const _div = '<' + '/div>';          const _span = '<' + '/span>';          const _a = '<' + '/a>';          const _h3 = '<' + '/h3>';          const _p = '<' + '/p>';          const _strong = '<' + '/strong>';          const _sup = '<' + '/sup>';          const _button = '<' + '/button>';          if (displayDeals.length === 0) {            if (this.currentQuery.length > 2 || (this.getViewMode() === 'savings_squad')) {              if (this.deals.length > 0) {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No deals match your selected filters.                ${_div}`;              } else if (this.getViewMode() === 'savings_squad' && this.currentQuery.length <= 2) {                 // Do not show "no exact matches" if query is empty for savings_squad                 this.grid.innerHTML = '';              } else {                 this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                  No exact matches found for "\x3Cstrong>${this.escapeHTML(this.currentQuery)}${_strong}". Try adjusting your search term.                ${_div}`;              }            } else {              this.grid.innerHTML = `\x3Cdiv class="tg-df-message">                Search product or category names to discover the best deals from across the web.              ${_div}`;            }            return;          }          let dealsHtml = displayDeals.slice(0, this.displayLimit).map((deal, index) => {            try {               const currencySym = this.escapeHTML(deal.currency);               const isoCurrencyCode = normalizeCurrency(currencySym);               const escapedPrice = this.escapeHTML(deal.price);               const escapedMsrp = this.escapeHTML(deal.msrp);               const areaCode = this.getAreaCode();                              const revenueId = generateRevenueId(deal.url, deal.title, deal.merchant, null);               const originalLink = deal.url;               const rewrittenLink = rewriteAffiliateLink(deal.url, areaCode, revenueId);                        const productCategoryName = 'deals';            const dataAttr = `              data-action="${deal.isCheckPrice ? 'view-similar-click' : 'deal-click'}"              data-analytics-id="${this.escapeHTML(deal.externalProductId || deal.id || '')}"              data-product-name="${this.escapeHTML(deal.title)}"              data-merchant-name="${this.escapeHTML(deal.merchant)}"              data-price="${deal.rawPrice || ''}"              data-previous-price="${deal.rawMsrp || ''}"              data-original-link="${this.escapeHTML(originalLink)}"              data-revenue-id="${revenueId}"              data-index="${index}"              data-total="${displayDeals.length}"              data-in-stock="${deal.inStock !== false}"              data-currency="${this.escapeHTML(isoCurrencyCode)}"              data-model-id="${this.escapeHTML(deal.modelId || '')}"              data-product-key="${this.escapeHTML(deal.productKey || '')}"              data-merchant-id="${this.escapeHTML(deal.merchantId || '')}"            `;                        let priceGroupHtml = '';            let isSavingsSquadMode = this.getViewMode() === 'savings_squad';            let ctaText = 'View Deal';            let formattedPrice = '';            let msrpHtml = '';                        if (deal.isCheckPrice) {              ctaText = isSavingsSquadMode ? 'View Deal' : 'Check Price';              if (isSavingsSquadMode) {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                  ${_div}                `;              } else {                priceGroupHtml = `                  \x3Cdiv class="tg-df-card-merchant-wrapper">                    \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                  ${_div}                  \x3Cdiv class="tg-df-card-price-group">                    \x3Cspan class="tg-df-card-price" style="font-size: 15px; font-weight: 500; font-style: italic;">See price at retailer${_span}                  ${_div}                `;              }            } else {              // Format Price              formattedPrice = escapedPrice.includes(currencySym)                 ? escapedPrice                 : `${currencySym}${escapedPrice}`;                              // Format MSRP              msrpHtml = deal.msrp && deal.rawMsrp > deal.rawPrice                ? `\x3Cspan class="tg-df-card-msrp">${escapedMsrp.includes(currencySym) ? escapedMsrp : currencySym + escapedMsrp}${_span}`                : '';                              priceGroupHtml = `                \x3Cdiv class="tg-df-card-merchant-wrapper">                  \x3Cspan class="tg-df-card-merchant-pill" title="${this.escapeHTML(deal.merchant)}">${this.escapeHTML(deal.merchant)}${_span}                ${_div}                \x3Cdiv class="tg-df-card-price-group">                  ${isSavingsSquadMode ? '' : `                  \x3Cspan class="tg-df-card-price">${formattedPrice}${_span}                  ${msrpHtml}                  `}                ${_div}              `;            }                        const discountBadgeHtml = deal.savingLabel && !deal.isCheckPrice              ? `\x3Cspan class="tg-df-card-discount-badge">${this.escapeHTML(deal.savingLabel)}${_span}`              : '';                          // HACK for CMS            const _button = '<' + '/button>';            const _svg = '<' + '/svg>';            const _path = '<' + '/path>';            const _rect = '<' + '/rect>';            const _circle = '<' + '/circle>';            const _polyline = '<' + '/polyline>';            const _line = '<' + '/line>';                        let badgesHtml = '';            const primeBadge = deal.isPrime ? `              \x3Cspan class="tg-df-tag tg-df-tag-prime">                \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="currentColor">                  \x3Cpath d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z">${_path}                ${_svg} Prime              ${_span}            ` : '';                        const couponsBadge = `              \x3Cdiv class="tg-df-coupon-wrapper" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:inline-flex; align-items:center;">                \x3Cdiv class="tg-df-coupon-spinner">${_div}                \x3Cbutton type="button" class="tg-df-tag tg-df-tag-coupons" data-action="coupons-click" data-merchant="${this.escapeHTML(deal.merchant)}" style="display:none;">                  \x3Csvg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">                    \x3Cpath d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z">${_path}                    \x3Cline x1="7" y1="7" x2="7.01" y2="7">${_line}                  ${_svg} Coupons                ${_button}              ${_div}            `;                        // Note: We always add coupons badge if there's a chance, but to allow 3-line titles we check wrapper display state            badgesHtml = `              \x3Cdiv class="tg-df-card-badges">                ${primeBadge}                ${couponsBadge}              ${_div}            `;            const _linearGradient = '<' + '/linearGradient>';            const _polygon = '<' + '/polygon>';            const _stop = '<' + '/stop>';            const _defs = '<' + '/defs>';                        let starHtml = '';            if (deal.starRating) {              let rating = deal.starRating;                            if (rating > 0) {                const fullStars = Math.floor(rating);                const halfStar = (rating - fullStars) >= 0.5 ? 1 : 0;                const emptyStars = Math.max(0, 5 - fullStars - halfStar);                const blue = '#1f69ff'; // Tom's guide brand color from VIEW DEAL button                const gray = '#cbd5e1';                                const starSvgFull = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="${blue}" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                const gradId = 'half_grad_' + Math.floor(Math.random()*1000000);                const starSvgHalf = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" stroke="${blue}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cdefs>\x3ClinearGradient id="${gradId}" x1="0" x2="1" y1="0" y2="0">\x3Cstop offset="50%" stop-color="${blue}">${_stop}\x3Cstop offset="50%" stop-color="transparent">${_stop}${_linearGradient}${_defs}                  \x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26" fill="url(#${gradId})">${_polygon}${_svg}`;                                  const starSvgEmpty = `\x3Csvg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="${gray}" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpolygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26">${_polygon}${_svg}`;                                let stars = [];                for (let i=0; i<fullStars; i++) stars.push(starSvgFull);                if (halfStar) stars.push(starSvgHalf);                for (let i=0; i<emptyStars; i++) stars.push(starSvgEmpty);                                starHtml = `\x3Cdiv class="tg-df-card-stars" style="display:flex;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--tg-df-text-muted);">                  \x3Cspan style="margin-right:6px;">Tom's Guide:${_span}                  \x3Cdiv style="display:flex;gap:2px;">                    ${stars.join('')}                  ${_div}                ${_div}`;              }            }            let htmlOutput = '';            if (isSavingsSquadMode) {              htmlOutput += `              \x3Cdiv class="hawk-deal-widget-container tg-df-mobile-only" data-collapsible="true">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''} style="margin-bottom: 10px;">` : ''}                \x3Cdiv class="hawk-deal-widget-wrap">                  \x3Cdiv class="hawk-deal-widget-image-container">                    \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" rel="sponsored noopener" target="_blank" class="hawk-affiliate-link-deal-widget" ${dataAttr}>                      \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="hawk-lazy-image-deal-widget" loading="lazy" width="140" height="160" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                    ${_a}                  ${_div}                  \x3Cdiv class="hawk-deal-widget-text-cta-container">                    \x3Cdiv class="hawk-deal-widget-text-body-container">                      \x3Cdiv class="hawk-deal-widget-text-body-main">                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          ${deal.isCheckPrice ? `                            \x3Cspan class="hawk-deal-widget-title-product-title">${this.escapeHTML(deal.title)}${_span}                          ` : `                            \x3Cspan class="hawk-deal-widget-title-product-title">${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_span}                          `}                        ${_a}                        ${!deal.isCheckPrice && deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan class="hawk-deal-widget-title-was-price">was ${currencySym}${escapedMsrp}${_span}                          ${_a}                        ` : ''}                        \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-container" rel="sponsored noopener" target="_blank" ${dataAttr}>                          \x3Cspan class="hawk-deal-widget-title-retailer-price">                            ${!deal.isCheckPrice ? `                              \x3Cspan class="hawk-deal-widget-title-price">now ${formattedPrice}${_span}                              \x3Cspan class="hawk-deal-widget-title-retailer"> at ${this.escapeHTML(deal.merchant)}${_span}                            ` : `                              \x3Cspan class="hawk-deal-widget-title-price">See price at ${this.escapeHTML(deal.merchant)}${_span}                            `}                          ${_span}                        ${_a}                        ${deal.description ? `\x3Cdiv class="hawk-deal-widget-text-body-description">\x3Cp>${this.escapeHTML(deal.description)}${_p}${_div}` : ''}                      ${_div}                    ${_div}                    \x3Cdiv class="hawk-deal-widget-footer">                      \x3Cdiv class="hawk-deal-widget-button-wrapper">                        \x3Cdiv class="hawk-deal-widget-preferred-partner-wrapper">                          \x3Ca data-google-interstitial="false" aria-label="View ${this.escapeHTML(deal.title)} on ${this.escapeHTML(deal.merchant)}" href="${this.escapeHTML(rewrittenLink)}" class="hawk-affiliate-link-deal-button" rel="sponsored noopener" target="_blank" ${dataAttr}>                            \x3Cspan>${deal.isCheckPrice ? 'Check Price' : 'View Deal'}${_span}                          ${_a}                        ${_div}                      ${_div}                    ${_div}                  ${_div}                ${_div}              ${_div}              `;            }            htmlOutput += `              \x3Cdiv class="tg-df-card ${isSavingsSquadMode ? 'tg-df-desktop-only' : ''}">                ${this.editorMode ? `\x3Cinput type="checkbox" class="tg-df-deal-checkbox" data-id="${this.escapeHTML(deal.id)}" ${this.selectedDeals.has(deal.id) ? 'checked' : ''}>` : ''}                \x3Cdiv class="tg-df-card-image-box">                  ${discountBadgeHtml}                  \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" style="display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">                    \x3Cimg ${deal.image ? `src="${this.escapeHTML(deal.image)}"` : ''} alt="${this.escapeHTML(deal.title)}" class="tg-df-card-image" loading="lazy" onerror="${deal.fallbackImage ? `if(!this.dataset.fb) { this.dataset.fb='1'; this.src='${this.escapeHTML(deal.fallbackImage)}'; } else { this.style.opacity='0'; }` : `this.style.opacity='0';`}">                  ${_a}                ${_div}                \x3Cdiv class="tg-df-card-body">                  ${starHtml}                  ${badgesHtml}                  \x3Ch3 class="tg-df-card-title tg-df-custom-savings-squad-title" title="${this.escapeHTML(deal.title)}">                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" disable-tracking="true" target="_blank" rel="noopener nofollow" style="text-decoration: none; color: inherit;">                      ${isSavingsSquadMode                         ? (deal.isCheckPrice                             ? (deal.title && deal.title.includes(':')                                 ? `\x3Cstrong>${this.escapeHTML(deal.title.substring(0, deal.title.indexOf(':') + 1))}${_strong}\x3Cspan style="color: #1f69ff; font-weight: normal;">${this.escapeHTML(deal.title.substring(deal.title.indexOf(':') + 1))}${_span}`                                : this.escapeHTML(deal.title)                              )                             : `\x3Cstrong>${deal.brand ? this.escapeHTML(deal.brand) + ' ' : ''}${this.escapeHTML(deal.productName || deal.title || '')}:${_strong} ${deal.rawMsrp && deal.rawMsrp > deal.rawPrice ? `\x3Cspan style="color: #d0021b; text-decoration: line-through; font-weight: normal; margin-right: 4px;">was ${currencySym}${escapedMsrp}${_span} ` : ''}\x3Cspan style="color: #1f69ff; font-weight: normal;">now ${formattedPrice} at ${this.escapeHTML(deal.merchant)}${_span}`                          )                        : this.escapeHTML(deal.title)                      }                    ${_a}                  ${_h3}                  ${deal.description ? `\x3Cp style="font-size: 13px; color: var(--tg-df-text-muted); margin-bottom: 12px; line-height: 1.4;">${this.escapeHTML(deal.description)}${_p}` : ''}                  \x3Cdiv class="tg-df-card-footer">                    ${priceGroupHtml}                    \x3Ca href="${this.escapeHTML(rewrittenLink)}" ${dataAttr} target="_blank" rel="noopener nofollow" class="tg-df-card-cta ${isSavingsSquadMode ? 'tg-df-cta-savings-squad' : ''}" style="text-decoration: none;">${ctaText}${_a}                  ${_div}                ${_div}              ${_div}            `;                        return htmlOutput;            } catch (e) {               console.log("Error rendering deal in map for index", index, typeof deal === 'object' ? JSON.stringify(deal) : deal, "MSG:", e.message);               return '';            }          }).join('');                    if (displayDeals.length > this.displayLimit || ((this.getViewMode() === 'carousel' || this.getViewMode() === 'auto') && displayDeals.length > 0 && displayDeals.length % ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12) === 0)) {            if (this.getViewMode() === 'carousel') {               dealsHtml += `                 \x3Cbutton type="button" class="tg-df-load-more-card tg-df-load-more">                   \x3Csvg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 8px;">\x3Cpath d="M5 12h14">\x3C/path>\x3Cpath d="m12 5 7 7-7 7">\x3C/path>\x3C/svg>                   Load More                 ${_button}               `;            } else {               dealsHtml += `                 \x3Cdiv style="width: 100%; display: flex; justify-content: center; margin-top: 16px; grid-column: 1 / -1;">                   \x3Cbutton type="button" class="tg-df-tag-outline tg-df-load-more" style="padding: 8px 24px; border-radius: 100px; font-weight: 600; font-size: 14px; cursor: pointer; display: flex; align-items: center;">Load More${_button}                 ${_div}               `;            }          }                    this.grid.innerHTML = dealsHtml;                    let gridWrapper = this.grid.parentElement;          if (gridWrapper && gridWrapper.classList.contains('tg-df-grid-wrapper')) {             let existingChevron = gridWrapper.querySelector('.tg-df-carousel-scroll-right');             if (this.getViewMode() === 'carousel') {                 if (!existingChevron) {                     gridWrapper.insertAdjacentHTML('beforeend', '\n                 \x3Cbutton class="tg-df-carousel-scroll-right" type="button" aria-label="Scroll right" onclick="this.previousElementSibling.scrollBy({left: 200, behavior: \'smooth\'})">\x3Csvg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">\x3Cpath d="m9 18 6-6-6-6">\x3C/path>\x3C/svg>\x3C/button>');                 }             } else {                 if (existingChevron) {                     existingChevron.remove();                 }             }          }                    const loadMoreBtn = this.grid.querySelector('.tg-df-load-more');          if (loadMoreBtn) {            loadMoreBtn.addEventListener('click', async () => {              if (typeof trackElementInteraction === 'function') {                trackElementInteraction({ id: 'load-more', name: 'Load more', label: 'Load More Results' });              }              if (displayDeals.length <= this.displayLimit) {                 loadMoreBtn.innerHTML = `                  <svg class="tg-df-spinner" style="width: 16px; height: 16px; display: inline-block; vertical-align: middle; margin-right: 8px;" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48l2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48l2.83-2.83"/></svg>                  Loading...                 `;                 loadMoreBtn.disabled = true;                 await this.fetchDeals(this.currentQuery, true);              } else {                 this.displayLimit += ((this.rowsSelect && this.rowsSelect.value) ? parseInt(this.rowsSelect.value, 10) : 12);                 this.render();              }            });          }                      this.bindCouponButtons();            this.checkAndUpdateCoupons();                        // Allow hawklinks.js to discover and rewrite our widget links             // by appending the .article-body class and manually triggering processArticle.            let container = this.root.classList.contains('tg-df-container') ? this.root : this.root.querySelector('.tg-df-container');            if (container && !container.classList.contains('article-body')) {               container.classList.add('article-body');            }            setTimeout(() => {               if (this.grid && !this.grid.classList.contains('article-body')) this.grid.classList.add('article-body');            document.dispatchEvent(new CustomEvent('processArticle', { detail: { element: this.root } }));            }, 50);          } catch(e) {            console.warn("Widget render error", e);          }        }                async checkAndUpdateCoupons() {          const wrappers = Array.from(this.root.querySelectorAll('.tg-df-coupon-wrapper'));          if (wrappers.length === 0) return;                    const merchants = [...new Set(wrappers.map(w => w.getAttribute('data-merchant')).filter(Boolean))];          if (merchants.length === 0) return;          const couponResultsMap = await this.checkMerchantsCouponsBulk(merchants);                    for (const merchant of merchants) {            const hasCoupons = !!couponResultsMap[merchant];            const merchantWrappers = wrappers.filter(w => w.getAttribute('data-merchant') === merchant);            merchantWrappers.forEach(wrapper => {              const spinner = wrapper.querySelector('.tg-df-coupon-spinner');              const btn = wrapper.querySelector('.tg-df-tag-coupons');                            if (spinner) spinner.style.display = 'none';                            if (hasCoupons && btn) {                btn.style.display = 'inline-flex';              } else if (!hasCoupons) {                wrapper.style.display = 'none';              }            });          }        }        updateFloatingCopyBar() {          if (!this.editorBar || !this.editorSelectedCount) return;          if (this.editorMode && this.selectedDeals.size > 0) {            this.editorBar.style.display = 'flex';            this.editorSelectedCount.innerText = this.selectedDeals.size;          } else {            this.editorBar.style.display = 'none';          }        }        async copySelectedDealsToCMS() {           function htmlToSlate(htmlString) {              if (!htmlString) return [{ type: 'paragraph', children: [{ text: '' }] }];              let doc;              if (typeof window !== 'undefined' && window.DOMParser) {                 doc = new DOMParser().parseFromString(htmlString, 'text/html');              } else {                 doc = document.implementation.createHTMLDocument('');                 doc.body.innerHTML = htmlString;              }                            function parseNode(node, marks = {}) {                  if (node.nodeType === 3) {                      const text = node.textContent;                      if (!text) return null;                      return { text: text, ...marks };                  }                  if (node.nodeType === 1) {                      const tagName = node.tagName.toLowerCase();                      if (tagName === 'br') {                          return { type: 'line-break', children: [{ text: '' }] };                      }                      if (tagName === 'p') {                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return { type: 'paragraph', children };                      }                      if (tagName === 'strong' || tagName === 'b') {                          const newMarks = { ...marks, bold: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'em' || tagName === 'i') {                          const newMarks = { ...marks, italic: true };                          return Array.from(node.childNodes).map(child => parseNode(child, newMarks)).flat().filter(Boolean);                      }                      if (tagName === 'a') {                          const href = node.getAttribute('href') || '';                          let children = Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                          if (children.length === 0) children.push({ text: "" });                          return {                              type: 'link',                              url: href,                              isNoFollow: (node.getAttribute('rel') || '').includes('nofollow'),                              isSponsored: (node.getAttribute('rel') || '').includes('sponsored'),                              isOpenNewTab: node.getAttribute('target') === '_blank',                              isPreventDataRewrite: false,                              children: children                          };                      }                      return Array.from(node.childNodes).map(child => parseNode(child, marks)).flat().filter(Boolean);                  }                  return null;              }                            let blocksArray = [];              let currentParagraphChildren = [];              function flushParagraph() {                  if (currentParagraphChildren.length > 0) {                      blocksArray.push({ type: 'paragraph', children: currentParagraphChildren });                      currentParagraphChildren = [];                  }              }              Array.from(doc.body.childNodes).forEach(node => {                  const parsed = parseNode(node, {});                  const parsedItems = Array.isArray(parsed) ? parsed : (parsed ? [parsed] : []);                  parsedItems.forEach(item => {                      if (item.type === 'paragraph') {                          flushParagraph();                          blocksArray.push(item);                      } else {                          currentParagraphChildren.push(item);                      }                  });              });              flushParagraph();              if (blocksArray.length === 0) {                  blocksArray = [{ type: 'paragraph', children: [{ text: '' }] }];              }              return blocksArray;           }           const blocks = [];                      this.editorCopyBtn.innerHTML = '\x3Cspan class="tg-df-coupon-spinner" style="display:inline-block; margin-right:8px; border-top-color:#fff;">' + '<' + '/span> Copying...';           for (const deal of Array.from(this.selectedDeals.values())) {              const url = deal.url;              const merchant = deal.merchant;              const title = deal.title;              const image = deal.image;              const currentPrice = deal.currency + deal.rawPrice;              const wasPrice = deal.hasWasPrice && deal.rawMsrp > deal.rawPrice ? deal.currency + deal.rawMsrp : '';                            let couponsChildren = [];              try {                  const area = this.getAreaCode();                  const apiUrl = new URL('https://search-api.fie.future.net.uk/widget.php');                  apiUrl.searchParams.append('model_name', 'Everything');                  apiUrl.searchParams.append('language', 'en-GB');                  apiUrl.searchParams.append('area', area);                  apiUrl.searchParams.append('combine_product_types', '1');                  apiUrl.searchParams.append('filter_merchant_name', merchant);                  apiUrl.searchParams.append('all_filters', 'false');                  apiUrl.searchParams.append('exclude_unlabelled', 'false');                  apiUrl.searchParams.append('include_specs', 'false');                  apiUrl.searchParams.append('sort', 'voucher');                  apiUrl.searchParams.append('distinct_merchants', 'natural');                  apiUrl.searchParams.append('filter_product_types', 'vouchers,offer_deals,newsletter');                  apiUrl.searchParams.append('rows', '3');                  apiUrl.searchParams.append('origin', 'widgets-clientside');                                    let res; try { res = await fetch(apiUrl.toString()); } catch (e) { return; }                  if (res.ok) {                      const data = await res.json();                      let offers = [];                      if (data && data.widget && data.widget.data && Array.isArray(data.widget.data.offers)) {                        offers = data.widget.data.offers;                      } else if (data && data.data && Array.isArray(data.data.offers)) {                        offers = data.data.offers;                      }                                            if (offers.length > 0) {                          couponsChildren.push({ text: "Also check out these coupons: ", bold: true });                          offers.slice(0, 3).forEach((offer, idx) => {                              const actualOffer = offer.offer || offer;                              const offerName = actualOffer.name || actualOffer.title || offer.model_name || offer.title || offer.name || 'Coupon';                              const linkUrl = actualOffer.link || actualOffer.url || actualOffer.offer_link || '#';                              couponsChildren.push({ type: "line-break", children: [{ text: "" }] });                              couponsChildren.push({ text: "🎟️ " });                              couponsChildren.push({                                  type: "link",                                  url: linkUrl,                                  isNoFollow: true,                                  isSponsored: false,                                  isOpenNewTab: true,                                  isPreventDataRewrite: false,                                  children: [{ text: offerName, bold: true }]                              });                          });                      }                  }              } catch (err) {                  console.warn('Failed to fetch coupons for', merchant, err);              }              let descriptionValue = [];              if (deal.text) {                 descriptionValue = htmlToSlate(deal.text);              } else {                 const dealDescriptions = [                   `Don't miss out on this fantastic deal for the ${title}. It is currently available at ${merchant} for a highly competitive price.`,                   `We've spotted an excellent price drop on the ${title}. Grab it now at ${merchant} before it's gone.`,                   `The ${title} is currently seeing a generous discount over at ${merchant}. This is a perfect time to buy if you've been holding out.`,                   `If you're in the market for the ${title}, ${merchant} has just the deal for you.`,                   `Score the ${title} for less at ${merchant} right now. This is a rare chance to save big.`,                   `Upgrade your setup with the ${title}, now available at a stellar price via ${merchant}.`                 ];                 const randomDescription = dealDescriptions[Math.floor(Math.random() * dealDescriptions.length)];                 descriptionValue = [                    { type: "paragraph", children: [{ text: randomDescription }] }                 ];              }                            if (couponsChildren.length > 0) {                 let lastBlock = descriptionValue[descriptionValue.length - 1];                 if (lastBlock && lastBlock.type === 'paragraph') {                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children.push({ text: "Also check out these coupons: ", bold: true });                     lastBlock.children.push({ type: "line-break", children: [{ text: "" }] });                     lastBlock.children = lastBlock.children.concat(couponsChildren);                 } else {                     descriptionValue.push({                         type: "paragraph",                         children: [                             { type: "line-break", children: [{ text: "" }] },                             { type: "line-break", children: [{ text: "" }] },                             { text: "Also check out these coupons: ", bold: true },                             { type: "line-break", children: [{ text: "" }] },                             ...couponsChildren                         ]                     });                 }              }              function normalizeCurrencyToISO(symbol) {                const map = { '£': 'GBP', '$': 'USD', 'A$': 'AUD', 'CA$': 'CAD', '€': 'EUR' };                return map[symbol] || symbol;              }              const isoCurrency = normalizeCurrencyToISO(deal.currency);              blocks.push({                 id: (window.crypto && window.crypto.randomUUID) ? window.crypto.randomUUID() : 'cms-' + Date.now() + Math.random(),                 blockTypeName: "deal",                 excludeFrom: [],                 collapsible: false,                 props: {                    description: {                       value: descriptionValue,                       touched: false,                       validationMessage: ""                    },                    image: {                       value: {                          credit: [{ type: "paragraph", children: [{ text: merchant }] }],                          dateCreated: Date.now(),                          dateModified: Date.now(),                          distribution: [],                          fileSize: 0,                          height: 1000,                          id: deal.id,                          imageRights: "",                          src: image,                          name: title + ".jpg",                          tags: [],                          width: 1000                       },                       touched: false,                       validationMessage: ""                    },                    showDealButton: { value: true, touched: false, validationMessage: "" },                    isPreferredPartner: { value: false, touched: false, validationMessage: "" },                    linkHref: { value: url, touched: false, validationMessage: "" },                    linkLabel: { value: "", touched: false, validationMessage: "" },                    linkIsNoFollow: { value: true, touched: false, validationMessage: "" },                    linkIsSponsored: { value: false, touched: false, validationMessage: "" },                    linkIsOpenNewWindow: { value: true, touched: false, validationMessage: "" },                    customPromoFlags: { value: [], touched: false, validationMessage: "" },                    showStarDeal: { value: false, touched: false, validationMessage: "" },                    savingType: { value: "none", touched: false, validationMessage: "" },                    starDealPromoFlag: { value: "", touched: false, validationMessage: "" },                    showEditorsChoice: { value: false, touched: false, validationMessage: "" },                    editorsChoiceTitle: { value: "", touched: false, validationMessage: "" },                    hawkPriceCurrency: { value: { value: isoCurrency, label: isoCurrency }, touched: false, validationMessage: "" },                    hawkPrice: { value: deal.hasWasPrice ? String(deal.rawMsrp) : String(deal.rawPrice), touched: false, validationMessage: "" },                    hawkSalePrice: { value: String(deal.rawPrice), touched: false, validationMessage: "" },                    lastCheckedPriceDate: { value: "", touched: false, validationMessage: "" },                    hawkModel: { touched: false, validationMessage: "" },                    productId: { value: "", touched: false, validationMessage: "" },                    voucherId: { value: "", touched: false, validationMessage: "" },                    brand: { value: deal.brand || merchant, touched: false, validationMessage: "" },                    productName: { value: title, touched: false, validationMessage: "" },                    label: { value: "", touched: false, validationMessage: "" },                    retailer: { value: merchant, touched: false, validationMessage: "" },                    priceCheckError: false                 },                 failedFetchError: ""              });           }           const payload = {              type: "articleBuilderPages",              data: blocks           };           const jsonStr = JSON.stringify(payload);                      if (navigator.clipboard && navigator.clipboard.writeText) {              navigator.clipboard.writeText(jsonStr).then(() => {                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              }).catch(err => {                 console.warn('Failed to copy text: ', err);                 alert('Failed to copy deals to clipboard. See console.');              });           } else {              // Fallback              const textArea = document.createElement("textarea");              textArea.value = jsonStr;              document.body.appendChild(textArea);              textArea.focus();              textArea.select();              try {                 document.execCommand('copy');                 this.editorCopyBtn.innerHTML = 'Copied!';                 setTimeout(() => {                    this.editorCopyBtn.innerHTML = '\x3Csvg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-right: 6px;">\x3Crect x="9" y="9" width="13" height="13" rx="2" ry="2"><' + '/rect>\x3Cpath d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"><' + '/path><' + '/svg> Copy to CMS';                 }, 2000);              } catch (err) {                 console.warn('Fallback: Oops, unable to copy', err);                 alert('Fallback: Failed to copy deals to clipboard.');              }              document.body.removeChild(textArea);           }        }      }      // Initialize the Widget      if (document.readyState === 'loading') {        document.addEventListener('DOMContentLoaded', () => new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer }));      } else {        new DealsFinderWidget({ rootId: 'signal-deals-finder-root', rootNode: shadowRoot, hostContainer: hostContainer });      }    })();  </script></div>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Fitbit Air vs Fitbit Charge 6 — which top-performing Fitness tracker wins? ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-vs-fitbit-charge-6-which-top-performing-fitness-tracker-wins</link>
                                                                            <description>
                            <![CDATA[ Google's new $99 Fitbit Air has a lot in common with 2023's Fitbit Charge 6. Here's how the two compare head-to-head regarding features, battery, cost, and more. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">jkD849NjczvU65BjA3tYaH</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Rbh4AAXBsxGF2read2LhJJ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 18 Jun 2026 10:30:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Rbh4AAXBsxGF2read2LhJJ-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Fitbit Air and Fitbit Charge 6 on a user&#039;s wrist against a blue background]]></media:description>                                                            <media:text><![CDATA[Close-up of the Fitbit Air and Fitbit Charge 6 on a user&#039;s wrist against a blue background]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Fitbit Air and Fitbit Charge 6 on a user&#039;s wrist against a blue background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Rbh4AAXBsxGF2read2LhJJ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> and <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a> are two of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness trackers</a> in 2026. But is one better than the other? That truly depends on your budget, the number of smart features, and the type of user experience you desire.</p><p>To help you better understand the differences between 2023's Fitbit Charge 6 and 2026's Fitbit Air, I've compared the two across five categories, including cost, design, health and fitness tracking features, smart features, and battery life. </p>        <div class="featured_product_block featured_block_versus" data-id="1df8a721-a22a-4452-9976-e8274076b86c">            <a href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV/" data-model-name="Fitbit Air" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:119.29%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/y8LR2TSKeacYvTkKdrs9oA.jpg" alt="Fitbit Air"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                            <div class='featured__brand'>Fitbit</div>                    <div class="featured__title">Air</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>The Fitbit Air is my favorite distraction-free fitness tracker in 2026, with no screen,  buttons or notifications to slow you down. Battery life is good for up to a week, and health and fitness tracking performance proved reliable in testing. However, it lacks onboard GPS, so you'll need to carry a smartphone for location data when working out outdoors.  </p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="1da96b6e-3a0e-4977-8b58-c86d2e6b4006">            <a href="https://www.bestbuy.com/product/google-fitbit-charge-6-advanced-fitness-health-tracker-works-with-android-and-ios-obsidian-2023/J39TC3VHT6/sku/6559662" data-model-name="Fitbit Charge 6" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:119.29%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/cT9DuD2RvghnQbp7ggZByi.jpg" alt="Fitbit Charge 6 on an orange strap"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                            <div class='featured__brand'>Fitbit</div>                    <div class="featured__title">Charge 6</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>The Fitbit Charge 6 may have debuted in 2023, but it's still one of the most well-rounded fitness wearables money can buy in 2026 thanks to reliable tracking performance, excellent battery life, and just the right amount of smart features. Easy-wearing, it also boasts onboard GPS, so you don't need a smartphone for location-based fitness insights. </p></p>                </div>                            </div>        </div><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-charge-6-specs-compared"><span>Fitbit Air vs Fitbit Charge 6: Specs compared</span></h3><div ><table><caption>Fitbit Air vs Fitbit Charge 6</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Fitbit Charge 6</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$99</p></td><td  ><p>$159</p></td></tr><tr><td class="firstcol " ><p><strong>Launch date</strong></p></td><td  ><p>May, 2026</p></td><td  ><p>Sept, 2023</p></td></tr><tr><td class="firstcol " ><p><strong>Compatibility </strong></p></td><td  ><p>Android, iOS</p></td><td  ><p>Android, iOS</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>34.9 x 17 x 8.9 mm</p></td><td  ><p>11.4 x 22.9 x 10.2 mm</p></td></tr><tr><td class="firstcol " ><p><strong>Weight w/ strap</strong></p></td><td  ><p>12 g</p></td><td  ><p>15 g</p></td></tr><tr><td class="firstcol " ><p><strong>Display </strong></p></td><td  ><p>n/a</p></td><td  ><p>1.04-inch AMOLED</p></td></tr><tr><td class="firstcol " ><p><strong>Sensors</strong></p></td><td  ><p>Heart rate, SpO2, Skin temp, Accelerometer, Gyroscope</p></td><td  ><p>Heart rate, SpO2, ECG, Skin temp, Accelerometer, Gyroscope, NFC</p></td></tr><tr><td class="firstcol " ><p><strong>GPS</strong></p></td><td  ><p>No</p></td><td  ><p>Yes</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life</strong></p></td><td  ><p>Up to 7 days</p></td><td  ><p>Up to 6 days</p></td></tr><tr><td class="firstcol " ><p><strong>Water resistance </strong></p></td><td  ><p>50 meters</p></td><td  ><p>50 meters</p></td></tr></tbody></table></div><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-charge-6-cost"><span>Fitbit Air vs Fitbit Charge 6: Cost</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3661px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="rRWHyTSbAQrti6zaLozV97" name="IMG_9308.jpg" alt="run settings on the Fitbit Charge 6" src="https://cdn.mos.cms.futurecdn.net/rRWHyTSbAQrti6zaLozV97.jpg" mos="" align="middle" fullscreen="" width="3661" height="2059" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The newer Fitbit Air is $99, while 2023's Fitbit Charge 6 is $159. However, the latter goes on sale frequently. For example, you can pick up the Charge 6 right now for just <a href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV/" target="_blank" rel="nofollow">$99 via Amazon</a>. That said, the Fitbit Air is consistently cheaper than the Charge 6, so it wins this category.</p><p><em><strong>Winner: </strong></em><em>Fitbit Air</em></p><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-charge-6-design"><span>Fitbit Air vs Fitbit Charge 6: design</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4923px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8TnS5oF2ouHVYSDY3B8TxM" name="FitbitAir-rev-05" alt="Close-up of the Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/8TnS5oF2ouHVYSDY3B8TxM.jpg" mos="" align="middle" fullscreen="" width="4923" height="2769" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Both fitness trackers are lightweight, comfortable wearables with modest footprints. While the Fitbit Air is screen-free and button-free, providing a no-distractions health and fitness tracking experience, the Charge 6 offers a small 1.04-inch AMOLED touchscreen and haptic side buttons.</p><p>Does this make the Charge 6 a better tracker than the Air? That depends on whether you prefer a more-connected device capable of mirroring phone notifications and displaying stats, or one designed with a set-it-and-forget-it mentality.</p><p>Either way, the Charge 6 and Air each proved to be well-built in our testing, with respectable water resistance ratings of 50 meters. The Air is, of course, a bit more understated due to the lack of a screen; it's also a bit smaller. These factors don't necessarily make it a better-designed device, though.</p><p><em><strong>Winner: </strong></em><em>draw</em></p><h3 class="article-body__section" id="section-fitbit-air-vs-charge-6-health-and-fitness-tracking"><span>Fitbit Air vs Charge 6: Health and fitness tracking</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5000px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="FPN2oVhyGKaa4tcqQn5Nm4" name="Fitbit-Charge6" alt="Close-up showing the back of the Fitbit Charge 6" src="https://cdn.mos.cms.futurecdn.net/FPN2oVhyGKaa4tcqQn5Nm4.jpg" mos="" align="middle" fullscreen="" width="5000" height="2812" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air proved to be a competent fitness tracker when pitted head-to-head against other popular wearables, like <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-500-steps-with-the-fitbit-air-vs-fitbit-inspire-3-and-theres-a-clear-winner">versus the Fitbit Inspire 3</a>. However, it lacks onboard GPS, so you need to carry your paired phone to ensure metrics like distance, pace, and elevation gain are recorded accurately. </p><p>Not a fan of jogging with a bulky smartphone in your pocket? I feel you. In that case, the GPS-sporting Fitbit Charge 6 is going to be the better tracker for you.</p><p>The Charge 6 has other advantages over the Fitbit Air, most notably, the ability to record ECGs.  When it comes to tracking workouts, both devices support over 40 modes with automatic detection and tracking for basic workouts like walks, runs, and bike rides.</p><p>Of course, thanks to its screen, users can manually start a workout on the Charge 6 with just a few taps, while Fitbit Air users will need to make a trip to the Google Health app on their paired phone.</p><p><em><strong>Winner:</strong></em><em> Fitbit Charge 6</em></p><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-charge-6-smart-features"><span>Fitbit Air vs Fitbit Charge 6: Smart features</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6556px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="TnsKN5QkXMtSHCm4Zj8EGa" name="Fitbit Charge 6 Lifestyle Cycling Porcelain crop copy.jpg" alt="a photo of the Fitbit Charge 6" src="https://cdn.mos.cms.futurecdn.net/TnsKN5QkXMtSHCm4Zj8EGa.jpg" mos="" align="middle" fullscreen="" width="6556" height="3688" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Fitbit)</span></figcaption></figure><p>This one isn't even close. When it comes to support for smart features, the Fitbit Charge 6 blows the Fitbit Air out of the water. However, the Charge 6 doesn't offer anywhere near the level of smarts you'll get from the <a href="https://www.tomsguide.com/wellness/smartwatches/best-smartwatch">best smartwatch</a> models in 2026, like the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-11-review">Apple Watch Series 11</a> or <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-google-pixel-watch-4-and-it-could-be-my-new-favorite-smartwatch-for-android">Google Pixel Watch 4</a>.</p><p>Still, the Charge 6 has NFC, so you can tap-to-pay using Google Wallet. It also supports a small selection of handy Google apps, like Google Maps and YouTube Music. There's no onboard music storage, but you can control media playback from your paired device.</p><p>The Charge 6 additionally mirrors smartphone notifications for both Android and iOS users.  </p><p><em><strong>Winner:</strong></em><em> Fitbit Charge 6</em></p><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-charge-6-battery-life"><span>Fitbit Air vs Fitbit Charge 6: Battery life</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5020px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mDuzwW4uiRspx4hCjNoWDJ" name="Fitbit-Air-lead-02" alt="Close-up of the sensors on the Fitbit Air fitness tracker on the special edition Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/mDuzwW4uiRspx4hCjNoWDJ.jpg" mos="" align="middle" fullscreen="" width="5020" height="2824" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia)</span></figcaption></figure><p>The Fitbit Charge 6 is rated to last up to six days per charge on average, while the Fitbit Air is billed for up to seven days per charge. In my testing, both ratings proved accurate, making the Fitbit Air the winner of this category.</p><p><em><strong>Winner:</strong></em><em> Fitbit Air</em></p><h3 class="article-body__section" id="section-verdict"><span>Verdict</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4805px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bFju7tvNftUTkppemXS2tT" name="Fitbit-Air-lead-05" alt="Close-up of the Fitbit Air on-wrist on a red strap against a blue background" src="https://cdn.mos.cms.futurecdn.net/bFju7tvNftUTkppemXS2tT.jpg" mos="" align="middle" fullscreen="" width="4805" height="2703" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>When choosing between the Fitbit Air and the Fitbit Charge 6, the ultimate question to ask yourself is, "Do I want a screen-free and distraction-free fitness tracker or a more connected device?"</p><p>Put another way, the Fitbit Air is a wearable that you simply, well, wear and let it do its thing; the Charge 6 is one you interact with via a small touchscreen and haptic buttons. </p><p>Both are reliable, comfortable, and long-lasting. Of course, the Charge 6 has the advantage of onboard GPS, which is why I ultimately prefer it to the Air, along with NFC. But if you're not big on outdoor workouts or using tap-to-pay from this wrist, this may not matter much to you. </p><p><em><strong>Overall winner: </strong></em><em>Draw</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XYxboO"></div>                            </div>                            <script src="https://kwizly.com/embed/XYxboO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-vs-fitbit-inspire-3-which-usd99-fitness-tracker-wins">Fitbit Air vs Fitbit Inspire 3 — which $99 fitness tracker wins?</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-tested-all-3-fitbit-air-accessory-bands-and-theres-a-clear-winner">I tested all 3 Fitbit Air accessory bands — and there’s a clear winner</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-only-has-one-smart-feature-and-its-totally-changed-the-way-i-start-my-day">I've been using the Fitbit Air for over a week, and my favorite feature has completely changed the way I wake up</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I walked 3,500 steps with the Fitbit Air vs Fitbit Inspire 3 — and there's a clear winner ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-500-steps-with-the-fitbit-air-vs-fitbit-inspire-3-and-theres-a-clear-winner</link>
                                                                            <description>
                            <![CDATA[ I tested the fitness-tracking accuracy of the Fitbit Air and the Inspire 3, and one of these $99 trackers came out on top. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">rv27LvGoy6YYVJL2QNGaQb</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/M4CeSFG4rbanYS3SpzfT2E-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 17 Jun 2026 06:30:00 +0000</pubDate>                                                                                                                                <updated>Wed, 17 Jun 2026 10:13:36 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/M4CeSFG4rbanYS3SpzfT2E-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Fitbit Air and Fitbit Inspire 3 in a user&#039;s hand with a colorful out-of-focus background]]></media:description>                                                            <media:text><![CDATA[Close-up of the Fitbit Air and Fitbit Inspire 3 in a user&#039;s hand with a colorful out-of-focus background]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Fitbit Air and Fitbit Inspire 3 in a user&#039;s hand with a colorful out-of-focus background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/M4CeSFG4rbanYS3SpzfT2E-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Which $99 Fitbit fitness tracker is more accurate, the Fitbit Inspire 3 or the newer, screen-free Fitbit Air? Both devices performed admirably in our review test process, but is one more reliable than the other? I decided to find out.</p><p>On a picture-perfect cerulean Seattle summer day, I took one for the team and walked 3,500 steps with the <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a> strapped to my left wrist and the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> affixed to my right. </p><p>How do I know I walked exactly 3.5K steps? I counted each and every one, clicking my trusty manual tally counter to note every hundred, before starting the count over at one.</p><p>While my manual count was a control for steps, I used the Strava app on my<a href="https://www.tomsguide.com/phones/iphones/apple-iphone-16-plus-review-not-as-big-as-the-max-not-as-pricey-either"> iPhone 16 Plus</a> as a control for distance, pace, and elevation gain. Ultimately, one of these <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">top-performing fitness trackers</a> proved more competent. Was it the Fitbit Air or the Fitbit Inspire 3? Read on for the results.</p><div class="product"><a data-dimension112="de560822-687a-4a7d-8bba-802e73d72c5e" data-action="Deal Block" data-label="The Fitbit Air is a comfortable, screen and distraction-free health and fitness tracker with a set-it-and-forget-it disposition, and up to a week of battery life." data-dimension48="The Fitbit Air is a comfortable, screen and distraction-free health and fitness tracker with a set-it-and-forget-it disposition, and up to a week of battery life." data-dimension25="$99" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:95.22%;"><img id="6rQV9bADzd2zqYvNPGPxwE" name="Screenshot 2026-05-28 at 12.55.35 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6rQV9bADzd2zqYvNPGPxwE.png" mos="" align="middle" fullscreen="" width="858" height="817" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Air is a comfortable, screen and distraction-free health and fitness tracker with a set-it-and-forget-it disposition, and up to a week of battery life.<a class="view-deal button" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow" data-dimension112="de560822-687a-4a7d-8bba-802e73d72c5e" data-action="Deal Block" data-label="The Fitbit Air is a comfortable, screen and distraction-free health and fitness tracker with a set-it-and-forget-it disposition, and up to a week of battery life." data-dimension48="The Fitbit Air is a comfortable, screen and distraction-free health and fitness tracker with a set-it-and-forget-it disposition, and up to a week of battery life." data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="0480caf1-594e-4a13-806a-11869a77e22c" data-action="Deal Block" data-label="The Fitbit Inspire 3 is nearly four years older than the Air, but it offers many of the same health and fitness tracking features in a nearly as tiny package with great battery life. It also sports a tiny screen." data-dimension48="The Fitbit Inspire 3 is nearly four years older than the Air, but it offers many of the same health and fitness tracking features in a nearly as tiny package with great battery life. It also sports a tiny screen." data-dimension25="$79" href="https://www.amazon.com/Fitbit-Management-Intensity-Tracking-Midnight/dp/B0B5F9SZW7/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:112.25%;"><img id="SkbXeX6htqKZuVz49GdyV" name="Fitbit-Inspire-3-deal.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/SkbXeX6htqKZuVz49GdyV.jpg" mos="" align="middle" fullscreen="" width="2000" height="2245" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Inspire 3 is nearly four years older than the Air, but it offers many of the same health and fitness tracking features in a nearly as tiny package with great battery life. It also sports a tiny screen. <a class="view-deal button" href="https://www.amazon.com/Fitbit-Management-Intensity-Tracking-Midnight/dp/B0B5F9SZW7/?th=1" target="_blank" rel="nofollow" data-dimension112="0480caf1-594e-4a13-806a-11869a77e22c" data-action="Deal Block" data-label="The Fitbit Inspire 3 is nearly four years older than the Air, but it offers many of the same health and fitness tracking features in a nearly as tiny package with great battery life. It also sports a tiny screen." data-dimension48="The Fitbit Inspire 3 is nearly four years older than the Air, but it offers many of the same health and fitness tracking features in a nearly as tiny package with great battery life. It also sports a tiny screen." data-dimension25="$79">View Deal</a></p></div><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-inspire-3-key-differences"><span>Fitbit Air vs Fitbit Inspire 3: key differences </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5150px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="ACasPG6gGJGN83nJ2M5yiD" name="FitbitAir-Inspire-03" alt="Close-up of the Fitbit Air next to the Fitbit Inspire 3" src="https://cdn.mos.cms.futurecdn.net/ACasPG6gGJGN83nJ2M5yiD.jpg" mos="" align="middle" fullscreen="" width="5150" height="2896" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>I’ve already gone in-depth concerning the pros and cons of the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-vs-fitbit-inspire-3-which-usd99-fitness-tracker-wins">Fitbit Air vs. the Fitbit Inspire 3</a>. But as a quick refresher, both wearables are compact and record the basics, like sleep quality, workouts, women’s health, and overall well-being. </p><p>The most notable difference: The Fitbit Inspire 3 has a screen — albeit a tiny one — for mirrored smartphone notifications, starting workouts, and viewing stats. The Fitbit Air, meanwhile, is screen-free and distraction-free.</p><p>They each cost $99, though the Inspire 3 is frequently on sale for less (It's just <a href="https://www.amazon.com/Fitbit-Management-Intensity-Tracking-Midnight/dp/B0B5F9SZW7/?th=1" target="_blank" rel="nofollow">$79 via Amazon</a> as of publishing). When it comes to logging outdoor workouts, like walks, neither has an onboard GPS, so you’ll need to carry your smartphone along (as I did) for accurate location-based metrics. </p><p>Now, on to the results of my 3,500-step walk test with the Fitbit Air vs the Fitbit Inspire 3.</p><h3 class="article-body__section" id="section-i-walked-3-500-steps-with-the-fitbit-air-vs-fitbit-inspire-3"><span>I walked 3,500 steps with the Fitbit Air vs Fitbit Inspire 3</span></h3><div ><table><caption>Fitbit Air vs Inspire 3 walk test results</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Fitbit Inspire 3</p></th><th  ><p>Control</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Steps</p></td><td  ><p>3,501 steps</p></td><td  ><p>3,517 steps</p></td><td  ><p>3,500 steps (manual count)</p></td></tr><tr><td class="firstcol " ><p>Distance</p></td><td  ><p>1.89 miles</p></td><td  ><p>1.62 miles</p></td><td  ><p>1.90 miles (Strava)</p></td></tr><tr><td class="firstcol " ><p>Climb</p></td><td  ><p>210 feet</p></td><td  ><p>n/a</p></td><td  ><p>246 feet (Strava)</p></td></tr><tr><td class="firstcol " ><p>Average pace (elapsed) </p></td><td  ><p>18 mins 07 secs per mile</p></td><td  ><p>20 mins 33 secs per mile</p></td><td  ><p>17 mins 56 secs secs (Strava)</p></td></tr><tr><td class="firstcol " ><p>Average heart rate</p></td><td  ><p>117 bpm</p></td><td  ><p>121 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Max heart rate</p></td><td  ><p>136 bpm</p></td><td  ><p>145 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Calories burned</p></td><td  ><p>253 calories</p></td><td  ><p>278 calories </p></td><td  ><p>n/a</p></td></tr></tbody></table></div><p>During my roughly 34-minute walk, I took exactly 3,500 steps. The Fitbit Air was more accurate, with a total that's off by just a single step. Strava, for what it's worth, noted a total of 3,510 steps. </p><p>The Fitbit Air recorded nearly the same total distance covered as Strava, while the Inspire 3 was off by nearly a third of a mile. </p><p>"The Fitbit Air's elevation tracking data has proven <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-4-500-steps-with-the-fitbit-air-vs-apple-watch-se-3-and-im-surprised-by-the-winner" target="_blank">less than reliable</a> in my testing, but at least the tracker provides the metric (unlike the Inspire 3)."</p><p>The Air's pace data is pretty darn close to Strava's. I didn't pause at any point during the walk, so I expected roughly the same pace from all three tracking methods. That may be the case for the Fitit Air, but not the Inspire 3.</p><p>Despite noting less distance covered, the Fitbit Inspire 3 recorded slightly higher heart rate data than the Air and more calories burned.</p><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-inspire-3-winner"><span>Fitbit Air vs Fitbit Inspire 3: Winner </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4654px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3ZgyaboUC5K2rnhcC6Kifi" name="Inspire3-v-Air-02" alt="Close-up of the Fitbit Inspire 3 next to the Fitbit Air on a user's wrist" src="https://cdn.mos.cms.futurecdn.net/3ZgyaboUC5K2rnhcC6Kifi.jpg" mos="" align="middle" fullscreen="" width="4654" height="2618" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air is the clear winner of this head-to-head fitness-tracking accuracy showdown against its older sibling, the Fitbit Inspire 3.</p><p>Ultimately, the Air has newer hardware and represents the latest in Google's holistic tech. The Fitbit Inspire 3 may record most of the same metrics, but the Fitbit Air does so with better overall accuracy.</p><p>Which fitness trackers or smartwatches should I test head-to-head next? Let me know in the comments below. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XYxboO"></div>                            </div>                            <script src="https://kwizly.com/embed/XYxboO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing">The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-tested-all-3-fitbit-air-accessory-bands-and-theres-a-clear-winner">I tested all 3 Fitbit Air accessory bands — and there’s a clear winner</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/we-asked-toms-guide-readers-if-they-prefer-the-fitbit-air-vs-the-garmin-forerunner-70-and-the-results-were-overwhelming">We asked Tom's Guide readers if they prefer the Fitbit Air vs. the Garmin Forerunner 70 — and the results were overwhelming</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ We asked Tom's Guide readers if they prefer the Fitbit Air vs. the Garmin Forerunner 70 — and the results were overwhelming ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/we-asked-toms-guide-readers-if-they-prefer-the-fitbit-air-vs-the-garmin-forerunner-70-and-the-results-were-overwhelming</link>
                                                                            <description>
                            <![CDATA[ Fitbit Air vs Garmin Forerunner 70: Which wearable is more popular? With over 800 responses, 67% of readers would buy this tracker over the other. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">PxA7pX5zKBPRSWwKVdnMFK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/eNA2i2htvrPTQUDfXX7WNR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 16 Jun 2026 05:45:00 +0000</pubDate>                                                                                                                                <updated>Tue, 16 Jun 2026 12:02:35 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/eNA2i2htvrPTQUDfXX7WNR-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Garmin Forerunner 70 next to the Fitbit Air fitness tracker on the same wrist]]></media:description>                                                            <media:text><![CDATA[Close-up of the Garmin Forerunner 70 next to the Fitbit Air fitness tracker on the same wrist]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Garmin Forerunner 70 next to the Fitbit Air fitness tracker on the same wrist]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/eNA2i2htvrPTQUDfXX7WNR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>We asked Tom’s Guide readers which new fitness tracker they prefer, the screen-free Fitbit Air or the running-focused Garmin Forerunner 70, and your response was overwhelming.</p><p>With more than 800 total votes — 821 to be exact — one wearable proved far more popular than the other, receiving nods from 67% of respondents. So, which of these <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">top-performing fitness trackers</a> came out on top, the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> or the <a href="https://www.tomsguide.com/wellness/smartwatches/garmin-forerunner-70-review">Garmin Forerunner 70</a>? Read on.</p><h3 class="article-body__section" id="section-67-of-tg-readers-prefer-the-fitbit-air-but-why"><span>67% of TG readers prefer the Fitbit Air, but why?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4163px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="uzqVqau5gm5cPhz9DYttUR" name="F70-v-FitbitAir-01" alt="Close-up of the Garmin Forerunner 70 next to the Fitbit Air fitness tracker on the same wrist" src="https://cdn.mos.cms.futurecdn.net/uzqVqau5gm5cPhz9DYttUR.jpg" mos="" align="middle" fullscreen="" width="4163" height="2342" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>We ran our “Which 2026 fitness tracker do you prefer, the latest Garmin or the newest Fitbit?” poll for two weeks, and the results speak for themselves. With all votes tallied, 67% of Tom’s Guide readers prefer the Fitbit Air to the Garmin Forerunner 70. But why?</p><p>For starters, the Fitbit Air is just $99, and the Garmin Forerunner 70 is $249, but that’s just one likely factor in the former’s popularity. </p><p>An even bigger reason folks prefer the Fitbit might come down to the target audiences. While the Garmin Forerunner 70 is designed with <a href="https://www.tomsguide.com/wellness/running/im-a-running-noob-doing-my-first-5k-heres-all-the-tech-im-using-to-cross-the-finish-line">running enthusiasts</a> in mind, the Fitbit Air is geared toward, well, anyone who’s looking for health and fitness insights from a no-fuss wearable.</p><p>Ultimately, the Forerunner 70 is a more niche product, while the Fitbit Air has more <a href="https://www.youtube.com/watch?v=y9lNbNGbo24" target="_blank">mass appeal</a>. </p><div class="product"><a data-dimension112="adceea34-6f93-46b7-ba65-c5d0fb95feea" data-action="Deal Block" data-label="The Fitbit Air is a small, easy-wearing, and screen-free fitness tracker offering up to seven days of battery, meaningful sleep insights, and dependable workout-tracking performance. It's  Google's first new Fitbit in nearly three years, and my favorite tracker of 2026 so far." data-dimension48="The Fitbit Air is a small, easy-wearing, and screen-free fitness tracker offering up to seven days of battery, meaningful sleep insights, and dependable workout-tracking performance. It's  Google's first new Fitbit in nearly three years, and my favorite tracker of 2026 so far." data-dimension25="$99" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:95.22%;"><img id="6rQV9bADzd2zqYvNPGPxwE" name="Screenshot 2026-05-28 at 12.55.35 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6rQV9bADzd2zqYvNPGPxwE.png" mos="" align="middle" fullscreen="" width="858" height="817" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Air is a small, easy-wearing, and screen-free fitness tracker offering up to seven days of battery, meaningful sleep insights, and dependable workout-tracking performance. It's  Google's first new Fitbit in nearly three years, and my favorite tracker of 2026 so far.<a class="view-deal button" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow" data-dimension112="adceea34-6f93-46b7-ba65-c5d0fb95feea" data-action="Deal Block" data-label="The Fitbit Air is a small, easy-wearing, and screen-free fitness tracker offering up to seven days of battery, meaningful sleep insights, and dependable workout-tracking performance. It's  Google's first new Fitbit in nearly three years, and my favorite tracker of 2026 so far." data-dimension48="The Fitbit Air is a small, easy-wearing, and screen-free fitness tracker offering up to seven days of battery, meaningful sleep insights, and dependable workout-tracking performance. It's  Google's first new Fitbit in nearly three years, and my favorite tracker of 2026 so far." data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="0debec55-c9ac-469f-9079-72d4db6d95e8" data-action="Deal Block" data-label="The Forerunner 70 is Garmin's latest beginner-focused running watch, replacing the beloved Forerunner 55. Upgrades include a bright AMOLED screen and loads of training tools and insights for runners, offered neatly in a familiar, user-friendly package." data-dimension48="The Forerunner 70 is Garmin's latest beginner-focused running watch, replacing the beloved Forerunner 55. Upgrades include a bright AMOLED screen and loads of training tools and insights for runners, offered neatly in a familiar, user-friendly package." data-dimension25="$249" href="https://www.amazon.com/Garmin-Forerunner%C2%AE-Smartwatch-Advanced-Training/dp/B0H1F7T6G9/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1042px;"><p class="vanilla-image-block" style="padding-top:103.45%;"><img id="JxZy6K7r5Qf8aMgGg2NDqQ" name="Screenshot 2026-05-19 at 2.33.47 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/JxZy6K7r5Qf8aMgGg2NDqQ.png" mos="" align="middle" fullscreen="" width="1042" height="1078" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Forerunner 70 is Garmin's latest beginner-focused running watch, replacing the beloved Forerunner 55. Upgrades include a bright AMOLED screen and loads of training tools and insights for runners, offered neatly in a familiar, user-friendly package. <a class="view-deal button" href="https://www.amazon.com/Garmin-Forerunner%C2%AE-Smartwatch-Advanced-Training/dp/B0H1F7T6G9/" target="_blank" rel="nofollow" data-dimension112="0debec55-c9ac-469f-9079-72d4db6d95e8" data-action="Deal Block" data-label="The Forerunner 70 is Garmin's latest beginner-focused running watch, replacing the beloved Forerunner 55. Upgrades include a bright AMOLED screen and loads of training tools and insights for runners, offered neatly in a familiar, user-friendly package." data-dimension48="The Forerunner 70 is Garmin's latest beginner-focused running watch, replacing the beloved Forerunner 55. Upgrades include a bright AMOLED screen and loads of training tools and insights for runners, offered neatly in a familiar, user-friendly package." data-dimension25="$249">View Deal</a></p></div><p><strong>Fitbit Air vs Garmin Forerunner 70: Biggest differences </strong></p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4805px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bFju7tvNftUTkppemXS2tT" name="Fitbit-Air-lead-05" alt="Close-up of the Fitbit Air on-wrist on a red strap against a blue background" src="https://cdn.mos.cms.futurecdn.net/bFju7tvNftUTkppemXS2tT.jpg" mos="" align="middle" fullscreen="" width="4805" height="2703" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>I’ve already covered the core differences between the Fitbit Air vs Garmin Forerunner 70 in the intro to my <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-000-steps-with-the-fitbit-air-vs-garmin-forerunner-70-and-im-seriously-amazed-by-the-results">3,000-step walk test</a> between the two (Spoiler alert: both performed with remarkable accuracy). But to summarize, the Garmin boasts more training and recovery tools, running features, and onboard GPS. It’s light on smart features but does offer mirrored notifications and media control.</p><p>The Fitbit Air, meanwhile, offers a well-rounded mix of holistic and fitness features with no screen, buttons, or ability to mirror notifications. It also requires a paired smartphone for location data when working out. </p><p>Ultimately, both the Fitbit Air and Garmin Forerunner 70 impressed me during testing, with each proving reliable, long-lasting, durable, and comfortable. </p><p>Haven’t voted in our Fitbit Air vs Garmin Forerunner 70 poll yet? Make your voice heard now, below.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OqvznX"></div>                            </div>                            <script src="https://kwizly.com/embed/OqvznX.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/garmin-forerunner-70-vs-forerunner-55-biggest-upgrades-explained">Garmin Forerunner 70 vs Forerunner 55: Here's how Garmin's new entry-level running watch stacks up against its predecessor</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-went-for-a-run-with-the-fitbit-air-and-garmin-forerunner-70-to-see-how-the-usd99-tracker-compared-and-im-impressed">I went for a run with the Fitbit Air and Garmin Forerunner 70 to see how the $99 tracker compared, and I’m impressed</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-vs-fitbit-inspire-3-which-usd99-fitness-tracker-wins">Fitbit Air vs Fitbit Inspire 3 — which $99 fitness tracker wins?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Fitbit Air vs Fitbit Inspire 3 — which $99 fitness tracker wins? ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-vs-fitbit-inspire-3-which-usd99-fitness-tracker-wins</link>
                                                                            <description>
                            <![CDATA[ Google's new $99 Fitbit Air has a whole lot in common with 2022's Fitbit Inspire 3. Here's how the two stack up head-to-head. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">KXuDLZFxxsDZurPLrFHUFV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/3ZgyaboUC5K2rnhcC6Kifi-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 10 Jun 2026 07:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/3ZgyaboUC5K2rnhcC6Kifi-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Fitbit Inspire 3 next to the Fitbit Air on a user&#039;s wrist]]></media:description>                                                            <media:text><![CDATA[Close-up of the Fitbit Inspire 3 next to the Fitbit Air on a user&#039;s wrist]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Fitbit Inspire 3 next to the Fitbit Air on a user&#039;s wrist]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/3ZgyaboUC5K2rnhcC6Kifi-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Which fitness tracker is better, 2026's Fitbit Air or 2022's Fitbit Inspire 3? Logic might suggest that the newer model has the advantage, but that's not necessarily the case.</p><p>I just reviewed the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> and have worn a <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a> for several years, and there's plenty of good reason why both make our list of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness trackers</a> in 2026. </p><p>Here's how these two trackers compare head-to-head across six categories, including cost, design, customization, health and fitness features, smart features, and battery. </p>        <div class="featured_product_block featured_block_versus" data-id="1df8a721-a22a-4452-9976-e8274076b86c">            <a href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV/" data-model-name="Fitbit Air" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:95.22%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/6rQV9bADzd2zqYvNPGPxwE.png" alt="Fitbit Air in berry"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                            <div class='featured__brand'>Fitbit</div>                    <div class="featured__title">Air</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>The Fitbit Air is a screen-free and distraction-free fitness tracker launched in 2026 for $99. Lightweight, comfortable, and long-lasting (battery life is good for up to a week), the Fitit Air is a competent fitness, health, and sleep tracker. However, it lacks onboard GPS, so you'll need to carry a smartphone for location data when working out outdoors. </p></p>                </div>                            </div>        </div>        <div class="featured_product_block featured_block_versus" data-id="1da96b6e-3a0e-4977-8b58-c86d2e6b4006">            <a href="https://www.amazon.com/Fitbit-Management-Intensity-Tracking-Midnight/dp/B0B5F9SZW7" data-model-name="Fitbit Inspire 3" data-model-brand="" ><div class='product-image-widthsetter'><p class='vanilla-image-block' data-bordeaux-image-check style='padding-top:95.22%';><img style="width: 100%" class="featured_image" src="https://cdn.mos.cms.futurecdn.net/wBB4ZfJMwwzqWzRfDKHY4d.jpg" alt="Fitbit Inspire 3"></p></div></a>            <div class="featured_product_details_wrapper">                <div class="featured_product_title_wrapper">                                                            <div class='featured__brand'>Fitbit</div>                    <div class="featured__title">Inspire 3</div>                                    </div>                <div class="subtitle__description">                                <div class="stars__reviews"><span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="chunk rating"><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star"> </span><span class="icon icon-star half"></span><meta itemprop="bestRating" content="100.0" /><meta itemprop="worstRating" content="0.0" /><meta itemprop="ratingValue" content="90" /></span></div>                                        <p><p>The Fitbit Inspire 3 may have debuted in 2022, but it's still one of my favorite fitness trackers and a near match for the newer Fitbit Air when it comes to fitness and holistic tracking chops. Smart features are limited, and it similarly lacks a GPS, but unlike the Air, the Inspire 3 boasts a small onboard display and can even mirror smartphone notifications. </p></p>                </div>                            </div>        </div><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-inspire-3-specs-compared"><span>Fitbit Air vs Fitbit Inspire 3: Specs compared</span></h3><div ><table><caption>Fitbit Air vs Fitbit Inspire 3</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Fitbit Inspire 3</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Price</strong></p></td><td  ><p>$99</p></td><td  ><p>$99</p></td></tr><tr><td class="firstcol " ><p><strong>Launch date</strong></p></td><td  ><p>May, 2026</p></td><td  ><p>Sept, 2022</p></td></tr><tr><td class="firstcol " ><p><strong>Compatibility </strong></p></td><td  ><p>Android, iOS</p></td><td  ><p>Android, iOS</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions</strong></p></td><td  ><p>34.9 x 17 x 8.9 mm</p></td><td  ><p>39.4 x 18.5 x 11.7 mm</p></td></tr><tr><td class="firstcol " ><p><strong>Weight w/ strap</strong></p></td><td  ><p>12 g</p></td><td  ><p>17.7 g</p></td></tr><tr><td class="firstcol " ><p><strong>Display </strong></p></td><td  ><p>n/a</p></td><td  ><p> 0.5-inch AMOLED</p></td></tr><tr><td class="firstcol " ><p><strong>Sensors</strong></p></td><td  ><p>Heart rate, SpO2, Skin temp, Accelerometer, Gyroscope</p></td><td  ><p>Heart rate, SpO2, Skin temp, Accelerometer, Gyroscope</p></td></tr><tr><td class="firstcol " ><p><strong>GPS</strong></p></td><td  ><p>No</p></td><td  ><p>No</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life</strong></p></td><td  ><p>Up to 7 days</p></td><td  ><p>Up to 10 days</p></td></tr><tr><td class="firstcol " ><p><strong>Water resistance </strong></p></td><td  ><p>50 meters</p></td><td  ><p>50 meters</p></td></tr></tbody></table></div><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-inspire-3-cost"><span>Fitbit Air vs Fitbit Inspire 3: Cost</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4805px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bFju7tvNftUTkppemXS2tT" name="Fitbit-Air-lead-05" alt="Close-up of the Fitbit Air on-wrist on a red strap against a blue background" src="https://cdn.mos.cms.futurecdn.net/bFju7tvNftUTkppemXS2tT.jpg" mos="" align="middle" fullscreen="" width="4805" height="2703" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air and Fitbit Inspire 3 each cost $99. However, the former is much newer and unlikely to see a discount anytime soon, while the latter goes on sale often for up to 30% off. </p><p>For example, as of writing, you can pick up the Inspire 3 for just <a href="https://www.amazon.com/Fitbit-Management-Intensity-Tracking-Midnight/dp/B0B5F9SZW7" target="_blank" rel="nofollow">$79 at Amazon.</a></p><p><em><strong>Winner: </strong></em><em>Fitbit Inspire 3 </em></p><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-inspire-3-design"><span>Fitbit Air vs Fitbit Inspire 3: design</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5150px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="ACasPG6gGJGN83nJ2M5yiD" name="FitbitAir-Inspire-03" alt="Close-up of the Fitbit Air next to the Fitbit Inspire 3" src="https://cdn.mos.cms.futurecdn.net/ACasPG6gGJGN83nJ2M5yiD.jpg" mos="" align="middle" fullscreen="" width="5150" height="2896" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Inspire 3 and Fitbit Air are both small, comfortable fitness trackers that don't garner much attention or get in the way of daily life. However, the newer Air is both smaller and lighter than the Inspire 3 and offers a wider selection of band materials.</p><p>Neither wearable has physical buttons, but the Inspire 3 offers two haptic buttons on either side and sports a small AMOLED touchscreen. Depending on your ability to read tiny text and the daintiness of your fingers, navigating the Inspire 3's controls is a hit-or-miss affair. </p><p>Ultimately, I prefer the simpler, less-distracting design of the Fitbit Air to the fiddly controls and comically small screen of the Inspire 3.</p><p><em><strong>Winner: </strong></em><em>Fitbit Air</em></p><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-inspire-3-customization"><span>Fitbit Air vs Fitbit Inspire 3: customization </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5459px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="ZbZb7oVskZ74qYjLHoJ2UN" name="FitbitAir-rev-03" alt="Close-up of the Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/ZbZb7oVskZ74qYjLHoJ2UN.jpg" mos="" align="middle" fullscreen="" width="5459" height="3071" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air is designed for maximum accessory customization. All of the tracking components and battery are contained within a small, pebble-like shell that can easily be popped out of one strap and swapped into another.</p><p>Google has a decent selection of accessory bands for the Fitbit Air available; I tried them all, and <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-tested-all-3-fitbit-air-accessory-bands-and-theres-a-clear-winner">there's a clear winner</a>. However, with a starting price of $34.99, I'm looking forward to more affordable third-party options popping up on Amazon and the likes, eventually. </p><p>The Fitbit Inspire 3 also supports band swapping, but removing and installing a band is a trickier process. That said, to my surprise, Google sells some pretty cool-looking <a href="https://store.google.com/us/product/fitbit_inspire_3_band_translucent" target="_blank" rel="nofollow">Inspire 3 bands </a>to replace the standard-issued ones.</p><p><em><strong>Winner: </strong></em><em>Fitbit Air</em></p><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-inspire-3-health-and-fitness"><span>Fitbit Air vs Fitbit Inspire 3: Health and fitness</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5353px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="VkLkWNHBhnVYjFjPbnwNVD" name="FitbitAir-Inspire-04" alt="Close-up of the Fitbit Air next to the Fitbit Inspire 3" src="https://cdn.mos.cms.futurecdn.net/VkLkWNHBhnVYjFjPbnwNVD.jpg" mos="" align="middle" fullscreen="" width="5353" height="3011" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Inspire 3 and Fitbit Air boast the same onboard tech, including sensors for tracking heart rate, blood oxygen saturation, movement and temperature. However, it's unclear whether the Air is using newer sensors or the same generation as the Inspire 3. </p><p>Either way, both devices keep tabs on your overall well-being, sleep quality, fitness, and women's health. However, neither sports an onboard GPS for location tracking data or an altimeter for elevation insights. </p><p>This means that you'll need to carry a paired smartphone along when working out to accurately capture metrics like distance, pace, speed, and elevation gain.  </p><p>You also get automatic workout tracking for a small selection of common exercises, regardless of which tracker you choose. Meanwhile, more nuanced activities can be manually selected. </p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-inspire-3-smart-features"><span>Fitbit Air vs Fitbit Inspire 3: Smart features</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3336px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="mNXSahwgqp3bezyap6J7SH" name="IMG_7170.jpg" alt="A photo of the sleep tracking on the Fitbit Inspire 3" src="https://cdn.mos.cms.futurecdn.net/mNXSahwgqp3bezyap6J7SH.jpg" mos="" align="middle" fullscreen="" width="3336" height="1876" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Neither of these fitness trackers offers much by way of smart features, but that's the point. Apps like Google Wallet and YouTube Music are reserved for the higher-end <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a>. You also won't find onboard storage for saving music on either. </p><p>The Inspire 3 <em>can</em> mirror smartphone notifications from Android or iOS devices on its tiny screen, but it's not a great user experience. Meanwhile, both wearables support Google's lovely <a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-only-has-one-smart-feature-and-its-totally-changed-the-way-i-start-my-day">Smart Wake</a> haptic alarm feature. And that's a wrap for smart features. </p><p><em><strong>Winner:</strong></em><em> Draw</em></p><h3 class="article-body__section" id="section-fitbit-air-vs-fitbit-inspire-3-battery-life"><span>Fitbit Air vs Fitbit Inspire 3: Battery life</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3606px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="jEK2CMjArSconc4xGujcpa" name="Fitbit-Inspire3-red" alt="Rear of the Fitbit Inspire 3 up-close on a red background; the new Fitbit Air could cost the same as the Inspire 3 ($99)" src="https://cdn.mos.cms.futurecdn.net/jEK2CMjArSconc4xGujcpa.jpg" mos="" align="middle" fullscreen="" width="3606" height="2028" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Battery life is impressive with any tracker you choose, but the Fitbit Inspire 3 lasts a little longer than the Air. In our testing, the Inspire 3 easily meets the ten-day-per-charge threshold, while the Air effortlessly matches the advertised seven days per charge. </p><p><em><strong>Winner:</strong></em><em> Fitbit Inspire 3 </em></p><h3 class="article-body__section" id="section-verdict"><span>Verdict</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5020px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mDuzwW4uiRspx4hCjNoWDJ" name="Fitbit-Air-lead-02" alt="Close-up of the sensors on the Fitbit Air fitness tracker on the special edition Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/mDuzwW4uiRspx4hCjNoWDJ.jpg" mos="" align="middle" fullscreen="" width="5020" height="2824" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia)</span></figcaption></figure><p>In terms of performance, wearability, and cost, the Fitbit Air and Fitbit Inspire 3 are extremely similar. What sets them apart largely boils down to design. Simply put, the Inspire 3 has a small screen for starting workouts, viewing stats, and receiving mirrored smartphone notifications, while the Air does not.</p><p>Personally, I prefer the Fitbit Air's set-it-and-forget-it approach to wellness tracking, with no annoying controls or tiny screens to deal with. I admit, starting a workout session from the Google Health app is a tad annoying, and the Air's <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review#section-fitbit-air-fitness-tracking-3-5">auto workout tracking</a> needs... work, but the overall user experience of the Air feels more refined than that of the Inspire 3. </p><p>Of course, at the end of the day, they both log the same health and fitness insights. </p><p><em><strong>Overall winner: </strong></em><em>Draw</em></p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-XYxboO"></div>                            </div>                            <script src="https://kwizly.com/embed/XYxboO.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing">The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-tested-all-3-fitbit-air-accessory-bands-and-theres-a-clear-winner">I tested all 3 Fitbit Air accessory bands — and there’s a clear winner</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-only-has-one-smart-feature-and-its-totally-changed-the-way-i-start-my-day">I've been using the Fitbit Air for over a week, and my favorite feature has completely changed the way I wake up</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I tested all 3 Fitbit Air accessory bands — and there’s a clear winner ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-tested-all-3-fitbit-air-accessory-bands-and-theres-a-clear-winner</link>
                                                                            <description>
                            <![CDATA[ I've been wearing the Fitbit Air for over a week and tested all three accessory bands, both while working out and hanging out. Here's how I rank them. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">tbLtLghoYpHZaVCCHkc9Ra</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/ZbZb7oVskZ74qYjLHoJ2UN-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 02 Jun 2026 11:00:00 +0000</pubDate>                                                                                                                                <updated>Tue, 02 Jun 2026 15:25:55 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/ZbZb7oVskZ74qYjLHoJ2UN-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Fitbit Air]]></media:description>                                                            <media:text><![CDATA[Close-up of the Fitbit Air]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Fitbit Air]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/ZbZb7oVskZ74qYjLHoJ2UN-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Which Fitbit Air band is best? I tried all three, and there’s a clear winner. </p><p>The screen-free and subscription-optional <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> is Google's answer to the <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop 5.0</a> fitness tracker, and one of the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html">best fitness trackers</a> in 2026. Starting at $99, users can select from three strap types —  though, more are in the works — including two woven options and one silicone.</p><p>I've been wearing the Fitbit Air for over a week and tested all three options, both while working out and hanging out. Here's how I rank them. </p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gMwOBe" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><div class="product"><a data-dimension112="1c98e836-a1a9-4fec-b0ef-55f22508488c" data-action="Deal Block" data-label="The Fitbit Air is a $99 tracker with no screens and no distractions. Promising a week of battery, reliable health and fitness logging, and a sleek, comfortable design, it's a great non-fuss wearable with lots of helpful holistic insights." data-dimension48="The Fitbit Air is a $99 tracker with no screens and no distractions. Promising a week of battery, reliable health and fitness logging, and a sleek, comfortable design, it's a great non-fuss wearable with lots of helpful holistic insights." data-dimension25="$99" href="https://www.bestbuy.com/product/google-fitbit-air-screenless-fitness-and-health-tracking-works-with-android-and-ios-lavender-2026/J39TC8CYPC" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:95.22%;"><img id="6rQV9bADzd2zqYvNPGPxwE" name="Screenshot 2026-05-28 at 12.55.35 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6rQV9bADzd2zqYvNPGPxwE.png" mos="" align="middle" fullscreen="" width="858" height="817" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Air is a $99 tracker with no screens and no distractions. Promising a week of battery, reliable health and fitness logging, and a sleek, comfortable design, it's a great non-fuss wearable with lots of helpful holistic insights. <a class="view-deal button" href="https://www.bestbuy.com/product/google-fitbit-air-screenless-fitness-and-health-tracking-works-with-android-and-ios-lavender-2026/J39TC8CYPC" target="_blank" rel="nofollow" data-dimension112="1c98e836-a1a9-4fec-b0ef-55f22508488c" data-action="Deal Block" data-label="The Fitbit Air is a $99 tracker with no screens and no distractions. Promising a week of battery, reliable health and fitness logging, and a sleek, comfortable design, it's a great non-fuss wearable with lots of helpful holistic insights." data-dimension48="The Fitbit Air is a $99 tracker with no screens and no distractions. Promising a week of battery, reliable health and fitness logging, and a sleek, comfortable design, it's a great non-fuss wearable with lots of helpful holistic insights." data-dimension25="$99">View Deal</a></p></div><h3 class="article-body__section" id="section-third-place-fitbit-active-band"><span>Third place: Fitbit Active Band</span></h3><ul><li><strong>Price: </strong>$34.99 or $99 with Fitbit Air</li><li><strong>Styles: </strong>Obsidian, Lavender, Berry, Fog</li><li><strong>Sizes: </strong>Small (130-175mm), Large (165-210mm)</li><li><strong>Material: </strong>Silicone</li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4805px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bFju7tvNftUTkppemXS2tT" name="Fitbit-Air-lead-05" alt="Close-up of the Fitbit Air on-wrist on a red strap against a blue background" src="https://cdn.mos.cms.futurecdn.net/bFju7tvNftUTkppemXS2tT.jpg" mos="" align="middle" fullscreen="" width="4805" height="2703" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>In third place, we have the silicone Fitbit Active Band, available in your choice of four colors, including Berry, shown here. This option is sold either kitted with the Fitbit Air for $99 or on its own for <a href="https://store.google.com/product/google_fitbit_air_active_band" target="_blank" rel="nofollow">$34.99 via Google</a> directly. </p><p>As far as rubbery/silicone straps go, this one is fairly soft on the skin; however, several factors detract from its appeal.</p><p>For starters, the Active Band is both thicker and less flexible than the woven strap options. It also secures to your wrist with a pin-and-buckle style system, so you can't make micro-adjustments for maximum comfort. That said, two sizes are available.</p><p>Finally, I'm not a fan of how silicone feels on my skin, in general, when I'm super sweaty. So, the Fitbit Active Band was never going to be my top choice. </p><h3 class="article-body__section" id="section-second-place-fitbit-performance-loop"><span>Second place: Fitbit Performance Loop</span></h3><ul><li><strong>Price: </strong>$34.99 or $99 with Fitbit Air</li><li><strong>Styles: </strong>Obsidian, Lavender, Berry, Fog</li><li><strong>Size: </strong>One size (130-210mm)</li><li><strong>Material: </strong>Woven polyester and elastane fabric, stainless steel buckle</li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3986px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="9ZrfpRB5krdJGJhqZGcMMg" name="IMG_8507" alt="a photo of the Whoop MG and Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/9ZrfpRB5krdJGJhqZGcMMg.jpg" mos="" align="middle" fullscreen="" width="3986" height="2242" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>In second place, we have the Fitbit Performance Loop, which comes in the same four color options as the Active Band above. It's also priced at <a href="https://store.google.com/product/google_fitbit_air_performance_loop_band" target="_blank" rel="nofollow">$34.99 from Google</a> à la carte, or $99 with the tracker.</p><p>The Performance Loop is a woven textile strap made from a mix of polyester and stretchy elastane, with a shiny, stainless steel buckle. Available in one size, velcro allows for infinite micro-adjustments. </p><p>Overall, I found this strap to be quite comfortable; it's seriously lightweight, flexible, and anything but thick. However, the woven material is a bit slick, so the Fitbit's sensors occasionally slide from their ideal position, atop the wrist, when working out or just getting sweaty. </p><p>Fortunately, my favorite Fitbit Air band solves this issue.</p><h3 class="article-body__section" id="section-first-place-fitbit-stephen-curry-loop"><span>First place: Fitbit Stephen Curry Loop </span></h3><ul><li><strong>Price: </strong>$129 with Fitbit Air</li><li><strong>Style: </strong>Orange and Rye</li><li><strong>Size: </strong>One size (130-210mm)</li><li><strong>Material: </strong>Woven polyester and elastane fabric w/ water resistant coating and silicone ribs, satin finish stainless steel buckle</li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5020px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mDuzwW4uiRspx4hCjNoWDJ" name="Fitbit-Air-lead-02" alt="Close-up of the sensors on the Fitbit Air fitness tracker on the special edition Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/mDuzwW4uiRspx4hCjNoWDJ.jpg" mos="" align="middle" fullscreen="" width="5020" height="2824" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia)</span></figcaption></figure><p>The Fitbit Air Stephen Curry Loop is hands down the best accessory band for the device from a comfort standpoint. I also think the black, orange, and rye woven pattern looks really sharp; colleagues and pals tend to agree.</p><p>Unfortunately, at this time, Google isn't selling the Stephen Curry band on its own. The only way to secure one is to purchase the special edition <a href="https://www.bestbuy.com/product/google-fitbit-air-screenless-fitness-and-health-tracking-works-with-android-and-ios-lavender-2026/J39TC8CYPC" target="_blank" rel="nofollow">Fitbit Air for $129.99</a>; fortunately, while it's 'special edition,' it's not 'limited edition.' </p><p>This band uses the same woven material as the standard Performance Loop; however, Steph's version is treated with a water-repellent coating to make it more quick drying. In my testing, it dries extremely fast, even after a proper soaking in the shower.</p><p>The underside of the Steph Curry Loop features raised silicone ribs running parallel to the length of the strap. These not only increase airflow but also help secure the Fitbit Air in place on your wrist during physical activities. </p><p>Ultimately, I think the Steph Curry strap is worth the extra $30 compared to the others. Now I just wish Google would offer it in additional styles and à la carte. Even if they're $40, I'd probably pick up another. Any more than that, and I'll wait for a sale.</p><p>Which Fitbit Air strap do you prefer? Let me know in the poll below.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eMVPrW"></div>                            </div>                            <script src="https://kwizly.com/embed/eMVPrW.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-only-has-one-smart-feature-and-its-totally-changed-the-way-i-start-my-day">I've been using the Fitbit Air for over a week, and my favorite feature has completely changed the way I wake up</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing">The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-the-new-fitbit-air-is-a-screen-less-subscription-free-fitness-tracker-for-the-masses">Forget the Whoop 5.0 — The new Fitbit Air is a screen-less, subscription-free fitness tracker for the masses</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I walked 4,500 steps with the Fitbit Air vs Apple Watch SE 3 — and I'm surprised by the winner ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-walked-4-500-steps-with-the-fitbit-air-vs-apple-watch-se-3-and-im-surprised-by-the-winner</link>
                                                                            <description>
                            <![CDATA[ Can the new $99 Fitbit Air compete with the $249 Apple Watch SE 3? To find out, I walked precisely 4,500 steps wearing both, and analyzed the results. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">KupxRX2ZjCf7aQAGSdDwsk</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/YVcdQrtyDuQoDUeaZKAmLi-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sun, 31 May 2026 10:00:00 +0000</pubDate>                                                                                                                                <updated>Tue, 07 Jul 2026 22:44:23 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/YVcdQrtyDuQoDUeaZKAmLi-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Apple Watch SE 3 and Fitbit Air in a user&#039;s hand against a bright, colorful background]]></media:description>                                                            <media:text><![CDATA[Close-up of the Apple Watch SE 3 and Fitbit Air in a user&#039;s hand against a bright, colorful background]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Apple Watch SE 3 and Fitbit Air in a user&#039;s hand against a bright, colorful background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/YVcdQrtyDuQoDUeaZKAmLi-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I tested the fitness tracking performance of the Apple Watch SE 3 vs the Fitbit Air while walking exactly 4,500 steps, and I'm surprised by the winner.</p><p>The <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-se-3-review">Apple Watch SE 3 </a>is Cupertino's latest entry-level, full-featured smartwatch and one of the <a href="https://www.tomsguide.com/us/best-cheap-smartwatches,review-6342.html#section-best-cheap-apple-watch">best cheap smartwatches</a> of 2026. The <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a>, meanwhile, is a brand-new, diminutive, screen-free wearable and one of the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html">best fitness trackers</a> available right now. </p><p>Both devices track tons of workout types and deliver similarly detailed post-effort insights, but which one is more reliable? To find out, I walked 4,5000 steps while wearing the Apple Watch SE 3 on my left wrist and the Fitbit Air on my right. As a primary control for tracking accuracy, I manually counted my steps, noting every hundred taken with a click of my trusty tally counter.</p><p>I also logged my efforts using the Strava app on my iPhone 16 Plus as a control for distance, pace, and climb data. So, which wearable came out on top, the Fitbit Air or the Apple Watch SE 3? Read on.</p><div class="product"><a data-dimension112="6666762c-7a55-11f1-983d-f7d770b22802" data-action="Deal Block" data-label="The Fitbit Air is an easy-wearing, screen and distraction-free set-it-and-forget-it fitness tracker that costs just $99 and is big on health, sleep, and workout insights." data-dimension48="The Fitbit Air is an easy-wearing, screen and distraction-free set-it-and-forget-it fitness tracker that costs just $99 and is big on health, sleep, and workout insights." data-dimension25="$99" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:95.22%;"><img id="6rQV9bADzd2zqYvNPGPxwE" name="Screenshot 2026-05-28 at 12.55.35 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6rQV9bADzd2zqYvNPGPxwE.png" mos="" align="middle" fullscreen="" width="858" height="817" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Air is an easy-wearing, screen and distraction-free set-it-and-forget-it fitness tracker that costs just $99 and is big on health, sleep, and workout insights. <a class="view-deal button" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow" data-dimension112="6666762c-7a55-11f1-983d-f7d770b22802" data-action="Deal Block" data-label="The Fitbit Air is an easy-wearing, screen and distraction-free set-it-and-forget-it fitness tracker that costs just $99 and is big on health, sleep, and workout insights." data-dimension48="The Fitbit Air is an easy-wearing, screen and distraction-free set-it-and-forget-it fitness tracker that costs just $99 and is big on health, sleep, and workout insights." data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="66667690-7a55-11f1-b29a-41d69a115788" data-action="Deal Block" data-label="Apple's entry-level smartwatch offers nearly all the same features as its pricier siblings, for a whole lot less coin. Boasting a lovely AMOLED screen, reliable holistic insights, and support for virtually a zillion smart features and apps, it's my favorite cheap smartwatch of 2026." data-dimension48="Apple's entry-level smartwatch offers nearly all the same features as its pricier siblings, for a whole lot less coin. Boasting a lovely AMOLED screen, reliable holistic insights, and support for virtually a zillion smart features and apps, it's my favorite cheap smartwatch of 2026." data-dimension25="$239" href="https://www.amazon.com/Apple-Smartwatch-Midnight-Aluminum-Always/dp/B0FQFW7M9H/ref=sr_1_1_sspa" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1273px;"><p class="vanilla-image-block" style="padding-top:117.83%;"><img id="2bCWceQAvz6EQqKG8LB4ee" name="Apple Watch SE 3 sq" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2bCWceQAvz6EQqKG8LB4ee.png" mos="" align="middle" fullscreen="" width="1273" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>Apple's entry-level smartwatch offers nearly all the same features as its pricier siblings, for a whole lot less coin. Boasting a lovely AMOLED screen, reliable holistic insights, and support for virtually a zillion smart features and apps, it's my favorite cheap smartwatch of 2026.<a class="view-deal button" href="https://www.amazon.com/Apple-Smartwatch-Midnight-Aluminum-Always/dp/B0FQFW7M9H/ref=sr_1_1_sspa" target="_blank" rel="nofollow" data-dimension112="66667690-7a55-11f1-b29a-41d69a115788" data-action="Deal Block" data-label="Apple's entry-level smartwatch offers nearly all the same features as its pricier siblings, for a whole lot less coin. Boasting a lovely AMOLED screen, reliable holistic insights, and support for virtually a zillion smart features and apps, it's my favorite cheap smartwatch of 2026." data-dimension48="Apple's entry-level smartwatch offers nearly all the same features as its pricier siblings, for a whole lot less coin. Boasting a lovely AMOLED screen, reliable holistic insights, and support for virtually a zillion smart features and apps, it's my favorite cheap smartwatch of 2026." data-dimension25="$239">View Deal</a></p></div><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/LCKJ8K4sdXk" allowfullscreen></iframe></div></div><h3 class="article-body__section" id="section-fitbit-air-vs-apple-watch-se-3-fitness-tracking-accuracy-compared"><span>Fitbit Air vs Apple Watch SE 3: fitness tracking accuracy compared</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5712px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="xn3fPVemZegbKeK8ruNc7W" name="SE3-v-Air-05" alt="Close-up of the Apple Watch SE 3 and Fitbit Air in a user's hand against a colorful, vibrant background" src="https://cdn.mos.cms.futurecdn.net/xn3fPVemZegbKeK8ruNc7W.jpg" mos="" align="middle" fullscreen="" width="5712" height="3214" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Before jumping into the results, it's worth noting some of the primary differences between these two popular wearables. For starters, the screen-less Fitbit Air is designed to be a distraction-free tracker with no notifications or smart features (<a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-only-has-one-smart-feature-and-its-totally-changed-the-way-i-start-my-day">except just one</a>).</p><p>On the other hand, the Apple Watch SE 3 is essentially the opposite: an ultra-connected smartwatch that does much more, in terms of smart features, than just track health and fitness stats. The SE 3 is also considerably pricier than the Air, starting at $249 compared to $99 for the latest Fitbit.</p><p>Finally, the Apple Watch SE 3 sports onboard GPS for location tracking without a paired smartphone; the Fitbit Air does not. That said, when you do carry your smartphone while logging an outdoor workout with the Air, fitness tracking <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review#section-fitbit-air-fitness-tracking-3-5">performance is excellent</a>. </p><p>Now, on to the test results!</p><h3 class="article-body__section" id="section-fitbit-air-vs-apple-watch-se-3-walk-test-results"><span>Fitbit Air vs Apple Watch SE 3: Walk test results </span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Apple Watch SE 3</p></th><th  ><p>Control</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Steps</p></td><td  ><p>4,488 steps</p></td><td  ><p> 4,463 steps</p></td><td  ><p>4,500 steps (manual count)</p></td></tr><tr><td class="firstcol " ><p>Distance</p></td><td  ><p>2.41 miles</p></td><td  ><p>2.37 miles</p></td><td  ><p>2.40 miles (Strava)</p></td></tr><tr><td class="firstcol " ><p>Climb</p></td><td  ><p>199 feet</p></td><td  ><p>289 feet</p></td><td  ><p>277 feet (Strava)</p></td></tr><tr><td class="firstcol " ><p>Average pace (elapsed) </p></td><td  ><p>17 mins 24 secs</p></td><td  ><p>17 mins 07 secs</p></td><td  ><p>16 mins 50 secs (Strava)</p></td></tr><tr><td class="firstcol " ><p>Average heart rate</p></td><td  ><p>122 bpm</p></td><td  ><p>135 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Max heart rate</p></td><td  ><p>160 bpm</p></td><td  ><p>167 bpm</p></td><td  ><p>n/a</p></td></tr></tbody></table></div><p>I logged exactly 4,500 steps (manual count) during my roughly 40-minute walk around a gloomy Seattle, Washington, including a climb up the <a href="https://www.tomsguide.com/home/electric-bikes/i-tried-to-ride-treks-new-ebike-up-the-steepest-hill-in-seattle-and-it-didnt-go-as-planned">city's steepest hill</a>. And much to my delight, both wearables logged similar step counts that fall well within a reasonable margin of error; ultimately, any tally within 100 steps of my actual count is considered an impressive outcome. </p><p>However, while the Apple Watch SE 3 is just 37 steps of my actual total, the Fitbit Air is off by just 12 steps. Strava, meanwhile, bested them both, logging 4,502 steps. </p><p>Distance data is similarly enough across the board, with Fitbit Air proving slightly more in line with the control data.  However, the Air's climb data leaves a lot to be desired. The SE 3, in contrast, noted just a bit more uphill effort than Strava. </p><p>Thanks to the gloom, I encountered little traffic, which meant that I didn't stop moving at any point during this walk. As a result, I expected my average pace to be pretty similar across the board, which it is. However, Apple's pace calculation is closer to the control than Fitbit's.</p><p>Similar to my prior walk test with the <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-000-steps-with-the-fitbit-air-vs-garmin-forerunner-70-and-im-seriously-amazed-by-the-results">Fitbit Air vs Garmin Forerunner 70</a>, the former's heart rate data is noticeably lower than the competition's. This is a somewhat odd result, given that the Fitbit Air's heart rate tracking performed admirably time and again during testing for the review, regardless of which wrist I wore it on.</p><p>One possible theory for the discrepancies: I didn't wear the Air tightly enough during my last two walk tests. </p><h3 class="article-body__section" id="section-fitbit-air-vs-apple-watch-se-3-winner"><span>Fitbit Air vs Apple Watch SE 3: Winner </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4805px;"><p class="vanilla-image-block" style="padding-top:50.01%;"><img id="wNxwSP3oTrgcw3KuNCjzw" name="Fitbit-Air-lead-05-header" alt="Close-up of the Fitbit Air on-wrist on a red strap against a blue background" src="https://cdn.mos.cms.futurecdn.net/wNxwSP3oTrgcw3KuNCjzw.jpg" mos="" align="middle" fullscreen="" width="4805" height="2403" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Despite the Apple Watch SE 3 costing 2.5x the Fitbit Air, Google's humble, screen-less fitness tracker wins this showdown. However, the SE 3 performed nearly as well when it comes to step count and was more accurate across the board for other key metrics. </p><p>Which fitness trackers, smartwatches, smart rings, etc. would you like me to test head-to-head next? Let me know in the comments below. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eAxA4X"></div>                            </div>                            <script src="https://kwizly.com/embed/eAxA4X.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-000-steps-with-the-fitbit-air-vs-garmin-forerunner-70-and-im-seriously-amazed-by-the-results">I walked 3,000 steps with the Fitbit Air vs Garmin Forerunner 70 — and I’m seriously amazed by the results</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing">The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing</a></li><li><a href="https://www.tomsguide.com/wellness/fitness/i-spent-one-week-with-a-wallet-friendly-garmin-forerunner-970-dupe-5-things-that-stand-out-about-the-usd300-cheaper-amazfit-cheetah-2-pro">I spent one week with a wallet-friendly Garmin Forerunner 970 dupe —  5 things that stand out about the $300 cheaper Amazfit Cheetah 2 Pro</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I've been using the Fitbit Air for over a week, and my favorite feature has completely changed the way I wake up ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-only-has-one-smart-feature-and-its-totally-changed-the-way-i-start-my-day</link>
                                                                            <description>
                            <![CDATA[ I just spent over a week reviewing the new screen-free, $99 Fitbit Air fitness tracker, and this simple, yet brilliant feature is my favorite. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">HW9uKHG8QFuJ8XY3pi8N8E</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/mDuzwW4uiRspx4hCjNoWDJ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 29 May 2026 06:30:00 +0000</pubDate>                                                                                                                                <updated>Sat, 30 May 2026 00:09:32 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/mDuzwW4uiRspx4hCjNoWDJ-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the sensors on the Fitbit Air fitness tracker on the special edition Stephen Curry strap]]></media:description>                                                            <media:text><![CDATA[Close-up of the sensors on the Fitbit Air fitness tracker on the special edition Stephen Curry strap]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the sensors on the Fitbit Air fitness tracker on the special edition Stephen Curry strap]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/mDuzwW4uiRspx4hCjNoWDJ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> is one of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness trackers</a> in 2026, especially if you prefer a screenless and distraction-free wearable with long-lasting battery and rock-solid reliability. </p><p>Priced at $99, with all major health, sleep, and fitness metrics available subscription-free, the Fitbit Air is also the best budget-friendly Whoop alternative, and my favorite fitness tracker of 2026 so far.</p><p>With no screen, buttons, NFC, or mirrored smartphone notifications to distract you, the Fitbit Air offers just one feature I’d consider to be truly ‘smart.’ More importantly, this feature has totally changed the way I start my day. </p><h3 class="article-body__section" id="section-no-smart-alerts-or-distractions-except-this-one"><span>No smart alerts or distractions… except this one</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4805px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="bFju7tvNftUTkppemXS2tT" name="Fitbit-Air-lead-05" alt="Close-up of the Fitbit Air on-wrist on a red strap against a blue background" src="https://cdn.mos.cms.futurecdn.net/bFju7tvNftUTkppemXS2tT.jpg" mos="" align="middle" fullscreen="" width="4805" height="2703" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>In theory, the Fitbit Air <em>could</em> alert you to an incoming phone call, text message, or any other notification. However, by design, the onboard haptic motor is only capable of vibrating when you set an alarm from the sleep tab in the Google Health app (formerly the <a href="https://www.tomsguide.com/wellness/fitness/the-fitbit-app-is-officially-dead-but-dont-panic-its-replacement-is-even-better">Fitbit app</a>). </p><p>This is by no means a new or groundbreaking feature for wearables in 2026; plenty of the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html">best Fitbits</a> and many of the <a href="https://www.tomsguide.com/wellness/smartwatches/best-smartwatch">best smartwatch</a> models offer something similar. However, I’m a little surprised but genuinely pleased that Google included hatpic feedback with the brand’s latest Fitbit. </p><p>Users can save up to eight alarms total. When one goes off, the tracker gently vibrates for roughly 30 seconds before going into snooze mode. This delays the alarm for exactly nine minutes (and can’t be changed) before it goes off again.</p><p>Not only is this a lovely, non-startling way to wake up — and one I’ve fully adopted — but unlike a standard audible alarm, the Fitbit Air alarm doesn’t wake my sleeping partner, or even my dog, Belverdere. </p><p>To silence the Fitbit Air’s haptic alarm, firmly double-tap the top of the tracker. From my experience, this works the first time, roughly 90% of the time. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4114px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="m3zAnMrGySMYrDxq46JKLY" name="Fitbit-Air-lead-03" alt="Close-up of the sensors on the Fitbit Air screenless fitness tracker" src="https://cdn.mos.cms.futurecdn.net/m3zAnMrGySMYrDxq46JKLY.jpg" mos="" align="middle" fullscreen="" width="4114" height="2315" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><h3 class="article-body__section" id="section-the-brilliance-of-smart-wake"><span>The brilliance of ‘Smart Wake’</span></h3><p>In addition to a haptic alarm, the Fitbit Air also supports Google’s ‘Smart Wake’ feature, which, when activated, prioritizes waking you during your optimal sleep stage, i.e., when you’re not in deep sleep or REM. </p><p>When switched on, Smart Wake will wake you up to 30 minutes before your actual alarm, but never after. </p><h3 class="article-body__section" id="section-some-room-for-improvement"><span>Some room for improvement </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4923px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v4R3RdVkt2tearzZXDp52N" name="FitbitAir-rev-07" alt="Close-up of the Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/v4R3RdVkt2tearzZXDp52N.jpg" mos="" align="middle" fullscreen="" width="4923" height="2769" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>It’s worth noting that I’m a reasonably light sleeper, and even though the level of vibration offered by the Fitbit Air’s alarm is more than enough to get my eyes open, it may not be enough to awaken more hardcore snoozers.</p><p>My suggested solution for Google: Add a new function that lets users adjust how much the Air vibrates when the alarm goes off, with three levels to select from. </p><p>Have you ever tried waking up via haptics on a fitness tracker or smartwatch? What was your experience? Let me know in the comments below. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/garmins-screen-less-whoop-competitor-could-cost-five-times-as-much-as-the-fitbit-air"><strong>Garmin’s screen-less Whoop competitor could cost five times as much as the Fitbit Air</strong></a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing"><strong>The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing</strong></a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-the-new-fitbit-air-is-a-screen-less-subscription-free-fitness-tracker-for-the-masses"><strong>Forget the Whoop 5.0 — The new Fitbit Air is a screen-less, subscription-free fitness tracker for the masses</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I walked 3,000 steps with the Fitbit Air vs Garmin Forerunner 70 — and I’m seriously amazed by the results ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-walked-3-000-steps-with-the-fitbit-air-vs-garmin-forerunner-70-and-im-seriously-amazed-by-the-results</link>
                                                                            <description>
                            <![CDATA[ Can the $99 Fitbit compete with the $249 Forerunner 70? I decided to find out by wearing both while walking exactly 3,000 steps and comparing the results. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">JUuVPu6ZGkSekeKWEhpPTD</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/uzqVqau5gm5cPhz9DYttUR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 28 May 2026 05:30:00 +0000</pubDate>                                                                                                                                <updated>Thu, 28 May 2026 20:00:52 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/uzqVqau5gm5cPhz9DYttUR-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Garmin Forerunner 70 next to the Fitbit Air fitness tracker on the same wrist]]></media:description>                                                            <media:text><![CDATA[Close-up of the Garmin Forerunner 70 next to the Fitbit Air fitness tracker on the same wrist]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Garmin Forerunner 70 next to the Fitbit Air fitness tracker on the same wrist]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/uzqVqau5gm5cPhz9DYttUR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I tested the fitness tracking performance of the new Fitbit Air versus the (also) new Garmin Forerunner 70, and was seriously amazed by the results. </p><p>The <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air</a> is a screen-less, wallet-friendly alternative to the Whoop 5.0, while the <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-took-my-first-jog-with-garmins-new-entry-level-running-watch-5-things-to-know-about-the-forerunner-70">Garmin Forerunner 70</a> is the brand’s latest entry-level running watch, replacing the beloved but aging <a href="https://www.tomsguide.com/reviews/garmin-forerunner-55">Forerunner 55</a>.</p><p>To find out which of these 2026 wearables is the more accurate fitness tracker, I walked 3,000 steps with the Garmin on my left wrist and the Fitbit on my right. As a primary control for this head-to-head, I manually counted my steps (with some help from my trusty, old-school <a href="https://www.amazon.com/SDARMING-Counters-Counting-Knitting-Coaching/dp/B0971CF137/" target="_blank" rel="nofollow">tally counter</a>). Additionally, I logged my walk using the Strava app on an iPhone 16 Plus. </p><div class="product"><a data-dimension112="ec9f2724-77ae-47ed-ac0f-a3e915ff831b" data-action="Deal Block" data-label="The Fitbit Air is a tiny, lightweight, and screen-free fitness tracker with seven days of battery, detailed sleep insights, and reliable workout-tracking chops. It's also the brand's first new Fitbit in nearly three years, and my favorite tracker of 2026." data-dimension48="The Fitbit Air is a tiny, lightweight, and screen-free fitness tracker with seven days of battery, detailed sleep insights, and reliable workout-tracking chops. It's also the brand's first new Fitbit in nearly three years, and my favorite tracker of 2026." data-dimension25="$99" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:858px;"><p class="vanilla-image-block" style="padding-top:95.22%;"><img id="6rQV9bADzd2zqYvNPGPxwE" name="Screenshot 2026-05-28 at 12.55.35 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6rQV9bADzd2zqYvNPGPxwE.png" mos="" align="middle" fullscreen="" width="858" height="817" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Air is a tiny, lightweight, and screen-free fitness tracker with seven days of battery, detailed sleep insights, and reliable workout-tracking chops. It's also the brand's first new Fitbit in nearly three years, and my favorite tracker of 2026.<a class="view-deal button" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow" data-dimension112="ec9f2724-77ae-47ed-ac0f-a3e915ff831b" data-action="Deal Block" data-label="The Fitbit Air is a tiny, lightweight, and screen-free fitness tracker with seven days of battery, detailed sleep insights, and reliable workout-tracking chops. It's also the brand's first new Fitbit in nearly three years, and my favorite tracker of 2026." data-dimension48="The Fitbit Air is a tiny, lightweight, and screen-free fitness tracker with seven days of battery, detailed sleep insights, and reliable workout-tracking chops. It's also the brand's first new Fitbit in nearly three years, and my favorite tracker of 2026." data-dimension25="$99">View Deal</a></p></div><div class="product"><a data-dimension112="1c6fe19d-d223-4d3f-a7ba-785952d4421b" data-action="Deal Block" data-label="The Forerunner 70 is Garmin's latest entry-level running watch, replacing the ancient Forerunner 55. It boasts a bright AMOLED screen, a lightweight and durable case, accurate GPS tracking, and tons of training tools and insights for runners." data-dimension48="The Forerunner 70 is Garmin's latest entry-level running watch, replacing the ancient Forerunner 55. It boasts a bright AMOLED screen, a lightweight and durable case, accurate GPS tracking, and tons of training tools and insights for runners." data-dimension25="$249" href="https://www.amazon.com/Garmin-Forerunner%C2%AE-Smartwatch-Advanced-Training/dp/B0H1F7T6G9/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1042px;"><p class="vanilla-image-block" style="padding-top:103.45%;"><img id="JxZy6K7r5Qf8aMgGg2NDqQ" name="Screenshot 2026-05-19 at 2.33.47 PM" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/JxZy6K7r5Qf8aMgGg2NDqQ.png" mos="" align="middle" fullscreen="" width="1042" height="1078" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Forerunner 70 is Garmin's latest entry-level running watch, replacing the ancient Forerunner 55. It boasts a bright AMOLED screen, a lightweight and durable case, accurate GPS tracking, and tons of training tools and insights for runners. <a class="view-deal button" href="https://www.amazon.com/Garmin-Forerunner%C2%AE-Smartwatch-Advanced-Training/dp/B0H1F7T6G9/" target="_blank" rel="nofollow" data-dimension112="1c6fe19d-d223-4d3f-a7ba-785952d4421b" data-action="Deal Block" data-label="The Forerunner 70 is Garmin's latest entry-level running watch, replacing the ancient Forerunner 55. It boasts a bright AMOLED screen, a lightweight and durable case, accurate GPS tracking, and tons of training tools and insights for runners." data-dimension48="The Forerunner 70 is Garmin's latest entry-level running watch, replacing the ancient Forerunner 55. It boasts a bright AMOLED screen, a lightweight and durable case, accurate GPS tracking, and tons of training tools and insights for runners." data-dimension25="$249">View Deal</a></p></div><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/LCKJ8K4sdXk" allowfullscreen></iframe></div></div><h3 class="article-body__section" id="section-fitbit-air-vs-garmin-forerunner-70-fitness-tracking-accuracy-compared"><span>Fitbit Air vs Garmin Forerunner 70: fitness tracking accuracy compared</span></h3><p>Before diving into the results, it’s worth noting some key differences between these two devices. For one, the Garmin Forerunner 70 is <a href="https://www.amazon.com/Garmin-Forerunner%C2%AE-Smartwatch-Advanced-Training/dp/B0H1F9VT52/" target="_blank" rel="nofollow">$250 on Amazon</a> and other major retailers, which is more than twice the cost of the <a href="https://www.amazon.com/gp/aw/d/B0GTMTZF3V/">$99 Fitbit Air</a>. </p><p>Both wearables offer their primary health and fitness tracking features without a subscription. Want personalized insights, trend reports, workout recommendations, and more? <a href="https://www.tomsguide.com/wellness/fitness/the-fitbit-app-is-officially-dead-but-dont-panic-its-replacement-is-even-better">Google Health Premium</a> for the Fitbit Air is $9.99 a month or $99 for the year, while <a href="https://www.tomsguide.com/wellness/smartwatches/i-tried-garmin-connect-for-a-week-heres-3-things-i-like-and-3-i-dislike">Garmin Connect+</a> is $6.99 a month or $69.99 annually. </p><p>The other notable difference is that the Garmin Forerunner 70 sports an onboard GPS while the Fitbit Air doesn’t. This means you'll need to carry your smartphone for location and elevation data when tracking an outdoor workout with the Air, something that isn’t the case for the Forerunner 70.</p><p>Now, on to the test results!</p><h3 class="article-body__section" id="section-fitbit-air-vs-garmin-forerunner-70-walk-test-results"><span>Fitbit Air vs Garmin Forerunner 70: Walk test results </span></h3><div ><table><caption>3,000-step walk comparison vs Garmin vs Strava</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Forerunner 70</p></th><th  ><p>Control</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Steps</p></td><td  ><p>3,004 steps</p></td><td  ><p>2.996 steps</p></td><td  ><p>3,000 steps (manual count)</p></td></tr><tr><td class="firstcol " ><p>Distance</p></td><td  ><p>1.61 miles</p></td><td  ><p>1.57 miles</p></td><td  ><p>1.60 miles (Strava)</p></td></tr><tr><td class="firstcol " ><p>Climb</p></td><td  ><p>165 feet</p></td><td  ><p>154 feet</p></td><td  ><p>176 feet (Strava)</p></td></tr><tr><td class="firstcol " ><p>Average pace (elapsed) </p></td><td  ><p>18 mins 31 secs</p></td><td  ><p>17 mins 48 secs</p></td><td  ><p>18 mins 21 secs (Strava)</p></td></tr><tr><td class="firstcol " ><p>Average heart rate</p></td><td  ><p>116 bpm</p></td><td  ><p>125 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Max heart rate</p></td><td  ><p>161 bpm</p></td><td  ><p>163 bpm</p></td><td  ><p>n/a</p></td></tr></tbody></table></div><p>Any step count total within one hundred steps of my actual tally is considered a fantastic result by TG walk test standards. For this head-to-head, the Fitbit Air and Garmin Forerunner 70 were both within just five steps of the actual tally, a seriously amazing outcome. Strava, meanwhile, logged 3,006 total steps taken.</p><p>Distance data also lines up nicely across the board, with Fitbit's tally being just a tad closer to the control. The Fitbit Air also delivered a more accurate elevation gain total than the Garmin Forerunner 70, which notably lacks a barometric altimeter for tracking climb data (the Air piggyback's off your phone's altimeter just like it does for GPS).</p><p>While Strava and Garmin each provide moving and elapsed pace metrics, the Fitbit Air only offers one, and doesn't specify which it is (my money is on the latter). The figures above reflect Garmin and Strava's elapsed pace. For moving pace, Strava noted 17 mins 15 secs per mile, while Garmin logged 17 mins 35 secs. </p><p>Fitbit's average heart rate metric is quite a bit lower than Garmin's — the Fitbit was on my right wrist and the Garmin on my left, which could be a factor — but both wearables recorded roughly the same max heart rate for the walk, which notably included some extra-steep terrain to get my blood pumping. </p><h3 class="article-body__section" id="section-fitbit-air-vs-garmin-forerunner-70-winner"><span>Fitbit Air vs Garmin Forerunner 70: Winner </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3706px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="eNA2i2htvrPTQUDfXX7WNR" name="F70-v-FitbitAir-02" alt="Close-up of the Garmin Forerunner 70 next to the Fitbit Air fitness tracker on the same wrist" src="https://cdn.mos.cms.futurecdn.net/eNA2i2htvrPTQUDfXX7WNR.jpg" mos="" align="middle" fullscreen="" width="3706" height="2085" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>And the winner is... both wearables! This one is a tie, as both the Air and Forerunner 70 were within four steps of my actual count. </p><p>Ultimately, the Fitbit Air is one of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness trackers</a> you can buy in 2026, and while I'm still reviewing the Garmin Forerunner 70, there's a solid shot it's destined for our <a href="https://www.tomsguide.com/best-picks/best-garmin-watch">best Garmin watch</a> guide as well. </p><p>This is to say, top-notch performance is not only what I hoped for from these two modern wearables, but also what I expected. And both delivered with flying colors. </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-OqvznX"></div>                            </div>                            <script src="https://kwizly.com/embed/OqvznX.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/garmin-just-added-whatsapp-support-to-a-huge-number-of-watches-heres-how-to-unlock-it">Garmin just added WhatsApp support to a huge number of watches — here’s how to unlock it</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing">The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing</a></li><li><a href="https://www.tomsguide.com/wellness/fitness/i-spent-one-week-with-a-wallet-friendly-garmin-forerunner-970-dupe-5-things-that-stand-out-about-the-usd300-cheaper-amazfit-cheetah-2-pro">I spent one week with a wallet-friendly Garmin Forerunner 970 dupe —  5 things that stand out about the $300 cheaper Amazfit Cheetah 2 Pro</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’ve been testing the new Fitbit Air, and it’s changed the way I track my sleep — 5 reasons I recommend Google’s $99 tracker, and 2 reasons I don’t  ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/ive-been-testing-the-new-fitbit-air-and-its-changed-the-way-i-track-my-sleep-5-reasons-i-recommend-googles-usd99-tracker-and-2-reasons-i-dont</link>
                                                                            <description>
                            <![CDATA[ The Fitbit Air has a ton going for it, including an affordable price, but these two major factors might be dealbreakers for you. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">HxyDsDnC6fhRLMyCGU6jMH</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/v4R3RdVkt2tearzZXDp52N-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 27 May 2026 05:31:42 +0000</pubDate>                                                                                                                                <updated>Wed, 27 May 2026 12:54:36 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/v4R3RdVkt2tearzZXDp52N-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Fitbit Air]]></media:description>                                                            <media:text><![CDATA[Close-up of the Fitbit Air]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Fitbit Air]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/v4R3RdVkt2tearzZXDp52N-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I just <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">reviewed the Fitbit Air</a>, and it’s safe to say that it’s destined for our <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness tracker</a> buying guide. But, is it the best fitness tracker for you?</p><p>That depends on factors like your holistic and fitness monitoring needs, budget, and desire for smart features. With that in mind, here are five reasons to buy the Fitbit Air and two reasons to skip it. </p><h3 class="article-body__section" id="section-buy-the-price-it-s-cheap"><span>Buy: The price (it’s cheap)</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5459px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="ZbZb7oVskZ74qYjLHoJ2UN" name="FitbitAir-rev-03" alt="Close-up of the Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/ZbZb7oVskZ74qYjLHoJ2UN.jpg" mos="" align="middle" fullscreen="" width="5459" height="3071" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-the-new-fitbit-air-is-a-screen-less-subscription-free-fitness-tracker-for-the-masses">Fitbit Air</a> is just $99 with no subscription costs for core health and fitness tracking insights. However, a Google Health Premium subscription for $99 a year or $9.99 a month unlocks all sorts of heady AI-backed holistic tools and trend deep dives. </p><p>Not a subscription person? Google includes three months of Google Health Premium free with your purchase, so that you can try those premium features first before making a commitment. </p><div class="product"><a data-dimension112="ad034099-8c1e-423b-925e-561c0c8e0c3d" data-action="Deal Block" data-label="The Fitbit Air is a $99, subscription-free fitness tracker with no screen or smart notifications, but plenty of battery, health and fitness insights, and a super comfortable design." data-dimension48="The Fitbit Air is a $99, subscription-free fitness tracker with no screen or smart notifications, but plenty of battery, health and fitness insights, and a super comfortable design." data-dimension25="$99" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1075px;"><p class="vanilla-image-block" style="padding-top:128.37%;"><img id="GiUfYfk8cH5PUmkAM3abAo" name="Google Fitbit Air deal block" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/GiUfYfk8cH5PUmkAM3abAo.jpg" mos="" align="middle" fullscreen="" width="1075" height="1380" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Air is a $99, subscription-free fitness tracker with no screen or smart notifications, but plenty of battery, health and fitness insights, and a super comfortable design. <a class="view-deal button" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV" target="_blank" rel="nofollow" data-dimension112="ad034099-8c1e-423b-925e-561c0c8e0c3d" data-action="Deal Block" data-label="The Fitbit Air is a $99, subscription-free fitness tracker with no screen or smart notifications, but plenty of battery, health and fitness insights, and a super comfortable design." data-dimension48="The Fitbit Air is a $99, subscription-free fitness tracker with no screen or smart notifications, but plenty of battery, health and fitness insights, and a super comfortable design." data-dimension25="$99">View Deal</a></p></div><h3 class="article-body__section" id="section-buy-all-day-comfort"><span>Buy: All-day comfort</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4531px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="BBBTQpnYGPTfEqiPa6DRxM" name="FitbitAir-rev-06" alt="Close-up of the Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/BBBTQpnYGPTfEqiPa6DRxM.jpg" mos="" align="middle" fullscreen="" width="4531" height="2549" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air is the smallest and lightest screen-free fitness tracker of its kind, with a footprint that’s 35 x 17 x 8 mm and a weight of only 5.2 g without the strap. By comparison, the <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop 5.0</a> weighs a wrist-crunching 26.5 g.</p><p>The straps for the Fitbit Air are also noticeably slimmer than the competition’s offerings, making the Air one of the comfiest trackers I’ve tested, particularly on the special edition Stephen Curry knit strap. </p><p>This also makes the Air an excellent choice for sleep tracking insights, especially if you’re like me and seriously loathe anything bulky on the wrist while snoozing. </p><h3 class="article-body__section" id="section-buy-accurate-health-and-fitness-insights"><span>Buy: Accurate health and fitness insights </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5020px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mDuzwW4uiRspx4hCjNoWDJ" name="Fitbit-Air-lead-02" alt="Close-up of the sensors on the Fitbit Air fitness tracker on the special edition Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/mDuzwW4uiRspx4hCjNoWDJ.jpg" mos="" align="middle" fullscreen="" width="5020" height="2824" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia)</span></figcaption></figure><p>I tested the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review#section-fitbit-air-fitness-tracking-3-5">Fitbit Air’s tracking performance</a> against the <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-took-my-first-jog-with-garmins-new-entry-level-running-watch-5-things-to-know-about-the-forerunner-70">Garmin Forerunner 70,</a> a $250 entry-leving running watch, and the Strava app, my go-to for logging any outdoor workout. </p><p>After comparing the data from a 3,000-step walk and a 1.5-mile run, the results proved decisive: the Fitbit Air is as competent and reliable a wearable for measuring heart rate and metrics like speed, pace, and distance during outdoor workouts as the far pricier Garmin. </p><h3 class="article-body__section" id="section-buy-distraction-free-tracking"><span>Buy: Distraction-free tracking</span></h3><p>One of the biggest selling points of the Fitbit Air is what it doesn’t have: there’s no screen, no buttons, no mirrored smartphone notifications, and basically, no distractions to slow you down. </p><p>The device does have a built-in haptic motor that can be used to gently and silently wake you using the Fitbit’s Smart Alarm, but that’s essentially it for smarts. </p><h3 class="article-body__section" id="section-buy-long-lasting-battery"><span>Buy: Long-lasting battery</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4467px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="FR2AiWoTMykhFBDo5j984N" name="FitbitAir-rev-02" alt="Close-up of the Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/FR2AiWoTMykhFBDo5j984N.jpg" mos="" align="middle" fullscreen="" width="4467" height="2513" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Google promises up to seven days of battery from the Fitbit Air, and that’s been exactly my experience while testing it. After seven consecutive days wearing the device pretty much 24/7, I had roughly 15% battery remaining. </p><p>Considering just how lightweight the Air is, a week of battery is darn impressive. It also recharges rather quickly, going from 0 to 100% in about 90 minutes. </p><h3 class="article-body__section" id="section-skip-a-lack-of-gps"><span>Skip: A lack of GPS</span></h3><p>I mentioned accurate fitness tracking performance, but there’s one caveat: the Fitbit Air lacks an onboard GPS for location tracking data, so you’ll need to carry your paired smartphone for insights into distance, pace, etc, along with a post-effort map.</p><p>The Air additionally lacks an onboard altimeter for elevation tracking data, but worry not! Your smartphone also has one of those, too. </p><h3 class="article-body__section" id="section-skip-no-smart-features"><span>Skip: No smart features </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3195px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="AZ96hmo6jgBwYJFCBhwes6" name="rEpkssC899SufDo23cfMh6" alt="Fitbit Charge 6 and Fitbit Coach" src="https://cdn.mos.cms.futurecdn.net/AZ96hmo6jgBwYJFCBhwes6.jpg" mos="" align="middle" fullscreen="" width="3195" height="1797" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Finally, if you’re the type of person who prefers a screen, buttons, smart features, and optional smartphone notifications, the Fitbit Air isn’t for you. </p><p>Instead, I recommend taking a look at the <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a>, which is similar in size but with a screen, NFC payments, and other useful smarts. A little pricier than the Air at $159, it also sports onboard GPS. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/garmins-screen-less-whoop-competitor-could-cost-five-times-as-much-as-the-fitbit-air">Garmin’s screen-less Whoop competitor could cost five times as much as the Fitbit Air</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing">The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing</a></li><li><a href="https://www.tomsguide.com/wellness/fitness/the-fitbit-app-is-officially-dead-but-dont-panic-its-replacement-is-even-better">The Fitbit app is officially dead — but don’t panic, its replacement is even better</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The Fitbit app is officially dead — but don’t panic, its replacement is even better ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness/the-fitbit-app-is-officially-dead-but-dont-panic-its-replacement-is-even-better</link>
                                                                            <description>
                            <![CDATA[ The Fitbit app may be dead, but its aura lives on in the new Google Health app. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">mKEvFEMpNZkBAddfRtRJ7M</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/Cz2cRVDMPrtiSvfDQKSQjf-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 26 May 2026 20:52:37 +0000</pubDate>                                                                                                                                <updated>Wed, 27 May 2026 01:45:01 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/Cz2cRVDMPrtiSvfDQKSQjf-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[fitbit logo on phone]]></media:description>                                                            <media:text><![CDATA[fitbit logo on phone]]></media:text>
                                <media:title type="plain"><![CDATA[fitbit logo on phone]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/Cz2cRVDMPrtiSvfDQKSQjf-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>What happened to the Fitbit app? After an epic 14-year run, the Fitbit app is officially dead. But don't shed a tear just yet, because the new <a href="https://www.tomsguide.com/wellness/smartwatches/forget-apple-watch-11-google-built-the-ai-health-coach-that-i-really-wanted-with-pixel-watch-4">Google Health</a> app that replaces it is better in just about every way.</p><p>That's right, the Fitbit app is now the Google Health app, and Fitbit Premium is now Google Health Premium. Pricing for the Premium subscription remains the same: $9.99 a month or $99 annually. </p><h3 class="article-body__section" id="section-new-name-same-basic-app-better-design"><span>New name, same basic app, better design</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4983px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="MfNaddUSjrxwgKrVvBN5YX" name="Fitbit-Google_health-03" alt="The new Google Health app shown on an iPhone 16" src="https://cdn.mos.cms.futurecdn.net/MfNaddUSjrxwgKrVvBN5YX.jpg" mos="" align="middle" fullscreen="" width="4983" height="2803" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The new app was built based on feedback from longtime Fitbit wearers, and organizes everything into four cour tabs: Today, Fitness, Sleep, and Health. Rather than inundating users with numbers and graphs, the most relevant wellness metrics are presented front and center.</p><p>Of course, users can customize the dashboards on each page to their heart's content. Available for both Android and iOS, the new Google Health app plays nicely with a ton of other popular health and fitness apps, like Run Club, AllTrails, MyFitnessPal, and the Oura app. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1192px;"><p class="vanilla-image-block" style="padding-top:56.21%;"><img id="g6JECnwEbQfRNNPhFkPd9S" name="Fitbit-Google_health-02" alt="Screenshot showing the Google Health app update, which changes the name from Fitbit" src="https://cdn.mos.cms.futurecdn.net/g6JECnwEbQfRNNPhFkPd9S.jpg" mos="" align="middle" fullscreen="" width="1192" height="670" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>A new 'Leaderboard' feature lets users compete in fitness challenges head-to-head with friends and family, which is somewhat ironic, given the fact that Google <a href="https://www.tomsguide.com/news/google-is-stripping-away-the-things-that-make-fitbit-fitbit-and-its-a-huge-mistake">nixed a similar community challenges feature</a> from the Fitbit app back in 2023. </p><h3 class="article-body__section" id="section-what-does-this-mean-for-premium-subscribers"><span>What does this mean for Premium subscribers? </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3195px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="AZ96hmo6jgBwYJFCBhwes6" name="rEpkssC899SufDo23cfMh6" alt="Fitbit Charge 6 and Fitbit Coach" src="https://cdn.mos.cms.futurecdn.net/AZ96hmo6jgBwYJFCBhwes6.jpg" mos="" align="middle" fullscreen="" width="3195" height="1797" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>As noted above, Fitbit Premium is now Google Health Premium. The price is the same, but your subscription now unlocks a whole lot more.</p><p>With the launch of Google Health Premium, Google's AI-powered, personalized health and fitness concierge officially moves out of beta and becomes a full-blown part of the Premium experience.</p><p>When <a href="https://www.tomsguide.com/wellness/fitness/i-spent-20-minutes-chatting-with-fitbits-new-ai-fitness-coach-5-things-that-surprised-me">I tried Google's AI fitness coach</a> back in November — which started with a casual conversation about my health and fitness goals —  I was impressed. And the Coach has only gotten better over time. What exactly does it do? The Coach can generate custom workout plans, suggest daily exercises, help you eat and sleep better, generate all sorts of trend reports with actionable insights, and much more.</p><p>Other new features for Premium users include the ability to upload medical records, giving the Google Health app an even more complete understanding of your wellness. Google says that this data is encrypted end-to-end and that users have complete control over their data privacy. </p><h3 class="article-body__section" id="section-how-to-update-from-the-fitbit-app-to-google-health"><span>How to update from the Fitbit app to Google Health</span></h3><p>Google started rolling out the new app last week, on May 19th.  </p><p>If you search for the Fitbit app in the Apple App Store or Google Play Store, you'll likely be redirected to the 'Google Health (Fitbit)' app instead. </p><p>For folks who already have the Fitbit app downloaded, simply update your app to the latest version to unlock the newer Google Health layout and expanded features.</p><h3 class="article-body__section" id="section-the-fitbit-name-lives-on-elsewhere"><span>The Fitbit name lives on elsewhere </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5020px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="mDuzwW4uiRspx4hCjNoWDJ" name="Fitbit-Air-lead-02" alt="Close-up of the sensors on the Fitbit Air fitness tracker on the special edition Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/mDuzwW4uiRspx4hCjNoWDJ.jpg" mos="" align="middle" fullscreen="" width="5020" height="2824" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia)</span></figcaption></figure><p>As noted in the intro, there's no need to pour one out for the Fitbit brand just yet. While the Fitbit app may be dead, the brand lives on via the outstanding and affordable ($99) new <a href="https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-the-new-fitbit-air-is-a-screen-less-subscription-free-fitness-tracker-for-the-masses">Fitbit Air</a>, a screen-free, long-lasting wearable that's nothing but a pleasure to use. </p><p>Read my complete <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review">Fitbit Air review</a>, and stay tuned for a full review on the new Google Health app, including the premium features.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Wl3kYe"></div>                            </div>                            <script src="https://kwizly.com/embed/Wl3kYe.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/garmins-screen-less-whoop-competitor-could-cost-five-times-as-much-as-the-fitbit-air"><strong>Garmin’s screen-less Whoop competitor could cost five times as much as the Fitbit Air</strong></a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing"><strong>The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing</strong></a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-the-new-fitbit-air-is-a-screen-less-subscription-free-fitness-tracker-for-the-masses"><strong>Forget the Whoop 5.0 — The new Fitbit Air is a screen-less, subscription-free fitness tracker for the masses</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Fitbit Air review: I tested the Fitbit Air for a week, and it's the best Whoop alternative for the rest of us ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/fitbit-air-review</link>
                                                                            <description>
                            <![CDATA[ The Fitbit Air is a discreet and distraction-free (no screen) fitness tracker that's easy to use, accurate, and long-lasting. Subscription-free, it costs just $99. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Aq62ktJZbSys7nsx7Jxwp5</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/bFju7tvNftUTkppemXS2tT-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 26 May 2026 13:00:00 +0000</pubDate>                                                                                                                                <updated>Wed, 27 May 2026 19:15:26 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/bFju7tvNftUTkppemXS2tT-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Fitbit Air on-wrist on a red strap against a blue background]]></media:description>                                                            <media:text><![CDATA[Close-up of the Fitbit Air on-wrist on a red strap against a blue background]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Fitbit Air on-wrist on a red strap against a blue background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/bFju7tvNftUTkppemXS2tT-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Good things <em>should</em> be worth the wait. After all, the legendary neo-soul recording artist D’Angelo kept us waiting 14 years for his third and arguably most groundbreaking album, <em>Black Messiah</em>. Google hasn’t made us wait quite as long for a new Fitbit model; the last Fitbit designed for adults debuted in 2023 — the <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a> — while the latest entry-level addition to the lineup, the <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a>, launched in 2022. </p><p>Thankfully — and <a href="https://www.tomsguide.com/wellness/fitness-trackers/google-just-killed-another-fitbit-feature-and-now-im-certain-the-brand-is-as-good-as-dead">much to my surprise</a> — Google’s Fitbit draught ended in early May with the debut of the ultra-petite, screen-free, and subscription-optional Fitbit Air. </p><p>Priced at just $99, the Fitbit Air is designed to be a set-it-and-forget-it, ultra-discreet health tracker with 24/7 heart rate monitoring, detailed nightly sleep reports, basic fitness tracking, recovery recommendations, women’s health tracking, and perhaps most notably, zero buttons or smart features. </p><p>I tested the Fitbit Air for over a week, and I may never take it off. The Fitbit Air is easily the best no-fuss, bang-for-your-buck, screen-less fitness tracker on the market in 2026. That's right, forget the more advanced, serious-athletes-only, wallet-draining <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop 5.0</a>, here’s why I’ll be recommending the Fitbit Air to users far and wide for the foreseeable future.</p><div class="youtube-video" data-nosnippet ><div class="video-aspect-box"><iframe data-lazy-priority="low" data-lazy-src="https://www.youtube-nocookie.com/embed/LCKJ8K4sdXk" allowfullscreen></iframe></div></div><h3 class="article-body__section" id="section-fitbit-air-specs-compared"><span>Fitbit Air: Specs compared</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4656px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fBUH3NHzWwpzrTaW5D5X2N" name="FitbitAir-rev-01" alt="Close-up of the Fitbit Air, Polar Loop, and Amazfit Helio Strap" src="https://cdn.mos.cms.futurecdn.net/fBUH3NHzWwpzrTaW5D5X2N.jpg" mos="" align="middle" fullscreen="" width="4656" height="2619" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">From clockwise the top: the Amazfit Helio Strap, Polar Loop, and Fitbit Air.  </span><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><div ><table><caption>Fitbit Air vs Whoop 5.0 vs Amazfit Helio Strap</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit AIr</p></th><th  ><p>Whoop 5.0</p></th><th  ><p>Helio strap</p></th><th  ><p>Polar Loop</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Starting price</strong></p></td><td  ><p>$99</p></td><td  ><p>Free with subscription</p></td><td  ><p>$99</p></td><td  ><p>$199</p></td></tr><tr><td class="firstcol " ><p><strong>Subscription cost</strong></p></td><td  ><p>Optional, $9.99 a month or $99 per year</p></td><td  ><p>$199, $239 or $359 per year depending on tier </p></td><td  ><p>n/a</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Dimensions (without strap)</strong></p></td><td  ><p>35 x 17 x 8 mm</p></td><td  ><p>35  x 24  x 11 mm</p></td><td  ><p>34 x 24 x 11 mm</p></td><td  ><p>28 x 43 x  10 mm</p></td></tr><tr><td class="firstcol " ><p><strong>Weight (without strap)</strong></p></td><td  ><p>5.2 g</p></td><td  ><p>26.5 g</p></td><td  ><p>20 g</p></td><td  ><p>20 g</p></td></tr><tr><td class="firstcol " ><p><strong>Sensors</strong></p></td><td  ><p>Heart rate, SpO2, Skin temp, Accelerometer, Gyroscope</p></td><td  ><p>Heart rate, SpO2, Skin temp, Accelerometer, Gyroscope</p></td><td  ><p>Heart rate, SpO2, Skin temp, Accelerometer, Gyroscope</p></td><td  ><p>Heart rate, Skin temp, Accelerometer</p></td></tr><tr><td class="firstcol " ><p><strong>Water resistance </strong></p></td><td  ><p>50 meters</p></td><td  ><p>10 meters</p></td><td  ><p>50 meters</p></td><td  ><p>30 meters</p></td></tr><tr><td class="firstcol " ><p><strong>Battery life</strong></p></td><td  ><p>7 days</p></td><td  ><p>14 days</p></td><td  ><p>10 days</p></td><td  ><p>8 days</p></td></tr><tr><td class="firstcol " ><p><strong>Compatibility </strong></p></td><td  ><p>Android, iOS</p></td><td  ><p>Android, iOS</p></td><td  ><p>Android, iOS</p></td><td  ><p>Android, iOS</p></td></tr></tbody></table></div><h3 class="article-body__section" id="section-fitbit-air-value-5-5"><span>Fitbit Air value: 5/5</span></h3><ul><li><strong>At $99 and subscription-free for core features, the Fitbit Air is one of the best value screenless trackers available in 2026</strong></li><li><strong>An optional Google Health Premium account unlocks personalized AI-backed health and fitness insights, along with deeper dives into your holistic trends; it's $9.99 a month or $99 a year</strong></li><li><strong>Cost-wise, the Fitbit Air is the same price as 2022's entry-level Fitbit Inspire 3 tracker, which is still sold by Google (but often for $79); the Air is less than the GPS-sporting Fitbit Charge 6 ($159)</strong></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5459px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="ZbZb7oVskZ74qYjLHoJ2UN" name="FitbitAir-rev-03" alt="Close-up of the Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/ZbZb7oVskZ74qYjLHoJ2UN.jpg" mos="" align="middle" fullscreen="" width="5459" height="3071" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air is $99, the same price that the Fitbit Inspire 3 debuted at in 2022. This may have you thinking that the Air replaces the Inspire 3 in the brand's lineup, but that's not the case. Google will continue selling the Fitbit Inspire 3 for $79-$99 and the Fitbit Charge 6 for $159 for the foreseeable future.</p><p>The Fitbit Air will set you back $99 paired with one of Google's standard silicone or kniy straps or $129 paired with the special edition Stephan Curry strap (which I'm a big fan of, more on that below).</p><p>Compared to the competition, the Fitbit Air is the same price as the <a href="https://www.tomsguide.com/wellness/fitness-trackers/amazfit-helio-strap-review">Amazfit Helio Strap</a> and half the price of the <a href="https://www.tomsguide.com/wellness/fitness-trackers/polars-screenless-fitness-tracker-has-arrived-heres-everything-you-need-to-know-about-the-whoop-rival">Polar Loop</a>, both of which are also subscription-free. The Fitbit Air is additionally less than half the price of the cheapest annual Whoop subscription. </p><p>Speaking of subscriptions, some of the more advanced features, like AI-backed recommendations and trend insights, require a Google Health Premium (previously Fitbit Premium) subscription for $9.99 a month or $99 for the year; full review of that coming soon.  </p><p>Ultimately, the Fitbit Air ships with a three-month trial to Premium to help you decide whether those additional features are worth it to you, something I appreciate.</p><p><strong>Fitbit Air value: 5/5</strong></p><h3 class="article-body__section" id="section-fitbit-air-design-and-comfort-5-5"><span>Fitbit Air design and comfort: 5/5</span></h3><ul><li><strong>The Fitbit Air is smaller, lighter, and more comfortable than the competition </strong></li><li><strong>Better water resistance than Whoop 5.0</strong></li><li><strong>Designed to be swapped from strap to strap with ease</strong></li><li><strong>The special edition Stephen Curry strap is the comfiest of Google's initial offerings</strong></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5003px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="aCdSoGC6BVb7zmo5NrorbA" name="FitbitAir-07" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/aCdSoGC6BVb7zmo5NrorbA.jpg" mos="" align="middle" fullscreen="" width="5003" height="2815" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air doesn't have a screen or any buttons; however, it does have a haptic motor, which can be set to vibrate for a limited number of use cases, most notably as a way to gently and silently wake you up via Google's Smart Alarm function. You cannot set it to vibrate to alert you to incoming texts, calls, or other smartphone notifications. </p><p>The Fitbit Air is noticeably smaller, thinner, and lighter than all of its competitors, including the Whoop 5.0, Polar Loop, and Amazfit Helio Strap. </p><p>Weighing just over 5 g and with a tiny footprint, the Fitbit Air is not only extremely comfortable, especially on the special edition Stephen Curry strap, but it also doesn't really resemble a fitness tracker... like, at all. Instead, it looks more like a sporty bracelet than a tech gadget.</p><p>Water resistance is 50 meters, which beats the pants off the Whoop 5.0, and should be enough to protect the Air during short surface-level swims, showers, hand-washing, etc. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5554px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3grJp6fgcq7zoZ3EmCdraA" name="FitbitAir-04" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/3grJp6fgcq7zoZ3EmCdraA.jpg" mos="" align="middle" fullscreen="" width="5554" height="3124" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The tracker itself is nothing more than a small plastic pebble with some sensors and charging contacts on the underside. However, because it's protected by the strap, it's nearly impossible to damage the tech components, even if you slam your wrist unintentionally into a wall. </p><p>Customization is a big selling point of the Air. The tracker itself, which looks like a slimmed-down Inspire 3 without straps, pops with delightful fashion in and out of its housing with a firm push. </p><p>Google is selling a fairly wide selection of straps, starting at $34.99, in all sorts of eye-catching colors. Choose from sporty silicone or stretchy knit fabric. Meanwhile, wallet-friendly, third-party straps have yet to materialize on Amazon and the likes, but give it time. </p><p>It's worth calling out the Steph Curry strap, because it feels a lot more premium, breathable, and less scratchy than the standard knit strap Google offers with the device for $99.</p><figure class="inline-layout"><fw-embed-feed channel="toms_guide" playlist="gMwOBe" mode="row" player_placement="bottom-right"></fw-embed-feed></figure><h3 class="article-body__section" id="section-health-tracking-4-5"><span>Health tracking: 4/5</span></h3><ul><li><strong>Lots of sleep tracking insights on par with the </strong><a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html"><strong>best fitness trackers</strong></a><strong> and </strong><a href="https://www.tomsguide.com/wellness/smartwatches/best-smartwatch"><strong>best smartwatches</strong></a></li><li><strong>User-friendly app for tracking holistic trends like resting heart rate, average calorie burn, step count, heart rate variability, menstrual cycles, and daily readiness </strong></li><li><strong>Some health tracking features require a Google Health Premium subscription, like AI-analyzed sleep trend recommendations (via Google Coach)</strong></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ktst4G4aEo3tp2SAEDwt7A" name="FitbitAir-01" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/ktst4G4aEo3tp2SAEDwt7A.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air sports an onboard continuous heart rate tracker, blood oxygen saturation (SpO2) reader, and body temperature sensor for keeping tabs on all your core holistic metrics, including heart rate variability trends, breath rate, cardio load, and daily readiness, a numeric score out of 100. </p><p>For a $99 wearable, the Fitbit Air provides detailed sleep reports on par with some of the best smartwatch models in 2026, with insights into your sleep duration, time spent in sleep cycles, restlessness, and daily sleep quality rating and score, also out of 100. </p><div><blockquote><p>For a $99 wearable, the Fitbit Air provides detailed sleep reports on par with some of the best smartwatch models in 2026</p></blockquote></div><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4114px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="m3zAnMrGySMYrDxq46JKLY" name="Fitbit-Air-lead-03" alt="Close-up of the sensors on the Fitbit Air screenless fitness tracker" src="https://cdn.mos.cms.futurecdn.net/m3zAnMrGySMYrDxq46JKLY.jpg" mos="" align="middle" fullscreen="" width="4114" height="2315" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><div ><table><caption>Same-night sleep data comparison vs Garmin</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Forerunner 70</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Sleep Score </strong></p></td><td  ><p>73, Fair</p></td><td  ><p>66, Fair</p></td></tr><tr><td class="firstcol " ><p><strong>Sleep duration</strong></p></td><td  ><p>7 hours 37 mins</p></td><td  ><p>8 hours 9 mins</p></td></tr><tr><td class="firstcol " ><p><strong>Average heart rate</strong></p></td><td  ><p>66 bpm</p></td><td  ><p>65 bpm</p></td></tr><tr><td class="firstcol " ><p><strong>REM sleep</strong></p></td><td  ><p>30 mins</p></td><td  ><p>1 hours 35 mins</p></td></tr><tr><td class="firstcol " ><p><strong>Light sleep</strong></p></td><td  ><p>5 hours 59 mins</p></td><td  ><p>5 hours 45 mins</p></td></tr><tr><td class="firstcol " ><p><strong>Deep sleep</strong></p></td><td  ><p>41 mins</p></td><td  ><p>49 mins</p></td></tr></tbody></table></div><p>I tested the Fitbit Air against the <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-took-my-first-jog-with-garmins-new-entry-level-running-watch-5-things-to-know-about-the-forerunner-70">Garmin Forerunner 70</a> nightly for a week straight. The chart above shows recent results, logged during the same night from each tracker. While the data doesn't match perfectly, the results are pretty darn close across the board, suggesting that the Fitbit Air is just as capable of logging sleep quality as a device 2.5 times its cost.</p><p>Google completely overhauled the Fitbit companion app, now called 'Google Health,' and the results are an easy-to-navigate experience with quick and easy access to whatever metrics you value most — the app is highly customizable — along with just the right amount of context and analysis to prove useful but not overwhelming.</p><h3 class="article-body__section" id="section-fitbit-air-fitness-tracking-3-5"><span>Fitbit Air fitness tracking: 3/5</span></h3><ul><li><strong>Reliable fitness tracking performance when you carry a paired smartphone for location and elevation data</strong></li><li><strong>Auto workout mode only starts tracking after 15 minutes and is limited to a handful of common exercises</strong></li><li><strong>Similar heart rate tracking reliability to entry-level Garmin watches; no apparent performance differences between tracking on left vs right wrists </strong></li><li><strong>Personalized AI-backed adaptive fitness plans require a Google Health Premium subscription</strong></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3341px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="Mimn2jQmsFeajNnNQ8NWGU" name="IMG_7880" alt="a photo of the Fitbit Air on the wrist" src="https://cdn.mos.cms.futurecdn.net/Mimn2jQmsFeajNnNQ8NWGU.jpg" mos="" align="middle" fullscreen="" width="3341" height="1879" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Like nearly every screen-less wearable, the Fitbit Air lacks an onboard GPS for location data and an altimeter for elevation insights. This means that you'll want to carry your paired smartphone when performing outdoor workouts for the Air to piggyback off of, to ensure reliable distance, pace, and elevation gain metrics.</p><p>The Fitbit Air automatically tracks a small selection of workout types, including walks, bike rides, 'sports,' and 'other activities.' It does so whether you carry your paired phone or not, but there's a catch. For an activity to be auto-logged, you have to do it for at least 15 consecutive minutes.</p><p><a href="https://www.tomsguide.com/wellness/running/im-a-running-noob-doing-my-first-5k-heres-all-the-tech-im-using-to-cross-the-finish-line">I'm a newbie runner</a> who jogs roughly 1.5 miles several times a week. That often takes me less than 15 minutes, which means that I have to manually open the Fitbit app on my phone and start a running workout session to ensure the Air <em>actually</em> logs it. This is less than ideal, IMHO, and Google should instead lower the auto workout threshold for the Air to five minutes instead.</p><p>The selectable tracking modes for the Fitbit Air in the app are also somewhat limited compared to the competition, with just 41 to choose from. For example, there isn't even a pickleball mode!</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4V36jPbP2C9WJfa94qMJdW" name="FitbitAir-Inspire-05" alt="Close-up of the Fitbit Inspire 3 and Fitbit Air in a user's hand" src="https://cdn.mos.cms.futurecdn.net/4V36jPbP2C9WJfa94qMJdW.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="caption-text">The Fitbit Air (right) and Fitbit Inspire 3. </span><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><div ><table><caption>3,000-step walk comparison vs Garmin vs Strava</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Forerunner 70</p></th><th  ><p>Control</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Steps</p></td><td  ><p>3,004 steps</p></td><td  ><p>2.996 steps</p></td><td  ><p>3,000 steps (manual count)</p></td></tr><tr><td class="firstcol " ><p>Distance</p></td><td  ><p>1.61 miles</p></td><td  ><p>1.57 miles</p></td><td  ><p>1.60 miles</p></td></tr><tr><td class="firstcol " ><p>Climb</p></td><td  ><p>165 feet</p></td><td  ><p>154 feet</p></td><td  ><p>176 feet</p></td></tr><tr><td class="firstcol " ><p>Pace (elapsed)</p></td><td  ><p>18 mins 31 secs per mile</p></td><td  ><p>17 mins 48 secs</p></td><td  ><p>18 mins 21 secs</p></td></tr><tr><td class="firstcol " ><p>Average heart rate</p></td><td  ><p>116 bpm</p></td><td  ><p>125 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Max heart rate</p></td><td  ><p>161 bpm</p></td><td  ><p>163 bpm</p></td><td  ><p>n/a</p></td></tr></tbody></table></div><div><blockquote><p>The Fitbit Air tracks your heart rate with similar reliability to Garmin's top entry-level smartwatch, regardless of which wrist you wear it on</p></blockquote></div><p>When carrying a paired smartphone, fitness tracking performance from the Fitbit Air is top-notch. I walked 3,000 steps — manually counted — with the Fitbit Air vs Garmin Forerunner 70 vs Strava running on an iPhone 16, and the Air proved just as accurate across the board as the others (though its pace data was a little sluggish). </p><p>To ensure similar heart rate tracking capabilities on either wrist, I performed 50 jumping jacks with the Air on first on my left and then on my right wrist (giving time for my heart to return to a resting rate in between). I also wore the Garmin Forerunner 70 on the opposite wrist of the Air during testing for an additional data set. The results: The Fitbit Air tracks your heart rate with similar reliability to Garmin's top entry-level smartwatch, regardless of which wrist you wear it on.</p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DPJMY7WKMhYgAKhiUVJdBA" name="FitbitAir-03" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/DPJMY7WKMhYgAKhiUVJdBA.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><div ><table><caption>1.5-mile run comparison vs Garmin vs Strava</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Air</p></th><th  ><p>Forerunner 70</p></th><th  ><p>Strava</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Distance</p></td><td  ><p>1.48 miles</p></td><td  ><p>1.44 miles</p></td><td  ><p>1.52 miles</p></td></tr><tr><td class="firstcol " ><p>Pace per mile</p></td><td  ><p>9 mins 38 secs</p></td><td  ><p>9 mins 11 secs</p></td><td  ><p>8 mins 35 secs </p></td></tr><tr><td class="firstcol " ><p>Elevation gained</p></td><td  ><p>76 feet</p></td><td  ><p>85 feet</p></td><td  ><p>78 feet</p></td></tr><tr><td class="firstcol " ><p>Average heart rate</p></td><td  ><p>156 bpm</p></td><td  ><p>158 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Max heart rate</p></td><td  ><p>176 bpm</p></td><td  ><p>177 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Calories burned</p></td><td  ><p>168 calories</p></td><td  ><p>158 calories</p></td><td  ><p>n/a</p></td></tr></tbody></table></div><p>In addition to testing the Fitbit Air while walking and doing aerobic workouts, I also tested it against Garmin and Strava while going for a 1.5-mile run. In this test, the Air's results once again line up nicely with the competition. </p><p>Of course, for the most valuable insights into your fitness trends, you'll want to take Google Health Premium for a spin, which notably unlocks Google's Gemini-backed 'Coach,' a personalized, holistic concierge that is far more helpful, in my testing, than <a href="https://www.tomsguide.com/wellness/fitness/i-ran-15-miles-with-the-apple-watchs-new-workout-buddy-heres-my-verdict">Apple's 'Workout Buddy'</a> or <a href="https://www.tomsguide.com/wellness/smartwatches/samsung-galaxy-watch-8-review#section-samsung-galaxy-watch-8-health-and-fitness-tracking">Samsung's 'Running Coach.'</a></p><p>For example, after a week of less-than-ideal sleep and more workouts logged than normal, the Coach not only advised I take it easy, but also gave me targets for how much sleep to get in the next few nights, low-key workout suggestions that target muscle groups I didn't utilize in recent days, and big picture advice based on my fitness goals and recent performance. </p><h3 class="article-body__section" id="section-fitbit-air-battery-life-4-5"><span>Fitbit Air battery life: 4/5</span></h3><ul><li><strong>The Fitbit Air lasted over a week in my testing, meeting its advertised rating</strong></li><li><strong>It also recharges quickly: 0 to 100% in roughly 90 minutes </strong></li><li><strong>Whoop 5.0 boasts double the battery life of the Fitbit Air</strong></li></ul><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4467px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="FR2AiWoTMykhFBDo5j984N" name="FitbitAir-rev-02" alt="Close-up of the Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/FR2AiWoTMykhFBDo5j984N.jpg" mos="" align="middle" fullscreen="" width="4467" height="2513" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air is rated to last up to seven days per charge. After exactly one week of testing the Fitbit Air on my wrist, I still had 15% battery remaining. During my time wearing the device, I recorded around a dozen workouts and only took the tracker off while showering.</p><p>Google says you can fully recharge the Air from 0% to 100% battery in roughly 90 minutes, a claim that also proved true in my testing.</p><p>Sure, the Whoop 5.0 offers double the advertised battery life of the Fitbit Air, but it also weighs roughly five times more. Besides, a week of battery is more than enough in my opinion, especially when you consider that some of the <a href="https://www.tomsguide.com/wellness/smartwatches/best-smartwatch#section-best-smartwatch-for-iphone">best smartwatch </a>models only last for one day per charge... cough, cough,<a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-11-review"> Apple Watch 11</a>.</p><h3 class="article-body__section" id="section-fitbit-air-review-verdict"><span>Fitbit Air review: Verdict</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4923px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="v4R3RdVkt2tearzZXDp52N" name="FitbitAir-rev-07" alt="Close-up of the Fitbit Air" src="https://cdn.mos.cms.futurecdn.net/v4R3RdVkt2tearzZXDp52N.jpg" mos="" align="middle" fullscreen="" width="4923" height="2769" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><div><blockquote><p>The combination of a completely distraction-free user experience, an affordable price, reliable holistic features, excellent comfort, impressive battery life, and no subscription requirement all add up to the Fitbit Air being my new favorite fitness tracker in 2026</p></blockquote></div><p>I tested the Fitbit Air for a week, and I have no intentions of taking it off anytime soon. In fact, it's hands down my favorite screenless, subscription-free tracker on the market today and a great choice for anyone looking to learn more about their health trends without breaking the bank or straining their wrist. In short: It's a Whoop 5.0 for the rest of us. </p><p>Smaller, lighter, and overall more comfortable than alternatives from Whoop, Amazfit, and Polar, it may not have the best-in-class battery life, but at over a week per charge, it's good enough for me. While you'll find more in-depth fitness tracking insights from the <a href="https://www.tomsguide.com/us/best-gps-watches,review-2638.html">best GPS sport watches</a>, the Fitbit Air covers all the basics well, even if the auto-workout tracking could use refinement and an expansion of exercise types. </p><p>Ultimately, the combination of a completely distraction-free user experience, an affordable price, reliable holistic features, excellent comfort, impressive battery life, and no subscription requirement all add up to the Fitbit Air being my new favorite fitness tracker in 2026, and a wearable I'll be recommending to all sorts of wellness and fitness enthusiasts. </p><p><em><strong>Fitbit Air final score: 21 out of 25</strong></em></p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I’ve been wearing the new Fitbit Air all week — 3 reasons why I’m obsessed with this $99 tracker ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/ive-been-wearing-the-new-fitbit-air-all-week-3-reasons-why-im-obsessed-with-this-usd99-tracker</link>
                                                                            <description>
                            <![CDATA[ I’m in the process of reviewing the new Fitbit Air — expect my review early next week — and after four days wearing it, I’m already obsessed. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">3Dw4PsgBGUNQPykvdTdNrc</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/EvMxy8b2KjzH2ks5YVcSAA-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 21 May 2026 05:45:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/EvMxy8b2KjzH2ks5YVcSAA-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap]]></media:description>                                                            <media:text><![CDATA[Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap]]></media:text>
                                <media:title type="plain"><![CDATA[Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/EvMxy8b2KjzH2ks5YVcSAA-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I’m currently reviewing the new <a href="https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-the-new-fitbit-air-is-a-screen-less-subscription-free-fitness-tracker-for-the-masses">Fitbit Air</a>, and after four days wearing it, I’m already obsessed.</p><p>While the Fitbit Air is far from the most advanced fitness tracker on the market today — it doesn’t even have a screen or onboard GPS — a $99 price tag, playful design, and simple-to-use disposition make it a potentially compelling choice for wrists far and wide. </p><p>With that in mind, these are the three biggest reasons why I’m smitten with the new Fitbit Air, so much so that it just might be my favorite wearable in 2026, at least, so far. </p><div class="product"><a data-dimension112="aab4019f-2411-4ce9-bbe2-c254185f516e" data-action="Deal Block" data-label="The Fitbit Air is a screen-free, subscription-free fitness tracker that's lightweight, easy-to-use, long-lasting, and seriously customizable." data-dimension48="The Fitbit Air is a screen-free, subscription-free fitness tracker that's lightweight, easy-to-use, long-lasting, and seriously customizable." data-dimension25="$99" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2kWy3efzpjJSVZR9UpMGJQ" name="Fitbit-Air-04" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/2kWy3efzpjJSVZR9UpMGJQ.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Air is a screen-free, subscription-free fitness tracker that's lightweight, easy-to-use, long-lasting, and seriously customizable. <a class="view-deal button" href="https://www.amazon.com/Google-Fitbit-Air-Screenless-Personalized/dp/B0GTMJF7PV?th=1" target="_blank" rel="nofollow" data-dimension112="aab4019f-2411-4ce9-bbe2-c254185f516e" data-action="Deal Block" data-label="The Fitbit Air is a screen-free, subscription-free fitness tracker that's lightweight, easy-to-use, long-lasting, and seriously customizable." data-dimension48="The Fitbit Air is a screen-free, subscription-free fitness tracker that's lightweight, easy-to-use, long-lasting, and seriously customizable." data-dimension25="$99">View Deal</a></p></div><h3 class="article-body__section" id="section-1-accessibly-priced-plays-well-with-others"><span>1. Accessibly priced; plays well with others </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5554px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="3grJp6fgcq7zoZ3EmCdraA" name="FitbitAir-04" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/3grJp6fgcq7zoZ3EmCdraA.jpg" mos="" align="middle" fullscreen="" width="5554" height="3124" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Air is accessibly priced at $99. That cost covers the tracker and one band; additional straps start at <a href="https://www.amazon.com/dp/B0GHPYSJ7V/" target="_blank" rel="nofollow">$34.99 via Amazon</a> and come in a wide range of colors, and your choice of silicone or woven knit. </p><p>Speaking of accessible, the Fitbit app… excuse me, the Google Health app (new name) plays nicely on both Android and iOS devices, offering users the same experience regardless of their OS preference; how democratic!</p><h3 class="article-body__section" id="section-2-subscription-and-distraction-free-tracking"><span>2. Subscription and distraction-free tracking </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4946px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jwpwjZpppYynDr8bV3cUMA" name="FitbitAir-02" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/jwpwjZpppYynDr8bV3cUMA.jpg" mos="" align="middle" fullscreen="" width="4946" height="2782" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>With no screen and no buttons to get in your way, not to mention a diminutive footprint (more on that below), the Fitbit Air is the antithesis of wearables like the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-11-review">Apple Watch 11</a>, the <a href="https://www.tomsguide.com/wellness/smartwatches/samsung-galaxy-watch-8-review">Samsung Galaxy Watch 8</a>, or the <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-google-pixel-watch-4-and-it-could-be-my-new-favorite-smartwatch-for-android">Google Pixel Watch 4</a>, and that's the point! </p><p>There’s also no NFC for mobile payments, no speaker or microphone for taking calls, and ultimately, nothing to distract you from living in the moment. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="ktst4G4aEo3tp2SAEDwt7A" name="FitbitAir-01" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/ktst4G4aEo3tp2SAEDwt7A.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Additionally, unlike other popular screen-free trackers aimed more at advanced athletes, most notably the <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop 5.0 and MG</a>, the Fitbit Air is subscription-optional. So, aside from the cost of the device itself, you never need to shell out any additional cash to make use of its primary tracking features.</p><p>That said, Google <em>does</em> offer an optional subscription plan for the Fitbit Air and Pixel Watch series called <a href="https://www.tomsguide.com/ai/googles-new-usd100-ai-ultra-plan-just-changed-the-ai-race-and-gemini-spark-is-the-biggest-reason-why">Google Health Premium</a> (previously called Fitbit Premium). Priced at $9.99 a month or $99 for the year, a subscription unlocks all sorts of additional holistic tools, perhaps most notably, access to the tech giant’s new personalized wellness ‘Coach’ that turns your health data into surprisingly actionable insights. </p><h3 class="article-body__section" id="section-3-easy-wearing-and-addictively-customizable"><span>3. Easy-wearing and addictively customizable</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5003px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="aCdSoGC6BVb7zmo5NrorbA" name="FitbitAir-07" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/aCdSoGC6BVb7zmo5NrorbA.jpg" mos="" align="middle" fullscreen="" width="5003" height="2815" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>After roughly four days with the Fitbit Air on my wrist, I can say with certainty that this thing is comfortable as heck, <a href="https://www.tomsguide.com/wellness/smartwatches/ive-been-wearing-the-new-fitbit-air-for-5-days-and-this-is-the-one-thing-that-has-really-impressed-me-so-far">a sentiment shared</a> by my colleague Jane McGuire. Not only that, it barely resembles a piece of nerdy wearable tech; rather, it looks more like a stylish little bracelet, depending on which strap you opt for. I’m currently rocking the slick, limited-edition Stephen Curry jawn, and I’m hooked. </p><p>It’s also addictively easy to pop the little tracker out of the strap housing and swap it into a different setup. This is, of course, intentional on Google’s part. The idea is to make it easy for users to match their Air strap to their outfit or mood. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="DPJMY7WKMhYgAKhiUVJdBA" name="FitbitAir-03" alt="Hands-on with the Fitbit Air on the orange and brown Stephen Curry strap" src="https://cdn.mos.cms.futurecdn.net/DPJMY7WKMhYgAKhiUVJdBA.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The official Google Fitbit Air straps start at $34.99, but I don't doubt that cheaper, third-party options will start popping up on Amazon in the coming weeks and months. When that happens, you can bet I’ll be purchasing a variety to test out. </p><p>What do you think of the Fitbit Air? What features are you most impressed with (or not), and are you considering buying one? Let me know in the comments below.  </p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-eAx6MX"></div>                            </div>                            <script src="https://kwizly.com/embed/eAx6MX.js" async></script><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-just-took-my-first-jog-with-garmins-new-entry-level-running-watch-5-things-to-know-about-the-forerunner-70">I just spent 36 hours with Garmin’s new entry-level watch for runners — 5 things to know about the Garmin Forerunner 70</a></li><li><a href="https://www.tomsguide.com/wellness/fitness/i-just-ran-my-first-5k-heres-how-i-conquered-the-pre-race-jitters">I just ran my first 5K — 5 practical ways I conquered my pre-race nerves for a strong finish</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-tested-the-usd79-amazfit-bip-6-vs-the-usd249-apple-watch-se-3-and-the-cheaper-smartwatch-is-a-lot-better-than-i-thought">I tested the $79 Amazfit Bip 6 vs the $249 Apple Watch SE 3 — and the cheaper smartwatch is a lot better than I thought</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ The Fitbit Air is basically just a screen-less Fitbit Inspire 3 — and that’s a very good thing ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-air-is-basically-just-a-screen-less-fitbit-inspire-3-and-thats-a-very-good-thing</link>
                                                                            <description>
                            <![CDATA[ The new Fitbit Air is the natural successor to the Inspire line. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">fvLbZtBNhF8UQ63CMW5uej</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/VkLkWNHBhnVYjFjPbnwNVD-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 21 May 2026 01:30:55 +0000</pubDate>                                                                                                                                <updated>Thu, 21 May 2026 07:47:17 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/VkLkWNHBhnVYjFjPbnwNVD-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Fitbit Air next to the Fitbit Inspire 3]]></media:description>                                                            <media:text><![CDATA[Close-up of the Fitbit Air next to the Fitbit Inspire 3]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Fitbit Air next to the Fitbit Inspire 3]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/VkLkWNHBhnVYjFjPbnwNVD-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I review wearable tech for a living, and while some folks, myself included, predicted the <a href="https://www.tomsguide.com/wellness/fitness-trackers/google-just-killed-another-fitbit-feature-and-now-im-certain-the-brand-is-as-good-as-dead">death of the Fitbit brand</a> at the hands of Google in 2026, much to my delight, the tech giant just came through with the shiny new <a href="https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-the-new-fitbit-air-is-a-screen-less-subscription-free-fitness-tracker-for-the-masses">Fitbit Air</a>.</p><p>Priced at $99, this diminutive fitness tracker focuses on the basics, like monitoring your daily movement, workouts, sleep quality and women’s health. There’s no GPS, so you’ll need to carry your phone for location data, no NFC for mobile payments and no onboard storage for music.</p><p>But, wait a minute, that sounds a whole lot like 2022’s entry-level <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a>, which also costs $99 (but can easily be found for less, like this <a href="https://www.amazon.com/Fitbit-Management-Intensity-Tracking-Midnight/dp/B0B5F9SZW7?th=1" target="_blank" rel="nofollow">Inspire 3 Amazon deal for $84</a>). So, is the Fitbit Air essentially just a Fitbit Inspire 3 without a screen? </p><p>I’d argue that it is, but that’s actually a very good thing. Here’s why.</p><h3 class="article-body__section" id="section-did-we-really-wait-four-years-for-a-screen-less-fitbit-inspire-3-yes-and-no"><span>Did we really wait four years for a screen-less Fitbit Inspire 3? Yes and no.</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:5150px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="ACasPG6gGJGN83nJ2M5yiD" name="FitbitAir-Inspire-03" alt="Close-up of the Fitbit Air next to the Fitbit Inspire 3" src="https://cdn.mos.cms.futurecdn.net/ACasPG6gGJGN83nJ2M5yiD.jpg" mos="" align="middle" fullscreen="" width="5150" height="2896" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Fitbit Inspire 3 was my very first fitness tracker, which I purchased shortly after its 2022 debut. Well-priced and offering more than enough features for my fitness and health-tracking needs at the time, it was the little tracker I ultimately grew attached to and wore daily for years.</p><p>However, the Inspire 3, which is still technically a current fitness tracker in Google’s lineup, wasn’t without its faults. For one, the screen is tiny, and the controls are rather fiddly. This makes it a poor choice for folks with larger hands or those who struggle to read teeny-tiny text. </p><h3 class="article-body__section" id="section-the-fitbit-air-is-the-natural-successor-to-the-inspire-3-but-it-s-better-in-lots-of-ways"><span>The Fitbit Air is the natural successor to the Inspire 3, but it’s better in lots of ways</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3885px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="i6GmVBt2WizcxJ5yP57q7D" name="FitbitAir-Inspire-02" alt="Close-up of the Fitbit Air next to the Fitbit Inspire 3" src="https://cdn.mos.cms.futurecdn.net/i6GmVBt2WizcxJ5yP57q7D.jpg" mos="" align="middle" fullscreen="" width="3885" height="2185" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><div><blockquote><p>Thanks to the lack of a screen and buttons, the Fitbit Air lets you tune out the digital noise, all while still tracking essential wellness and fitness metrics.</p></blockquote></div><p>Ultimately, the Fitbit Air is the natural evolution of the entry-level Inspire line. Sure, Google could’ve slimmed down the Inspire 3 case, slightly expanded the screen size, and even given the Inspire 4 physical controls, but I’m glad that didn't happen, especially since the <a href="https://www.tomsguide.com/reviews/fitbit-charge-6" target="_blank">Fitbit Charge 6</a> still exists. </p><p>Instead, Google took the screen-free, distraction-free approach, mimicking the experience you might get with a <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop 5.0 </a>and <a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-ring-4-review">Oura Ring 4</a>, but without the recurring subscription costs. </p><p>I applaud this because with each passing year, it feels harder and harder to escape the siren sounds of our hyper-connected world. Was that the case in 2022 when the Inspire 3 debuted? Sure, but in 2026, folks (including yours truly) seem more eager than ever to disconnect from the endlessness of information inundation. </p><p>And thanks to the lack of a screen or buttons, the Fitbit Air encourages just that, letting you tune out the digital noise, all while still tracking essential wellness and fitness metrics. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4032px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="4V36jPbP2C9WJfa94qMJdW" name="FitbitAir-Inspire-05" alt="Close-up of the Fitbit Inspire 3 and Fitbit Air in a user's hand" src="https://cdn.mos.cms.futurecdn.net/4V36jPbP2C9WJfa94qMJdW.jpg" mos="" align="middle" fullscreen="" width="4032" height="2268" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>It's worth noting that the Fitbit Air and the Fitbit Inspire 3 boast similar health tech, consisting of an optical heart rate sensor, accelerometer, gyroscope, blood oxygen sensor and skin temperature sensor. Smart features are also all but non-existent on either, though the Inspire 3 does mirror smartphone notifications. </p><p>Those similarities aside, the Fitbit Air has the advantage of being more comfortable on the wrist thanks to a smaller and lighter footprint. It’s also built around customization; the tracker pops out of the straps with a firm push, letting you change up the vibe and re-accesorize at a moment’s notice. A huge number of strap options are already available, starting at <a href="https://www.amazon.com/Google-Fitbit-Active-Band-Workout-Friendly/dp/B0GHP6944W?th=1" target="_blank" rel="nofollow">$34.99 via Amazon</a>. </p><p>Of course, comfort and customization aren't nearly as big selling points as the Fitbit Air’s distraction and control-free disposition. Stay tuned for my full Fitbit Air review, coming soon! </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/garmins-screen-less-whoop-competitor-could-cost-five-times-as-much-as-the-fitbit-air">Garmin’s screen-less Whoop competitor could cost five times as much as the Fitbit Air</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/garmin-forerunner-70-vs-garmin-forerunner-170-the-main-differences-between-garmins-two-new-running-watches">Garmin Forerunner 70 vs Garmin Forerunner 170 — what are the main differences between Garmin’s two new running watches</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-tested-the-usd79-amazfit-bip-6-vs-the-usd249-apple-watch-se-3-and-the-cheaper-smartwatch-is-a-lot-better-than-i-thought">I tested the $79 Amazfit Bip 6 vs the $249 Apple Watch SE 3 — and the cheaper smartwatch is a lot better than I thought</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Garmin's screenless fitness tracker just leaked and, if this price is accurate, the Fitbit Air won't be worried ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/garmins-screenless-fitness-tracker-just-leaked-and-if-this-price-is-accurate-the-fitbit-air-wont-be-worried</link>
                                                                            <description>
                            <![CDATA[ Garmin is planning to rival the Whoop band and Fitbit Air with a screenless fitness tracker, but the price could be a sticking point. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">qrDYThezS72yeV2PddvWye</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/JpSXwAkfnPAtMwt3ZYMFrR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 15 May 2026 10:06:29 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ jeff.parsons@futurenet.com (Jeff Parsons) ]]></author>                    <dc:creator><![CDATA[ Jeff Parsons ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/7z3UTGGrmSokMKxTWHmhjX.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jeff is U.K. Editor-in-Chief for Tom’s Guide looking after the day-to-day output of the site’s British contingent. &lt;/p&gt;&lt;p&gt;Rising early and heading straight for the coffee machine, Jeff loves nothing more than dialling into the zeitgeist of the day’s tech news. A journalist for over a decade, he&#039;s travelled around the world testing and reviewing any gadget he can get his hands on.&lt;/p&gt;&lt;p&gt;Before joining the team at Tom’s Guide, Jeff covered technology and science for two of the U.K.’s biggest national news sites: Metro.co.uk and the Daily Mirror. Memorable moments include getting lost in Vienna in an electric Audi, touring Lockheed Martin’s mile-long jet factory in Fort Worth and filming a Netflix documentary about Elon Musk in West London.&lt;/p&gt;&lt;p&gt;When not plugged into the current news agenda, editing or commissioning a series of articles or debating the merits of Apple vs Android, Jeff can usually be found out for a run trying to shave precious seconds off his PB. Or lifting weights in a vain attempt to offset the ageing process.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/JpSXwAkfnPAtMwt3ZYMFrR-1280-80.jpg">
                                                            <media:credit><![CDATA[Google]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Fitbit Air fitness tracker]]></media:description>                                                            <media:text><![CDATA[Close-up of the Fitbit Air fitness tracker]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Fitbit Air fitness tracker]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/JpSXwAkfnPAtMwt3ZYMFrR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Take a look at our <a href="https://www.tomsguide.com/best-picks/best-garmin-watch">best Garmin watches</a> guide and you'll probably find exactly the kind of sports watch or fitness tracker you're looking for. Unless, of course, you want one without a screen.</p><p>Screenless fitness trackers like the <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop 5.0</a> and <a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-ring-4-review">Oura Ring 4</a> seem to quietly be on the rise — Fitbit has just <a href="https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-the-new-fitbit-air-is-a-screen-less-subscription-free-fitness-tracker-for-the-masses">unveiled the Fitbit Air</a>, and now it seems Garmin <a href="https://www.tomsguide.com/wellness/fitness-trackers/garmins-rumored-screen-less-wearable-just-might-be-the-subscription-free-whoop-rival-ive-been-waiting-for">isn't far behind</a>. </p><p>A Ukrainian retailer appears to have accidentally leaked the upcoming "Garmin Cirqa" screenless tracker. Spotted by <a href="https://www.notebookcheck.net/Garmin-CIRQA-leaks-at-onlineshop-with-surprisingly-high-price.1296728.0.html" target="_blank">Notebookcheck</a>, this leak suggests the black tracker will be a low-key screenless fabric band available in two sizes: S/M and L/XL.</p><p>As expected, the Garmin Cirqa will monitor heart rate and passively document metrics like steps and calories, as well as sleep quality. So far, so good. But let's talk about that price.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-Xmo3PW"></div>                            </div>                            <script src="https://kwizly.com/embed/Xmo3PW.js" async></script><h2 id="a-high-price-for-minimalism">A high price for minimalism</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="M8T6RzKkhosv69xgzAGj4L" name="Garmin Cirqa leak" alt="A leaked retail page showing an unannounced Garmin fitness tracker" src="https://cdn.mos.cms.futurecdn.net/M8T6RzKkhosv69xgzAGj4L.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Stylus Store)</span></figcaption></figure><p>According to the listing (which, at time of writing, is <a href="https://stls.store/garmin-cirqa-black-010-04675-00-p1457732c1514.html#about" target="_blank">still live</a>), the most eye-catching thing about this minimalist piece of fitness tech is the price. It states the Garmin Cirqa will be available for 22,399 Ukrainian hryvnia, which roughly translates to $507 / £379. That's already more expensive than either the Oura Ring 4 ($349) or the Fitbit Air ($99). And if you throw in a $6.99 per month <a href="https://www.tomsguide.com/wellness/smartwatches/i-tried-garmin-connect-for-a-week-heres-3-things-i-like-and-3-i-dislike">Garmin Connect+ membership</a>, it gets even more pricey.</p><p>Whoop, which arguably started the screenless trend, doesn't charge up front for the band, but users still need to pay between $199 and $359 a year for an active subscription. So if this listing does prove to be true — and the pricing is carried across — Garmin is planning to release the most expensive screenless tracker on the market.</p><p>The natural caveats are all in place: this is an unconfirmed leak, and pricing could easily change in different regions. But at a time when many of us are trying to save as much as possible when it comes to our tech, it would be a bold move for Garmin to launch with a price so much higher than market rivals.</p><div class="product"><a data-dimension112="2d59bf97-e51f-40e2-8086-4eb94af7081a" data-action="Deal Block" data-label="Garmin Forerunner 265 review" data-dimension48="Garmin Forerunner 265 review" data-dimension25="$349" href="https://www.amazon.com/dp/B0BS1T7G8S" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2295px;"><p class="vanilla-image-block" style="padding-top:100.04%;"><img id="xG42cp4qBMeThn5yCckwWQ" name="garmin forerunner 265.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/xG42cp4qBMeThn5yCckwWQ.jpeg" mos="" align="middle" fullscreen="" width="2295" height="2296" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The latest Forerunner is our new top pick for the best Garmin watch. In our <a href="https://www.tomsguide.com/reviews/garmin-forerunner-265" data-dimension112="2d59bf97-e51f-40e2-8086-4eb94af7081a" data-action="Deal Block" data-label="Garmin Forerunner 265 review" data-dimension48="Garmin Forerunner 265 review" data-dimension25="$349">Garmin Forerunner 265 review</a>, we called it "a huge improvement" over the previous model. This iteration of the watch brings a gorgeous AMOLED display with a higher resolution, plus Garmin's Training Readiness Score feature. You also get accurate GPS and lots of advanced training metrics at a glance.<a class="view-deal button" href="https://www.amazon.com/dp/B0BS1T7G8S" target="_blank" rel="nofollow" data-dimension112="2d59bf97-e51f-40e2-8086-4eb94af7081a" data-action="Deal Block" data-label="Garmin Forerunner 265 review" data-dimension48="Garmin Forerunner 265 review" data-dimension25="$349">View Deal</a></p></div><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness/upgrade-your-run-with-these-12-best-running-apparel-picks-on-amazon-under-usd100">Upgrade your run with these 12 best running apparel picks on Amazon under $100</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/garmin-forerunner-70-vs-garmin-forerunner-170-the-main-differences-between-garmins-two-new-running-watches">Garmin Forerunner 70 vs Garmin Forerunner 170 — what are the main differences between Garmin’s two new running watches</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-the-new-fitbit-air-is-a-screen-less-subscription-free-fitness-tracker-for-the-masses">Forget the Whoop 5.0 — The new Fitbit Air is a screen-less, subscription-free fitness tracker for the masses</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Forget the Whoop 5.0 — The new Fitbit Air is a screen-less, subscription-free fitness tracker for the masses ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-the-new-fitbit-air-is-a-screen-less-subscription-free-fitness-tracker-for-the-masses</link>
                                                                            <description>
                            <![CDATA[ The Fitbit Air is the brand’s first new fitness tracker in nearly three years. Not only is it tiny, affordable, and subscription-free, but it also boasts a week of battery and loads of holistic insights. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">4wdjEsa3Zmj2p7mM7qutgA</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/JpSXwAkfnPAtMwt3ZYMFrR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 07 May 2026 14:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/JpSXwAkfnPAtMwt3ZYMFrR-1280-80.jpg">
                                                            <media:credit><![CDATA[Google]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Fitbit Air fitness tracker]]></media:description>                                                            <media:text><![CDATA[Close-up of the Fitbit Air fitness tracker]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Fitbit Air fitness tracker]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/JpSXwAkfnPAtMwt3ZYMFrR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>It’s been nearly three years since we got a new Fitbit model (excluding the kid-centric Fitbit Ace LTE). That all changes today with the introduction of the Fitbit Air, a $99 screenless and subscription-free tracker with a simple-to-use disposition, a week of battery, and basic sleep, workout, and holistic insights.</p><p>While the popular, screen-less <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop 5.0 </a>tracker is targeted toward hardcore athletes, the Fitbit Air is designed to appeal to just about anyone. </p><p>Here’s everything you need to know about the new Fitbit Air, including availability, onboard tech, features, and outlook.</p><h3 class="article-body__section" id="section-fitbit-air-price-and-availability"><span>Fitbit Air: price and availability </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4052px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="gGNW5NbMse5JZrejm5gAGQ" name="Fitbit-Air-02" alt="Close-up of the Fitbit Air fitness tracker" src="https://cdn.mos.cms.futurecdn.net/gGNW5NbMse5JZrejm5gAGQ.jpg" mos="" align="middle" fullscreen="" width="4052" height="2279" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>The Fitbit Air is available for preorder starting today for $99, with units expected to ship by the end of May. That price includes the tracker itself and one swappable band. Additional bands — they come in a huge range of styles — start at $34.99.</p><p>Google is also offering a special edition Stephen Curry strap for the Fitbit Air that’s designed for “increased airflow,” and looks pretty darn snazzy.</p><p>The $99 Fitbit Air additionally includes a 3-month trial to Google Health Premium (previously called Fitbit Premium). </p><p>It’s also worth noting that the <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a> and <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a> will remain in the Fitbit catalog for now.</p><h3 class="article-body__section" id="section-fitbit-air-design"><span>Fitbit Air: Design</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="2kWy3efzpjJSVZR9UpMGJQ" name="Fitbit-Air-04" alt="Close-up of the Fitbit Air fitness tracker" src="https://cdn.mos.cms.futurecdn.net/2kWy3efzpjJSVZR9UpMGJQ.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>The Fitbit Air has no screens or buttons, but an onboard motor provides haptic feedback for alerts; it can also be used to gently and silently wake you up via Fitbit’s Smart Wake feature. The polycarbonate housing sports only a status lamp, which illuminates when the device is charging.</p><p>With dimensions of 1.4 x 0.7 x 0.3 inches and a weight of just 12 g (sans strap), the Fitbit Air truly lives up to its name. Google says it’s the brand's smallest tracker ever, with a footprint that's 25% smaller than the <a href="https://www.tomsguide.com/reviews/fitbit-luxe">Fitbit Luxe</a>. Despite the plastic housing, water resistance is a respectable 50 meters. </p><p>Designed so that you can easily swap one band for another, the selection of strap options at launch is seriously vast, with a wide range of both silicone and textile options to choose from.  </p><h3 class="article-body__section" id="section-fitbit-air-health-and-fitness-features"><span>Fitbit Air: Health and fitness features</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:9788px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="NuN56ab3xSSYyeLJXhGE4R" name="Fitbit-Air-08" alt="Close-up of the Fitbit Air fitness tracker" src="https://cdn.mos.cms.futurecdn.net/NuN56ab3xSSYyeLJXhGE4R.jpg" mos="" align="middle" fullscreen="" width="9788" height="5505" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>The diminutive Fitbit Air sports an optical heart rate sensor, accelerometer, gyroscope, SpO2 sensor, and skin temperature sensor. It’s worth noting, however, that the latter is less sophisticated than the skin temperature sensor found in the latest <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-google-pixel-watch-4-and-it-could-be-my-new-favorite-smartwatch-for-android">Pixel Watch 4</a>.</p><p>The Air can detect several potentially deadly conditions, including atrial fibrillation (AFib). It also monitors heart rate variability and can autodetect a small selection of common workout types, like walking, running, cycling, and swimming. </p><p>In addition to the auto-tracked workouts, the Fitbit Air supports a wide range of other exercises. You’ll just need to manually select those prior to your workout using the companion app. </p><p>There’s no onboard GPS in the Fitbit Air, so you’ll need to bring along a paired smartphone for location and elevation data when working out outdoors. </p><p>When it comes to sleep tracking, the Fitbit Air provides all the insights you’d expect, like how much time you spent in each sleep stage, your total sleep time, any signs of restlessness, and a numerical sleep score out of 100. It can also autodetect naps as brief as 20 minutes. </p><h3 class="article-body__section" id="section-fitbit-air-battery-life"><span> Fitbit Air: Battery life</span></h3><p>Google says that the Fitbit Air battery should last for up to seven days per charge, which is impressive. Charging the device from 0% to 100% takes just 90 minutes, and users can get a full day of juice from just a five-minute charge.</p><p>Similar to other Fitbit models, a magnetic charger with metal contacts attaches to the underside of the device. </p><h3 class="article-body__section" id="section-fitbit-air-outlook"><span>Fitbit Air: Outlook</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6996px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="S7rj9Ysn9dyL4QqAhNFCrQ" name="Fitbit-Air-06" alt="Close-up of the Fitbit Air fitness tracker" src="https://cdn.mos.cms.futurecdn.net/S7rj9Ysn9dyL4QqAhNFCrQ.jpg" mos="" align="middle" fullscreen="" width="6996" height="3936" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>I predict the Fitbit Air appealing to lots of folks, given its $99 price tag and the fact that the core features are completely subscription-free. While it lacks some of the higher-end sensor tech found in the Whoop 5.0, namely onboard GPS and an altimeter, I don’t think that will be a dealbreaker for most users.</p><p>I also love the fact that Google is prioritizing the ability to quickly and painlessly swap out one strap for another to match your mood or outfit. While $34.99 is a tad pricey for a watch strap, I’m confident that cheaper third-party options will become available sooner or later. </p><p>Google is also making it easy for Pixel Watch owners to seamlessly swap back and forth between their smartwatch and a Fitbit Air for tracking purposes. So, if you’re like me and hate wearing a smartwatch to bed, the Fitbit Air could be an excellent nighttime tracking alternative to the chunkier Pixel Watch 4. </p><h3 class="article-body__section" id="section-one-more-thing-the-fitbit-app-is-now-the-google-health-app"><span>One more thing: The Fitbit app is now the Google Health app</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="b2jL3L8cLS9nGEdWdtbJ9D" name="Google_health" alt="Google Health app" src="https://cdn.mos.cms.futurecdn.net/b2jL3L8cLS9nGEdWdtbJ9D.jpg" mos="" align="middle" fullscreen="" width="1600" height="900" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>One more thing! In addition to debuting the Fitbit Air, Google is now officially changing the name of the Fitbit app to the Google Health app. Similarly, Fitbit Premium is now Google Health Premium, which still costs $9.99 a month or $99 for the year. </p><p>This change will begin rolling out on May 19th via an app update. Current Fitbit app users won’t need to download a new app; rather, the update will automatically change the name of the app, import all of your data, and present everything in a new, slicker format.</p><p>Available for both Android and iOS, the new app is built around four core tabs: Today, Fitness, Sleep, and Health, with a major emphasis on user customization. It also plays nicely with tons of other popular fitness apps, including Nike Run Club, <a href="https://www.tomsguide.com/wellness/fitness/i-tried-alltrails-new-custom-routes-tool-and-its-a-game-changer-for-hikers-bikers-and-runners">AllTrails</a>, MyFitnessPal, and the <a href="https://www.tomsguide.com/wellness/smart-rings/i-just-discovered-these-5-hidden-features-on-the-oura-ring-and-you-need-to-know-about-them">Oura app</a>. </p><p>A new feature lets users securely upload medical records to the app for an even more complete view of health. For peace of mind, all health data is encrypted end-to-end. </p><p>Additionally, a new “Leaderboard” feature in the app lets you compete with friends and family in fitness challenges, like who can get the most steps in a given timeframe. </p><p>Finally, Google is bringing its AI-powered, personalized fitness training tool, the "Coach," out of beta and making it available to all premium users.  The Coach can help you set fitness goals, generate workout plans, improve sleep quality, and even custom-tailor daily workouts based on the weather. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/fitbit-is-exiting-the-cheap-smartwatch-race-and-this-brand-could-replace-it">Fitbit is exiting the cheap smartwatch race — and this brand could replace it</a></li><li><a href="https://www.tomsguide.com/wellness/smart-rings/the-oura-ring-5-is-coming-and-these-are-the-5-biggest-upgrades-im-hoping-to-see">The Oura Ring 5 is coming — and these are the 5 biggest upgrades I’m hoping to see</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/take-off-that-apple-watch-5-reasons-why-its-okay-to-swap-your-smartwatch-for-a-dumb-watch">5 reasons why I sometimes still wear a 'dumb' watch</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Finally, a new Fitbit? Rumors of Google’s screenless ‘Fitbit Air’ hint at a spring launch ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/forget-the-whoop-5-0-a-screenless-fitbit-air-could-arrive-this-summer-for-just-usd99</link>
                                                                            <description>
                            <![CDATA[ We may finally get a new Fitbit-branded wearable. The rumored Fitbit Air could cost as little as $99 and go head-to-head with the Whoop 5.0. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">2kak8meDW6cmNZTGrC5gAS</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/FPN2oVhyGKaa4tcqQn5Nm4-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 21 Apr 2026 02:26:22 +0000</pubDate>                                                                                                                                <updated>Wed, 22 Apr 2026 20:59:09 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/FPN2oVhyGKaa4tcqQn5Nm4-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up showing the back of the Fitbit Charge 6]]></media:description>                                                            <media:text><![CDATA[Close-up showing the back of the Fitbit Charge 6]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up showing the back of the Fitbit Charge 6]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/FPN2oVhyGKaa4tcqQn5Nm4-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Fitbit has been a <a href="https://www.tomsguide.com/news/google-acquires-fitbit-for-21-billion">Google brand</a> for roughly five years, and in that time, the big ‘G’ has shuttered the <a href="https://www.tomsguide.com/wellness/smartwatches/google-just-killed-off-fitbit-smartwatches-and-nobody-should-be-surprised">Fitbit smartwatch range</a>, killed some of the <a href="https://www.tomsguide.com/news/google-is-stripping-away-the-things-that-make-fitbit-fitbit-and-its-a-huge-mistake">best Fitbit community features</a>, and even <a href="https://www.tomsguide.com/wellness/fitness-trackers/google-just-killed-another-fitbit-feature-and-now-im-certain-the-brand-is-as-good-as-dead">removed useful apps</a>, like Google Assistant, from still-support devices.</p><p>Outside of the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-ace-lte">Fitbit Ace LTE</a> — a wearable designed with kids in mind —  there hasn’t been a new Fitbit since 2023’s <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a>. That could all change in the next few months, as rumors of a new Fitbit model reach a fevered pitch. There is, however, a slight catch.</p><p>Here’s everything we know so far about the <a href="https://www.tomsguide.com/wellness/fitness-trackers/google-just-gave-us-a-sneak-peek-of-its-screenless-fitbit-band-and-whoop-should-be-worried">rumored Fitbit Air</a>, including possible features and design, a potential launch date, price, and more. </p><h3 class="article-body__section" id="section-fitbit-air-biggest-rumors"><span>Fitbit Air — Biggest rumors </span></h3><ul><li><strong>First teased in early April 2026 by U.S. basketball star Steph Curry </strong></li><li><strong>Rumored to be a screen-less wearable similar to the Whoop 5.0</strong></li><li><strong>Images suggest a lightweight design, possibly available in a range of colors and strap types, including a woven material</strong></li><li><strong>Likely to offer basic workout, movement, and sleep tracking features </strong></li><li><strong>Battery life could exceed two weeks </strong></li><li><strong>Tipped for a mid-May 2026 debut</strong></li><li><strong>Possible $99 launch price; likely subscription-free for core features </strong></li></ul><h3 class="article-body__section" id="section-fitbit-air-possible-price-and-release-date"><span>Fitbit Air — Possible price and release date </span></h3><p>According to an insider report from <a href="https://9to5google.com/2026/04/20/fitbit-air-release-date-price-color-report/" target="_blank">9to5Google</a>, the Fitbit Air could debut as soon as May 16th with a launch price of $99. That's the same cost as the entry-level <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a>.</p><p>More importantly, unlike the biggest player in the screenless, wrist-based tracker market, Whoop, Google will likely offer most of the Fitbit Air's core features without a subscription fee. </p><p>By comparison, the <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop 5.0</a> is either $199 to $349 annually, depending on how extensive you want your training insights. That said, the device itself is technically free with a subscription commitment.</p><h3 class="article-body__section" id="section-fitbit-air-rumored-design"><span>Fitbit Air — Rumored design</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2243px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="mhCxvbV9KM4P9KqNcjtWaR" name="IMG_3573" alt="doing an ECG reading on the Whoop MG" src="https://cdn.mos.cms.futurecdn.net/mhCxvbV9KM4P9KqNcjtWaR.jpg" mos="" align="middle" fullscreen="" width="2243" height="1262" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Based on the images shared on <a href="https://www.instagram.com/stephencurry30/" target="_blank">Steph Curry's Instagram</a>, the Fitbit Air appears to be a diminutive tracker on a woven cloth strap, and a somewhat similar design to the Whoop 5.0.</p><p>According to retail info first reported on by <a href="https://www.droid-life.com/2026/04/20/googles-fitbit-air-will-come-in-3-colors-several-band-options/" target="_blank" rel="nofollow">DroidLife</a>, the Fitbit Air could be available in a wide range of strap types and styles, including both cloth, silicone, and mesh metal options, with colors like 'Obsidian,' 'Lavender,' and 'Berry' on offer. </p><h3 class="article-body__section" id="section-fitbit-air-possible-features"><span>Fitbit Air — Possible features </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1207px;"><p class="vanilla-image-block" style="padding-top:56.17%;"><img id="sD3RENyeioa4hXC5AS62n5" name="Vivosmart4" alt="The sensors on the Garmin Vivosmart 4 fitness tracker" src="https://cdn.mos.cms.futurecdn.net/sD3RENyeioa4hXC5AS62n5.jpg" mos="" align="middle" fullscreen="" width="1207" height="678" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Given the rumored $99 price tag, the Fitbit Air will probably offer fairly basic fitness and health tracking insights, including a range of workout tracking modes, sleep and recovery insights, daily movement tracking with reminders, heart health insights, and women's health tracking.</p><p>That said, given the fact that it's being backed by a famous pro athlete, it's entirely possible that the device is capable of more advanced fitness training tools, advice, and metrics. Those, perhaps, will be locked behind some sort of monthly Google Health subscription. </p><p>No word on battery life, but the lack of a screen should result in solid longevity. The Whoop 5.0, for example, lasts for two weeks per charge. I reckon Google will aim to match or beat this rating with the Fitbit Air.  </p><h3 class="article-body__section" id="section-fitbit-air-vs-garmin-cirqa-vs-whoop"><span>Fitbit Air vs Garmin ‘Cirqa’ vs Whoop </span></h3><div><blockquote><p>I can't get over the fact that in 2026, the biggest innovation we're talking about in wearable tech is the lack of a screen... 2015 called and wants its fitness trackers back.</p></blockquote></div><p>Google isn't the only major consumer tech brand evidently hungry for a piece of the Whoop pie. Reports suggest that Garmin is also working on a subscription-free fitness tracker to rival the Whoop 5.0, possibly named the <a href="https://www.tomsguide.com/wellness/fitness-trackers/garmins-rumored-screen-less-wearable-just-might-be-the-subscription-free-whoop-rival-ive-been-waiting-for">Garmin Cirqa</a>. </p><p>Like the Fitbit Air, the Garmin Cirqa is also tipped for a summer 2026 debut. The question is, will these likely budget-friendly wearables be direct competitors to the seemingly pro athlete-level Whoop? Or, will they be more targeted to the traditional fitness tracker crowd?</p><p>My money is on the latter. However, the fact that Google is clearly going to launch the Fitbit Air with the endorsement of a world-class athlete throws a bit of a monkey wrench into that prediction. </p><p>Ultimately, I can't quite get over the fact that in 2026, the biggest innovation we're talking about in wearable technology is the lack of a screen. It's almost as if 2015 called and wants its fitness trackers back. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/fitbit-is-exiting-the-cheap-smartwatch-race-and-this-brand-could-replace-it">Fitbit is exiting the cheap smartwatch race — and this brand could replace it</a></li><li><a href="https://www.tomsguide.com/wellness/smart-rings/the-oura-ring-5-is-coming-and-these-are-the-5-biggest-upgrades-im-hoping-to-see">The Oura Ring 5 is coming — and these are the 5 biggest upgrades I’m hoping to see</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/take-off-that-apple-watch-5-reasons-why-its-okay-to-swap-your-smartwatch-for-a-dumb-watch">5 reasons why I sometimes still wear a 'dumb' watch</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Google just gave us a sneak peek of its screenless Fitbit band, and Whoop should be worried ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/google-just-gave-us-a-sneak-peek-of-its-screenless-fitbit-band-and-whoop-should-be-worried</link>
                                                                            <description>
                            <![CDATA[ Steph Curry has teased the upcoming screenless Fitbit band on his Instagram, and Google could succeed where others have failed in making a potent Whoop rival. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">8k3oEi3Q983bkLDT23e7zB</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/mhCxvbV9KM4P9KqNcjtWaR-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 01 Apr 2026 14:59:43 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                                    <dc:creator><![CDATA[ Nick Harris-Fry ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/J5Jjp49GUVjLZEbjEkTex.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nick has been a journalist since 2012 and has spent most of that time writing about health and fitness for a variety of publications. Nick spent nine years working on the Coach magazine and website before moving to the fitness team at Tom’s Guide in 2024. Nick is a keen runner and also the founder of YouTube channel &lt;a href=&quot;https://www.youtube.com/channel/UCOBM9FasII4dKbyE_HKkbjw&quot;&gt;The Run Testers&lt;/a&gt;, which specialises in reviewing running shoes, watches, headphones and other gear.&lt;/p&gt;&lt;p&gt;Nick has covered all aspects of health and fitness throughout his career, interviewing experts and celebrities, trying fitness classes and running marathons, all in the name of providing readers with the information they need to get the most out of an active lifestyle.&lt;/p&gt;&lt;p&gt;Nick ran his first marathon in 2016 after six weeks of training for a magazine feature and subsequently became obsessed with the sport. He now has PBs of 2hr 25min for the marathon and 15min 30sec for 5K, and has run 16 marathons in total, as well as a 50-mile ultramarathon.&lt;/p&gt;&lt;p&gt;Nick runs 60-90 miles a week and races regularly with his club, which gives him a lot of opportunity to test out running gear: he has tested and reviewed hundreds of pairs of running shoes, as well as fitness trackers, running watches, sports headphones, treadmills, and all manner of other kit. Nick is also a qualified Run Leader in the UK.&lt;/p&gt;&lt;p&gt;Nick is an established expert in the health and fitness area and along with writing for several publications, including &lt;a href=&quot;https://www.livescience.com/author/nick-harris-fry&quot;&gt;Live Science&lt;/a&gt;, &lt;a href=&quot;https://www.expertreviews.co.uk/authors/nick-harris-fry&quot;&gt;Expert Reviews&lt;/a&gt;, &lt;a href=&quot;https://www.wareable.com/author/n.harris-fry&quot;&gt;Wareable&lt;/a&gt;, &lt;a href=&quot;https://www.coachweb.com/author/nick-harris-fry&quot;&gt;Coach&lt;/a&gt; and &lt;a href=&quot;https://www.getsweatgo.com/author/n.harrisfry&quot;&gt;Get Sweat Go&lt;/a&gt;, he has been quoted on &lt;a href=&quot;https://www.theguardian.com/thefilter/2024/oct/20/if-you-pay-more-than-4-youre-being-ripped-off-the-fair-price-for-14-everyday-items-from-cleaning-spray-to-olive-oil&quot;&gt;The Guardian&lt;/a&gt; and &lt;a href=&quot;https://www.independent.co.uk/life-style/health-and-families/london-marathon-2021-date-training-tips-summer-running-a9482486.html&quot;&gt;The Independent&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Nick graduated from the University of York in 2010 with a degree in Politics, Philosophy and Economics and worked in the NHS for three years, during which time he completed his NCTJ Diploma in Journalism at News Associates in London. Before starting on Coach and moving into health and fitness, Nick worked as a football journalist and lived in Kathmandu, Nepal for two years.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/mhCxvbV9KM4P9KqNcjtWaR-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[doing an ECG reading on the Whoop MG ]]></media:description>                                                            <media:text><![CDATA[doing an ECG reading on the Whoop MG ]]></media:text>
                                <media:title type="plain"><![CDATA[doing an ECG reading on the Whoop MG ]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/mhCxvbV9KM4P9KqNcjtWaR-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Google has trailed the launch of a new screenless fitness tracker, with Steph Curry giving us a sneak peek of the new device on his Instagram account.</p><p>In the video, Curry is seen wearing the screenless grey and orange band, which he describes as the ‘first of its kind’ before saying he won’t spoil it.</p><div class="instagram-embed"><blockquote class="instagram-media"  data-instgrm-version="6" style="width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><p><a href="https://www.instagram.com/p/DWjhdflgcF5/" target="_blank">A post shared by Wardell Curry (@stephencurry30)</a></p><p>A photo posted by  on </p></blockquote></div><p><a href="https://www.bloomberg.com/news/articles/2026-04-01/google-readies-revamped-screenless-fitbit-to-rival-growing-whoop-craze" target="_blank">Bloomberg reports </a>that the band will come with basic features and that you’ll need a Fitbit Premium subscription to unlock its full capabilities.</p><p>That the new tracker will be launched under the Fitbit brand is interesting because Google has seemingly been winding down Fitbit products over the past couple of years. </p><p>This would be a major new launch that leans on Fitbit’s background in fitness tracking, and it could be the first screenless band to really rival <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-5-0-review-should-you-give-a-whoop-about-this-new-tracker">Whoop</a>, which has been dominant in this area of the market.</p><h3 class="article-body__section" id="section-why-fitbit-can-take-on-whoop"><span>Why Fitbit can take on Whoop</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="LYgmUAogLrfdpYGgNsYafQ" name="shutterstock_2574854121" alt="smartphone on laptop keyboard showing Fitbit logo." src="https://cdn.mos.cms.futurecdn.net/LYgmUAogLrfdpYGgNsYafQ.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Shutterstock)</span></figcaption></figure><p>Several screenless bands have hit the market over the past year, with the most notable Whoop rivals being the<a href="https://www.tomsguide.com/wellness/fitness-trackers/amazfit-helio-strap-review"> Amazfit Helio Strap</a> and the<a href="https://www.tomsguide.com/wellness/fitness-trackers/polars-screenless-fitness-tracker-has-arrived-heres-everything-you-need-to-know-about-the-whoop-rival"> Polar Loop</a> band.</p><p>Neither has really dented Whoop’s popularity as yet. The Helio Strap is a good budget alternative but lacks the name recognition of Whoop, while the Polar Loop is undermined by poor software and hasn’t proved to be that accurate in my testing either.</p><p>Whoop has also been successful in blocking the sale of some rivals, like the <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-wins-injunction-to-block-sale-of-rival-lexqi-band-what-does-this-mean-for-polar">Lexqi band</a>, and has sued Polar for ‘copying’ its design, something <a href="https://www.tomsguide.com/wellness/fitness-trackers/whoop-just-sued-polar-over-the-design-of-its-loop-fitness-tracker">Polar firmly denied</a> when we asked them for comment.</p><p>A Google/Fitbit band wouldn’t have any problems with name recognition or its app. Fitbit remains one of the biggest names in fitness tracking tech, and the Fitbit app is easy and enjoyable to use, which is vital with a screenless band when you rely on the app to see all your data.</p><p>Showcasing the band on the wrist of Steph Curry is also a notable move because Whoop has always benefited from having a lot of partnerships with elite athletes across a range of sports. </p><p>Athletes don’t get much bigger and more recognizable than Curry, and if Google is smart, they’ll have other pros lined up to show off wearing the band.</p><p>It promises to be a big year for screenless trackers, with rumors of a Garmin band continuing to swirl as well. We’ll test any new bands as soon as we can to see if they really are a compelling Whoop alternative.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/not-the-fenix-9-this-is-the-new-garmin-watch-i-want-to-see-in-2026?hasComeFromProof=true">Not the Fenix 9 — this is the new Garmin watch I want to see in 2026</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/coros-pace-4-vs-coros-pace-3-vs-coros-pace-pro-which-is-the-best-coros-watch-for-you">Coros Pace 4 vs Coros Pace 3 vs Coros Pace Pro: Which is the best Coros watch for you?</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/garmin-fenix-8-vs-garmin-fenix-8-pro-should-you-upgrade">Garmin Fenix 8 vs. Garmin Fenix 8 Pro: should you upgrade?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 5 wearable tech predictions for 2026 — from futuristic Fitbits to the ever-elusive Apple Ring ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/smartwatches/5-biggest-wearable-tech-predictions-for-2026-from-new-fitbits-to-the-ever-elusive-apple-ring</link>
                                                                            <description>
                            <![CDATA[ From likely releases from Apple and Fitbit to long shots, these are the smartwatch and smart ring debuts I'm hoping for most in the new year. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">wuPCTdgecvA3fNkSsf92N</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/HZiASkxSpuMQBmVmc8cQhV-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 16 Dec 2025 08:01:00 +0000</pubDate>                                                                                                                                <updated>Fri, 19 Dec 2025 06:51:37 +0000</updated>
                                                                                                                                            <category><![CDATA[Smartwatches]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/HZiASkxSpuMQBmVmc8cQhV-1280-80.jpg">
                                                            <media:credit><![CDATA[Copilot/DALL-E 3]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Apple Smart Ring]]></media:description>                                                            <media:text><![CDATA[Apple Smart Ring]]></media:text>
                                <media:title type="plain"><![CDATA[Apple Smart Ring]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/HZiASkxSpuMQBmVmc8cQhV-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>2025 was an exciting year for wearable tech. Oura dropped a new smart ring, Apple updated every Apple Watch model in the lineup, Samsung brought back the clicky bezel for its flagship Galaxy Watch and lots of revolutionary new safety tools debuted—including hypertension detection (Apple) and loss of pulse detection (Google).</p><p>So, what does 2026 have in store for wearable devices? It’s time for me to once again gaze into the consumer tech crystal ball (I just updated the firmware) and make predictions for the year ahead. </p><p>With that in mind, here are the potential product drops I’m most excited for in 2026, from likely-to-launch models to total Hail Marys. </p><h3 class="article-body__section" id="section-apple-watch-series-12"><span>Apple Watch Series 12 </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3840px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="g6cEh4MumgB8V7qrZwi5Nc" name="Apple Watch Series 11-1" alt="Apple Watch Series 11 on a person's wrist" src="https://cdn.mos.cms.futurecdn.net/g6cEh4MumgB8V7qrZwi5Nc.jpg" mos="" align="middle" fullscreen="" width="3840" height="2160" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>You can bet your bottom dollar that Apple will debut a new Apple Watch Series 12 come fall, 2026. The Cupertino kid has maintained this release schedule for the brand’s flagship smartwatch for eleven years straight; the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-11-review">Apple Watch Series 11</a> is the latest installment. </p><p>With the wallet-friendly SE and rugged Ultra series refreshed every two to three years — and I don’t expect a new version of either for 2026 — this frees up Apple to focus solely on the Series 12.</p><p>Ultimately, the jump from the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-11-vs-apple-watch-10">Apple Watch Series 10 to the Series 11</a> is a minor one. The newer model sports the same case design and display, with better battery life, slightly tougher screen protection, optional 5G (vs. 4G-LTE), and not a whole lot else. </p><div><blockquote><p>The Series 12 might represent a more significant update, akin to the jump from the Series 9 to the Series 10.</p></blockquote></div><p>This leads me to believe that the Series 12 might represent a more significant update, akin to the jump from the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-10-vs-apple-watch-9-biggest-upgrades">Series 9 to the Series 10</a>, which brought about a new, sleeker case design, faster charging, and a better display.  </p><p>Rumors on the Apple Watch Series 12 are fairly thin as of writing, but upgraded health tracking tools, a more efficient and potentially brighter display, onboard Apple Intelligence features, and improved battery life are all possible. </p><h3 class="article-body__section" id="section-fitbit-charge-7"><span>Fitbit Charge 7</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3800px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="AfagmsVBggYaP7Ri4jaNEU" name="Charge-5-v-Charge-6-04.jpg" alt="Fitbit Charge 6 vs. Charge 5" src="https://cdn.mos.cms.futurecdn.net/AfagmsVBggYaP7Ri4jaNEU.jpg" mos="" align="middle" fullscreen="" width="3800" height="2138" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I’ve got to be honest, up until a few months ago, I really thought <a href="https://www.tomsguide.com/wellness/fitness-trackers/rip-fitbit-5-alternatives-to-fitbits-best-trackers-and-smartwatches">Fitbit was as good as dead</a>. However, reps from the brand casually mentioned <a href="https://www.tomsguide.com/wellness/fitness-trackers/google-says-new-fitbit-hardware-is-coming-in-2026">new Fitbit models for 2026</a> during a press briefing on the latest AI-powered, personalized <a href="https://www.tomsguide.com/wellness/fitness/i-spent-20-minutes-chatting-with-fitbits-new-ai-fitness-coach-5-things-that-surprised-me">Fitbit Premium features</a> (the Fitbit app is also the default workout app on the Pixel Watch range).</p><p>With Google also acknowledging the <a href="https://www.tomsguide.com/wellness/smartwatches/google-just-killed-off-fitbit-smartwatches-and-nobody-should-be-surprised">end of the road for Fitbit-branded smartwatches</a>, the new models will likely come in the form of traditional fitness trackers. </p><div><blockquote><p>Despite debuting in 2023, the Fitbit Charge 6 remains the best fitness tracker available today.</p></blockquote></div><p>Despite debuting in 2023, the <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a> remains the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness tracker</a> available today, and gosh darn is it due for a refresh. Not only would such a move make my job as a wearables reviewer much easier — I recommend the Charge 6 frequently, but with the caveat that it's long in the tooth — it would likely keep the Fitbit name at the forefront of the best fitness tracker convo for the foreseeable future.</p><p>As far as features, rumors are far and few between. So, here’s what I’m hoping for in a Fitbit Charge 6: Improved battery life that lasts well over a week, an onboard altimeter for precision elevation data, dual-band GPS for better location tracking, onboard music storage, and a larger, brighter display… all in a similarly-sized package. Oh, and some additional smart features would be nice. </p><h3 class="article-body__section" id="section-fitbit-inspire-4"><span>Fitbit Inspire 4</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="DoPYvNjBt4ygR6hHXQfTmY" name="Fitbit-Inspire3-set-up-8.jpg" alt="How to set up the Fitbit Inspire 3." src="https://cdn.mos.cms.futurecdn.net/DoPYvNjBt4ygR6hHXQfTmY.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>The other likely Fitbit candidate due for a refresh is the <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a>, which debuted all the way back in 2022. This is Fitbit’s most entry-level, wallet-friendly option. It’s also the lightest, easiest-wearing Fitbit in the lineup.</p><p>Like a potential Charge 7, leaks and insider details on the Fitbit Inspire 4 amount to little. So once again, here’s what I’m wishing for: a larger and brighter screen, onboard GPS (even if it’s only single-band), support for NFC payments, onboard music storage, and a similarly affordable price to the Inspire 3 ($99).</p><h3 class="article-body__section" id="section-samsung-galaxy-ring-2"><span>Samsung Galaxy Ring 2</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="gzxQxmJUpx6CdtEMQiYrKb" name="Galaxy-Ring-1.jpg" alt="The Samsung Galaxy Ring in a user's hand with blue painted fingernails" src="https://cdn.mos.cms.futurecdn.net/gzxQxmJUpx6CdtEMQiYrKb.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The <a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-ring-review">Samsung Galaxy Ring</a> is roughly a year-and-a-half old. One of my top choices in our <a href="https://www.tomsguide.com/wellness/fitness-trackers/best-smart-rings">best smart ring guide</a>, unlike the wearables above, there are a number of <a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-ring-2">Galaxy Ring 2 rumors</a> floating around, some more believable than others.</p><p>Potential upgrades include a thinner and more comfortable design, significant battery life gains, an onboard body temperature sensor, improved tracking accuracy, all sorts of new AI-based personalized training tools, and an expansion of the sizes. </p><p>As of writing, the Samsung Galaxy Ring is the closest smart ring to beating the<a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-ring-4-review"> Oura Ring 4</a>. No doubt, Samsung is eager to jump ahead of the competition with its follow-up device. With that in mind, if we do get a Galaxy Ring 2 in 2026, I’m betting it will be a fairly hefty upgrade. </p><h3 class="article-body__section" id="section-apple-ring"><span>Apple Ring</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="xNKwFX2ybydJTPQ2dGxhAd" name="Apple Ring concept1.jpg" alt="A concept image of the Apple smart ring" src="https://cdn.mos.cms.futurecdn.net/xNKwFX2ybydJTPQ2dGxhAd.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class="inline"></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Midjourney AI)</span></figcaption></figure><p>Okay, now we’re officially in ‘probably not going to happen’ territory, but a wearable tech journalist can dream. <a href="https://www.tomsguide.com/wellness/fitness-trackers/apple-ring-rumors-release-date-price-design-features#section-apple-ring-rumored-features">Rumors of an Apple Ring</a> have been circulating since before I was of legal drinking age (I’m 37). Over the year, Apple has filed all sorts of patents that seem to hint at a potential finger-based wearable.</p><p>The question is, are these patents being filed as a purely defensive move, or do Tim Cook and Co. actually have intentions to one day drop an Apple smart ring? I obviously cannot say; my crystal ball only sees so much. </p><p>If we do get an Apple Ring in 2026, and that’s an ‘if’ the size of the Burj Khalifa, it could be pretty darn cool. From <a href="https://www.tomsguide.com/wellness/smart-rings/rumored-apple-smart-ring-may-do-more-than-track-your-health-what-we-know">gesture controls</a> and an onboard voice assistant (here’s hoping for an <a href="https://www.tomsguide.com/phones/iphones/apples-reportedly-closing-in-on-a-deal-to-power-ai-siri-with-google-gemini-what-that-means-for-you">AI-powered Siri</a>) to advanced fitness-focused tools and seamless integration with all your other Apple products, I’d be first in line to try the Apple iRing.</p><p>What wearable technology launches are you most hoping for in 2026? And what are some features that might convince you to upgrade from your current wearable? Let me know in the comments below. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/google-exclusive-how-the-pixel-watch-3-got-a-life-saving-feature-the-apple-watch-cant-match">Google Exclusive: How the Pixel Watch 3 got a life-saving feature the Apple Watch can't match</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/5-biggest-wearables-predictions-for-2025-samsung-ar-smart-glasses-apple-watch-11-and-more">5 smartwatch and smart ring predictions for 2025 — Apple Watch Ultra 3, Samsung AR glasses and more</a></li><li><a href="https://www.tomsguide.com/wellness/smart-rings/i-test-smart-rings-5-battery-maintenance-tips-to-avoid-catastrophe">I test smart rings — 5 battery maintenance tips to avoid catastrophe</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I had a long, frank conversation with an AI 'fitness coach' — and it wasn't nearly as weird or awkward as I expected  ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness/i-spent-20-minutes-chatting-with-fitbits-new-ai-fitness-coach-5-things-that-surprised-me</link>
                                                                            <description>
                            <![CDATA[ I chatted with Fitbit's new Gemini-powered virtual fitness trainer for nearly 20 minutes, and it wasn't nearly as weird as I anticipated. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">pgekpkfMfDHNDUqB5MnXvT</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/AZ96hmo6jgBwYJFCBhwes6-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 14 Nov 2025 10:30:00 +0000</pubDate>                                                                                                                                <updated>Mon, 17 Nov 2025 23:36:01 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/AZ96hmo6jgBwYJFCBhwes6-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Fitbit Charge 6 and Fitbit Coach]]></media:description>                                                            <media:text><![CDATA[Fitbit Charge 6 and Fitbit Coach]]></media:text>
                                <media:title type="plain"><![CDATA[Fitbit Charge 6 and Fitbit Coach]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/AZ96hmo6jgBwYJFCBhwes6-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>If the idea of a 20-minute chat with an AI fitness coach makes you feel a little uneasy, you're not alone. This is why I initially shrugged when Google first mentioned its forthcoming Fitbit 'Coach' feature, powered by Gemini AI, during this summer's launch of the <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-google-pixel-watch-4-and-it-could-be-my-new-favorite-smartwatch-for-android">Pixel Watch 4</a>.</p><p>In the past 12 months, nearly every smartwatch and smart ring maker has rushed to incorporate shiny new AI tools within their companion apps, supposedly with the goal of creating a more personalized and informative user experience. However, from my experience testing these new features so far, none really live up to the hype.</p><p>At best, AI-based wellness assistants are able to surface your holistic metrics when called upon and provide slightly better-than-common-sense answers to queries. Some, like Apple's <a href="https://www.tomsguide.com/wellness/fitness/i-ran-15-miles-with-the-apple-watchs-new-workout-buddy-heres-my-verdict">Workout Buddy</a> and Samsung's <a href="https://www.tomsguide.com/wellness/smartwatches/samsung-galaxy-watch-8-review#section-samsung-galaxy-watch-8-health-and-fitness-tracking">Running Coach</a>, can even create customized workout routines for basic activities like running.</p><h3 class="article-body__section" id="section-what-is-fitbit-coach"><span>What is 'Fitbit Coach'?</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4031px;"><p class="vanilla-image-block" style="padding-top:56.24%;"><img id="kLNDdJnGXchhgXyCSUqfL" name="FitbitCoach-03" alt="Fitbit Coach; Google's new Gemini-powered AI wellness assistant" src="https://cdn.mos.cms.futurecdn.net/kLNDdJnGXchhgXyCSUqfL.jpg" mos="" align="middle" fullscreen="" width="4031" height="2267" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p><a href="https://www.tomsguide.com/wellness/fitness-trackers/google-says-new-fitbit-hardware-is-coming-in-2026">Fitbit Coach</a> aims to take things a step further with highly specific and adaptive training plans based on a user's goal, abilities, equipment, personal preferences, and current health trends. It's also a 24/7 chatbot, supposedly with the ability to answer genuinely complex questions. </p><p>Currently available to <a href="https://www.tomsguide.com/news/is-fitbit-premium-worth-it">Fitbit Premium</a> subscribers ($9.99 a month/$79.99 a year) as a not-fully-flushed-out preview, Google has lofty ambitions for Fitbit Coach. On the user end, the onboarding process starts with a long, personal chat with 'The Coach.' </p><p>Despite my hesitations, I fired up the Fitbit app on my Pixel phone and dove headfirst into the wild west of AI-powered fitness training. </p><p>Here are the five biggest things that surprised me about the Fibit Coach onboarding process. </p><h3 class="article-body__section" id="section-1-the-whole-process-was-surprisingly-conversational"><span>1. The whole process was surprisingly conversational</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4026px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="xoveNjSvm7YNZugEYDypM" name="FitbitCoach-04" alt="Fitbit Coach; Google's new Gemini-powered AI wellness assistant" src="https://cdn.mos.cms.futurecdn.net/xoveNjSvm7YNZugEYDypM.jpg" mos="" align="middle" fullscreen="" width="4026" height="2265" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>When I first demoed Fitbit Coach, Google reps recommended that I complete the onboarding process via dictation using my standard conversational voice. The questions during the process are presented via a text chat, and indeed, you can type your answers in. However, I found pressing the small microphone and dictating my answers made everything feel more natural.</p><p>The Gemini-powered Coach responds via text with an upbeat and encouraging tone. The goal of the onboarding is for your Coach to get an understanding of your current health status and goals, and then parlay that into a customized weekly fitness plan. </p><p>The first thing the Coach asks is what kinds of workouts you currently enjoy. I was admittedly pretty rambly in my answer; however, the Coach was able to parse my key points without any issue, possibly better than a human might. </p><h3 class="article-body__section" id="section-2-i-spoke-to-the-coach-for-nearly-20-minutes"><span>2. I spoke to the Coach for nearly 20 minutes</span></h3><div><blockquote><p>I said that my primary goal is to prep my legs for extra stamina come snowboard season.</p></blockquote></div><p>Google says the onboarding process takes an average of fifteen minutes. Time must fly when you're talking about personal wellness, because I clocked my onboarding at just under 20 minutes. As noted above, I definitely rambled a bit in my answers and jumped back and forth between topics. None of this caused any hiccups with the Coach understanding my abilities and fitness habits, though.</p><p>After asking about your current workout routines and preferences, the Coach then inquires about your fitness goals. For this, I said that my primary goal was to prep my legs for extra stamina come snowboard season. I also expressed a desire to incorporate more short bursts of cardio into my work days, along with additional dumbbell-based workouts to tone my upper body.  </p><p>'No problemo,' said the Coach.</p><h3 class="article-body__section" id="section-3-goals-are-now-weekly-rather-than-daily"><span>3. Goals are now weekly, rather than daily</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3262px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="uBLQSayvo4gFBgngHhux7b" name="Rings-3" alt="Apple Watch SE sitting on a red table with the owner's Activity Rings shown nearly closed" src="https://cdn.mos.cms.futurecdn.net/uBLQSayvo4gFBgngHhux7b.jpg" mos="" align="middle" fullscreen="" width="3262" height="1835" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Since the dawn of the fitness tracker, daily step count and physical activity goals have been the norm. That will no longer be the case for Fitbit and Pixel Watch users. Google is moving away from daily goals and instead placing an emphasis on weekly ones.</p><p>Rather than stressing about '<a href="https://www.tomsguide.com/features/i-closed-my-apple-watch-rings-for-an-entire-week-heres-what-i-learned">closing your Rings</a>' on a daily basis, as Apple Watch users are accustomed to, Fitbit/Pixel Watch owners will now be encouraged to look at their wellness through the lens of a rolling seven-day period.  </p><p>This change, which is already in place within the new Fitbit Premium preview, will ultimately make its way to all users, including non-Premium ones, with an app relaunch set for early 2026. </p><h3 class="article-body__section" id="section-4-my-coach-generated-workout-plan-is-well-varied"><span>4. My Coach-generated workout plan is well varied </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3932px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="KcL9eMtoMFKdow4DdRY8N" name="FitbitCoach-02" alt="Fitbit Coach; Google's new Gemini-powered AI wellness assistant" src="https://cdn.mos.cms.futurecdn.net/KcL9eMtoMFKdow4DdRY8N.jpg" mos="" align="middle" fullscreen="" width="3932" height="2212" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Once you complete your onboarding with the Coach — which ends with a question about any health conditions or concerns — it takes about 20 minutes for the Coach (Gemini) to generate your personal workout plan.</p><p>When mine was finally ready, I gave it a quick look over and was nothing short of impressed. As requested, the workouts are varied day-to-day, considerably.  On Wednesday, I was instructed to do a 'leg endurance builder' workout, which consists of a mix of Goblet Squats, Step-ups, and Forward Lunges. </p><p>Thursday is a 'quick cardio and upper body toning' day, with a thorough list of ten exercises to complete. On Friday, my focus is on quick, aerobic walking to help with stamina. Saturday is for glute and quad endurance. </p><h3 class="article-body__section" id="section-5-adjusting-workouts-is-as-simple-as-chatting-with-the-coach"><span>5. Adjusting workouts is as simple as chatting with the Coach</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3745px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="mitW9q8GJ7CfxoPRdc5ZUH" name="PixelWatch4-rev-02" alt="Close-up of the Google Pixel Watch 4 in black on a black strap" src="https://cdn.mos.cms.futurecdn.net/mitW9q8GJ7CfxoPRdc5ZUH.jpg" mos="" align="middle" fullscreen="" width="3745" height="2106" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>If I'm not feeling one of the suggested workouts or it's outside of my abilities, I can simply 'chat' with the Coach and ask for an alternative workout at any given time, or simply remove the workout from my routine with a few taps. </p><p>Also of note, several of the exercises recommended by the Coach are new to me. Fortunately, there are visual demonstrations with explainers for each. </p><p>While I've only begun scratching the surface of what the new Gemini AI-powered Fitbit Coach feature is capable of — this is my first week following the training plan — I'm already cautiously optimistic about how useful, and not-creepy-robot-like the whole experience is. </p><p>Stay tuned for a deeper dive into the Fitbit Coach preview. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html">The best Fitbit for tracking your health: Expert tested and rated</a></li><li><a href="https://www.tomsguide.com/tech/the-future-of-wearable-wellness-tech-5-wild-predictions-for-2035-according-to-experts-and-industry-leaders">The future of wearable wellness tech: 5 wild predictions for 2035 according to experts and industry leaders</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/samsung-galaxy-watch-8-vs-google-pixel-watch-4-which-flagship-android-watch-wins">Samsung Galaxy Watch 8 vs Google Pixel Watch 4 — which flagship Android watch wins?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Maybe Fitbit isn't dead after all? Google says new hardware is coming in 2026 ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/google-says-new-fitbit-hardware-is-coming-in-2026</link>
                                                                            <description>
                            <![CDATA[ Google is rolling out an AI-powered Fitbit app with personalized coaching. Plus: new Fitbit devices for 2026, including (maybe) a Fitbit Charge 7. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">zpTmqNTogWXv5jDWmC5zoK</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/AfagmsVBggYaP7Ri4jaNEU-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 28 Oct 2025 03:20:55 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Oct 2025 20:22:29 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/AfagmsVBggYaP7Ri4jaNEU-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Fitbit Charge 6 vs. Charge 5]]></media:description>                                                            <media:text><![CDATA[Fitbit Charge 6 vs. Charge 5]]></media:text>
                                <media:title type="plain"><![CDATA[Fitbit Charge 6 vs. Charge 5]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/AfagmsVBggYaP7Ri4jaNEU-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Maybe the Fitbit brand isn’t dead after all? During a press preview of the revamped Fitbit app last week, Fitbit’s head of product, Andy Abramson, nonchalantly hinted at new Fitbit hardware launching in 2026.</p><p>This came as a bit of a surprise, given Google’s penchant over the past few years for slowly sucking the life out of the Fitbit brand. </p><p>Since acquiring Fitbit, Google has <a href="https://www.tomsguide.com/wellness/smartwatches/google-just-killed-off-fitbit-smartwatches-and-nobody-should-be-surprised">shuttered the Fitbit Sense and Versa</a> smartwatch lines, <a href="https://www.tomsguide.com/wellness/fitness-trackers/google-just-killed-another-fitbit-feature-and-now-im-certain-the-brand-is-as-good-as-dead">ended support for Google Assistant</a> across the Fitbit ecosystem, nixed popular Fitbit community features like challenges, and <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbitcom-is-shutting-down-next-week-what-you-need-to-know">shuttered Fitbit.com</a>, all while harvesting the best Fitbit technology and metrics for the <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-google-pixel-watch-4-and-it-could-be-my-new-favorite-smartwatch-for-android">Pixel Watch line</a>.</p><p>So, excuse me for thinking <a href="https://www.tomsguide.com/wellness/smartwatches/google-is-slowly-shuttering-fitbit-should-you-still-buy-one">Fitbit was as good as dead</a>. Here’s everything you need to know about potential new Fitbit models in 2026, along with details on the new Fitbit app. </p><h2 id="a-new-fitbit-model-is-long-overdue">A new Fitbit model is long overdue</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Tmm4eR7HkY3pHjiXBYCbKD" name="fitbit ace lte avatar customization 2.jpg" alt="Fitbit Ace LTE avatar" src="https://cdn.mos.cms.futurecdn.net/Tmm4eR7HkY3pHjiXBYCbKD.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Aside from the kid-centric <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-ace-lte">Fitbit Ace LTE</a> launched in 2024, we haven’t seen a new Fitbit model since the debut of the <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a> all the way back in October 2023. In the world of wearable tech, two years might as well be an eternity.</p><p>While the Fitbit Charge 6 remains my top pick as the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html">best Fitbit in 2025</a>, its age is starting to show; for example, the screen feels downright tiny by today's standards. The same can be said for the wallet-friendly <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a>, which debuted in September 2022. </p><p>The question is, when Google says new Fitbit hardware is coming, does that mean an update to an existing Fitbit model, or an entirely new Fitbit form factor? My money is on the former. </p><h2 id="2026-fitbit-upgrade-predictions">2026 Fitbit upgrade predictions</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="DoPYvNjBt4ygR6hHXQfTmY" name="Fitbit-Inspire3-set-up-8.jpg" alt="How to set up the Fitbit Inspire 3." src="https://cdn.mos.cms.futurecdn.net/DoPYvNjBt4ygR6hHXQfTmY.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Though new Fitbit models may be relegated to kid-friendly devices only, I’m hopeful that 2026 will bring us a proper replacement for the Fitbit Charge 6. What might a Fitbit Charge 7 offer? My best guess is a larger and brighter display, a better GPS, the addition of an altimeter for elevation tracking, improved battery life, and possibly new health sensors and safety features!</p><p>A Fitbit Inspire 4 will likely similarly offer a larger screen that’s easier to interact with and updated holistic features. That said, I doubt the Inspire series will gain a GPS, as that’s one of the biggest differentiators between it and the Charge series. </p><h2 id="refreshed-fitbit-app-with-ai-coaching">Refreshed Fitbit app with AI coaching</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3893px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="QKSyBAJE5m3j2JEiiARwdN" name="FitbitSense2-Alexa" alt="Fitbit Sense 2 on a user's wrist with the Amazon Alexa app shown" src="https://cdn.mos.cms.futurecdn.net/QKSyBAJE5m3j2JEiiARwdN.jpg" mos="" align="middle" fullscreen="" width="3893" height="2190" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>In addition to new Fitbit hardware in 2026, Fitbit is also rolling out a completely overhauled Fitbit app, and you can take a preview of the new app for a spin starting on October 27. </p><p>Most notably, the new Fitbit app seamlessly integrates a Gemini-powered AI wellness coach into a more visually appealing platform with friendlier graphs, more intelligently organized data, and enhanced user customization. </p><p>While non-premium users will benefit from the aesthetic improvements, the AI coach is only for Premium users. However, it’s not just for hardcore athletes; rather, the feature is designed to get to know you and help you improve your physical fitness, no matter your skill level or workout goals. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="KGyVMTsz22jQzFt2wrmtBR" name="TG_Fitbit-Versa-4_LIST.jpg" alt="Fitbit Versa 4" src="https://cdn.mos.cms.futurecdn.net/KGyVMTsz22jQzFt2wrmtBR.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>For now, the overhauled app preview is only available for U.S.-based Fitbit Premium subscribers using an Android device. iOS folks will need to wait until “later this year” to take the new personalized AI features for a spin.</p><p>It’s also worth noting that Premium users will ultimately have the choice to opt in or out of Google’s new AI coach feature. Those who choose to opt in will be presented with a five to ten-minute “onboarding chat” with the coach, where, using natural language, you share your current workout habits and goals, favorite physical activities, any injuries, gear, motivations, ect. </p><p>Once complete, your new Fitbit AI coach is supposed to help come up with workout plans that suit your proclivities, while providing advice, insights, and motivation along the way. </p><p>Stay tuned for a deeper dive into the new AI-powered Fitbit app, including takeaways from the onboarding chat and a verdict on its overall usefulness. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smart-rings/i-test-smart-rings-5-battery-maintenance-tips-to-avoid-catastrophe">I test smart rings — 5 battery maintenance tips to avoid catastrophe</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-the-suunto-vertical-2-and-it-beats-my-favorite-garmin-in-5-big-ways">I just went hands-on with the Suunto Vertical 2 — and it beats my favorite Garmin in 5 big ways</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/watchos-26-heres-how-to-enable-your-apple-watchs-sleep-score">Apple Watch finally gets a sleep score — here's how to unlock yours</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Your Fitbit sleep score just got worse — here's why that's good news  ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/your-fitbit-sleep-score-just-got-worse-heres-why-thats-good-news</link>
                                                                            <description>
                            <![CDATA[ The new scores are supposed to be more accurate, but users aren't thrilled with their scores getting lower. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">TZ8cBkhTQxbQPPiXJ5QmtZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/oRUgsepASWy9b5j7re65eM-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 05 Aug 2025 13:56:25 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dave.leclair@futurenet.com (Dave LeClair) ]]></author>                    <dc:creator><![CDATA[ Dave LeClair ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/fyx7qYdxPMTNBhdnMfNmaB.png ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Dave LeClair is the Senior News Editor for Tom&#039;s Guide, keeping his finger on the pulse of all things technology. He loves taking the complicated happenings in the tech world and explaining why they matter. Whether Apple is announcing the next big thing in the mobile space or a small startup advancing generative AI, Dave will apply his experience to help you figure out what&#039;s happening and why it&#039;s relevant to your life.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Before Tom&#039;s Guide, Dave worked for publications like PCMag, Pocket-lint, MUO, How-To Geek, Digital Trends, and others. He started writing about technology professionally for MUO in 2011 and hasn&#039;t looked back since. In addition to news, you can find reviews, how-to pieces, shopping guides, and many other types of content with Dave&#039;s name attached.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/oRUgsepASWy9b5j7re65eM-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[a photo of the screen on the Fitbit Charge 6]]></media:description>                                                            <media:text><![CDATA[a photo of the screen on the Fitbit Charge 6]]></media:text>
                                <media:title type="plain"><![CDATA[a photo of the screen on the Fitbit Charge 6]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/oRUgsepASWy9b5j7re65eM-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Fitbit may be a brand that's far less at the forefront of people's minds <a href="https://www.tomsguide.com/wellness/fitness-trackers/google-just-killed-another-fitbit-feature-and-now-im-certain-the-brand-is-as-good-as-dead">since Google started killing off certain Fitbit features</a> after acquiring the company for $2.1 billion in 2021.</p><p>But the fitness tracking company is far from dead. In fact, it just released a huge sleep tracking update that changes the way it scores your sleep.</p><p>And it turns out the changes are actually lowering user scores. It's by design, as the new changes are meant to be more accurate. In most cases, it appears that Fitbit was scoring too high previously, so the new metric is intended to level things out and bring the scores into a more accurate range.</p><div style="min-height: 250px;">                                <div class="kwizly-quiz kwizly-ONRN2O"></div>                            </div>                            <script src="https://kwizly.com/embed/ONRN2O.js" async></script><p>But that doesn't mean users of the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html">best Fitbits</a> are happy about it.</p><h2 id="what-s-happening-with-fitbit-s-sleep-tracking">What's happening with Fitbit's sleep tracking?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3976px;"><p class="vanilla-image-block" style="padding-top:56.49%;"><img id="7K462TB8CytXUpraxNqqM5" name="Fitbit sleep 1.JPG" alt="Sleep tracking on a Fitbit Charge 4" src="https://cdn.mos.cms.futurecdn.net/7K462TB8CytXUpraxNqqM5.jpg" mos="" align="middle" fullscreen="" width="3976" height="2246" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-fit3-vs-fitbit-inspire-3-which-budget-fitness-tracker-wins">Samsung Galaxy Fit3 vs Fitbit Inspire 3: Which budget fitness tracker should you buy?</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-tracked-skiing-with-a-usd99-smartwatch-heres-how-it-compares-to-my-usd450-garmin">I tracked skiing with a $99 smartwatch — here’s how it compares to my $450 Garmin</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-5-000-steps-with-the-amazfit-bip-5-vs-armitron-matrix-this-sub-usd100-smartwatch-wins">Under $100 smartwatch test: I walked 5,000 steps with the Amazfit Bip 5 vs Armitron Matrix — here’s the winner</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Fitbit was down — live updates on the outage ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/news/live/fitbit-outage-july-17-2025</link>
                                                                            <description>
                            <![CDATA[ Fitbit was down after a "major outage." Here's everything we know so far and live updates. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">eNq3Y6NaX47XNk4UiiBLPg</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/LYgmUAogLrfdpYGgNsYafQ-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Thu, 17 Jul 2025 13:34:15 +0000</pubDate>                                                                                                                                <updated>Thu, 17 Jul 2025 14:55:47 +0000</updated>
                                                                                                                                            <category><![CDATA[Internet]]></category>
                                                    <category><![CDATA[Computing]]></category>
                                                                                                                    <dc:creator><![CDATA[ Jason England ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/v4fSq5U4uZUEtGY2BwNuJ6.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Jason brings a decade of tech and gaming journalism experience to his role as a Managing Editor of Computing at Tom&#039;s Guide. He has previously written for Laptop Mag, Tom&#039;s Hardware, Kotaku, Stuff and BBC Science Focus. In his spare time, you&#039;ll find Jason looking for good dogs to pet or thinking about eating pizza if he isn&#039;t already.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/LYgmUAogLrfdpYGgNsYafQ-1280-80.jpg">
                                                            <media:credit><![CDATA[Shutterstock]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[ smartphone on laptop keyboard showing Fitbit logo.]]></media:description>                                                            <media:text><![CDATA[ smartphone on laptop keyboard showing Fitbit logo.]]></media:text>
                                <media:title type="plain"><![CDATA[ smartphone on laptop keyboard showing Fitbit logo.]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/LYgmUAogLrfdpYGgNsYafQ-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Fitbit services were down for quite some time this morning, and the company acknowledged a <a href="https://status.fitbit.com/" target="_blank">"major outage"</a> that's currently listed as having "Functionality back to normal."</p><p>This comes following over 2,000 outage reports on <a href="https://downdetector.com/status/fitbit/" target="_blank">Down Detector</a>, and people claiming they are unable to access services on the app. Those reports have dropped precipitously, getting below 500, which is a clear indicator that the outage is over.</p><p>We covered the outage live to determine what went wrong and the steps taken to fix the problem.</p><h3 class="article-body__section" id="section-fitbit-was-down-live-updates-on-the-outage"><span>Fitbit was down — live updates on the outage</span></h3><h2 id="that-s-a-big-spike">That's a big spike</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1481px;"><p class="vanilla-image-block" style="padding-top:43.75%;"><img id="qdyecbpfNi8FvLhDDVWNXQ" name="Down detector" alt="Down detector" src="https://cdn.mos.cms.futurecdn.net/qdyecbpfNi8FvLhDDVWNXQ.png" mos="" align="middle" fullscreen="" width="1481" height="648" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down detector)</span></figcaption></figure><p>The amount of reports started to grow at 12pm BST (7am ET), and has only been growing since.</p><p>The company acknowledges a major outage.</p><h2 id="fitbit-status-page">Fitbit status page</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:40.70%;"><img id="YUZDjG3ALfaU3bbQwjpgDC" name="Screenshot 2025-07-17 at 9.37.30 AM" alt="Fitbit status" src="https://cdn.mos.cms.futurecdn.net/YUZDjG3ALfaU3bbQwjpgDC.png" mos="" align="middle" fullscreen="" width="2000" height="814" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Fitbit)</span></figcaption></figure><p>Fitbit posted on its <a href="https://status.fitbit.com/incidents/tAFb5PyMeD6MvuyweKMe" target="_blank">status page</a> that "We're experiencing a major outage."  At the moment, the company says an "Investigation in progress," so it's in the early phases. </p><p>Hopefully, that doesn't mean it'll take too long for it to be fixed so users can get their workouts going again.</p><h2 id="a-small-drop-but-still-going">A small drop, but still going</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1548px;"><p class="vanilla-image-block" style="padding-top:41.34%;"><img id="FawDTiqtCy9BgyASi8Qeg3" name="Screenshot 2025-07-17 at 9.43.18 AM" alt="Down Detector" src="https://cdn.mos.cms.futurecdn.net/FawDTiqtCy9BgyASi8Qeg3.png" mos="" align="middle" fullscreen="" width="1548" height="640" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>We've seen a small drop in reports on Down Detector, indicating that fewer users are jumping on the service to say they're having issues. It doesn't necessarily mean the outage is over, as Fitbit hasn't said anything about a fix coming just yet.</p><h2 id="no-progress-on-fitbit-s-end">No progress on Fitbit's end</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:6000px;"><p class="vanilla-image-block" style="padding-top:66.67%;"><img id="cArqJTxRLG97vqoRrGCt8Z" name="Fitbit" alt="Fitbit" src="https://cdn.mos.cms.futurecdn.net/cArqJTxRLG97vqoRrGCt8Z.jpg" mos="" align="middle" fullscreen="" width="6000" height="4000" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Photo by Joshua Miranda)</span></figcaption></figure><p>It's still showing as investigating on the status page, so we'll have to wait until the company has any news to report.</p><h2 id="users-trying-anything">Users trying anything</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1548px;"><p class="vanilla-image-block" style="padding-top:36.18%;"><img id="95NeMNXCZqbmQ9p4UKMZmj" name="Screenshot 2025-07-17 at 9.58.27 AM" alt="Down Detector" src="https://cdn.mos.cms.futurecdn.net/95NeMNXCZqbmQ9p4UKMZmj.png" mos="" align="middle" fullscreen="" width="1548" height="560" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>Users on Down Detector are reporting having tried a bunch of troubleshooting steps before realizing that Fitbit as a whole is down. </p><p>When something that usually works isn't working, it's always a good idea to see whether there's an outage hitting it before wasting a bunch of time with other steps. When there is an outage, it's out of your control anyway, so all you can do is sit back and wait.</p><h2 id="mobile-app-and-web-api">Mobile App and Web API</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="zWBWvFbBuPDyXGAerXZWL5" name="Fitbit Premium.jpg" alt="Apple Watch vs. Fitbit" src="https://cdn.mos.cms.futurecdn.net/zWBWvFbBuPDyXGAerXZWL5.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Fitbit)</span></figcaption></figure><p>Fitbit's status pages list the outage as officially affecting its Mobile App and Web API, which are two of the service's more critical aspects. The syncing issue some users experienced early this morning appears to have been resolved; however, without the mobile app and API, many Fitbit functions remain unusable.</p><h2 id="a-big-decline-still-down-officially">A big decline, still down officially</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1548px;"><p class="vanilla-image-block" style="padding-top:37.60%;"><img id="W4wnvNjdYZsr4s4U5gD2c6" name="Screenshot 2025-07-17 at 10.24.47 AM" alt="Down Detector" src="https://cdn.mos.cms.futurecdn.net/W4wnvNjdYZsr4s4U5gD2c6.png" mos="" align="middle" fullscreen="" width="1548" height="582" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>We've seen reports drop to the 900 range on Down Detector, which is a massive decrease from the 2,200 at which it peaked. However, on Fitbit's status page, it still indicates an outage in progress, so it's difficult to say whether Fitbit is being cautious with its reporting that things are fixed or if users are simply not reporting issues as frequently.</p><p>Either way, keep your browser pointed right here, as we'll bring you any new information as it emerges. </p><h2 id="fitbit-in-the-uk-seeing-a-similar-pattern">Fitbit in the UK seeing a similar pattern</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1548px;"><p class="vanilla-image-block" style="padding-top:37.60%;"><img id="vU4wBEWUuYAiXgSiUYLFv" name="Screenshot 2025-07-17 at 10.39.13 AM" alt="Down Detector UK" src="https://cdn.mos.cms.futurecdn.net/vU4wBEWUuYAiXgSiUYLFv.png" mos="" align="middle" fullscreen="" width="1548" height="582" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Down Detector)</span></figcaption></figure><p>The U.K., while experiencing a lower number of reports overall, is seeing a similar pattern to the U.S. It went up, stayed pretty steady and is now on the decline, as you can see from the image above.</p><h2 id="reddit-users-still-having-problems">Reddit users still having problems</h2><blockquote class="reddit-card"  ><a href="https://www.reddit.com/r/fitbit/comments/1m24zu4/trouble_logging_in">Trouble Logging In</a> from <a href="https://www.reddit.com/r/fitbit">r/fitbit</a></blockquote><script async src="//embed.redditmedia.com/widgets/platform.js" charset="UTF-8"></script><h2 id="fitbit-says-it-s-back-to-normal">Fitbit says it's back to normal</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3443px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="oRUgsepASWy9b5j7re65eM" name="IMG_9298.jpg" alt="a photo of the screen on the Fitbit Charge 6" src="https://cdn.mos.cms.futurecdn.net/oRUgsepASWy9b5j7re65eM.jpg" mos="" align="middle" fullscreen="" width="3443" height="1936" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>According to the <a href="https://status.fitbit.com/incidents/tAFb5PyMeD6MvuyweKMe" target="_blank">Fitbit status page</a>, the outage is now listed as "Functionality back to normal." </p><p>That, plus the massive drop in Fitbit reports on Down Detector, leads us to believe that this outage is wrapping up, letting Fitbit users get back to using their <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">favorite fitness trackers</a> without issue.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I walked 6,500 steps with the Fitbit Charge 6 vs Pixel Watch 3 — and I’m surprised by the winner ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/smartwatches/i-walked-6-500-steps-with-the-fitbit-charge-6-vs-pixel-watch-3-and-im-surprised-by-the-winner</link>
                                                                            <description>
                            <![CDATA[ This Fitbit Charge 6 versus Google Pixel Watch 3 face-off looks at which Google wearable tracks daily walking goals with better accuracy. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">3gooaPqjNXtTDKPUpo6Ysf</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/AxAC9ZUgB6AsvdEVhn2pmD-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 18 Jun 2025 09:00:00 +0000</pubDate>                                                                                                                                <updated>Thu, 19 Jun 2025 01:26:43 +0000</updated>
                                                                                                                                            <category><![CDATA[Smartwatches]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/AxAC9ZUgB6AsvdEVhn2pmD-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Fitbit Charge 6 on an orange strap next to the Pixel Watch 3 on a black strap on a user&#039;s wrist with blue and pink flowers in the background]]></media:description>                                                            <media:text><![CDATA[The Fitbit Charge 6 on an orange strap next to the Pixel Watch 3 on a black strap on a user&#039;s wrist with blue and pink flowers in the background]]></media:text>
                                <media:title type="plain"><![CDATA[The Fitbit Charge 6 on an orange strap next to the Pixel Watch 3 on a black strap on a user&#039;s wrist with blue and pink flowers in the background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/AxAC9ZUgB6AsvdEVhn2pmD-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Want the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html">best Fitbit</a> available today? Your choices come down to the Fitbit Charge 6 and Google Pixel Watch 3. Both devices are powered by Fitbit and produced by Google, but that's where the similarities end.</p><p>The <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a> was announced in 2023 and remains the brand's flagship band-style fitness tracker. The <a href="https://www.tomsguide.com/wellness/smartwatches/google-pixel-watch-3-review">Pixel Watch 3</a>, meanwhile, launched in 2024 and is Google's one and only smartwatch offering, though it comes in two sizes. </p><p>For this test, I pitted the smaller 41mm Pixel Watch 3 ($349) against the Fitbit Charge 6 ($159). With Google <a href="https://www.tomsguide.com/wellness/fitness-trackers/google-just-killed-another-fitbit-feature-and-now-im-certain-the-brand-is-as-good-as-dead">winding down the Fitbit brand</a>, there's a good chance that the Charge 6 is the end of the road for perhaps the brand's most beloved wearable line.</p><p>So, is the Pixel Watch 3 a good replacement for the Charge 6, at least from a fitness tracking standpoint? There's only one way to find out. Let the test begin!</p><h3 class="article-body__section" id="section-fitbit-charge-6-vs-google-pixel-watch-3-walk-test"><span>Fitbit Charge 6 vs. Google Pixel Watch 3: Walk test</span></h3><div class="product"><a data-dimension112="fc9ae658-e120-446e-97c1-29682d280d4d" data-action="Deal Block" data-label="The Google Pixel Watch 3 is a full-featured smartwatch with all of Fitbit's best fitness tracking and wellness features built in. Though it's considerably more expensive than the Fitbit Charge 6, the Pixel Watch 3 has way more smart features, too. It also works with a gigantic range of third-party apps. The Charge 6 does not." data-dimension48="The Google Pixel Watch 3 is a full-featured smartwatch with all of Fitbit's best fitness tracking and wellness features built in. Though it's considerably more expensive than the Fitbit Charge 6, the Pixel Watch 3 has way more smart features, too. It also works with a gigantic range of third-party apps. The Charge 6 does not." data-dimension25="$299" href="https://www.amazon.com/Google-Pixel-Watch-Latest-Model/dp/B0D9138ZXM" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:950px;"><p class="vanilla-image-block" style="padding-top:100.42%;"><img id="RAngNKAwiUsTSEwuZf6eCU" name="PixelWatch3-BG.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/RAngNKAwiUsTSEwuZf6eCU.jpg" mos="" align="middle" fullscreen="" width="950" height="954" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Google Pixel Watch 3 is a full-featured smartwatch with all of Fitbit's best fitness tracking and wellness features built in. Though it's considerably more expensive than the Fitbit Charge 6, the Pixel Watch 3 has way more smart features, too. It also works with a gigantic range of third-party apps. The Charge 6 does not. <a class="view-deal button" href="https://www.amazon.com/Google-Pixel-Watch-Latest-Model/dp/B0D9138ZXM" target="_blank" rel="nofollow" data-dimension112="fc9ae658-e120-446e-97c1-29682d280d4d" data-action="Deal Block" data-label="The Google Pixel Watch 3 is a full-featured smartwatch with all of Fitbit's best fitness tracking and wellness features built in. Though it's considerably more expensive than the Fitbit Charge 6, the Pixel Watch 3 has way more smart features, too. It also works with a gigantic range of third-party apps. The Charge 6 does not." data-dimension48="The Google Pixel Watch 3 is a full-featured smartwatch with all of Fitbit's best fitness tracking and wellness features built in. Though it's considerably more expensive than the Fitbit Charge 6, the Pixel Watch 3 has way more smart features, too. It also works with a gigantic range of third-party apps. The Charge 6 does not." data-dimension25="$299">View Deal</a></p></div><div class="product"><a data-dimension112="b35a718f-c77a-462c-8568-e3d33a73e4f6" data-action="Deal Block" data-label="The Charge 6 could be one of the last devices to bear the Fitbit name. Launched in 2023, this high-end tracker sports a small AMOLED touchscreen and boasts impressive fitness-tracking chops. It also has better battery life than its modern smartwatch cousin and is lighter on the wrist. Did I mention it's also about half the cost of the Pixel Watch?" data-dimension48="The Charge 6 could be one of the last devices to bear the Fitbit name. Launched in 2023, this high-end tracker sports a small AMOLED touchscreen and boasts impressive fitness-tracking chops. It also has better battery life than its modern smartwatch cousin and is lighter on the wrist. Did I mention it's also about half the cost of the Pixel Watch?" data-dimension25="$139" href="https://www.amazon.com/Fitbit-Fitness-Tracker-Premium-Membership/dp/B0CC644KMJ/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1200px;"><p class="vanilla-image-block" style="padding-top:100.00%;"><img id="XJdcnPAkGqaCLqcmrHCQib" name="Fitbit Charge 6.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/XJdcnPAkGqaCLqcmrHCQib.jpg" mos="" align="middle" fullscreen="" width="1200" height="1200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Charge 6 could be one of the last devices to bear the Fitbit name. Launched in 2023, this high-end tracker sports a small AMOLED touchscreen and boasts impressive fitness-tracking chops. It also has better battery life than its modern smartwatch cousin and is lighter on the wrist. Did I mention it's also about half the cost of the Pixel Watch? <a class="view-deal button" href="https://www.amazon.com/Fitbit-Fitness-Tracker-Premium-Membership/dp/B0CC644KMJ/" target="_blank" rel="nofollow" data-dimension112="b35a718f-c77a-462c-8568-e3d33a73e4f6" data-action="Deal Block" data-label="The Charge 6 could be one of the last devices to bear the Fitbit name. Launched in 2023, this high-end tracker sports a small AMOLED touchscreen and boasts impressive fitness-tracking chops. It also has better battery life than its modern smartwatch cousin and is lighter on the wrist. Did I mention it's also about half the cost of the Pixel Watch?" data-dimension48="The Charge 6 could be one of the last devices to bear the Fitbit name. Launched in 2023, this high-end tracker sports a small AMOLED touchscreen and boasts impressive fitness-tracking chops. It also has better battery life than its modern smartwatch cousin and is lighter on the wrist. Did I mention it's also about half the cost of the Pixel Watch?" data-dimension25="$139">View Deal</a></p></div><p>If you've read my <a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-6-500-steps-with-the-garmin-vivoactive-6-vs-samsung-galaxy-watch-7-and-the-winner-may-surprise-you">previous walk test articles</a>, you can probably go ahead and skip to the next section. For those new here, this is how these comparisons go down: With a smartwatch on either wrist, I begin tracking my walk. As a control, I manually count each step I take; <a href="https://www.tomsguide.com/reviews/bose-quietcomfort-headphones">my favorite Bose Quiet Comfort headphones</a> help drown out the distraction.</p><p>To help me keep track of the total, I click an old-school manual tally counter every hundred steps before starting my tally over again at one. In this case, I repeated that process 65 times before finding a nice quiet park bench to settle down on and record the data. </p><p>Oh, and as an extra control, I recorded the walk using Strava on my trusty <a href="https://www.tomsguide.com/reviews/iphone-12-mini">iPhone 12 Mini</a>. Check out the results below:</p><h3 class="article-body__section" id="section-fitbit-charge-6-vs-google-pixel-watch-3-walk-test-results"><span>Fitbit Charge 6 vs. Google Pixel Watch 3: Walk test results</span></h3><div ><table><caption>Fitbit Charge 6 vs. Google Pixel Watch 3:</caption><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Charge 6</p></th><th  ><p>Google Pixel Watch 3</p></th><th  ><p>Control</p></th></tr></thead><tbody><tr><td class="firstcol " ><p>Step count</p></td><td  ><p>6,546 steps</p></td><td  ><p>6,563 steps</p></td><td  ><p>6,500 steps (manual count)</p></td></tr><tr><td class="firstcol " ><p>Distance</p></td><td  ><p>3.01 miles</p></td><td  ><p>3.4 miles</p></td><td  ><p> 3.41 miles (Strava)</p></td></tr><tr><td class="firstcol " ><p>Elevation gain</p></td><td  ><p>no data</p></td><td  ><p>325 feet</p></td><td  ><p>303 feet (Strava)</p></td></tr><tr><td class="firstcol " ><p>Average pace</p></td><td  ><p>22 mins, 21 secs per mile</p></td><td  ><p>19 mins, 48 secs per mile</p></td><td  ><p>18 mins, 20 secs per mile</p></td></tr><tr><td class="firstcol " ><p>Average heart rate</p></td><td  ><p>114 bpm</p></td><td  ><p>114 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Max heart rate</p></td><td  ><p>164 bpm</p></td><td  ><p>164 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Calories burned</p></td><td  ><p>527 calories </p></td><td  ><p>529 calories</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p>Device battery usage</p></td><td  ><p>+ 1%</p></td><td  ><p>- 9%</p></td><td  ><p>n/a</p></td></tr></tbody></table></div><p>Well, well, well — look at which device was closer to my actual step count total by a whole 17 steps; it's the Fitbit Charge 6. For what it's worth, both devices beat Strava's tally of 6,558 steps. </p><p>Unfortunately for the small but mighty Charge 6, things get a little funky when we move on to distance data. Despite nailing my step count total with impressive accuracy, the device appears to have severely undercounted my distance covered by a whopping 0.4 miles... that's not an insignificant difference. </p><p>The Fitbit Charge 6 frustratingly also does not report elevation gain data, even though it technically could using the onboard GPS. And while I didn't intend for this walk to be hilly, living in Seattle, Washington, a few hundred feet of elevation gain is par for the course when cruising around town on foot. </p><p>The Pixel Watch 3 <em>does</em> report climb data, which looks perhaps a tad inflated for this walk — I tend to trust Strava as the gold standard here — but still accurate enough for my needs. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3125px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="Snq8uyqybvqHdY3RRzEpvG" name="best-fitbit-02" alt="The Pixel Watch 3 on a black strap next to the Fitbit Charge 6 on an orange strap on a user's wrist with white flowers in the background" src="https://cdn.mos.cms.futurecdn.net/Snq8uyqybvqHdY3RRzEpvG.jpg" mos="" align="middle" fullscreen="" width="3125" height="1758" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Of course, had the Pixel Watch 3 undercounted my climb by 22 feet (compared to Strava), I might not be so forgiving. </p><p>Strava provides two pace metrics including an average moving pace — reported above — and an elapsed pace, which tends to be slower. In this case, my elapsed pace was 19 minutes and 15 seconds per mile, much closer to the Pixel Watch 3's metric. </p><p>Inflated pace data from the Fitbit Charge 6, meanwhile, makes sense given it measured a considerably shorter walk, distance-wise. </p><p>Nothing warms my heart more than two devices capturing similar heart rate data during these head-to-heads, and it doesn't get any more precise than this. The same goes for calories burned. </p><p>Finally, while the Pixel Watch 3 burned through 9% of its battery during my roughly one-hour-and-seven-minute walk, the Charge 6 somehow managed to gain 1% battery (from 98% when I left to 99% when I returned).  </p><h3 class="article-body__section" id="section-fitbit-charge-6-vs-google-pixel-watch-3-winner"><span>Fitbit Charge 6 vs. Google Pixel Watch 3: Winner</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3443px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="oRUgsepASWy9b5j7re65eM" name="IMG_9298.jpg" alt="a photo of the screen on the Fitbit Charge 6" src="https://cdn.mos.cms.futurecdn.net/oRUgsepASWy9b5j7re65eM.jpg" mos="" align="middle" fullscreen="" width="3443" height="1936" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>In today's battle of the Fitbit-powered Google wearables, the underdog Charge 6 comes out on top. However, even though the Fitbit Charge 6 managed a closer step count total to my manual count, the Pixel Watch 3 proved more accurate across the board. </p><p>Still, I'm impressed that the older, more affordable wearable was able to keep up with the newer and higher-end Pixel Watch 3. Ultimately, the Charge 6 remains one of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness trackers</a> for the money in 2025, especially if you like easy-wearing devices with great battery and onboard GPS so that you can leave your phone at home. </p><p>Which fitness trackers and/or smartwatches should I test head-to-head next? Let me know in the comments below. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-6-000-steps-with-the-apple-watch-10-vs-samsung-galaxy-watch-7-this-device-was-more-accurate">I walked 6,000 steps with the Apple Watch 10 vs Samsung Galaxy Watch 7 — this one was more accurate</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-biked-12-miles-with-the-apple-watch-10-vs-garmin-vivoactive-6-heres-the-winner">I biked 12 miles with the Apple Watch 10 vs Garmin Vivoactive 6 — here's the winner</a></li><li><a href="https://www.tomsguide.com/wellness/fitness/i-test-smartwatches-for-a-living-and-these-are-my-5-favorite-models-when-i-go-hiking">I test smartwatches for a living — and these are my 5 favorite models when I go hiking</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Google just killed another Fitbit feature — and now I’m certain the brand is as good as dead  ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/google-just-killed-another-fitbit-feature-and-now-im-certain-the-brand-is-as-good-as-dead</link>
                                                                            <description>
                            <![CDATA[ Google just removed the Google Voice Assistant feature on these devices. Don’t worry, Amazon Alexa is still there… for now. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">XYgnvAea4FjEZanVsfAuYo</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/v34YBAiTm5awfaZSDuBZgL-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 16 Apr 2025 20:35:28 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/v34YBAiTm5awfaZSDuBZgL-1280-80.jpg">
                                                            <media:credit><![CDATA[null]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Fitbit Sense 2 on a person&#039;s wrist]]></media:description>                                                            <media:text><![CDATA[Fitbit Sense 2 on a person&#039;s wrist]]></media:text>
                                <media:title type="plain"><![CDATA[Fitbit Sense 2 on a person&#039;s wrist]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/v34YBAiTm5awfaZSDuBZgL-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Do you hear that? Those three repeating base notes? Yup, that’s Queen’s "Another One Bites the Dust" playing at Google HQ as the brand kills off yet another Fitbit feature. </p><p>For those needing a refresher, <a href="https://www.tomsguide.com/news/google-acquires-fitbit-for-21-billion"><u>Google bought Fitbit in 2021</u></a> and ever since, has slowly chipped away at everything that makes Fitbit, well, Fitbit. While many of the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html"><u>best Fitbit</u></a> features are now making their way into Google’s <a href="https://www.tomsguide.com/us/best-smartwatches,review-2156.html"><u>best smartwatch</u></a> models such as. the <a href="https://www.tomsguide.com/wellness/smartwatches/google-pixel-watch-3-review"><u>Pixel Watch 3</u></a>, the future of Fitbit has never been more in question. </p><p>First, in 2022, Google made all Fitbit users <a href="https://www.tomsguide.com/news/fitbit-accounts-are-shutting-down-what-you-need-to-know"><u>migrate to a Google account</u></a>. Then, in 2023, the <a href="https://www.tomsguide.com/news/google-is-stripping-away-the-things-that-make-fitbit-fitbit-and-its-a-huge-mistake"><u>community challenges vanished</u></a>. Next, in 2024, Google <a href="https://www.tomsguide.com/wellness/smartwatches/google-just-killed-off-fitbit-smartwatches-and-nobody-should-be-surprised"><u>shuttered the popular Versa and Sense</u></a> smartwatch lines. Now, in 2025, Google is killing off perfectly good features on existing devices —namely Google Assistant.</p><p>Let’s dive into what's happened.</p><h3 class="article-body__section" id="section-fitbit-support-for-google-assistant-bites-the-dust"><span>Fitbit support for Google Assistant bites the dust </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NVybeJKuaKZhMZH6vPQNVV" name="TG_Fitbit-Versa-4_LIST-2.jpg" alt="Fitbit Versa 4" src="https://cdn.mos.cms.futurecdn.net/NVybeJKuaKZhMZH6vPQNVV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Google first announced intentions to shutter the Google Voice Assistant feature on the Fitbit Versa and Sense smartwatch lines <a href="https://9to5google.com/2024/01/11/google-assistant-feature-removal/#:~:text=Voice%20control%20for%20activities%20will%20no%20longer%20be%20available%20on%20Fitbit%20Sense%20and%20Versa%203%20devices"><u>over a year ago</u></a>, and now appears to be making good on the promise. </p><p>While the 2024 announcement mentions the older <a href="https://www.tomsguide.com/reviews/fitbit-sense"><u>Fitbit Sense</u></a> and <a href="https://www.tomsguide.com/reviews/fitbit-versa-3"><u>Versa 3</u></a> models, recent revelations make it clear that current-generation <a href="https://www.tomsguide.com/reviews/fitbit-sense-2"><u>Fitbit Sense 2</u></a> and <a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><u>Versa 4</u></a> devices are also losing access. </p><p>A moderator post in the <a href="https://community.fitbit.com/t5/Sense/Google-Assistant-will-no-longer-be-available-on-Fitbit-Sense-and-Versa-3/td-p/5735504"><u>Fitbit Community forum</u></a> published on March 21, 2025, confirms this. </p><p>“Over the next few weeks we will be progressively phasing out Google Assistant on your Fitbit device. This change means that Google Assistant voice control for activities will soon no longer be available on your Fitbit device,” the Fitbit forum post says.</p><p>The same post notes that Amazon’s <a href="https://www.tomsguide.com/us/how-to-use-alexa,review-3488.html"><u>Alexa</u></a> voice assistant will remain available on the Versa 4 and Sense 2 in countries where it's supported (for now, at least). </p><h3 class="article-body__section" id="section-my-days-of-recommending-fitbit-are-probably-over"><span>My days of recommending Fitbit are probably over</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:4000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="fAE6T7au6FFd7oZv6MgYXP" name="FitbitSense2-01.jpg" alt="The Fitbit Sense 2 on a blue rubber strap, shown on a user's wrist against a red background." src="https://cdn.mos.cms.futurecdn.net/fAE6T7au6FFd7oZv6MgYXP.jpg" mos="" align="middle" fullscreen="" width="4000" height="2250" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>This move by Google really grinds my gears, especially because both the Versa 4 and Sense 2 are actively being sold not just <a href="https://store.google.com/us/product/fitbit_sense_2?hl=en-US&pli=1"><u>via Google directly</u></a>, but also through major retailers like <a href="https://www.bestbuy.com/site/fitbit-sense-2-advanced-health-smartwatch-platinum/6514038.p?skuId=6514038&extStoreId=447&utm_source=feed"><u>Amazon and Best Buy</u></a>… for full price at that. </p><div><blockquote><p>Imagine buying a car only to have the dealer show up at your house a year later to turn off the backup camera because it’s ‘no longer supported.’</p></blockquote></div><p>Stripping out features that someone already paid for is a major no-no in my mind, and I suspect Fitbit owners everywhere will be more than a little miffed by this development. Imagine buying a car only to have the dealer show up at your house a year later to turn off the backup camera because it’s "no longer supported."</p><p>Indeed, when I fired up my Fitbit Sense 2 and checked for the Google Assistant app, it was gone. However, if the feature still appears on your Fitbit, you’ll almost certainly be greeted  with a pop-up when you try to open it saying something like, “Google Assistant on Fitbit watches is being turned down, this feature will stop working in the coming weeks.”</p><p>While this move by Google is disappointing, it’s also not terribly surprising. Unfortunately, the Fitbit Sense 2 <em>used</em> to be one of my favorite smartwatches thanks to its svelte design, bright screen, solid battery, simple interface and ample workout and wellness tools. But with one less smart feature on offer and the likelihood that more may be stripped away, it’s a device I’ll no longer be recommending. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2505px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="rphC4UBNb7UF3dX2uCwfFm" name="Active-2-maps-B" alt="Close-up of the Amazfit Active 2 on a user's wrist with the maps display shown" src="https://cdn.mos.cms.futurecdn.net/rphC4UBNb7UF3dX2uCwfFm.jpg" mos="" align="middle" fullscreen="" width="2505" height="1409" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>So what should potential Fitbit Sense 2 or Versa 4 customers buy instead? The <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-the-garmin-vivoactive-6-and-it-has-almost-everything-i-want-in-a-smartwatch"><u>Garmin Vivoactive 6</u></a> is shaping up to be a great replacement for either. If having an onboard voice assistant is a must, the <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-tested-the-amazfit-active-2-7-things-you-should-know-about-my-favorite-smartwatch-under-usd100">$100 Amazfit Active 2</a> is also worth a look. </p><p>Of course, you could go with the <a href="https://www.tomsguide.com/wellness/smartwatches/google-pixel-watch-3-review"><u>Pixel Watch 3</u></a>, which has most of Fitbit’s best features. But then again, settling for a Pixel Watch is exactly what Google wants you to do. So, rather than playing into the brand's ultimate sacrifice-Fitbit-for-Pixel scheme, maybe just get that Garmin.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/ai/i-just-tried-googles-newest-ai-video-generation-features-and-im-blown-away">You can now use Google's AI to make videos from text — and I'm already obsessed</a></li><li><a href="https://www.tomsguide.com/computing/search-engines/how-to-use-google-web-filter-bring-back-old-search">Bring back Google’s old-school search results with this one simple hack</a></li><li><a href="https://www.tomsguide.com/computing/mobile-apps/google-maps-just-got-a-huge-trip-planning-upgrade-and-it-involves-your-screenshots">Google Maps just got a huge trip-planning upgrade — and it involves your screenshots</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Fitbit just started testing its Personalized Sleep Schedule feature — here’s how to try it ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness/fitbit-just-starting-testing-its-personalized-sleep-schedule-feature-heres-how-to-try-it</link>
                                                                            <description>
                            <![CDATA[ Select Fitbit users can now access the new Personalized Sleep Schedule feature from Fitbit Labs, which provides suggested bedtimes and wake times to improve your sleep. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">L5EGswVGTuDruspWLytx6</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/LsrLdFpqxkWKa8zfzPf9Fc-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 19 Mar 2025 12:51:26 +0000</pubDate>                                                                                                                                <updated>Wed, 19 Mar 2025 13:24:11 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                                    <dc:creator><![CDATA[ Nick Harris-Fry ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/J5Jjp49GUVjLZEbjEkTex.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nick has been a journalist since 2012 and has spent most of that time writing about health and fitness for a variety of publications. Nick spent nine years working on the Coach magazine and website before moving to the fitness team at Tom’s Guide in 2024. Nick is a keen runner and also the founder of YouTube channel &lt;a href=&quot;https://www.youtube.com/channel/UCOBM9FasII4dKbyE_HKkbjw&quot;&gt;The Run Testers&lt;/a&gt;, which specialises in reviewing running shoes, watches, headphones and other gear.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nick has covered all aspects of health and fitness throughout his career, interviewing experts and celebrities, trying fitness classes and running marathons, all in the name of providing readers with the information they need to get the most out of an active lifestyle.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nick ran his first marathon in 2016 after six weeks of training for a magazine feature and subsequently became obsessed with the sport. He now has PBs of 2hr 27min for the marathon and 15min 30sec for 5K, and has run 13 marathons in total, as well as a 50-mile ultramarathon.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nick runs 50-80 miles a week and races regularly with his club, which gives him a lot of opportunity to test out running gear: he has tested and reviewed hundreds of pairs of running shoes, as well as fitness trackers, running watches, sports headphones, treadmills, and all manner of other kit. Nick is also a qualified Run Leader in the UK.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nick is an established expert in the health and fitness area and along with writing for several publications, including &lt;a href=&quot;https://www.livescience.com/author/nick-harris-fry&quot;&gt;Live Science&lt;/a&gt;, &lt;a href=&quot;https://www.expertreviews.co.uk/authors/nick-harris-fry&quot;&gt;Expert Reviews&lt;/a&gt;, &lt;a href=&quot;https://www.wareable.com/author/n.harris-fry&quot;&gt;Wareable&lt;/a&gt;, &lt;a href=&quot;https://www.coachweb.com/author/nick-harris-fry&quot;&gt;Coach&lt;/a&gt; and &lt;a href=&quot;https://www.getsweatgo.com/author/n.harrisfry&quot;&gt;Get Sweat Go&lt;/a&gt;, he has been quoted on &lt;a href=&quot;https://www.theguardian.com/thefilter/2024/oct/20/if-you-pay-more-than-4-youre-being-ripped-off-the-fair-price-for-14-everyday-items-from-cleaning-spray-to-olive-oil&quot;&gt;The Guardian&lt;/a&gt; and &lt;a href=&quot;https://www.independent.co.uk/life-style/health-and-families/london-marathon-2021-date-training-tips-summer-running-a9482486.html&quot;&gt;The Independent&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nick graduated from the University of York in 2010 with a degree in Politics, Philosophy and Economics and worked in the NHS for three years, during which time he completed his NCTJ Diploma in Journalism at News Associates in London. Before starting on Coach and moving into health and fitness, Nick worked as a football journalist and lived in Kathmandu, Nepal for two years.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/LsrLdFpqxkWKa8zfzPf9Fc-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Fitbit Versa 3]]></media:description>                                                            <media:text><![CDATA[Fitbit Versa 3]]></media:text>
                                <media:title type="plain"><![CDATA[Fitbit Versa 3]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/LsrLdFpqxkWKa8zfzPf9Fc-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Fitbit’s experimental Personalized Sleep Schedule feature is now available to try through Fitbit Labs, and it’s designed to improve your sleep by tracking your energy levels throughout the day and suggesting bedtimes and wake times.</p><p>This is done by taking surveys throughout the day that gauge your energy levels and provide advice on how much sleep you need that night.</p><p>The launch of the new feature was spotted by <a href="https://9to5google.com/2025/03/17/fitbit-personalized-sleep-schedule-lab/" target="_blank">9to5Google</a> and if you have one of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness trackers</a> made by Fitbit or Google, it’s well worth giving a try if you are eligible.</p><h2 id="how-to-try-personalized-sleep-schedule">How to try Personalized Sleep Schedule</h2><p>To be eligible to try the Personalized Sleep Schedule through Fitbit Labs you need to be using the Android version of the Fitbit app and based in the U.S. Here’s the full list of criteria you need to hit <a href="https://support.google.com/fitbit/answer/14566053?">from the Fitbit Help Center</a>.</p><ul><li>Use the Fitbit app on an Android phone.</li><li>Be located in the US and use the Fitbit app in English.</li><li>Be at least 18 years old.</li><li>Sign in to the Fitbit app using a Google Account.</li><li>Review and accept the lab-specific consent.</li><li>Make sure you have a sleep log for the day. If you didn’t sleep with one of the devices listed above, you can manually log your sleep in the Fitbit app.</li><li>Have an offer to join the Personalized Sleep Schedule lab on the You tab in the Fitbit App.</li></ul><p>If you hit all the requirements listed then hit the You tab in the Fitbit app, go to the Fitbit Labs section, click See All and then you should see and offer to Get a Personalized Sleep Schedule. If it’s not there then try checking again later in the day after shutting and reopening the app.</p><h2 id="how-does-personalized-sleep-schedule-work">How does Personalized Sleep Schedule work?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="fEhyHEHYfYL7TnGHsYcEKS" name="Fitbit-Charge6-set-up-20.jpg" alt="How to set up the Fitbit Charge 6." src="https://cdn.mos.cms.futurecdn.net/fEhyHEHYfYL7TnGHsYcEKS.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Once you’ve signed up you’ll be reminded to take surveys throughout the day. The first of these is the morning check-in, which is available up until 10 am. This is a two-minute survey that covers any factors that could impact the upcoming night’s sleep.</p><p>There are then three daytime surveys that are spread throughout the day that just have one question to rate your energy levels, which will feed into your sleep suggestions for that night.</p><p>The last survey is the evening bedtime check-in which has to be done before 11 pm. This is another two-minute survey about factors that could influence your sleep, and once you’ve taken it you’ll be given your Personalized Sleep Schedule for that night.</p><p>This is a suggested bedtime and wake time based on your sleep needs and sleep debt, which are calculated through the sleep you’ve logged through your tracker or in the app, and your responses to the surveys.</p><h2 id="how-could-personalized-sleep-schedule-improve-sleep">How could Personalized Sleep Schedule improve sleep?</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="NVybeJKuaKZhMZH6vPQNVV" name="TG_Fitbit-Versa-4_LIST-2.jpg" alt="Fitbit Versa 4" src="https://cdn.mos.cms.futurecdn.net/NVybeJKuaKZhMZH6vPQNVV.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Having a consistent sleep schedule is generally advised as one of the best ways to improve your sleep in general, as it can help keep your body in a natural sleep-wake cycle. </p><p>There are lots of other factors that go into good sleep though, and some might find it hard to actually stick to the recommendations from Fitbit. </p><p>My <a href="https://www.tomsguide.com/wellness/smartwatches/garmin-fenix-8-review">Garmin Fenix 8</a> recommends a suggested sleep time to me each day through Garmin's Sleep Coach feature, and I found it more of an annoyance than a help when my child was six months old and waking a lot, for example.</p><p>However, checking in on your energy levels throughout the day and thinking about factors that might influence your sleep are both habits that can prove helpful in tracking things that do affect your sleep so you can adjust them in the future.</p><p>A suggested bedtime can also be useful in providing an extra nudge to get to bed in the evening when it’s all too tempting to watch one more episode of something or scroll social media instead of hitting the hay.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide:</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/rip-fitbit-5-alternatives-to-fitbits-best-trackers-and-smartwatches">RIP Fitbit? 5 alternatives to Fitbit’s best trackers and smartwatches</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/fitbit-is-exiting-the-cheap-smartwatch-race-and-this-brand-could-replace-it">Fitbit is exiting the cheap smartwatch race — and this brand could replace it</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-ultra-2-vs-garmin-instinct-3-which-rugged-smartwatch-wins">Garmin Instinct 3 vs. Apple Watch Ultra 2: Biggest differences to consider before you buy</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I walked 6,000 steps with Fitbit Sense 2 vs Amazfit Active 2 — this one was more accurate ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-walked-6-000-steps-with-fitbit-sense-2-vs-amazfit-active-2-heres-the-winner</link>
                                                                            <description>
                            <![CDATA[ Which is the more accurate fitness tracking brand — Fitbit vs Amazfit? I pitted the Sense 2 vs Active 2 to find out. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">LTEmbwNHvaQhy2DYCajmk4</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/S2orPnuH3ueoGNM2vocMLb-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 28 Feb 2025 10:30:20 +0000</pubDate>                                                                                                                                <updated>Fri, 28 Feb 2025 15:54:21 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/S2orPnuH3ueoGNM2vocMLb-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close up of the Amazfit Active 2 smartwatch next to the Fitbit Sense 2 with each showing the total step count for the day]]></media:description>                                                            <media:text><![CDATA[Close up of the Amazfit Active 2 smartwatch next to the Fitbit Sense 2 with each showing the total step count for the day]]></media:text>
                                <media:title type="plain"><![CDATA[Close up of the Amazfit Active 2 smartwatch next to the Fitbit Sense 2 with each showing the total step count for the day]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/S2orPnuH3ueoGNM2vocMLb-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>At $249, the Fitbit Sense 2 is admittedly more than twice the cost of the $99 Amazfit Active 2. But the former is getting up there in age, which means, you can easily find it on sale. </p><p>Price and case shape aside, the two devices share a lot of traits and features. Both the <a href="https://www.tomsguide.com/reviews/fitbit-sense-2">Fitbit Sense 2</a> and <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-the-amazfit-active-2-and-it-could-be-the-new-budget-smartwatch-to-beat">Amazfit Active 2</a> are sleek, reasonably lightweight wearables with bright and responsive touchscreens, onboard GPS, physical buttons and loads of wellness and fitness tracking tech. You also get a small smattering of smart features on either, along with support for both iPhones and Android handsets. </p><p>But which one is the more reliable fitness tracker? To find out, I tossed one on either wrist and set out for a walk around Seattle's Lake Washington, manually counting all my steps. Read on to find out the wearable that came closest to matching my actual step count total, along with analysis of other metrics like distance, elevation gain, heart rate, calories burned and battery used. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8ViwAQq6oDkqL3Wjwo74Pb" name="Sense2-v-Active2-01" alt="Scenic view of Lake Washington with two figures walking in the foreground in the shadows and boats, along with Mount Rainier visible in the background" src="https://cdn.mos.cms.futurecdn.net/8ViwAQq6oDkqL3Wjwo74Pb.jpg" mos="" align="middle" fullscreen="" width="3600" height="2025" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><h3 class="article-body__section" id="section-fitbit-sense-2-vs-amazfit-active-2-walk-test"><span>Fitbit Sense 2 vs. Amazfit Active 2: Walk test</span></h3><div class="product"><a data-dimension112="323dbb56-d0c0-4249-b194-926a7787fdb1" data-action="Deal Block" data-label="The Fitbit Sense 2 is Google's flagship Fitbit product loaded with top-notch health and fitness-tracking tech and just enough smart features to keep you connected, like support for Google Wallet, Google Maps and YouTube Music." data-dimension48="The Fitbit Sense 2 is Google's flagship Fitbit product loaded with top-notch health and fitness-tracking tech and just enough smart features to keep you connected, like support for Google Wallet, Google Maps and YouTube Music." data-dimension25="$229" href="https://www.amazon.com/Fitbit-Advanced-Smartwatch-Graphite-Included/dp/B0B4N2T7GL/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1410px;"><p class="vanilla-image-block" style="padding-top:106.38%;"><img id="rwUdywoFKdZAZDJXE28joK" name="image" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/rwUdywoFKdZAZDJXE28joK.png" mos="" align="middle" fullscreen="" width="1410" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Sense 2 is Google's flagship Fitbit product loaded with top-notch health and fitness-tracking tech and just enough smart features to keep you connected, like support for Google Wallet, Google Maps and YouTube Music.<a class="view-deal button" href="https://www.amazon.com/Fitbit-Advanced-Smartwatch-Graphite-Included/dp/B0B4N2T7GL/?th=1" target="_blank" rel="nofollow" data-dimension112="323dbb56-d0c0-4249-b194-926a7787fdb1" data-action="Deal Block" data-label="The Fitbit Sense 2 is Google's flagship Fitbit product loaded with top-notch health and fitness-tracking tech and just enough smart features to keep you connected, like support for Google Wallet, Google Maps and YouTube Music." data-dimension48="The Fitbit Sense 2 is Google's flagship Fitbit product loaded with top-notch health and fitness-tracking tech and just enough smart features to keep you connected, like support for Google Wallet, Google Maps and YouTube Music." data-dimension25="$229">View Deal</a></p></div><div class="product"><a data-dimension112="1786cbf0-c024-494c-98ba-8ce20869d9e3" data-action="Deal Block" data-label="The Amazfit Active 2 offers a ton of features for just $99 including impressive fitness, health and sleep-tracking tools ordinarily found on much pricier models. It also boasts an all-metal case, AMOLED touchscreen, physical buttons and more than a week of battery." data-dimension48="The Amazfit Active 2 offers a ton of features for just $99 including impressive fitness, health and sleep-tracking tools ordinarily found on much pricier models. It also boasts an all-metal case, AMOLED touchscreen, physical buttons and more than a week of battery." data-dimension25="$99" href="https://www.amazon.com/Amazfit-Direction-Fitness-Resistant-Silicone/dp/B0DT3WZCZD?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1271px;"><p class="vanilla-image-block" style="padding-top:108.81%;"><img id="5rWhrDxAJo8MrqaLi7HfXZ" name="71mpuO4LqeL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/5rWhrDxAJo8MrqaLi7HfXZ.jpg" mos="" align="middle" fullscreen="" width="1271" height="1383" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Amazfit Active 2 offers a ton of features for just $99 including impressive fitness, health and sleep-tracking tools ordinarily found on much pricier models. It also boasts an all-metal case, AMOLED touchscreen, physical buttons and more than a week of battery. <a class="view-deal button" href="https://www.amazon.com/Amazfit-Direction-Fitness-Resistant-Silicone/dp/B0DT3WZCZD?th=1" target="_blank" rel="nofollow" data-dimension112="1786cbf0-c024-494c-98ba-8ce20869d9e3" data-action="Deal Block" data-label="The Amazfit Active 2 offers a ton of features for just $99 including impressive fitness, health and sleep-tracking tools ordinarily found on much pricier models. It also boasts an all-metal case, AMOLED touchscreen, physical buttons and more than a week of battery." data-dimension48="The Amazfit Active 2 offers a ton of features for just $99 including impressive fitness, health and sleep-tracking tools ordinarily found on much pricier models. It also boasts an all-metal case, AMOLED touchscreen, physical buttons and more than a week of battery." data-dimension25="$99">View Deal</a></p></div><p>For this walk test, I had the Amazfit Active 2 on my left wrist and the Fitbit Sense 2 on the right. For what it's worth, only the Fitbit app lets you specify whether you're wearing the watch on your dominant or non-dominant wrist. </p><p>As always, to keep track of steps, I counted each pace until I hit 100 before clicking my manual tally counter and starting over again at one. Another useful trick I use to stay on count: my left foot is always the odd count and my right the even. A pair of the best <a href="https://www.tomsguide.com/us/best-noise-cancelling-headphones,review-5566.html">noise-canceling headphones</a> also help me to concentrate. </p><p>As a control for distance, elevation gain and pace, I additionally logged my walk using <a href="https://www.tomsguide.com/reviews/strava-review">Strava</a> on my trusty <a href="https://www.tomsguide.com/reviews/iphone-12-mini">iPhone 12 mini</a> (as I always do for these comparisons). </p><p>With a little more than 3 miles and (apparently) the equivalent of 28 floors climbed, here's how the data from the Fitbit Sense 2 vs. Amazfit Active 2 compares. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="jX3Nf9tVqiFXyQuYJtWRab" name="Sense2-v-Active2-04" alt="Close up of the Amazfit Active 2 smartwatch next to the Fitbit Sense 2 with each showing the total step count for the day" src="https://cdn.mos.cms.futurecdn.net/jX3Nf9tVqiFXyQuYJtWRab.jpg" mos="" align="middle" fullscreen="" width="3600" height="2025" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><h3 class="article-body__section" id="section-fitbit-sense-2-vs-amazfit-active-2-walk-test-results"><span>Fitbit Sense 2 vs. Amazfit Active 2: Walk test results</span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  ><p>Fitbit Sense 2</p></th><th  ><p>Amazfit Active 2</p></th><th  ><p>Control</p></th></tr></thead><tbody><tr><td class="firstcol " ><p><strong>Steps</strong></p></td><td  ><p>6,187 steps</p></td><td  ><p>6,116 steps</p></td><td  ><p>6,000 steps (manual count)</p></td></tr><tr><td class="firstcol " ><p><strong>Distance</strong></p></td><td  ><p>2.82 miles </p></td><td  ><p>3.16 miles</p></td><td  ><p>3.25 miles</p></td></tr><tr><td class="firstcol " ><p><strong>Elevation gain</strong></p></td><td  ><p>280 feet</p></td><td  ><p>368 feet</p></td><td  ><p>297 feet</p></td></tr><tr><td class="firstcol " ><p><strong>Pace (average)</strong></p></td><td  ><p>22 mins 11 secs per mile</p></td><td  ><p>19 mins 23 secs per mile</p></td><td  ><p>17 mins 55 secs per mile</p></td></tr><tr><td class="firstcol " ><p><strong>Heart rate (average) </strong></p></td><td  ><p>116 bpm</p></td><td  ><p>101 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Heart rate (max)</strong></p></td><td  ><p>164 bpm</p></td><td  ><p>136 bpm</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Calories burned</strong></p></td><td  ><p>492 calories</p></td><td  ><p>366 calories</p></td><td  ><p>n/a</p></td></tr><tr><td class="firstcol " ><p><strong>Battery depleted</strong></p></td><td  ><p>2%</p></td><td  ><p>0%</p></td><td  ><p>n/a</p></td></tr></tbody></table></div><p>I finished my walk with the sun shining brightly and scant a cloud in the sapphire blue sky. Both devices were within 200 paces of my actual step count, which is pretty good, but the Active 2 only overcounted by 117 while the Sense 2 added 187 steps to my count. Strava, meanwhile, beat both devices with a total step count of 6,046 </p><p>The Amazfit's distance data matches Strava nicely while the Fitbit appears to have undercalculated my total distance by roughly 0.43 miles, which is not insignificant. This result is also a bit strange given that the Fitbit also logged a higher step count. </p><p>The Fitbit Sense 2 doesn't provide an elevation gain metric for your workouts, but it will tell you how many "floors" you climbed for the day. I only wore the Sense 2 for this walk test, which, according to Google, was the equivalent of 28 climbed floors. Google calculates one floor as ten feet, by the way. </p><p>While the Sense 2's elevation gain lines up nicely with Strava's, the Amazfit Active 2 once again seemingly overcalculated my total elevation by a noticeable margin. I say "once again" because, versus the <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-just-went-hands-on-with-the-samsung-galaxy-fit3-and-it-could-be-my-new-favorite-budget-fitness-tracker">Samsung Galaxy Fit3</a>, the <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-5-500-steps-with-samsung-galaxy-fit3-vs-amazfit-active-2-heres-the-winner">Active 2 logged 58 feet more</a> than the control. And against the Apple Watch SE (2022), the <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-7-000-steps-with-apple-watch-se-vs-amazfit-active-2-heres-the-winner#section-apple-watch-se-vs-amazfit-active-2-walk-test-results">Active 2 overcounted by 165 feet</a> compared to the control. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="hF354SkSGeEBauCKJq6bCb" name="Sense2-v-Active2-02" alt="View of an apartment building along Lake Washington called "The Lake" with blue skies behind it" src="https://cdn.mos.cms.futurecdn.net/hF354SkSGeEBauCKJq6bCb.jpg" mos="" align="middle" fullscreen="" width="3600" height="2025" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Pace data is all over the place. Strava tends to have a faster pace than most wearables because the app aggressively pauses tracking anytime you stop moving. However, these results are about as wide-ranging as I've encountered. I notably stopped twice during this walk test, each for roughly 90 seconds to snap photos of the scenic views. </p><p>Heart rate data between the Sense 2 and Active 2 also looks funky. However, I'm inclined to trust Google's measurements more than Amazfit's on this one. First, 116 bpm is much closer to my average heart rate from prior walk tests of similar distance and elevation gain; the same goes for 165 bpm as my maximum.  </p><p>Finally, the Active 2 depleted a little less battery than the Sense 2 over my hour (and change) walk but both wearables left me impressed given onboard GPS tends to be a major power-suck for any device. </p><h3 class="article-body__section" id="section-fitbit-sense-2-vs-amazfit-active-2-and-the-winner-is"><span>Fitbit Sense 2 vs. Amazfit Active 2: And the winner is...</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3600px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="S2orPnuH3ueoGNM2vocMLb" name="Sense2-v-Active2-07" alt="Close up of the Amazfit Active 2 smartwatch next to the Fitbit Sense 2 with each showing the total step count for the day" src="https://cdn.mos.cms.futurecdn.net/S2orPnuH3ueoGNM2vocMLb.jpg" mos="" align="middle" fullscreen="" width="3600" height="2025" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>When comparing step count tracking accuracy between the Fitbit Sense 2 versus Amazfit Active 2, Amazfit beats Google, for this test at least. However, there are caveats. The Active 2's elevation data is way off from our control for the third test in a row, while the heart rate data is oddly low, something I also noted in the device's <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-5-500-steps-with-samsung-galaxy-fit3-vs-amazfit-active-2-heres-the-winner">face-off with the Galaxy Fit3</a>.</p><p>Both devices logged step counts higher than my actual total but still within a reasonable margin of error. However, the Sense 2 churned out strangely low distance and weirdly slow pace metrics, even if its elevation gain and heart rate data appear to be right on the money. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-fit3-vs-fitbit-inspire-3-which-budget-fitness-tracker-wins">Samsung Galaxy Fit3 vs Fitbit Inspire 3: Which budget fitness tracker should you buy?</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-tracked-skiing-with-a-usd99-smartwatch-heres-how-it-compares-to-my-usd450-garmin">I tracked skiing with a $99 smartwatch — here’s how it compares to my $450 Garmin</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-5-000-steps-with-the-amazfit-bip-5-vs-armitron-matrix-this-sub-usd100-smartwatch-wins">Under $100 smartwatch test: I walked 5,000 steps with the Amazfit Bip 5 vs Armitron Matrix — here’s the winner</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Google's overheating safety update for Fitbit is tanking battery life ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/smartwatches/googles-overheating-safety-update-for-fitbit-is-tanking-battery-life</link>
                                                                            <description>
                            <![CDATA[ A drop of over 80% in some cases. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">aka6yfkkiGAXjwhAdtbHsC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/dYc6FEEeKr8i4psBwAcGp8-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 22 Feb 2025 13:38:46 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Smartwatches]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                                    <dc:creator><![CDATA[ Alan Martin  ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/xMmhmPSssqZHHFWveDgSs7.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ null ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/dYc6FEEeKr8i4psBwAcGp8-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Fitbit Versa 3 review]]></media:description>                                                            <media:text><![CDATA[Fitbit Versa 3 review]]></media:text>
                                <media:title type="plain"><![CDATA[Fitbit Versa 3 review]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/dYc6FEEeKr8i4psBwAcGp8-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Exactly a month ago, <a href="https://www.tomsguide.com/wellness/smartwatches/these-fitbit-models-are-overheating-see-if-yours-is-on-the-list-to-get-usd50-from-google">Google pushed out a mandatory update</a> to certain <a href="https://www.tomsguide.com/reviews/fitbit-sense">Fitbit Sense</a> and <a href="https://www.tomsguide.com/reviews/fitbit-versa-3">Fitbit Versa 3</a> smartwatches it had detected were at risk of overheating. Owners of devices that received the update were eligible to receive $50 from Google as compensation, which sounded like a good resolution to impacted Fitbit fans.</p><p>But it turns out it may not have been such a great deal after all. The Fitbit forum and subreddit have been peppered with posts from owners of the smartwatches who have seen the update decimate their battery life, in some cases making the wearables all but useless.</p><p>“Before doing the update my battery would last about 5 -6 days,” wrote one user on the <a href="https://community.fitbit.com/t5/Other-Versa-Smartwatches/Versa-3-Battery-issues-after-firmware-update/td-p/5718530" target="_blank">official forums</a>. “Now since doing the update it lasts less than a day. That's with everything turned off too (eg. Notifications, snore detection, vibrations etc).”</p><p>This triggered a host of similar horror stories in the replies. One reported receiving a low battery warning just hours after charging to 100%, while another stated their device’s run time had dropped to 17% in less than 24 hours. </p><p>“I can't be charging it every day, and it's unacceptable to say a forced firmware update, due to a battery defect with their product, should be able to have this affect [sic.],” the user added </p><p>“I had to charge mine twice in one day and it cannot even make it through the night now. It is unusable,” responded another.</p><p>It’s a similar story on <a href="https://www.reddit.com/r/fitbit/comments/1ip7m4u/fitbit_sense_battery_suddenly_very_poor_dies_in/" target="_blank">Reddit</a> with less than 24 hours being the norm. “Drains from 85% to 35% in 3hres”, wrote one owner.</p><p>“I went from getting 3 days to barely 24 hours after the update,” writes another. “It's insane to me that a company's response to a battery recall can be to make the product basically unusable. </p><p>“Imagine if a car company could make a car's max speed 15mph in response to an airbag recall.”</p><h2 id="an-extreme-drop">An extreme drop</h2><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="8WJPgMSA2bkpYb6LsJSzYe" name="TG-Fitbit-Sense-1.jpg" alt="Fitbit Sense review" src="https://cdn.mos.cms.futurecdn.net/8WJPgMSA2bkpYb6LsJSzYe.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>To be clear, the <a href="https://support.google.com/fitbit/answer/15763108" target="_blank">support page</a> for the firmware update does mention that battery life will be impacted.</p><p>“The update will improve the stability of the device's battery performance and reduce the risk of the battery overheating,” the text reads. “As a result, the battery will last for shorter periods between charges and you may need to charge your device more frequently.”</p><p>But given the extreme drops in battery life that impacted users are experiencing, it feels safe to assume that Google wasn’t expecting this big a drop when the update rolled out. A change from five to six days to one is a drop of over 80%, and the tone of the above text doesn’t indicate anything near that drastic.</p><p>We have reached out to Google to ask about the widely reported battery issues, and will update the piece if and when we hear back. </p><p>In the meantime, however, there is an early sign that the company is beginning to take the problem seriously. While the first moderator reply on the <a href="https://community.fitbit.com/t5/Other-Versa-Smartwatches/Versa-3-Battery-issues-after-firmware-update/td-p/5718530" target="_blank">community thread</a> at the start of the month just reiterates the official line that the firmware update could affect battery life, a second post yesterday from the same account encourages users to contact customer support.</p>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I walked 5,500 steps with Samsung Galaxy Fit3 vs Amazfit Active 2: Here's the winner ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-walked-5-500-steps-with-samsung-galaxy-fit3-vs-amazfit-active-2-heres-the-winner</link>
                                                                            <description>
                            <![CDATA[ The Samsung Galaxy Fit3 and Amazfit Active 2 both cost less than $100. Which one tracks more accurately? We found out. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">Bu5RjbgVVrQfFNMVoAGtDm</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/y6uDWURQhGKx63xV2zyx5e-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 05 Feb 2025 11:00:00 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/y6uDWURQhGKx63xV2zyx5e-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Samsung Galaxy Fit3 on a user&#039;s wrist next to the Amazfit Active 2 with each device showing a step-count total for the day; a green plant is out of focus behind the watches]]></media:description>                                                            <media:text><![CDATA[The Samsung Galaxy Fit3 on a user&#039;s wrist next to the Amazfit Active 2 with each device showing a step-count total for the day; a green plant is out of focus behind the watches]]></media:text>
                                <media:title type="plain"><![CDATA[The Samsung Galaxy Fit3 on a user&#039;s wrist next to the Amazfit Active 2 with each device showing a step-count total for the day; a green plant is out of focus behind the watches]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/y6uDWURQhGKx63xV2zyx5e-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>There's no need to take a hammer to your piggy bank. The <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-just-went-hands-on-with-the-samsung-galaxy-fit3-and-it-could-be-my-new-favorite-budget-fitness-tracker">Samsung Galaxy Fit3</a> costs just $59 and the <a href="https://www.tomsguide.com/computing/smart-glasses/the-amazfit-active-2-has-all-the-features-of-a-flagship-smartwatch-for-under-usd100">Amazfit Active 2</a> starts at $99. The former launched in 2024 but recently became available in the U.S. while the latter was announced this <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-the-amazfit-active-2-and-it-could-be-the-new-budget-smartwatch-to-beat">January at CES</a>.</p><p>We're still in the process of testing each model, so neither has quite made it into our <a href="https://www.tomsguide.com/us/best-cheap-smartwatches,review-6342.html">best cheap smartwatch</a> or <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness tracker</a> buying guides yet, but both make a strong case for inclusion. Why? They each boast a metal case, AMOLED touchscreen,  a week-plus of battery life, detailed sleep insights, training and recovery tips and the ability to keep tabs on more than 100-plus sports and physical activities. All that for less than a Benjamin. </p><p>There are some notable differences between the two, though, outside of the obvious... one is a circle and the other is a rectangle. Beyond that, the Samsung Galaxy Fit3 is compatible with Android smartphones only. The Amazfit Active 2 plays nicely with iPhone and Android devices. </p><p>Only the Amazfit has an onboard GPS, while Galaxy Fit3 owners will need to bring their smartphone along for location tracking data. While both are reasonably lightweight and easy-wearing, the Fit3 has a noticeably brighter screen, making it easier to use on sunny days. However, the Active 2 has two physical buttons on the side of the case, which I prefer to the Samsung's one. </p><p>Finally, the Amazfit Active 2 comes in two versions. The tech is a match between them, but the standard $99 edition has a glass screen and aluminum case while the premium $129 edition boasts a tougher sapphire screen and titanium case. The latter edition also comes with both a leather and a silicone strap while the standard Amazfit only comes with the silicone. </p><p>With those key similarities and differences out of the way, you might be asking yourself, 'Which budget-friendly fitness tracker is more accurate, the Samsung Galaxy Fit3 or Amazfit Active 2?' Well, I've got answers for you, dear reader. Read on. </p><div class="product"><a data-dimension112="323dbb56-d0c0-4249-b194-926a7787fdb1" data-action="Deal Block" data-label="The Samsung Galaxy Fit3 is a slender and comfortable fitness tracker with a bright and responsive AMOLED screen, support for more than 100 workout types and many of the best holistic features from the brand's higher-end Galaxy Watch 7 and Ultra. With up to 13 days of battery and safety features, like fall detection, it's a lot of wearable for the money." data-dimension48="The Samsung Galaxy Fit3 is a slender and comfortable fitness tracker with a bright and responsive AMOLED screen, support for more than 100 workout types and many of the best holistic features from the brand's higher-end Galaxy Watch 7 and Ultra. With up to 13 days of battery and safety features, like fall detection, it's a lot of wearable for the money." data-dimension25="$51" href="https://www.amazon.com/SAMSUNG-Display-Watchfaces-Exercise-International/dp/B0CW3VJFPN/ref=asc_df_B0CW3VJFPN" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:975px;"><p class="vanilla-image-block" style="padding-top:123.08%;"><img id="6tGgn3FkW4WGFojzHLJaxG" name="512Td+jdctL._AC_SL1200_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6tGgn3FkW4WGFojzHLJaxG.jpg" mos="" align="middle" fullscreen="" width="975" height="1200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Samsung Galaxy Fit3 is a slender and comfortable fitness tracker with a bright and responsive AMOLED screen, support for more than 100 workout types and many of the best holistic features from the brand's higher-end Galaxy Watch 7 and Ultra. With up to 13 days of battery and safety features, like fall detection, it's a lot of wearable for the money. <a class="view-deal button" href="https://www.amazon.com/SAMSUNG-Display-Watchfaces-Exercise-International/dp/B0CW3VJFPN/ref=asc_df_B0CW3VJFPN" target="_blank" rel="nofollow" data-dimension112="323dbb56-d0c0-4249-b194-926a7787fdb1" data-action="Deal Block" data-label="The Samsung Galaxy Fit3 is a slender and comfortable fitness tracker with a bright and responsive AMOLED screen, support for more than 100 workout types and many of the best holistic features from the brand's higher-end Galaxy Watch 7 and Ultra. With up to 13 days of battery and safety features, like fall detection, it's a lot of wearable for the money." data-dimension48="The Samsung Galaxy Fit3 is a slender and comfortable fitness tracker with a bright and responsive AMOLED screen, support for more than 100 workout types and many of the best holistic features from the brand's higher-end Galaxy Watch 7 and Ultra. With up to 13 days of battery and safety features, like fall detection, it's a lot of wearable for the money." data-dimension25="$51">View Deal</a></p></div><div class="product"><a data-dimension112="1786cbf0-c024-494c-98ba-8ce20869d9e3" data-action="Deal Block" data-label="The Amazfit Active 2 is a sleek, all-metal fitness-centric smartwatch that's as easy on the eyes as it is on the bank account. Starting at $99, it boasts a nice-sized AMOLED touchscreen, a pair of physical buttons, a week-plus of battery, detailed sleep insights and over 160 sports tracking modes." data-dimension48="The Amazfit Active 2 is a sleek, all-metal fitness-centric smartwatch that's as easy on the eyes as it is on the bank account. Starting at $99, it boasts a nice-sized AMOLED touchscreen, a pair of physical buttons, a week-plus of battery, detailed sleep insights and over 160 sports tracking modes." data-dimension25="$99" href="https://www.amazon.com/Amazfit-Direction-Fitness-Resistant-Silicone/dp/B0DT3WZCZD?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1271px;"><p class="vanilla-image-block" style="padding-top:108.81%;"><img id="5rWhrDxAJo8MrqaLi7HfXZ" name="71mpuO4LqeL._AC_SL1500_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/5rWhrDxAJo8MrqaLi7HfXZ.jpg" mos="" align="middle" fullscreen="" width="1271" height="1383" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Amazfit Active 2 is a sleek, all-metal fitness-centric smartwatch that's as easy on the eyes as it is on the bank account. Starting at $99, it boasts a nice-sized AMOLED touchscreen, a pair of physical buttons, a week-plus of battery, detailed sleep insights and over 160 sports tracking modes. <a class="view-deal button" href="https://www.amazon.com/Amazfit-Direction-Fitness-Resistant-Silicone/dp/B0DT3WZCZD?th=1" target="_blank" rel="nofollow" data-dimension112="1786cbf0-c024-494c-98ba-8ce20869d9e3" data-action="Deal Block" data-label="The Amazfit Active 2 is a sleek, all-metal fitness-centric smartwatch that's as easy on the eyes as it is on the bank account. Starting at $99, it boasts a nice-sized AMOLED touchscreen, a pair of physical buttons, a week-plus of battery, detailed sleep insights and over 160 sports tracking modes." data-dimension48="The Amazfit Active 2 is a sleek, all-metal fitness-centric smartwatch that's as easy on the eyes as it is on the bank account. Starting at $99, it boasts a nice-sized AMOLED touchscreen, a pair of physical buttons, a week-plus of battery, detailed sleep insights and over 160 sports tracking modes." data-dimension25="$99">View Deal</a></p></div><h3 class="article-body__section" id="section-samsung-galaxy-fit3-vs-amazfit-active-2-walk-test"><span>Samsung Galaxy Fit3 vs. Amazfit Active 2: Walk test</span></h3><p>Taking advantage of another rare sunny day in Seattle, Washington, I tossed on my chunkiest New Balance walking shoes and more Patagonia/Arc'teryx outerwear than I care to admit (it was dang cold out), and split for the mean streets of the Emerald City, which were mostly empty save for some bundled up dog walkers and intrepid school-aged children whizzing around on scooters; I can only assume they were playing hooky. But I digress.</p><p>As always, I manually counted each step during the walk with some help from my old-school mechanical tally counter which I use to note every 100 steps taken. This makes the overall task of keeping track of my steps a whole lot easier. </p><p>I also tracked my walk using <a href="https://www.tomsguide.com/reviews/strava-review">Strava</a> on my iPhone. For reference, the Amazfit was worn on my left wrist and the Samsung on my right. Read on to see how the results from these two trackers did after 5,500 steps. </p><h3 class="article-body__section" id="section-samsung-galaxy-fit3-vs-amazfit-active-2-walk-test-results"><span>Samsung Galaxy Fit3 vs. Amazfit Active 2: Walk test results</span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  >Galaxy Fit3</th><th  >Amazfit Active 2</th><th  >Control</th></tr></thead><tbody><tr><td class="firstcol " >Steps</td><td  >5,448 steps</td><td  >5,571 steps</td><td  >5,500 (manual count)</td></tr><tr><td class="firstcol " >Distance</td><td  >2.89 miles</td><td  >2.88 miles</td><td  >2.93 miles</td></tr><tr><td class="firstcol " >Elevation gain</td><td  >Not given</td><td  >259 feet</td><td  >201 feet</td></tr><tr><td class="firstcol " >Pace (average)</td><td  >18 mins, 37 secs per mile</td><td  >20 mins, 19 secs per mile</td><td  >18 mins, 31 secs per mile</td></tr><tr><td class="firstcol " >Heart rate (average) </td><td  >117 bpm</td><td  >103 bpm</td><td  >n/a</td></tr><tr><td class="firstcol " >Heart rate (max)</td><td  >151 bpm</td><td  >114 bpm</td><td  >n/a</td></tr><tr><td class="firstcol " >Calories burned</td><td  >284 calories</td><td  >365 calories</td><td  >n/a</td></tr><tr><td class="firstcol " >Battery depleted</td><td  >1%</td><td  >1%</td><td  >n/a</td></tr></tbody></table></div><p>Samsung undercounted my walk by 52 steps while Amazfit overcounted by 71 steps (Strava overcounted by 66). These are seriously impressive results well within a reasonable margin of error. Total distance data is similarly consistent across the board. </p><p>Things get a little shaky when it comes to elevation data, though. The Galaxy Fit3 has an onboard barometer so it should provide a total climb/elevation gain figure. It just doesn't. For some reason, Samsung has the device programmed to only report your minimum and maximum elevation for the workout, which isn't all that useful. </p><p>On the flip side, the Active 2 offers elevation gain data, it's just noticeably higher than what Strava recorded. From my experience, Strava's elevation data tends to be pretty darn accurate (and I didn't do that much hill climbing on this walk). So, I'm inclined (pun intended) to suspect that Amazfit exaggerated my efforts in this regard. </p><p>Moving on to pace, both the Galaxy Fit3 and Strava are programmed to pause workout tracking for momentary breaks in movement, while the Active 2 seems less inclined to do so, leading to a slower overall pace. </p><p>Heart rate data is considerably different between Samsung and Amazfit, too. However, judging from previous walk tests of similar effort, the Galaxy Fit3's tally seems likely more accurate than the Active 2's. For example, when I walked <a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-5-500-steps-with-the-apple-watch-ultra-2-vs-pixel-watch-3-xl-heres-the-winner#section-apple-watch-ultra-2-vs-google-pixel-watch-3-walk-test-results">5,500 steps with the Apple Watch 10 vs. Google Pixel Watch 3</a> (note: not the exact same route) the max heart rates were 160 bpm and 134 bpm, respectively, and the average heart rates were 115 bpm and 110 bpm. </p><p>Finally, the Active 2 calculated more calories burned, which is a bit odd, given the device found my overall workout less strenuous than the Galaxy Fit3. </p><h3 class="article-body__section" id="section-samsung-galaxy-fit3-vs-amazfit-active-2-and-the-winner-is"><span>Samsung Galaxy Fit3 vs. Amazfit Active 2: and the winner is...</span></h3><p>Ultimately, with a total step count that's 19 steps closer to my actual count, of 5,500 steps, the Samsung Galaxy Fit3 comes out victorious against the Amazfit Active 2 in this fitness-tacking accuracy showdown. This is Samsung's second walk-test victory in less than a week; the <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-6-500-steps-with-fitbit-inspire-3-vs-samsung-galaxy-fit3-heres-the-winner">Galaxy Fit3 defeated the Fitbit Inspire 3</a> during a recent 6,500-step showdown. </p><p>But, back to this battle, as there are caveats. Both of these devices logged remarkably accurate step count and distance data. But, neither provided particularly useful (Samsung) or seemingly accurate (Amazfit) elevation data. </p><p>The Amazfit Active 2's heart rate data also seems off, but more testing is needed to confirm whether or not it was a fluke this time around. On that subject: I'm in the process of reviewing both of these devices as we speak, so stay tuned, for further analysis soon. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide:</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-5-000-steps-with-the-amazfit-bip-5-vs-armitron-matrix-this-sub-usd100-smartwatch-wins">Under $100 smartwatch test: I walked 5,000 steps with the Amazfit Bip 5 vs Armitron Matrix — here’s the winner</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-fit3-vs-fitbit-inspire-3-which-budget-fitness-tracker-wins">Samsung Galaxy Fit3 vs Fitbit Inspire 3: Which budget fitness tracker should you buy?</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-tracked-skiing-with-a-usd99-smartwatch-heres-how-it-compares-to-my-usd450-garmin">I tracked skiing with a $99 smartwatch — here’s how it compares to my $450 Garmin</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Samsung Galaxy Fit3 vs Fitbit Inspire 3: Which budget fitness tracker should you buy? ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-fit3-vs-fitbit-inspire-3-which-budget-fitness-tracker-wins</link>
                                                                            <description>
                            <![CDATA[ The Fitbit Inspire 3 is our favorite budget fitness tracker but the new Galaxy Fit3 is gunning for Google's title. Here's a breakdown of how the two wallet-friendly wearables compare. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">gAwaAkGfJFjE6nMsFvaJQV</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/7NkAPtfMHtVPypAMyUwmTf-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 01 Feb 2025 11:00:00 +0000</pubDate>                                                                                                                                <updated>Sat, 01 Feb 2025 21:34:35 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/7NkAPtfMHtVPypAMyUwmTf-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Samsung Galaxy Fit3 next to the Fitbit Inspire 3 in a user&#039;s hand]]></media:description>                                                            <media:text><![CDATA[Close-up of the Samsung Galaxy Fit3 next to the Fitbit Inspire 3 in a user&#039;s hand]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Samsung Galaxy Fit3 next to the Fitbit Inspire 3 in a user&#039;s hand]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/7NkAPtfMHtVPypAMyUwmTf-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Fitbit Inspire 3 is the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html#section-best-budget-fitness-tracker">best budget fitness tracker</a> we've tested. However, at just over two years old, it's not the spryest horse in the stable these days. Also, with <a href="https://www.tomsguide.com/wellness/smartwatches/google-is-slowly-shuttering-fitbit-should-you-still-buy-one">Google winding down various Fitbit product lines</a>, we have no clue whether or not will see a Fitbit Inspire 4.</p><p>Meanwhile, the <a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-just-launched-a-new-budget-friendly-fitness-tracker-with-smartwatch-features-and-nearly-2-weeks-of-battery-life">Samsung Galaxy Fit3</a>  just launched in the U.S. this winter (though it was first announced in February 2024). A paired-down version of the Samsung <a href="https://www.tomsguide.com/wellness/smartwatches/samsung-galaxy-watch-7-review">Galaxy Watch 7</a> with most of the same fitness and holistic features (but none of the smarts or apps support), it has the makings of a top-tier competitor, and a super-tempting launch price to boot ($59). </p><p>We're still testing Samsung's latest tracker, but based on my first impressions, here's how the <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a> vs <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-just-went-hands-on-with-the-samsung-galaxy-fit3-and-it-could-be-my-new-favorite-budget-fitness-tracker">Samsung Galaxy Fit3</a> stack up across five crucial categories including price, compatibility, design, health/fitness tech and battery life.</p><div class="product"><a data-dimension112="42c30477-81ac-4d70-897c-1ca5ace94da6" data-action="Deal Block" data-label="The Fitbit Inspire 3 is the best wallet-friendly fitness tracker that works with both iPhones and Android smartphones. Lightweight and easy-wearing, it has all the basics covered including monitoring daily movement, heart health, sleep and even workout recovery." data-dimension48="The Fitbit Inspire 3 is the best wallet-friendly fitness tracker that works with both iPhones and Android smartphones. Lightweight and easy-wearing, it has all the basics covered including monitoring daily movement, heart health, sleep and even workout recovery." data-dimension25="$89" href="https://www.amazon.com/Fitbit-Inspire-Fitness-Tracker-Management/dp/B0B6WRTPNV/ref=asc_df_B0B6WRTPNV" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1108px;"><p class="vanilla-image-block" style="padding-top:135.38%;"><img id="YKohnnJWboVaJs2FD5xeP8" name="Fitbit Inspire 3 deal block.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/YKohnnJWboVaJs2FD5xeP8.jpg" mos="" align="middle" fullscreen="" width="1108" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Inspire 3 is the best wallet-friendly fitness tracker that works with both iPhones and Android smartphones. Lightweight and easy-wearing, it has all the basics covered including monitoring daily movement, heart health, sleep and even workout recovery. <a class="view-deal button" href="https://www.amazon.com/Fitbit-Inspire-Fitness-Tracker-Management/dp/B0B6WRTPNV/ref=asc_df_B0B6WRTPNV" target="_blank" rel="nofollow" data-dimension112="42c30477-81ac-4d70-897c-1ca5ace94da6" data-action="Deal Block" data-label="The Fitbit Inspire 3 is the best wallet-friendly fitness tracker that works with both iPhones and Android smartphones. Lightweight and easy-wearing, it has all the basics covered including monitoring daily movement, heart health, sleep and even workout recovery." data-dimension48="The Fitbit Inspire 3 is the best wallet-friendly fitness tracker that works with both iPhones and Android smartphones. Lightweight and easy-wearing, it has all the basics covered including monitoring daily movement, heart health, sleep and even workout recovery." data-dimension25="$89">View Deal</a></p></div><div class="product"><a data-dimension112="a3a0664a-16e7-4a06-acb1-b289497256b6" data-action="Deal Block" data-label="The Samsung Galaxy Fit3 may be the best fitness tracker for the buck in 2025 thanks to its sizable and bright AMOLED touchscreen, thin case, 100-plus workout tracking modes, fall detection and comprehensive sleep reports. However, this tracker is Android only." data-dimension48="The Samsung Galaxy Fit3 may be the best fitness tracker for the buck in 2025 thanks to its sizable and bright AMOLED touchscreen, thin case, 100-plus workout tracking modes, fall detection and comprehensive sleep reports. However, this tracker is Android only." data-dimension25="$51" href="https://www.amazon.com/SAMSUNG-Display-Watchfaces-Exercise-International/dp/B0CW3VJFPN/ref=asc_df_B0CW3VJFPN" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:975px;"><p class="vanilla-image-block" style="padding-top:123.08%;"><img id="6tGgn3FkW4WGFojzHLJaxG" name="512Td+jdctL._AC_SL1200_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6tGgn3FkW4WGFojzHLJaxG.jpg" mos="" align="middle" fullscreen="" width="975" height="1200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Samsung Galaxy Fit3 may be the best fitness tracker for the buck in 2025 thanks to its sizable and bright AMOLED touchscreen, thin case, 100-plus workout tracking modes, fall detection and comprehensive sleep reports. However, this tracker is Android only. <a class="view-deal button" href="https://www.amazon.com/SAMSUNG-Display-Watchfaces-Exercise-International/dp/B0CW3VJFPN/ref=asc_df_B0CW3VJFPN" target="_blank" rel="nofollow" data-dimension112="a3a0664a-16e7-4a06-acb1-b289497256b6" data-action="Deal Block" data-label="The Samsung Galaxy Fit3 may be the best fitness tracker for the buck in 2025 thanks to its sizable and bright AMOLED touchscreen, thin case, 100-plus workout tracking modes, fall detection and comprehensive sleep reports. However, this tracker is Android only." data-dimension48="The Samsung Galaxy Fit3 may be the best fitness tracker for the buck in 2025 thanks to its sizable and bright AMOLED touchscreen, thin case, 100-plus workout tracking modes, fall detection and comprehensive sleep reports. However, this tracker is Android only." data-dimension25="$51">View Deal</a></p></div><h3 class="article-body__section" id="section-galaxy-fit3-vs-fitbit-inspire-3-specs-compared"><span>Galaxy Fit3 vs Fitbit Inspire 3: Specs compared</span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  >Fitbit Inspire 3</th><th  >Samsung Galaxy Fit3</th></tr></thead><tbody><tr><td class="firstcol " ><strong>Price</strong></td><td  >$99</td><td  >$59</td></tr><tr><td class="firstcol " ><strong>Launch date</strong></td><td  >Fall 2022</td><td  >Winter 2024</td></tr><tr><td class="firstcol " ><strong>Weight</strong></td><td  >17.7 g</td><td  >36.8 g</td></tr><tr><td class="firstcol " ><strong>Dimensions</strong></td><td  >39.4 x 18.5 x 11.7 mm</td><td  >42.9 x 28.8 x 9.9 mm</td></tr><tr><td class="firstcol " ><strong>Screen size and type</strong></td><td  >0.7-inch AMOLED</td><td  >1.6-inch AMOLED</td></tr><tr><td class="firstcol " ><strong>Battery life</strong></td><td  >Up to 10 days</td><td  >Up to 13 days</td></tr><tr><td class="firstcol " ><strong>Health sensors</strong></td><td  >Heart rate, Blood ox, Skin temp, Accelerometer </td><td  >Heart rate, Blood ox, Skin temp, Accelerometer, Barometer </td></tr><tr><td class="firstcol " ><strong>Onboard GPS?</strong></td><td  >No</td><td  >No</td></tr><tr><td class="firstcol " ><strong>NFC payments? </strong></td><td  >No</td><td  >No</td></tr><tr><td class="firstcol " ><strong>Water resistance </strong></td><td  >50 meters</td><td  >50 meters</td></tr></tbody></table></div><h3 class="article-body__section" id="section-galaxy-fit3-vs-fitbit-inspire-3-price-and-launch-date"><span>Galaxy Fit3 vs Fitbit Inspire 3: Price and launch date</span></h3><p>The Fitbit Inspire 3 made its debut in fall 2022 with a launch price of $99. Though it still retails for that same price nearly 2.5 years later, it also goes on sale fairly frequently for between $10 and $20 off. For instance, <a href="https://www.amazon.com/Fitbit-Inspire-Fitness-Tracker-Management/dp/B0B6WRTPNV/ref=asc_df_B0B6WRTPNV" target="_blank" rel="nofollow">Amazon has it for $89</a> as of writing. </p><p>The Samsung Galaxy Fit3 was announced in Winter 2024 but didn't become available in the U.S. until January 2025. The launch price is $59, though I've already seen it <a href="https://www.amazon.com/SAMSUNG-Display-Watchfaces-Exercise-International/dp/B0CW3VJFPN/ref=asc_df_B0CW3VJFPN" target="_blank" rel="nofollow">listed for less on Amazon</a>, similar to the Fitbit. </p><p><em><strong>Winner: </strong></em><em>Samsung Galaxy Fit3</em></p><h3 class="article-body__section" id="section-galaxy-fit3-vs-fitbit-inspire-3-phone-compatibility"><span>Galaxy Fit3 vs Fitbit Inspire 3: Phone compatibility </span></h3><p>This one is pretty cut and dry. The Fitbit app plays nicely on both iPhone and Android smartphones while the Samsung Health app is <a href="https://www.samsung.com/us/support/answer/ANS10004550/">Android only</a>. You'll also need to be running Android 10 or higher to sync the Samsung Galaxy Fit3. </p><p>It's also not crystal clear whether one of the latest Samsung Galaxy phones is required to fully unlock all of the Fit3's health features, namely, the advanced sleep-tracking insights. I've reached out to Samsung for clarification on the matter and will update this section when I know more. </p><p><em><strong>Winner: </strong></em><em>Fitbit Inspire 3</em></p><h3 class="article-body__section" id="section-galaxy-fit3-vs-fitbit-inspire-3-design-and-usability"><span>Galaxy Fit3 vs Fitbit Inspire 3: Design and usability </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2595px;"><p class="vanilla-image-block" style="padding-top:56.22%;"><img id="43SxUJgQ8Jon7p9VF5sire" name="Fit3-Inspire3-04" alt="Close-up of the Samsung Galaxy Fit3 next to the Fitbit Inspire 3 in a user's hand" src="https://cdn.mos.cms.futurecdn.net/43SxUJgQ8Jon7p9VF5sire.jpg" mos="" align="middle" fullscreen="" width="2595" height="1459" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>The Samsung Galaxy Fit3 has more than than twice the screen real estate of the Fitbit Inspire 3 along with a brighter maximum output that makes it much easier to view in direct daylight. </p><p>While the Fitbit is thicker than the Samsung, the device's overall footprint is considerably smaller. The Inspire 3 is also roughly half the weight of the Fit3, making it a comfier and stealthier option for fitness tracking. </p><p>Both fitness trackers offer 50 meters of water resistance but the Galaxy Fit3 has a slightly more impressive build thanks to its metal bezel (the Inspire 3 case is all plastic). </p><p>While the Fitbit has two haptic buttons on either side of the case, the Samsung has a single physical button. Both screens are touch-sensitive but I find the Galaxy Fit3's display easier to navigate thanks to its size; it also seems more responsive to nuanced touch. Overall, this gives the Samsung tracker better usability than the Fitbit. </p><p><em><strong>Winner: </strong></em><em>Samsung Galaxy Fit3</em></p><h3 class="article-body__section" id="section-galaxy-fit3-vs-fitbit-inspire-3-fitness-and-health-tracking"><span>Galaxy Fit3 vs Fitbit Inspire 3: Fitness and health tracking </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2660px;"><p class="vanilla-image-block" style="padding-top:56.28%;"><img id="NfDnm4QkDJx9RcQQQXNZve" name="Fit3-Inspire3-03" alt="Close-up of the Samsung Galaxy Fit3 next to the Fitbit Inspire 3 in a user's hand" src="https://cdn.mos.cms.futurecdn.net/NfDnm4QkDJx9RcQQQXNZve.jpg" mos="" align="middle" fullscreen="" width="2660" height="1497" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>You get similar sets of holistic sensors on both the Inspire 3 and Fit3, including the ability to monitor heart rate, blood oxygen saturation, body temperature, physical movement and respiratory rate. </p><p>Neither device has an onboard GPS for location tracking, so, if you're going for a run, walk or bike ride while wearing either, you'll need to bring your phone along. For hikers and anyone who loves mountain recreation, only the Fit3 has an onboard barometer to report elevation data. </p><p>Google recently expanded the number of activities that can be <a href="https://www.tomsguide.com/wellness/fitness-trackers/the-fitbit-sense-2-and-versa-4-just-got-a-massive-free-software-upgrade-heres-what-it-unlocks#section-fitbit-inspire-3-improvements">tracked with the Inspire 3</a> to 40+ but it still doesn't come close to matching Samsung's list of 100-plus compatible workout types. For example, I can track snowboarding with the Samsung but not the Fitbit. </p><p>But when it comes to basic workout tracking, like keeping tabs on walks and jogs, which device is more reliable? Earlier this week, <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-walked-6-500-steps-with-fitbit-inspire-3-vs-samsung-galaxy-fit3-heres-the-winner">I tracked a walk with the Fitbit Inspire 3 vs. Galaxy Fit3</a> and the Samsung wearable proved superior, at least, in accurately measuring steps and distance. </p><p>In addition to fitness tracking, both of these devices offer lots of tools to help you improve your sleep quality, maximize workout recovery and even train for a goal. The difference is that Fitbit places some of its best insights behind its Fitbit Premium paywall ($9.99 a month or $79.99 for the year) and Samsung doesn't. </p><p><em><strong>Winner: </strong></em><em>Samsung Galaxy Fit3</em></p><h3 class="article-body__section" id="section-galaxy-fit3-vs-fitbit-inspire-3-battery-life"><span>Galaxy Fit3 vs Fitbit Inspire 3: Battery life</span></h3><p>The Fitbit Inspire 3 lasts roughly 10 days between charges, which is very good given its diminutive size, while Samsung says that the Galaxy Fit3 can last just shy of two weeks per charge. I'm still testing those claims, but thus far, they seem to check out.</p><p><em><strong>Winner: </strong></em><em>Samsung Galaxy Fit3</em></p><h3 class="article-body__section" id="section-which-fitness-tracker-wins"><span>Which fitness tracker wins? </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3562px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="Wa3RNzmmXYegqxutHeo2Pf" name="Fit3-Inspire3-02" alt="Close-up of the Samsung Galaxy Fit3 next to the Fitbit Inspire 3 in a user's hand" src="https://cdn.mos.cms.futurecdn.net/Wa3RNzmmXYegqxutHeo2Pf.jpg" mos="" align="middle" fullscreen="" width="3562" height="2004" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>For Android smartphone users, the Samsung Galaxy Fit3 is the clear choice over the Fitbit Inspire 3 with better battery life, similar health features without a paywall, a greater range of trackable workout types and a larger display that's easier to use.</p><p>However, the Fitbit Inspire 3 remains the better option for iPhone users simply because the Galaxy Fit3 is incompatible with iOS. However, those craving Samsung's larger display and cheaper price tag may want to check out the <a href="https://www.tomsguide.com/wellness/fitness-trackers/amazfit-band-7-review">Amazfit Band7</a>, instead. </p><p><em><strong>Overall winner: </strong></em><em>Samsung Galaxy Fit3</em></p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide:</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/these-fitbit-models-are-overheating-see-if-yours-is-on-the-list-to-get-usd50-from-google">These Fitbit models are overheating — see if yours is on the list to get $50 from Google</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-ultra-2-vs-garmin-instinct-3-which-rugged-smartwatch-wins">Garmin Instinct 3 vs. Apple Watch Ultra 2: Biggest differences to consider before you buy</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/samsung-just-launched-a-kid-friendly-smartwatch-mode-for-the-galaxy-watch-7-and-parents-can-try-it-now">Samsung just launched a kid-friendly smartwatch mode for the Galaxy Watch 7 — and parents can try it now</a><strong></strong></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I walked 6,500 steps with Fitbit Inspire 3 vs. Samsung Galaxy Fit3 — here's the winner ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-walked-6-500-steps-with-fitbit-inspire-3-vs-samsung-galaxy-fit3-heres-the-winner</link>
                                                                            <description>
                            <![CDATA[ In this Fitbit Inspire 3 vs. Samsung Galaxy Fit3 face-off, we'll learn which entry-level fitness tracker is more accurate. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">SLkofD2wHBfWkw7EqqxqxG</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/E2eW5LvP4Wr2bmXPBf2ANB-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 29 Jan 2025 09:30:00 +0000</pubDate>                                                                                                                                <updated>Tue, 04 Feb 2025 22:03:54 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/E2eW5LvP4Wr2bmXPBf2ANB-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Samsung Galaxy Fit3 next to the Fitbit Inspire 3 on a user&#039;s wrist with each screen showing the total step count for the day]]></media:description>                                                            <media:text><![CDATA[The Samsung Galaxy Fit3 next to the Fitbit Inspire 3 on a user&#039;s wrist with each screen showing the total step count for the day]]></media:text>
                                <media:title type="plain"><![CDATA[The Samsung Galaxy Fit3 next to the Fitbit Inspire 3 on a user&#039;s wrist with each screen showing the total step count for the day]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/E2eW5LvP4Wr2bmXPBf2ANB-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Samsung Galaxy Fit3 is the new kid on the entry-level fitness tracker block, boasting a bright, responsive AMOLED screen, support for tracking more than 100 workout types, an onboard Sp02 sensor, nearly two weeks of battery, and comprehensive sleep data for under $60.</p><p>I'm in the process of testing the <a href="https://www.tomsguide.com/wellness/fitness-trackers/i-just-went-hands-on-with-the-samsung-galaxy-fit3-and-it-could-be-my-new-favorite-budget-fitness-tracker">Samsung Galaxy Fit3</a> now, and it's already making a strong case for inclusion in our <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness tracker</a> buying guide. But, which fitness tracker is it most likely to knock out? One possibility is the <a href="https://www.tomsguide.com/wellness/fitness-trackers/amazfit-band-7-review">Amazfit Band 7</a>, our favorite tracker under $50. Another is the popular <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a>, our top wallet-friendly pick. </p><p>For this article, I tested the Inspire 3 against the new Galaxy Fit3 in a head-to-head showdown of fitness-tracking supremacy. Which entry-level wearable came out on top? Read on. </p><h3 class="article-body__section" id="section-fitbit-inspire-3-vs-samsung-galaxy-fit3-features-compared"><span>Fitbit Inspire 3 vs. Samsung Galaxy Fit3: Features compared</span></h3><p>Here's an in-depth comparison of how the <a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-fit3-vs-fitbit-inspire-3-which-budget-fitness-tracker-wins">Galaxy Fit3 vs Fitbit Inspire 3</a> compare across key categories like price, battery, compatibility and usability. However, for the TLDR crowd, I've condensed the major themes of the piece below:</p><p>The Galaxy Fit3 is a new fitness tracker for 2025 with a launch price of $59. The Fitbit Inspire 3 launched in late 2022 for $99. Neither device has an onboard GPS, so you'll need to bring your phone with you during outdoor workouts for location details.</p><p>The Fit3 <em>does</em> have an onboard barometer for elevation tracking; the Inspire 3 does not. Both devices boast batteries that will last greater than a week. Samsung says the Fit3 gets up to 13 days of battery per charge, while the Inspire 3 gets around 10 days.</p><p>You get a touch-sensitive AMOLED screen on either tracker but the Samsung has significantly more screen real estate and a brighter maximum output, making it easier to see in direct sunlight. On the flip side, the Inspire 3 is smaller and stealthier than the Fit3. </p><p>The Galaxy tracker also supports a wider range of workout types compared to the entry-level Fitbit, but both do the basics like tracking runs, walks, hikes, bike rides and gym-based workouts. You can also keep tabs on daily movement and heart rate with either. </p><p>Sleep tracking is offered on both the Fit3 and Inspire 3, as are insights into workout recovery. However, only the Galaxy device has fall detection. </p><p>One major drawback to the Galaxy Fit3 is compatibility with Android smartphones only. The Fitbit Inspire 3, on the other hand, plays nicely with both Apple and Android.</p><div class="product"><a data-dimension112="1786cbf0-c024-494c-98ba-8ce20869d9e3" data-action="Deal Block" data-label="best fitness trackers" data-dimension48="best fitness trackers" data-dimension25="$89" href="https://www.amazon.com/Fitbit-Inspire-Fitness-Tracker-Management/dp/B0B6WRTPNV/ref=asc_df_B0B6WRTPNV" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:1108px;"><p class="vanilla-image-block" style="padding-top:135.38%;"><img id="nsZi5DVvJJ6p46zQjxF9JB" name="fitbit inspire 3.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/nsZi5DVvJJ6p46zQjxF9JB.jpg" mos="" align="middle" fullscreen="" width="1108" height="1500" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Inspire 3 is Fitbit's most entry-level and easy-wearing fitness tracker. Despite launching in 2022, it remains one of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html#section-best-budget-fitness-tracker" data-dimension112="1786cbf0-c024-494c-98ba-8ce20869d9e3" data-action="Deal Block" data-label="best fitness trackers" data-dimension48="best fitness trackers" data-dimension25="$89">best fitness trackers</a> you can buy, thanks to an AMOLED touchscreen, 10 days of battery, accurate heart rate and sleep data, support for lots of popular workout types and even insights into training and recovery.<a class="view-deal button" href="https://www.amazon.com/Fitbit-Inspire-Fitness-Tracker-Management/dp/B0B6WRTPNV/ref=asc_df_B0B6WRTPNV" target="_blank" rel="nofollow" data-dimension112="1786cbf0-c024-494c-98ba-8ce20869d9e3" data-action="Deal Block" data-label="best fitness trackers" data-dimension48="best fitness trackers" data-dimension25="$89">View Deal</a></p></div><div class="product"><a data-dimension112="323dbb56-d0c0-4249-b194-926a7787fdb1" data-action="Deal Block" data-label="Amazfit Active 2" data-dimension48="Amazfit Active 2" data-dimension25="$51" href="https://www.amazon.com/SAMSUNG-Display-Watchfaces-Exercise-International/dp/B0CW3VJFPN/ref=asc_df_B0CW3VJFPN" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:975px;"><p class="vanilla-image-block" style="padding-top:123.08%;"><img id="6tGgn3FkW4WGFojzHLJaxG" name="512Td+jdctL._AC_SL1200_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6tGgn3FkW4WGFojzHLJaxG.jpg" mos="" align="middle" fullscreen="" width="975" height="1200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Galaxy Fit3 is Samsung's first new fitness tracker in roughly half a decade. Compatible with Android smartphones only, this $59 tracker boasts a sizable and bright AMOLED touchscreen, support for more than 100 workout types, in-depth sleep analysis, fall detection, and more, making it one of the most exciting wallet-friendly wearables to launch this year (up there with the <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-the-amazfit-active-2-and-it-could-be-the-new-budget-smartwatch-to-beat" data-dimension112="323dbb56-d0c0-4249-b194-926a7787fdb1" data-action="Deal Block" data-label="Amazfit Active 2" data-dimension48="Amazfit Active 2" data-dimension25="$51">Amazfit Active 2</a>).<a class="view-deal button" href="https://www.amazon.com/SAMSUNG-Display-Watchfaces-Exercise-International/dp/B0CW3VJFPN/ref=asc_df_B0CW3VJFPN" target="_blank" rel="nofollow" data-dimension112="323dbb56-d0c0-4249-b194-926a7787fdb1" data-action="Deal Block" data-label="Amazfit Active 2" data-dimension48="Amazfit Active 2" data-dimension25="$51">View Deal</a></p></div><h3 class="article-body__section" id="section-fitbit-inspire-3-vs-samsung-galaxy-fit3-walk-test"><span>Fitbit Inspire 3 vs. Samsung Galaxy Fit3: Walk test</span></h3><p>If you're new here, this is a quick rundown of how our walk test is performed: With a device on either wrist, I switch on tracking and set out on a walk around Seattle, Washington. In addition to the trackers, I also log the walk using Strava on my phone for an additional set of data to compare my results to.</p><p>While I look across metrics like distance, heart rate and calories burned, the winner of the walk test is the device that has the most accurate total step count when my walk is complete. </p><p>As a control, I manually count each step. Once I hit 100, I click a mechanical tally counter and start over again at one. With 65 clicks and 6,500 steps logged on a gorgeous January day, here's how the logged data from the Fitbit Inspire 3 vs. Samsung Galaxy Fit3 compares.  </p><h3 class="article-body__section" id="section-fitbit-inspire-3-vs-samsung-galaxy-fit3-walk-test-results"><span>Fitbit Inspire 3 vs. Samsung Galaxy Fit3: Walk test results</span></h3><div ><table><thead><tr><th class="firstcol empty" ></th><th  >Fitbit Inspire 3</th><th  >Galaxy Fit3</th><th  >Control</th></tr></thead><tbody><tr><td class="firstcol " >Steps</td><td  >6,623 steps</td><td  >6,424 steps</td><td  >6,500 (manual count)</td></tr><tr><td class="firstcol " >Distance</td><td  >3.04 miles</td><td  >3.50 miles</td><td  >3.66 miles (Strava)</td></tr><tr><td class="firstcol " >Elevation gain</td><td  >no value given</td><td  >No value given</td><td  >295 feet </td></tr><tr><td class="firstcol " >Pace (average)</td><td  >21 mins 43 secs per mile</td><td  >17 mins 4 secs per mile</td><td  >16 mins 28 secs per mile</td></tr><tr><td class="firstcol " >Heart rate (average) </td><td  >112 bpm</td><td  >118 bpm</td><td  >n/a</td></tr><tr><td class="firstcol " >Heart rate (max)</td><td  >137 bpm</td><td  >149 bpm</td><td  >n/a</td></tr><tr><td class="firstcol " >Calories burned</td><td  >510 calories</td><td  >342 calories</td><td  >n/a</td></tr><tr><td class="firstcol " >Battery depleted</td><td  >2%</td><td  >1%</td><td  >n/a</td></tr></tbody></table></div><p>The Samsung Galaxy Fit3 undercounted my step count total by 76 steps and the Fitbit Inspire 3 overcounted by 123. Both are impressive results that fall well within a reasonable margin of error (off by less than 3%) but Samsung's total is closer to my actual count. For what it's worth, Strava was even closer at 6,518 steps. </p><p>Despite overcounting my steps by a little, the Fitbit seemingly undercounted my distance by roughly half of a mile. Frustratingly, despite having access to elevation data via my paired iPhone, the Inspire 3 doesn't generate a value for elevation gain. </p><p>Seattle is a darn hilly city, and whether I'm walking, running, or biking, I want to know just how much I've climbed when all is said and done. Fortunately, the Galaxy Fit3 does offer elevation data courtesy of its onboard barometer. Unfortunately, it only records your minimum and maximum elevation for the workout, not your actual climb.</p><p>While Strava and the Galaxy Fit3 noted fairly similar average paces, the Inspire 3's pace is notably slower. My hunch here is that Strava and the Samsung are auto-pausing whenever I stop moving if only for a few moments, say, to tie my shoe. Meanwhile, the Fitbit seems to be counting any and all pauses against me. </p><p>With the Samsung on my left wrist and the Fitbit on my right, I expected some variances in heart rate data and indeed, there were. The Galaxy Fit3 recorded a slightly higher average and max heart rate than the Inspire 3. However, the difference of 6-12 bpm isn't cause for concern, as my <em>actual</em> average and max heart rates likely fall somewhere between the two results. </p><h3 class="article-body__section" id="section-fitbit-inspire-3-vs-samsung-galaxy-fit3-and-the-winner-is"><span>Fitbit Inspire 3 vs. Samsung Galaxy Fit3: and the winner is...</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2111px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="HwmxFHc6fj2ojmXgQvyU9i" name="GalaxyFit3-10" alt="Close-up of the Samsung Galaxy Fit3 fitness tracker on a white rubber strap" src="https://cdn.mos.cms.futurecdn.net/HwmxFHc6fj2ojmXgQvyU9i.jpg" mos="" align="middle" fullscreen="" width="2111" height="1187" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Samsung Galaxy Fit3 comfortably wins this showdown versus the Fitbit Inspire 3 thanks to its more accurate step count and total distance data. However, this doesn't mean that the Fitbit Inspire 3 is a bad tracker. Despite lower-than-expected distance and slower-than-expected pace data, the rest of the Inspire 3's results are more than accurate enough. </p><p>But the Galaxy Fit3 is today's champion which means that Samsung is free to bask in its much-earned victory over Fitbit/Google, at least, until the next walk test between these two titans. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide:</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-5-000-steps-with-the-amazfit-bip-5-vs-armitron-matrix-this-sub-usd100-smartwatch-wins">Under $100 smartwatch test: I walked 5,000 steps with the Amazfit Bip 5 vs Armitron Matrix — here’s the winner</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/samsung-just-launched-a-kid-friendly-smartwatch-mode-for-the-galaxy-watch-7-and-parents-can-try-it-now">Samsung just launched a kid-friendly smartwatch mode for the Galaxy Watch 7 — and parents can try it now</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-hiked-9-miles-with-the-apple-watch-se-vs-pixel-watch-3-vs-garmin-forerunner-165-5-things-i-learned">I hiked 9 miles with the Apple Watch SE vs. Pixel Watch 3 vs. Garmin Forerunner 165 — 5 things I learned</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I just went hands-on with the Samsung Galaxy Fit3 — a Fitbit killer for less than $60 ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/fitness-trackers/i-just-went-hands-on-with-the-samsung-galaxy-fit3-and-it-could-be-my-new-favorite-budget-fitness-tracker</link>
                                                                            <description>
                            <![CDATA[ Priced at under $60, the new Samsung Galaxy Fit3 could be the Fitbit killer we've been hoping for. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">gtA9vSdRNiPf2LpCvsaDSa</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/agFLsmT7nrFTDvGYHq2uBi-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Tue, 28 Jan 2025 09:30:10 +0000</pubDate>                                                                                                                                <updated>Tue, 28 Jan 2025 20:05:51 +0000</updated>
                                                                                                                                            <category><![CDATA[Fitness Trackers]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                    <category><![CDATA[Smartwatches]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/agFLsmT7nrFTDvGYHq2uBi-1280-80.jpg">
                                                            <media:credit><![CDATA[Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Samsung Galaxy Fit3 fitness tracker in hand next to a Fitbit Charge 6 with an orange strap and a Fitbit Inspire 3 with a black strap]]></media:description>                                                            <media:text><![CDATA[Close-up of the Samsung Galaxy Fit3 fitness tracker in hand next to a Fitbit Charge 6 with an orange strap and a Fitbit Inspire 3 with a black strap]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Samsung Galaxy Fit3 fitness tracker in hand next to a Fitbit Charge 6 with an orange strap and a Fitbit Inspire 3 with a black strap]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/agFLsmT7nrFTDvGYHq2uBi-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>I just got my hands on the new <a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-just-launched-a-new-budget-friendly-fitness-tracker-with-smartwatch-features-and-nearly-2-weeks-of-battery-life">Samsung Galaxy Fit3</a>, a sleek and diminutive fitness tracker loaded with high-end features and specs for less than $60. This includes a lovely 1.6-inch AMOLED touchscreen, nearly two weeks of battery, sleep coaching with snore detection, a blood oxygen saturation sensor (sorry, <a href="https://www.tomsguide.com/wellness/smartwatches/apple-wins-patent-lawsuit-and-usd250-from-masimo-but-it-wont-affect-apple-watchs-mia-blood-oxygen-feature">Apple Watch folks</a>), fall detection, and of course, lots of fitness tracking features.</p><p>An update to <a href="https://www.tomsguide.com/news/samsung-galaxy-fit-2-revealed-what-we-know-about-the-new-fitbit-rival">2020's Galaxy Fit2</a>, the Samsung Galaxy Fit3 is a massive improvement over its predecessor in every regard, and also potentially my new favorite <a href="https://www.tomsguide.com/best-picks/best-cheap-fitness-trackers">cheap fitness tracker</a> available.  </p><h3 class="article-body__section" id="section-samsung-galaxy-fit3-price-and-availability"><span>Samsung Galaxy Fit3: Price and availability </span></h3><p>The Samsung Galaxy Fit3 was first announced in February 2024 with availability confirmed for select markets only. Now, nearly a year later, the Samsung Galaxy Fit3 is officially available in the U.S. <a href="https://www.amazon.com/SAMSUNG-Display-Watchfaces-Exercise-International/dp/B0CW3X1S7B/ref=asc_df_B0CW3X1S7B?th=1" target="_blank" rel="nofollow">for a reasonable $59</a>. Choose from Dark Grey, Silver, or Pink Gold.</p><p>By comparison, Fitbit's cheapest tracker is the <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Inspire 3</a>, which launched in 2022 and <a href="https://www.amazon.com/Fitbit-Management-Intensity-Tracking-Included/dp/B0B5FGP237/" target="_blank" rel="nofollow">costs $99</a> (though you can often find it for $10 to $20 less than that depending on sales). </p><div class="product"><a data-dimension112="e53f6f3b-7068-48ac-b783-aaa706795a97" data-action="Deal Block" data-label="The Samsung Galaxy Fit3 is a small but mighty fitness tracker for Samsung Galaxy smartphone owners that's brimming with workout and wellness features. The device supports 100-plus exercise types and boasts impressive sleep-monitoring tools borrowed from higher-end Samsung wearables. You also get useful safety features like fall detection and SpO2 monitoring." data-dimension48="The Samsung Galaxy Fit3 is a small but mighty fitness tracker for Samsung Galaxy smartphone owners that's brimming with workout and wellness features. The device supports 100-plus exercise types and boasts impressive sleep-monitoring tools borrowed from higher-end Samsung wearables. You also get useful safety features like fall detection and SpO2 monitoring." data-dimension25="$" href="https://www.amazon.com/SAMSUNG-Display-Watchfaces-Exercise-International/dp/B0CW3X1S7B/ref=asc_df_B0CW3X1S7B" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:975px;"><p class="vanilla-image-block" style="padding-top:123.08%;"><img id="6tGgn3FkW4WGFojzHLJaxG" name="512Td+jdctL._AC_SL1200_" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/6tGgn3FkW4WGFojzHLJaxG.jpg" mos="" align="middle" fullscreen="" width="975" height="1200" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Samsung Galaxy Fit3 is a small but mighty fitness tracker for Samsung Galaxy smartphone owners that's brimming with workout and wellness features. The device supports 100-plus exercise types and boasts impressive sleep-monitoring tools borrowed from higher-end Samsung wearables. You also get useful safety features like fall detection and SpO2 monitoring. <a class="view-deal button" href="https://www.amazon.com/SAMSUNG-Display-Watchfaces-Exercise-International/dp/B0CW3X1S7B/ref=asc_df_B0CW3X1S7B" target="_blank" rel="nofollow" data-dimension112="e53f6f3b-7068-48ac-b783-aaa706795a97" data-action="Deal Block" data-label="The Samsung Galaxy Fit3 is a small but mighty fitness tracker for Samsung Galaxy smartphone owners that's brimming with workout and wellness features. The device supports 100-plus exercise types and boasts impressive sleep-monitoring tools borrowed from higher-end Samsung wearables. You also get useful safety features like fall detection and SpO2 monitoring." data-dimension48="The Samsung Galaxy Fit3 is a small but mighty fitness tracker for Samsung Galaxy smartphone owners that's brimming with workout and wellness features. The device supports 100-plus exercise types and boasts impressive sleep-monitoring tools borrowed from higher-end Samsung wearables. You also get useful safety features like fall detection and SpO2 monitoring." data-dimension25="$">View Deal</a></p></div><h3 class="article-body__section" id="section-samsung-galaxy-fit3-design-and-build-quality"><span>Samsung Galaxy Fit3: Design and build quality</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="KnWGj9qgxCcE9uxH3MbBNi" name="GalaxyFit3-04" alt="Close-up of the Samsung Galaxy Fit3 fitness tracker on a white rubber strap" src="https://cdn.mos.cms.futurecdn.net/KnWGj9qgxCcE9uxH3MbBNi.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>The Galaxy Fit3 is built around a rectangular 1.6-inch AMOLED touchscreen. The side of the case is constructed of aluminum while the back panel appears to be polycarbonate. A single button adorns the side; by default, it wakes the watch up. Users can choose when setting up the Fit3 whether they want the button oriented on the left or right side. </p><p>The device ships on a soft, silicone strap that attaches with a pin and buckle system. With a weight of 0.65 ounces, a height of 42mm and a thickness of a little less than 10mm, the Fit3 wears comfortably on my 6.5-inch wrist. </p><p>Water resistance of 50 meters should be enough for short surface-level swims or showers. The Fit3 is also IP68-rated against dust, dirt and moisture. </p><h3 class="article-body__section" id="section-samsung-galaxy-fit3-key-features"><span>Samsung Galaxy Fit3: Key features</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2656px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="cAdPJWneCRNVD4M2h4GGLi" name="GalaxyFit3-02" alt="Close-up of the Samsung Galaxy Fit3 fitness tracker on a white rubber strap" src="https://cdn.mos.cms.futurecdn.net/cAdPJWneCRNVD4M2h4GGLi.jpg" mos="" align="middle" fullscreen="" width="2656" height="1494" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>In addition to monitoring your daily step count and heart rate, you can track more than 100 workout types with the Fit3, with lots of post-exercise insights into your performance and recovery. </p><p>I'm a huge fan of Samsung's holistic features, especially the <a href="https://www.tomsguide.com/wellness/smartwatches/samsung-galaxy-watch-7-review#section-samsung-galaxy-watch-7-review-health-and-sleep-tracking">sleep-tracking tools</a> you'll find in the latest Galaxy Watch models and <a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-ring-review">Galaxy Ring</a>. In addition to daily sleep reports, I find the daily sleep quality score particularly useful. This is why I'm thrilled to see features offered in the brand's most basic wearable. Plus, you also get access to Samsung's nifty snore detection feature. </p><p>Users can also monitor their blood oxygen saturation levels in a matter of seconds, something U.S.-based Apple Watch owners can't do. The Fit3 additionally supports high/low heart rate warnings, along with tools to monitor stress, nutrition and water intake. Rare for a wearable at this price point is the inclusion of fall detection, which can share your location info with an emergency contact if an incident is registered. </p><p>There's no GPS, so you'll need your phone for location tracking, but an onboard barometer should lead to precise elevation data, something I appreciate as an avid hiker. </p><p>The Fit3 does not support NFC payments or third-party apps. It does support mirrored phone notifications and can even be used to respond to texts (though not calls, as there is no mic or speaker). You can also control media from a connected device, but there's no onboard storage for downloading music. </p><h3 class="article-body__section" id="section-samsung-galaxy-fit3-battery-life"><span>Samsung Galaxy Fit3: Battery life</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2495px;"><p class="vanilla-image-block" style="padding-top:56.23%;"><img id="FjYYaLbdBwUSBZZXyg2JBi" name="GalaxyFit3-07" alt="Close-up of the Samsung Galaxy Fit3 fitness tracker on a white rubber strap" src="https://cdn.mos.cms.futurecdn.net/FjYYaLbdBwUSBZZXyg2JBi.jpg" mos="" align="middle" fullscreen="" width="2495" height="1403" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Samsung says the Galaxy Fit3 can last up to 13 days per charge, which is pretty solid. By comparison, the Fitbit Inspire 3 lasts 10 days per charge, while the <a href="https://www.tomsguide.com/wellness/fitness-trackers/amazfit-band-7-review">Amazfit Band 7</a> goes for a whopping 28 days in battery saver mode or 12 days with heavy use. </p><p>Samsung's tracker charges using a proprietary cable that magnetically attaches to the bottom of the device. The other end is USB-C.</p><h3 class="article-body__section" id="section-samsung-galaxy-fit3-outlook"><span>Samsung Galaxy Fit3: Outlook</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="S6SnCMrE65Py62D7Km5XHi" name="GalaxyFit3-06" alt="Close-up of the Samsung Galaxy Fit3 fitness tracker on a white rubber strap" src="https://cdn.mos.cms.futurecdn.net/S6SnCMrE65Py62D7Km5XHi.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>With <a href="https://www.tomsguide.com/wellness/smartwatches/google-is-slowly-shuttering-fitbit-should-you-still-buy-one">Google winding down the Fitbit brand</a>, we don't know whether or not a replacement for the popular <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a> or Fitbit Inspire 3 — two of the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness trackers</a> we've ever tested — will ever see the light of day. However, as these models age, the demand for wallet-friendly, easy-wearing fitness trackers remains. </p><p>Already, brands like Amazfit have moved into Fitbit's territory, with devices like the <a href="https://www.tomsguide.com/wellness/fitness-trackers/amazfit-band-7-review#section-should-you-buy-the-amazfit-band-7">Amazfit Band 7</a> offering a similar form factor and set of tracking tools to the Inspire 3, but at a more affordable price. The <a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-the-amazfit-active-2-and-it-could-be-the-new-budget-smartwatch-to-beat">$99 Active 2</a> is another seriously impressive new model from Amazfit. </p><p>U.S. mechanical watch brand, Armitron similarly jumped into the fitness tracker market last fall with a series of budget-friendly options, like the <a href="https://www.tomsguide.com/wellness/smartwatches/fitbit-is-exiting-the-cheap-smartwatch-race-and-this-brand-could-">$75 Armitron Matrix</a>.</p><p>However, Samsung has a clear advantage over these much smaller brands as one of the largest and most established players in the wearables tech space. </p><p>The <a href="https://www.tomsguide.com/wellness/smartwatches/samsung-galaxy-watch-7-review">Samsung Galaxy Watch 7</a> and <a href="https://www.tomsguide.com/wellness/smartwatches/samsung-galaxy-watch-ultra-review">Galaxy Watch Ultra</a> are two of the <a href="https://www.tomsguide.com/us/best-smartwatches,review-2156.html">best smartwatches</a> money can buy, while the Samsung Galaxy Ring is the <a href="https://www.tomsguide.com/wellness/fitness-trackers/best-smart-rings">best smart ring</a> not named Oura. And I'd argue that Samsung's reputation for wellness and fitness monitoring is matched by only Apple and Google. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="jpSg6vPDRwZvuDeNCW2oTi" name="GalaxyFit3-09" alt="Close-up of the Samsung Galaxy Fit3 fitness tracker on a white rubber strap next to a Fitbit Charge 6 on an orange strap; both are sitting on a wood table" src="https://cdn.mos.cms.futurecdn.net/jpSg6vPDRwZvuDeNCW2oTi.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Tom's Guide)</span></figcaption></figure><p>Moreover, if I were shopping for a new fitness tracker and came across three similarly-priced and designed devices boasting comparable specs: the Amazfit Band7, Armitron Matrix, and Samsung Galaxy Fit3, I'd almost certainly spring for the Fit3 based on Samsung's legacy in wearables.</p><p>Of course, <a href="https://www.tomsguide.com/wellness/smartwatches/i-walked-5-000-steps-with-the-amazfit-bip-5-vs-armitron-matrix-this-sub-usd100-smartwatch-wins">Armitron and Amazfit</a> have one major advantage over Samsung: their devices work with Apple and Android handsets. At the same time, the Galaxy Fit3 is Android only, a factor that seriously limits its appeal. Dangit, Samsung! </p><p>(The fine print says that the Fit3 'must be paired with a Samsung Galaxy smartphone with Android 10.0,' but it appears that most current Android phones will play nicely with the new tracker.)</p><p>That point aside, if the Samsung Galaxy Fit3 proves to be a reliable tracker in our testing and features like fall detection and sleep coaching work as intended, then it's almost guaranteed to show up in our best fitness tracker buying guide. </p><p>Ultimately, I'm a big fan of the Samsung Galaxy Watch 7 — which I reviewed — particularly, its holistic features and insights. But with a starting price of $299, it's not exactly affordable. Could the Galaxy Fit3 serve as a Galaxy Watch 7 'Lite' with comparable health tech for a fifth of the price? I've got it on my wrist right now and plan to find out. Stay tuned. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide:</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/samsung-just-launched-a-kid-friendly-smartwatch-mode-for-the-galaxy-watch-7-and-parents-can-try-it-now">Samsung just launched a kid-friendly smartwatch mode for the Galaxy Watch 7 — and parents can try it now</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-wore-the-garmin-instinct-3-for-over-a-week-heres-5-things-i-like-and-2-i-hate">I wore the Garmin Instinct 3 for over a week — here's 5 things I like and 2 I hate</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-ring-2">Samsung Galaxy Ring 2 — all the rumors so far</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ These Fitbit models are overheating — see if yours is on the list to get $50 from Google ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/smartwatches/these-fitbit-models-are-overheating-see-if-yours-is-on-the-list-to-get-usd50-from-google</link>
                                                                            <description>
                            <![CDATA[ Faulty batteries are causing some Fitbit Versa 3 and Fitbit Sense models to overheat. Here’s how to see if your smartwatch is impacted and claim cash from Google for your trouble. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">nLk3c4ckUnFxrvafcedNC</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/LsrLdFpqxkWKa8zfzPf9Fc-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 22 Jan 2025 19:09:15 +0000</pubDate>                                                                                                                                                                                                                                <category><![CDATA[Smartwatches]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/LsrLdFpqxkWKa8zfzPf9Fc-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Fitbit Versa 3]]></media:description>                                                            <media:text><![CDATA[Fitbit Versa 3]]></media:text>
                                <media:title type="plain"><![CDATA[Fitbit Versa 3]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/LsrLdFpqxkWKa8zfzPf9Fc-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Owners of the <a href="https://www.tomsguide.com/reviews/fitbit-sense"><u>Fitbit Sense</u></a> and <a href="https://www.tomsguide.com/reviews/fitbit-versa-3"><u>Fitbit Versa 3</u></a> take note: Your wearable could be at risk of overheating and Google wants you to be aware of the danger. While your smartwatch is unlikely to burst into flames on your wrist, faulty lithium-ion batteries could lead to a nasty burn. </p><p>To be clear, <a href="https://support.google.com/fitbit/answer/15763108">not all Fitbit Sense or Versa 3 models</a> are impacted, and users with at-risk devices will receive both a notification within the Fitbit app and an email from Google. You can also fill out this <a href="https://support.google.com/fitbit/contact/fitbit_sense_and_versa_3_registration?sjid=11244363587187685734-NA&visit_id=638731669890293160-908518067&p=sense-versa3-help&rd=1"><u>Google support form</u></a> to find out if your smartwatch is one of the faulty models. </p><h3 class="article-body__section" id="section-fitbit-battery-issue-firmware-fix"><span>Fitbit battery issue: firmware fix</span></h3><p>The good news is that Google already has a firmware update ready for the issue, and it’s actively rolling out to users. While the software fix should <em>mostly</em> mitigate battery overheating dangers, the bad news is that it will also limit the overall battery life of the impacted device, though we don’t know by how much. </p><p>Those who receive a notification that their device is impacted will be prompted to update their firmware ASAP. Google warns that failing to do so could result in your smartwatch automatically performing a factory reset, which would erase any personal information you have stored.</p><h3 class="article-body__section" id="section-fitbit-battery-issue-50-compensation"><span>Fitbit battery issue: $50 compensation</span></h3><p>For your troubles, the tech giant is compensating affected users with $50. Originally launched in 2020, the Fitbit Versa 3 was priced at $229 when it debuted while the original Fitbit Sense arrived with a $329 price tag. </p><p>Again, this issue plagues only a ‘limited number of Fitbit Sense and Fitbit Versa 3 devices,’ and those who own a Versa 3 or Sense that isn’t impacted don’t need to do anything. Google also notes that your battery will continue to perform ‘the same as before.’</p><p>It’s also worth mentioning that neither the <a href="https://www.tomsguide.com/reviews/fitbit-sense-2"><u>Fitbit Sense 2</u></a> nor the <a href="https://www.tomsguide.com/reviews/fitbit-versa-4"><u>Fitbit Versa 4</u></a> have the battery overheating issue, which is good because they’re two of the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html"><u>best Fitbit</u></a> models you can buy right now. Too bad Google decided to <a href="https://www.tomsguide.com/wellness/smartwatches/google-just-killed-off-fitbit-smartwatches-and-nobody-should-be-surprised"><u>pull the plug on both smartwatch lines</u></a>... </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide:</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/rip-fitbit-5-alternatives-to-fitbits-best-trackers-and-smartwatches">RIP Fitbit? 5 alternatives to Fitbit’s best trackers and smartwatches</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/fitbit-is-exiting-the-cheap-smartwatch-race-and-this-brand-could-replace-it">Fitbit is exiting the cheap smartwatch race — and this brand could replace it</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-ultra-2-vs-garmin-instinct-3-which-rugged-smartwatch-wins">Garmin Instinct 3 vs. Apple Watch Ultra 2: Biggest differences to consider before you buy</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ Move over Fitbit Ace — hands-on with the new Pinwheel smartwatch for kids ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/smartwatches/i-went-hands-on-with-the-new-pinwheel-smartwatch-for-kids-and-it-reminds-me-a-lot-of-an-apple-watch-ultra</link>
                                                                            <description>
                            <![CDATA[ The forthcoming Pinwheel smartwatch is one of the most promising kid-friendly wearables since the Fitbit Ace LTE. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">vAtzgzDoxyJAGqaE2vRs5E</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/km8YqssgqxJr6hrwcyUcYP-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Fri, 17 Jan 2025 09:30:00 +0000</pubDate>                                                                                                                                <updated>Thu, 10 Apr 2025 14:03:52 +0000</updated>
                                                                                                                                            <category><![CDATA[Smartwatches]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/km8YqssgqxJr6hrwcyUcYP-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close-up of the Pinwheel smartwatch for kids at CES 2025 showing the device&#039;s Apple Watch Ultra-like case design and colorful interchangeable straps]]></media:description>                                                            <media:text><![CDATA[Close-up of the Pinwheel smartwatch for kids at CES 2025 showing the device&#039;s Apple Watch Ultra-like case design and colorful interchangeable straps]]></media:text>
                                <media:title type="plain"><![CDATA[Close-up of the Pinwheel smartwatch for kids at CES 2025 showing the device&#039;s Apple Watch Ultra-like case design and colorful interchangeable straps]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/km8YqssgqxJr6hrwcyUcYP-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The new Pinwheel smartwatch is one of the coolest wearables I came across at <a href="https://www.tomsguide.com/tag/ces">CES 2025</a>. And though it looks like a proper smartwatch —  at a glance, one could easily mistake it for an <a href="https://www.tomsguide.com/reviews/apple-watch-ultra-2">Apple Watch Ultra</a> — the Pinwheel watch is <em>actually</em> built with kids in mind. </p><p>Pinwheel has been making kid-centric smartphones since its launch in 2020 but this is the brand's first wearable device. Equipped with GPS and 4G LTE, the concept behind the watch is to provide youngsters with "training wheels for connected devices."</p><p>Packed with safety tools so parents can keep tabs on their child's location, contacts and messages, it also boasts a huge library of kid-friendly apps and games. There's even an AI chatbot tailored to youngsters (parents can disable this feature, of course).</p><p>Set to ship by the end of March, I got my hands on the forthcoming Pinwheel smartwatch on the CES show floor this month and chatted with the team behind it to learn more. Here's everything you need to know about this promising new kid-centric smartwatch. </p><h3 class="article-body__section" id="section-pinwheel-smartwatch-price-and-availability"><span>Pinwheel smartwatch: Price and availability </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="Js33RqHg9LzvU2MBpMqshP" name="PinWheel-watch-07" alt="Close-up of the Pinwheel smartwatch for kids at CES 2025 showing the device's Apple Watch Ultra-like case design and colorful interchangeable straps" src="https://cdn.mos.cms.futurecdn.net/Js33RqHg9LzvU2MBpMqshP.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Announced at CES 2025, the Pinwheel smartwatch is anticipated to start shipping in February. It will cost $159 for the device, plus an additional $15 a month for 4G LTE (provided by AT&T). </p><p>Preorders aren't open yet, but you can hop on the waitlist for the Pinwheel smartwatch at the bottom of the page on <a href="https://www.pinwheel.com/kids-smartwatch">Pinwheel.com</a>. </p><h3 class="article-body__section" id="section-pinwheel-smartwatch-design-and-build-quality"><span>Pinwheel smartwatch: Design and build quality </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="UJLB24Tnvrf575KbBKP5RP" name="PinWheel-watch-02" alt="Close-up of the Pinwheel smartwatch for kids at CES 2025 showing the device's Apple Watch Ultra-like case design and colorful interchangeable straps" src="https://cdn.mos.cms.futurecdn.net/UJLB24Tnvrf575KbBKP5RP.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Unlike other smartwatches designed for kids, this one <em>actually</em> looks like a real smartwatch thanks to an all-metal case and a large touchscreen display. The case design looks remarkably Apple Watch Ultra-like. There are two physical controls along the right side of the case, including a button and a digital crown. The other side contains a built-in speaker and a SIM card slot. </p><p>When you hold it, the Pinwheel watch feels well-constructed and built to last. It boasts an IP67 environmental sealing rating against dust and water. This should translate to solid protection against dirt, grime and accidental liquid spills. The watch is technically submersible for short periods but I'd avoid swimming with it on. </p><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="tYtUatNAChmNmMFYyTpVZP" name="PinWheel-watch-06" alt="Close-up of the Pinwheel smartwatch for kids at CES 2025 showing the device's Apple Watch Ultra-like case design and colorful interchangeable straps" src="https://cdn.mos.cms.futurecdn.net/tYtUatNAChmNmMFYyTpVZP.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>Battery life should be good for roughly one day per charge. Like the Apple Watch, the charger for the Pinwheel connects to the bottom of the case magnetically. </p><p>However, unlike most modern adult smartwatches, the new Pinwheel watch sports not one but two onboard cameras. The primary camera faces the user and is intended for video calls, a feature that won't be available right at launch, though it's slated for sometime later in 2025. That primary camera can also be used for selfies. </p><p>The second camera is located at the top of the watch and is designed for kids to use creatively. Both cameras support photo and video capture. More importantly, parents can disable the cameras if they feel uncomfortable with the feature. </p><p>For launch, a selection of colorful rubber straps will be on offer, allowing kids some level of personalization.  </p><h3 class="article-body__section" id="section-pinwheel-smartwatch-connectivity-and-parental-controls"><span>Pinwheel smartwatch: Connectivity and parental controls  </span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="W4V9YZpKKmJeDd6fvKyRnP" name="PinWheel-watch-05" alt="Close-up of the Pinwheel smartwatch for kids at CES 2025 showing the device's Apple Watch Ultra-like case design and colorful interchangeable straps" src="https://cdn.mos.cms.futurecdn.net/W4V9YZpKKmJeDd6fvKyRnP.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>What kid is a smartwatch for children without strong parental controls? Fortunately, the brand's experience building kid-centric smartphones informed their development of the Pinwheel watch. </p><p>Parents can check in on their child's location via GPS and even set up a geofenced area that triggers alerts if their kid goes beyond the designated zone. Similarly, you can set up the watch to generate notifications when your child arrives at or departs a specific location, like, school.</p><p>Only approved phone numbers can contact the Pinwheel smartwatch and parents can view their kid's message remotely through the Pinwheel app. Texts are sent via SMS, not through some special messaging app, and the Pinwheel watch also supports voice-to-text. </p><p>Finally, as your kid gets older, Pinwheels offers a ton of customization over the watch's restrictions so that parents can loosen them as they see fit. </p><h3 class="article-body__section" id="section-pinwheel-smartwatch-kid-friendly-features"><span>Pinwheel smartwatch: Kid-friendly features</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3500px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="XB8P8gAWskrwpe7V46AgHP" name="PinWheel-watch-03" alt="Close-up of the Pinwheel smartwatch for kids at CES 2025 showing the device's Apple Watch Ultra-like case design and colorful interchangeable straps" src="https://cdn.mos.cms.futurecdn.net/XB8P8gAWskrwpe7V46AgHP.jpg" mos="" align="middle" fullscreen="" width="3500" height="1969" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>One of the things that most sold me on Pinwheel is the brand's enormous library of kid-friendly apps and games, of which there are more than 1,200 to choose from including Spotify for kids. Currently, these apps are available on Pinwheel's kid-friendly smartphone only. However, they should <em>hopefully</em> make their way to the watch, too. Pinwheels reps assure me that each and every one of these apps has been manually approved by an actual human at the company. They all boast ratings, too. </p><p>You'll find no social networking or adult apps on the device, and Pinwheel makes it easy for parents to limit access to any number of apps.</p><p>Unique to the new Pinwheel smartwatch is its PinwheelGPT AI chat app. This child-oriented chatbot uses ChatGPT to answer questions like, 'Why is the sky blue?' Answers are programmed to be short and digestible. The app is also designed to avoid controversial topics. If one is brought up, the AI bot will refrain from answering and instead recommend the user talk to a trusted adult instead. </p><p>Like the apps and games, parents can disable the AI chatbot.   </p><p>The Pinwheel watch has an onboard step counter and activity monitor so that parents can keep track of how much exercise their kids are getting. Beyond that, though, wellness features are limited. For example,  there's no sleep-tracking, as the device is not meant to be worn to bed. </p><h3 class="article-body__section" id="section-pinwheel-smartwatch-outlook"><span>Pinwheel smartwatch: Outlook</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3108px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="c8yriKEbmdKw8uyTFnWYvN" name="PinWheel-watch-08" alt="Close-up of the Pinwheel smartwatch for kids at CES 2025 showing the device's Apple Watch Ultra-like case design and colorful interchangeable straps" src="https://cdn.mos.cms.futurecdn.net/c8yriKEbmdKw8uyTFnWYvN.jpg" mos="" align="middle" fullscreen="" width="3108" height="1749" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Dan Bracaglia/Tom's Guide)</span></figcaption></figure><p>I'm not a parent, but if I did have a youngster between the ages of four and 14, I'd consider the Pinwheel watch. A more appropriate alternative to equipping kids with a smartphone or adult smartwatch, the Pinwheel is no pricier than those options, yet far better suited to their needs. </p><p>The biggest competitor to the Pinwheel watch in this space is the <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-ace-lte">Fitbit Ace LTE</a>. Fitbit's watch is pricier out of the gate, $230 vs. $159, but the subscription fee is $10 a month rather than $15. However, after a year, the cost of the two devices, with cellular, is roughly equal. The Fitbit ACE LTE will run you $350 while the Pinwheel will cost you $340. </p><p>I've yet to get my hands on the Ace, but based on <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html#section-best-fitbit-for-kids">impressions from my colleagues</a> here at Tom's Guide, the parental controls don't seem to be as customizable and in-depth as on the Pinwheel. The Pinwheel also has a far larger pool of apps for kids to choose from.</p><p>Other players in the space include the <a href="https://cosmotogether.com/products/jrtrack-4">Cosmo Jr Track 4</a>, which I also checked out at CES. At $129, it's even more affordable than the Pinwheel watch with a similar monthly cellular cost. The Cosmo Jr also features kid-friendly apps and loads of parental controls. However, design-wise, I much prefer the look and feel of the Pinwheel.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide:</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-skied-17-000-feet-of-vertical-with-the-garmin-instinct-3-heres-5-things-i-learned">I snowboarded down 17,000 feet of powder with the Garmin Instinct 3 — here's 5 things I learned</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/i-just-went-hands-on-with-the-new-circular-ring-2-and-its-the-most-impressive-smart-ring-at-ces-2025">I just went hands-on with the new Circular Ring 2 — and it's the most impressive smart ring at CES 2025</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-just-went-hands-on-with-the-amazfit-active-2-and-it-could-be-the-new-budget-smartwatch-to-beat">I went hands-on with the Amazfit Active 2 — and it could be the new budget smartwatch to beat</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ I walked 5,000 steps with the Apple Watch 10 vs. Fitbit Charge 6 — this device was more accurate  ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/smartwatches/i-walked-5-000-steps-with-the-apple-watch-10-vs-fitbit-charge-6-this-device-was-more-accurate</link>
                                                                            <description>
                            <![CDATA[ What happens when we pit the top smartwatch against the No. 1 fitness tracker in a test of step-count precision? You're about to find out. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">ZHvZDGUHzgh9abWUwWxTkF</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/u8U8ZJiczCP22EEeMpF5Sj-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Sat, 21 Dec 2024 12:00:00 +0000</pubDate>                                                                                                                                <updated>Thu, 10 Apr 2025 14:03:36 +0000</updated>
                                                                                                                                            <category><![CDATA[Smartwatches]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/u8U8ZJiczCP22EEeMpF5Sj-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Close up of a Fitbit Charge 6 with an orange band on a user&#039;s wrist next to an Apple Watch 10 with an out-of-focus green background]]></media:description>                                                            <media:text><![CDATA[Close up of a Fitbit Charge 6 with an orange band on a user&#039;s wrist next to an Apple Watch 10 with an out-of-focus green background]]></media:text>
                                <media:title type="plain"><![CDATA[Close up of a Fitbit Charge 6 with an orange band on a user&#039;s wrist next to an Apple Watch 10 with an out-of-focus green background]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/u8U8ZJiczCP22EEeMpF5Sj-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>The Apple Watch 10 and Fitbit Charge 6 are in separate leagues. The former is among the <a href="https://www.tomsguide.com/us/best-smartwatches,review-2156.html">best smartwatch</a> models money can buy and starts at $399. The latter is the <a href="https://www.tomsguide.com/us/best-fitness-trackers,review-2066.html">best fitness tracker</a> on the market and sells for $159.</p><p>Despite the massive price difference, either device is a great choice for tracking workouts, rest and recovery. Both sport onboard GPS — feel free to leave your phone at home — and support tracking for various sports and exercise types, including one of my favorite workouts, urban hikes (aka outdoor walks).</p><p>With similar post-workout stats including total step count, total distance, average and max heart rate, calories burned, average pace and more, I wanted to find out how the accuracy of tracking data between the two compares. </p><p>I’ve already tested the <a href="https://www.tomsguide.com/wellness/fitness-trackers/apple-watch-se-vs-fitbit-charge-6">Apple Watch SE against the Charge 6</a> with Apple Watch narrowly claiming victory. Likewise, my colleague, Jane McGuire tested the <a href="https://www.tomsguide.com/features/i-walked-5000-steps-with-apple-watch-9-and-fitbit-charge-6-and-this-was-more-accurate">Apple Watch 9 vs Fitbit Charge 6</a> with the Series 9 also taking the prize. </p><p>Can Apple's fitness tracking precision dominance continue? Read on.</p><h3 class="article-body__section" id="section-apple-watch-10-vs-fitbit-charge-6-walk-test"><span>Apple Watch 10 vs. Fitbit Charge 6: Walk test</span></h3><div class="product"><a data-dimension112="c400ef7f-a26a-4514-91ad-0757d1b1169e" data-action="Deal Block" data-label="The Apple Watch 10 is the best full-featured smartwatch for most people thanks to a slender, comfortable design with a bright easy-viewing screen, loads of useful smart features, safety tools and wellness tech." data-dimension48="The Apple Watch 10 is the best full-featured smartwatch for most people thanks to a slender, comfortable design with a bright easy-viewing screen, loads of useful smart features, safety tools and wellness tech." data-dimension25="$399" href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminium-Always/dp/B0DGHQ2QH6/" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:679px;"><p class="vanilla-image-block" style="padding-top:118.70%;"><img id="CE5ECurTvQu8XYoZf4JAxU" name="Apple Watch 10 46.jpg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/CE5ECurTvQu8XYoZf4JAxU.jpg" mos="" align="middle" fullscreen="" width="679" height="806" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Apple Watch 10 is the best full-featured smartwatch for most people thanks to a slender, comfortable design with a bright easy-viewing screen, loads of useful smart features, safety tools and wellness tech. <a class="view-deal button" href="https://www.amazon.com/Apple-Watch-Smartwatch-Aluminium-Always/dp/B0DGHQ2QH6/" target="_blank" rel="nofollow" data-dimension112="c400ef7f-a26a-4514-91ad-0757d1b1169e" data-action="Deal Block" data-label="The Apple Watch 10 is the best full-featured smartwatch for most people thanks to a slender, comfortable design with a bright easy-viewing screen, loads of useful smart features, safety tools and wellness tech." data-dimension48="The Apple Watch 10 is the best full-featured smartwatch for most people thanks to a slender, comfortable design with a bright easy-viewing screen, loads of useful smart features, safety tools and wellness tech." data-dimension25="$399">View Deal</a></p></div><div class="product"><a data-dimension112="1e8f55d5-b972-41d6-9484-e2073a663faf" data-action="Deal Block" data-label="The Fitbit Charge 6 is the best fitness tracker on the market today thanks to its lightweight and diminutive size, support for an enormous range of workout types, and a smattering of useful smart features like Google Wallet and Google Maps." data-dimension48="The Fitbit Charge 6 is the best fitness tracker on the market today thanks to its lightweight and diminutive size, support for an enormous range of workout types, and a smattering of useful smart features like Google Wallet and Google Maps." data-dimension25="$159" href="https://www.amazon.com/Fitbit-Exercise-Equipment-Membership-Porcelain/dp/B0CC63GZ3R/?th=1" target="_blank" rel="nofollow"><figure class="van-image-figure "  ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:916px;"><p class="vanilla-image-block" style="padding-top:119.21%;"><img id="7SyXAycyiGG6YApyTLSkSj" name="Fitbit Charge 6 deal block.jpeg" caption="" alt="" src="https://cdn.mos.cms.futurecdn.net/7SyXAycyiGG6YApyTLSkSj.jpeg" mos="" align="middle" fullscreen="" width="916" height="1092" attribution="" endorsement="" credit="" class=""></p></div></div></figure></a><p>The Fitbit Charge 6 is the best fitness tracker on the market today thanks to its lightweight and diminutive size, support for an enormous range of workout types, and a smattering of useful smart features like Google Wallet and Google Maps. <a class="view-deal button" href="https://www.amazon.com/Fitbit-Exercise-Equipment-Membership-Porcelain/dp/B0CC63GZ3R/?th=1" target="_blank" rel="nofollow" data-dimension112="1e8f55d5-b972-41d6-9484-e2073a663faf" data-action="Deal Block" data-label="The Fitbit Charge 6 is the best fitness tracker on the market today thanks to its lightweight and diminutive size, support for an enormous range of workout types, and a smattering of useful smart features like Google Wallet and Google Maps." data-dimension48="The Fitbit Charge 6 is the best fitness tracker on the market today thanks to its lightweight and diminutive size, support for an enormous range of workout types, and a smattering of useful smart features like Google Wallet and Google Maps." data-dimension25="$159">View Deal</a></p></div><p>On an overcast Seattle afternoon, I left my apartment rocking a sporty new pair of New Balance trail sneakers, a beatup Patagonia Nano Puff and a fitness tracking wearable on either wrist (Apple Watch on the left and Fitbit on the right). </p><p>As always, I manually counted my steps as a control, clicking my trusty old-school tally counter once for every one hundred paces taken (to stay sane) before restarting my count at one. I also tracked the route using Strava on my iPhone 12 mini. </p><p>Find the results below. </p><h3 class="article-body__section" id="section-apple-watch-10-vs-fitbit-charge-6-walk-test-results"><span>Apple Watch 10 vs. Fitbit Charge 6: Walk test results</span></h3><div ><table><caption>Apple Watch 10 vs. Fitbit Charge 6</caption><thead><tr><th class="firstcol empty" ></th><th  >Apple Watch 10</th><th  >Fitbit Charge 6</th><th  >Control</th></tr></thead><tbody><tr><td class="firstcol " >Total steps</td><td  >5,028 steps</td><td  >5,029 steps</td><td  >5,000 steps (manual count)</td></tr><tr><td class="firstcol " >Total distance</td><td  >2.64 miles</td><td  >2.30 miles</td><td  >2.76 miles</td></tr><tr><td class="firstcol " >Elevation gain</td><td  >303 feet</td><td  >not provided</td><td  >324 feet (Strava)</td></tr><tr><td class="firstcol " >Average pace</td><td  >18 mins, 37 secs per mile</td><td  >21 mins, 56 secs per mile</td><td  >16 mins, 54 secs per mile</td></tr><tr><td class="firstcol " >Average heart rate</td><td  >133 bpm</td><td  >136 bpm</td><td  >n/a</td></tr><tr><td class="firstcol " >Max heart rate</td><td  >160 bpm</td><td  >169 bpm</td><td  >n/a</td></tr><tr><td class="firstcol " >Calories burned</td><td  >384 calories</td><td  >398 calories</td><td  >n/a</td></tr><tr><td class="firstcol " >Battery usage</td><td  >4 %</td><td  >2 %</td><td  >n/a</td></tr></tbody></table></div><p>In my showdown of the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-10-review">Apple Watch Series 10</a> versus the <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a>, both devices were within 30 steps of my actual step count total. That's an impressive result. For what it's worth, Strava's count was 5,100 steps.</p><p>The Apple Watch and Fitbit each calculated a lesser total distance than Strava, with the Charge 6's count being a full quarter mile (and change) less. Annoyingly, the Fitbit Charge 6 doesn't record elevation data, a fact that slipped my mind.</p><p>Seattle is one heck of a hilly city, so whether I'm tracking an urban hike, jog or bike ride, elevation gain metrics matter quite a bit to me. After all, there's a huge difference between walking a mile on flat ground and walking a mile with 500 feet of climb.</p><p>Pace data for my walk is all over the place. Strava automatically pauses pace data when you physically stop moving, even briefly. For example, if I yield to traffic for 30 seconds while waiting to cross the street, Strava won't hold that time against my final pace. </p><p>I walked quite briskly for this test and the Fitbit's average pace data strikes me as particularly sluggish. A 22-minute mile suggests more of a saunter than an aggressive stride. </p><p>Heart rate and calorie data between the two wearables match up more nicely. Even if the Fitbit noted a slightly higher max heart rate, the averages are comfortingly similar. </p><p>Finally, the Fitbit used half the battery power the Apple Watch used to track my roughly 50-minute walk with onboard GPS. </p><h3 class="article-body__section" id="section-apple-watch-10-vs-fitbit-charge-6-apple-watch-wins"><span>Apple Watch 10 vs. Fitbit Charge 6:  Apple Watch wins</span></h3><p>With a total step count that's one step closer to my actual total than the challenger, the Apple Watch Series 10 continues Cupertino's dominance over Mountain View in smart wearable tracking accuracy supremacy. This is the closest walk test result we've ever had! </p><p>That said, both devices are well equipped to handle keeping tabs on your workouts, both indoor and outdoor. They're also both fantastic motivational tools for getting out and moving more. </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-11">Apple Watch 11 — all the rumors so far</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/i-test-smartwatches-for-a-living-my-favorite-wearable-of-2024-is-a-battery-life-champ">I test smartwatches for a living — my favorite wearable of 2024 is a battery-life champ</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/5-biggest-wearables-predictions-for-2025-samsung-ar-smart-glasses-apple-watch-11-and-more">5 smartwatch and smart ring predictions for 2025 — Apple Watch Ultra 3, Samsung AR glasses and more</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ One of the Pixel Watch 3’s best fitness features is coming to older Google and Fitbit smartwatches ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/smartwatches/one-of-the-pixel-watch-3s-best-fitness-features-is-coming-to-older-google-and-fitbit-smartwatches</link>
                                                                            <description>
                            <![CDATA[ The Cardio Load and Target Load features introduced on the Pixel Watch 3 are being rolled out to older Google and Fitbit watches, and both can help you judge how hard to train each day. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">3tWYfqHCK7Sj3V9SZGqvmZ</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/XgAE5s67iJ7jWmmjDA2LsC-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 18 Dec 2024 11:18:38 +0000</pubDate>                                                                                                                                <updated>Thu, 10 Apr 2025 14:03:51 +0000</updated>
                                                                                                                                            <category><![CDATA[Smartwatches]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                                    <dc:creator><![CDATA[ Nick Harris-Fry ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/J5Jjp49GUVjLZEbjEkTex.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;Nick has been a journalist since 2012 and has spent most of that time writing about health and fitness for a variety of publications. Nick spent nine years working on the Coach magazine and website before moving to the fitness team at Tom’s Guide in 2024. Nick is a keen runner and also the founder of YouTube channel &lt;a href=&quot;https://www.youtube.com/channel/UCOBM9FasII4dKbyE_HKkbjw&quot;&gt;The Run Testers&lt;/a&gt;, which specialises in reviewing running shoes, watches, headphones and other gear.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nick has covered all aspects of health and fitness throughout his career, interviewing experts and celebrities, trying fitness classes and running marathons, all in the name of providing readers with the information they need to get the most out of an active lifestyle.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nick ran his first marathon in 2016 after six weeks of training for a magazine feature and subsequently became obsessed with the sport. He now has PBs of 2hr 25min for the marathon and 15min 30sec for 5K, and has run 16 marathons in total, as well as a 50-mile ultramarathon.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nick runs 60-90 miles a week and races regularly with his club, which gives him a lot of opportunity to test out running gear: he has tested and reviewed hundreds of pairs of running shoes, as well as fitness trackers, running watches, sports headphones, treadmills, and all manner of other kit. Nick is also a qualified Run Leader in the UK.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nick is an established expert in the health and fitness area and along with writing for several publications, including &lt;a href=&quot;https://www.livescience.com/author/nick-harris-fry&quot;&gt;Live Science&lt;/a&gt;, &lt;a href=&quot;https://www.expertreviews.co.uk/authors/nick-harris-fry&quot;&gt;Expert Reviews&lt;/a&gt;, &lt;a href=&quot;https://www.wareable.com/author/n.harris-fry&quot;&gt;Wareable&lt;/a&gt;, &lt;a href=&quot;https://www.coachweb.com/author/nick-harris-fry&quot;&gt;Coach&lt;/a&gt; and &lt;a href=&quot;https://www.getsweatgo.com/author/n.harrisfry&quot;&gt;Get Sweat Go&lt;/a&gt;, he has been quoted on &lt;a href=&quot;https://www.theguardian.com/thefilter/2024/oct/20/if-you-pay-more-than-4-youre-being-ripped-off-the-fair-price-for-14-everyday-items-from-cleaning-spray-to-olive-oil&quot;&gt;The Guardian&lt;/a&gt; and &lt;a href=&quot;https://www.independent.co.uk/life-style/health-and-families/london-marathon-2021-date-training-tips-summer-running-a9482486.html&quot;&gt;The Independent&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nick graduated from the University of York in 2010 with a degree in Politics, Philosophy and Economics and worked in the NHS for three years, during which time he completed his NCTJ Diploma in Journalism at News Associates in London. Before starting on Coach and moving into health and fitness, Nick worked as a football journalist and lived in Kathmandu, Nepal for two years.&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/XgAE5s67iJ7jWmmjDA2LsC-1280-80.jpg">
                                                            <media:credit><![CDATA[Future]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[The Google Pixel Watch 3 and 3 XL in a user&#039;s hand showing the screen]]></media:description>                                                            <media:text><![CDATA[The Google Pixel Watch 3 and 3 XL in a user&#039;s hand showing the screen]]></media:text>
                                <media:title type="plain"><![CDATA[The Google Pixel Watch 3 and 3 XL in a user&#039;s hand showing the screen]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/XgAE5s67iJ7jWmmjDA2LsC-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>Older Google and Fitbit smartwatches are getting a major upgrade, with the training load management features introduced on the <a href="https://www.tomsguide.com/wellness/smartwatches/google-pixel-watch-3-review">Pixel Watch 3</a> being rolled out to a wide range of devices.</p><p>Cardio Load and Target Load will now be available on any Google or Fitbit device that supports Fitbit’s Daily Readiness feature. The full list of supported devices is listed below, and it includes some of the <a href="https://www.tomsguide.com/us/best-fitbit,review-3203.html">best Fitbits</a> like the <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Inspire 3</a>, <a href="https://www.tomsguide.com/reviews/fitbit-versa-4">Versa 4</a> and <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Charge 6</a>, and both the Pixel Watch and <a href="https://www.tomsguide.com/reviews/google-pixel-watch-2">Pixel Watch 2</a>.</p><p>The new features can help you manage your training load so you get fitter without risking burnout. The Cardio Load feature measures the work done by your heart throughout the day, both through workouts and general activity. Target Load gives you a score to aim for in the day based on recent activity. Both features tie into the Readiness score, which estimates how prepared your body is to tackle intense exercise each day.</p><p>All of the compatible devices will now have access to the Cardio Load and Target Load stats, along with Readiness score, without needing a Fitbit Premium subscription, which is a welcome move from Google away from locking useful stats behind a paywall.</p><h3 class="article-body__section" id="section-supported-devices"><span>Supported devices</span></h3><p>Here's the full list of Pixel and Fitbit devices that will support the Cardio Load and Target Load features:</p><ul><li>Pixel Watch 3</li><li>Pixel Watch 2</li><li>Pixel Watch 1</li><li>Fitbit Charge 6</li><li>Fitbit Charge 5</li><li>Fitbit Versa 4</li><li>Fitbit Versa 3</li><li>Fitbit Versa 2</li><li>Fitbit Sense 2</li><li>Fitbit Sense</li><li>Fitbit Luxe</li><li>Fitbit Inspire 3</li><li>Fitbit Inspire 2</li></ul><h3 class="article-body__section" id="section-how-to-use-cardio-load-and-target-load"><span>How To Use Cardio Load and Target Load</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:999px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="jn42d5dLR4ocR3eaeVTA9e" name="Google Cardio Load Pixel 3" alt="Google Cardio Load Pixel 3" src="https://cdn.mos.cms.futurecdn.net/jn42d5dLR4ocR3eaeVTA9e.jpg" mos="" align="middle" fullscreen="" width="999" height="562" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Google)</span></figcaption></figure><p>Cardio Load and Target Load are training load management features designed to help you judge the effort to put into your training and gauge the stress on your body. This kind of training load advice is a common feature on the <a href="https://www.tomsguide.com/us/best-gps-watches,review-2638.html">best sports watches</a>, and <a href="https://www.tomsguide.com/wellness/smartwatches/im-a-marathoner-and-have-been-testing-apple-watchs-training-load-feature-heres-the-pros-and-cons">Apple also introduced training load</a> to its smartwatches with the <a href="https://www.tomsguide.com/wellness/smartwatches/watchos-11">watchOS 11</a> update this year.</p><p>Google’s training load features go beyond Apple’s, however, in that they advise on how hard to train through the Target Load feature. This score is based on tracking your long- and short-term training load and gives a target that keeps those two metrics balanced. </p><p>For example, if you’ve been unable to train regularly for a few weeks you won’t be given a very high Target Load for that day, because your body might not be ready for the impact. The Cardio Load and Target Load features will help you increase your training safely so you get fitter without pushing too hard.</p><h3 class="article-body__section" id="section-is-this-the-end-of-fitbit-premium"><span>Is this the end of Fitbit Premium?</span></h3><p>Google recently moved Fitbit’s readiness score from behind the Fitbit Premium paywall and made it available to all users, and with Cardio Load and Target Load coming in as well it indicates that key features on Google and Fitbit devices will no longer require a subscription going forward.</p><p>This would be a very welcome change because having to pay for a subscription to access stats and insights measured by the watch or fitness tracker you already spent hundreds of dollars on has always felt wrong to me.</p><p>There are still some insights locked behind the Fitbit Premium paywall, including advanced sleep stats and personalized running form metrics, but having the Readiness score available to all users is a big improvement in the user experience with Fitbit and Google devices.</p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/fitbit-is-exiting-the-cheap-smartwatch-race-and-this-brand-could-replace-it">Fitbit is exiting the cheap smartwatch race — and this brand could replace it</a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/apple-ring-rumors-release-date-price-design-features">Apple Ring — everything we know so far about the rumored smart ring</a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/smartwatch-vs-adventure-watch">Smartwatch vs. adventure watch — which is best for you?</a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
                                <item>
                                                            <title><![CDATA[ 5 smartwatch and smart ring predictions for 2025 — Apple Watch Ultra 3, Samsung AR glasses and more ]]></title>
                                                                                                                                                                                                <link>https://www.tomsguide.com/wellness/smartwatches/5-biggest-wearables-predictions-for-2025-samsung-ar-smart-glasses-apple-watch-11-and-more</link>
                                                                            <description>
                            <![CDATA[ 2025 could be a huge year for smart wearables, with the Apple Watch Ultra 3, Apple Watch Series 11, Samsung Galaxy Ring 2 and more likely to launch. ]]>
                                                                                                            </description>
                                                                                                                                <guid isPermaLink="false">raVqcAggNAAGjtoLdj4Boi</guid>
                                                                                                <enclosure url="https://cdn.mos.cms.futurecdn.net/rdGNG8tWmUDfAcYGdBGZnk-1280-80.jpg" type="image/jpeg" length="0"></enclosure>
                                                                        <pubDate>Wed, 11 Dec 2024 08:30:30 +0000</pubDate>                                                                                                                                <updated>Thu, 10 Apr 2025 14:03:35 +0000</updated>
                                                                                                                                            <category><![CDATA[Smartwatches]]></category>
                                                    <category><![CDATA[Wellness]]></category>
                                                                                                <author><![CDATA[ dan.bracaglia@futurenet.com (Dan Bracaglia) ]]></author>                    <dc:creator><![CDATA[ Dan Bracaglia ]]></dc:creator>                                                                                    <dc:source><![CDATA[ https://cdn.mos.cms.futurecdn.net/3Ev8EFrheNxPemMWSBaKcK.jpg ]]></dc:source>
                                                                <dc:description><![CDATA[ &lt;p&gt;&lt;br&gt;&lt;/p&gt; ]]></dc:description>
                                                                                                                                <cf:isSponsored>false</cf:isSponsored>
                <cf:hasAffiliateLinks>false</cf:hasAffiliateLinks>
                <cf:isPaid>false</cf:isPaid>
                                                                                                                                <media:content type="image/jpeg" url="https://cdn.mos.cms.futurecdn.net/rdGNG8tWmUDfAcYGdBGZnk-1280-80.jpg">
                                                            <media:credit><![CDATA[Dan Bracaglia/Tom&#039;s Guide]]></media:credit>
                                                                                                                                                                                                                                    <media:description><![CDATA[Apple Watch Ultra 2 in Jet Black sitting on a gridded cutting mat showing the 2025 calendar view on the screen]]></media:description>                                                            <media:text><![CDATA[Apple Watch Ultra 2 in Jet Black sitting on a gridded cutting mat showing the 2025 calendar view on the screen]]></media:text>
                                <media:title type="plain"><![CDATA[Apple Watch Ultra 2 in Jet Black sitting on a gridded cutting mat showing the 2025 calendar view on the screen]]></media:title>
                                                    </media:content>
                                                    <media:thumbnail url="https://cdn.mos.cms.futurecdn.net/rdGNG8tWmUDfAcYGdBGZnk-1280-80.jpg" />
                                                                                                                                                                    <content:encoded >
                            <![CDATA[
                            <article>
                                <p>What new wearables can we expect in 2025? From a possible trio of new Apple Watches to a sleek pair of Samsung smart glasses to a redesigned Galaxy Ring, the Year of the Snake is tipped to be a blockbuster in the wild world of wearable technology. </p><p>Of course, 2024 was no slouch. We saw the debut of <a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-ring-review">Samsung's first Galaxy smart ring</a>, a true competitor to well-established and <a href="https://www.tomsguide.com/wellness/fitness-trackers/oura-ring-4-review">Oura Ring</a> (which also got a refresh). The Google Pixel Watch series blossomed <a href="https://www.tomsguide.com/wellness/smartwatches/google-pixel-watch-3-review">in its third iteration</a> with the addition of a larger, longer-lasting 45mm model.</p><p>In addition, Samsung rolled out its first rugged Wear OS smartwatch in the <a href="https://www.tomsguide.com/wellness/smartwatches/samsung-galaxy-watch-ultra-review">Galaxy Watch Ultra</a>. Oh, and the flagship <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-series-10-review">Apple Watch 10</a> debuted sporting a slimmer, lighter profile with sleep apnea detection.</p><p>But all of that's in the rearview mirror. Now, it's time to look ahead to 2025 and the likely releases that will keep us on the edge of our seats. </p><h3 class="article-body__section" id="section-1-samsung-galaxy-ar-glasses"><span>1. Samsung Galaxy AR glasses</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2560px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="za325V2x3NabbXT2qxtPTD" name="Screen Shot 2021-02-22 at 12.18.31.png" alt="Samsung AR Glasses" src="https://cdn.mos.cms.futurecdn.net/za325V2x3NabbXT2qxtPTD.png" mos="" align="middle" fullscreen="" width="2560" height="1440" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: WalkingCat)</span></figcaption></figure><p>There's a very good possibility that we'll see Samsung's forthcoming augmented reality (AR) glasses launch sooner rather than later, with <a href="https://www.tomsguide.com/computing/smart-glasses/samsungs-smart-glasses-leak-just-confirmed-key-design-details">reports hinting at a January 2025 debut</a>. At the very least we should get a tease at the event.</p><p>Similar to <a href="https://www.tomsguide.com/reviews/ray-ban-meta-smart-glasses">Meta's Ray Ban AR glasses</a>, these high-tech specs are <a href="https://www.tomsguide.com/computing/smart-glasses/samsung-ar-glasses-just-tipped-for-unveiling-alongside-galaxy-s25-at-unpacked-next-month">rumored to be sleek</a> and stylish and meant for daily wearing.</p><p>Feature-wise, expect the Galaxy Glasses (I'm guessing the name) to play nicely with other devices in the Galaxy ecosystem, including the <a href="https://www.tomsguide.com/best-picks/best-samsung-phone">best Samsung phones</a> and the Samsung Galaxy Ring, with a heavy emphasis on AI-backed features and gesture controls. Industry experts also expect that you'll be able to use the wearable to pay for items via some form of Google Pay. </p><p>We should know more soon. Rumors suggest that Samsung will launch the brand's Extended Reality (XR) platform, which the new smart glasses will run on, later this month. </p><h3 class="article-body__section" id="section-2-apple-watch-ultra-3-and-se-3"><span>2. Apple Watch Ultra 3 and SE 3</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="je5967svyDqvudfo9KNLwR" name="Apple Watch Ultra 2.jpg" alt="Apple Watch Ultra 2" src="https://cdn.mos.cms.futurecdn.net/je5967svyDqvudfo9KNLwR.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>I can't lie. I was a bit disappointed when Apple's fall product announcements didn't include a refresh of the Apple Watch Ultra or SE lines. Based on the brand's prior launch cycles, both devices seemed likely. </p><p>The first <a href="https://www.tomsguide.com/reviews/apple-watch-ultra-review">Apple Watch Ultra</a> launched in 2022 with the <a href="https://www.tomsguide.com/reviews/apple-watch-ultra-2">Ultra 2</a> refresh coming a year later in 2023. Similarly, the <a href="https://www.tomsguide.com/reviews/apple-watch-se">Apple Watch SE</a> first debuted in 2020 with the <a href="https://www.tomsguide.com/reviews/apple-watch-se-2022">SE 2 following in 2022</a>. Clearly, annual and bi-annual updates for both of those lines are no longer the norm. </p><p>Or maybe Cupertino is simply cooking up something extra special and groundbreaking for the refresh of both lines? Either way, I expect to see an Apple Watch Ultra 2 and Apple Watch SE 3 arrive in the fall of 2025. </p><p>With the current-gen SE selling for $100 off the week of Black Friday and beyond, it's obvious that retailers are trying to clear out inventory. So, what will Apple's new budget-friendly smartwatch model offer? <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-se-3">Apple Watch SE 3 rumors</a> suggest the case material may switch from metal to plastic to keep costs and weight down. </p><p>There are also hints that the new device will launch at $149 which is coincidentally the same price the SE 2 was just going for after discounts. Hmm. Finally, a larger case size option may be on offer. Better even yet, we may see the <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-ultra-3-and-watch-se-3-just-tipped-for-2025-launch-in-new-report">Apple Watch SE 3 launch with a new iPhone SE</a> model as soon as Spring 2025. The Ultra 3, meanwhile, will more likely make its debut in the fall. </p><p>Unlike the SE 3, <a href="https://www.tomsguide.com/wellness/smartwatches/apple-watch-ultra-3-everything-we-know-so-far">Apple Watch Ultra 3 rumors</a> are less plentiful. The good news is that there's a very strong possibility both of these new devices will support <a href="https://www.tomsguide.com/ai/apple-intelligence">Apple Intelligence</a>, bringing the company's best AI tools to your wrist. </p><h3 class="article-body__section" id="section-3-apple-watch-series-11"><span>3. Apple Watch Series 11</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2881px;"><p class="vanilla-image-block" style="padding-top:56.27%;"><img id="DsdFeUKgzRdKPhQfzngrxP" name="Apple Watch 10 LEAD.png" alt="Apple Watch Series 10" src="https://cdn.mos.cms.futurecdn.net/DsdFeUKgzRdKPhQfzngrxP.png" mos="" align="middle" fullscreen="" width="2881" height="1621" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>While we're on the subject of Apple Watches, I might as well acknowledge the fact that an Apple Watch Series 11 is all but certain to debut in 2025, and likely with some cool Apple Intelligence-based features showcased. Unlike the SE and the Ultra, Apple has refreshed the flagship smartwatch line every year for a decade straight and I don't expect that to change in the coming year. </p><p>However, like the Apple Watch Ultra 3, details on the Series 11 are scant. Still, I can wishfully speculate. There's been a lot of chatter about MicroLED technology lately. And for good reason. The standard Apple Watch line has been stuck at the same battery life for years.</p><p>Like the original model from 2014, the current Apple Watch Series 10 boasts just 18 hours of battery under normal operating conditions. A switch to MicroLED screens could change that. Not only is the technology notably more power efficient than OLED but a move to MicroLED could also bring about improvements to screen brightness, resolution, saturation and color accuracy. </p><p>There's also been reports that Apple has been investigating ways to bring blood pressure monitoring and perhaps even blood-glucose tracking to the Apple Watch, but there's no definitive timetable. </p><h3 class="article-body__section" id="section-4-samsung-galaxy-ring-2"><span>4. Samsung Galaxy Ring 2</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:2000px;"><p class="vanilla-image-block" style="padding-top:56.25%;"><img id="Y9XwnfdVWghChpSXrFxusN" name="Samsung Galaxy.jpg" alt="Samsung Galaxy Rings" src="https://cdn.mos.cms.futurecdn.net/Y9XwnfdVWghChpSXrFxusN.jpg" mos="" align="middle" fullscreen="" width="2000" height="1125" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Samsung)</span></figcaption></figure><p>It seems like only yesterday Samsung debuted its first smart ring when in reality, the Galaxy Ring was launched in January 2024. Of course, we had to wait until summertime to finally get our hands on one. When we did, it impressed us, earning the team's respect as the <a href="https://www.tomsguide.com/wellness/fitness-trackers/best-oura-ring-alternatives">best Oura Ring alternative</a>.</p><p>The finger-based wearable may still be wet behind the ears but rumors of a follow-up abound. According to one leaker, the <a href="https://www.tomsguide.com/wellness/fitness-trackers/samsung-galaxy-ring-2-could-arrive-earlier-than-expected-heres-what-we-know">Galaxy Ring 2</a> will sport a thinner and lighter design with better battery life and additional features. Specifics are notably lacking, though. </p><p>While we may get a sneak peek at the ring during the expected January launch of the <a href="https://www.tomsguide.com/phones/samsung-phones/samsung-galaxy-s25-all-the-rumors-so-far">Samsung S25</a> smartphone, my guess is we'll have to wait several months more before the product is <em>actually</em> available for purchase. </p><h3 class="article-body__section" id="section-5-no-new-fitbits"><span>5. No new Fitbits</span></h3><figure class="van-image-figure  inline-layout" data-bordeaux-image-check ><div class='image-full-width-wrapper'><div class='image-widthsetter' style="max-width:3800px;"><p class="vanilla-image-block" style="padding-top:56.26%;"><img id="AfagmsVBggYaP7Ri4jaNEU" name="Charge-5-v-Charge-6-04.jpg" alt="Fitbit Charge 6 vs. Charge 5" src="https://cdn.mos.cms.futurecdn.net/AfagmsVBggYaP7Ri4jaNEU.jpg" mos="" align="middle" fullscreen="" width="3800" height="2138" attribution="" endorsement="" class=""></p></div></div><figcaption itemprop="caption description" class=" inline-layout"><span class="credit" itemprop="copyrightHolder">(Image credit: Future)</span></figcaption></figure><p>Google went ahead and <a href="https://www.tomsguide.com/wellness/smartwatches/google-just-killed-off-fitbit-smartwatches-and-nobody-should-be-surprised">put the kibosh on the Fitbit Sense and Fitbit Versa</a> smartwatch lines in 2024. In 2025, <a href="https://www.tomsguide.com/wellness/smartwatches/google-is-slowly-shuttering-fitbit-should-you-still-buy-one">I expect more of the same</a>. As of writing, only the entry-level <a href="https://www.tomsguide.com/reviews/fitbit-inspire-3">Fitbit Inspire 3</a>, mid-range <a href="https://www.tomsguide.com/reviews/fitbit-charge-6">Fitbit Charge 6</a> and kid-centric <a href="https://www.tomsguide.com/wellness/fitness-trackers/fitbit-ace-lte">Fitbit Ace LTE</a> remain.</p><p>So, which will be the next Fitbit model to have the plug pulled? I'd rather not speculate, though the ACE is less than a year old, so I doubt it will be that. Either way, the end for the Inspire and Charge lines will be unceremonious and likely go mostly unacknowledged by Google. This is all to say, I don't expect a Fitbit Inspire 4 or Fitbit Charge 7 in 2025. (Though I'll be pleasantly surprised if I'm wrong). </p><h3 class="article-body__section" id="section-more-from-tom-s-guide"><span>More from Tom's Guide:</span></h3><ul><li><a href="https://www.tomsguide.com/wellness/smartwatches/fitbit-is-exiting-the-cheap-smartwatch-race-and-this-brand-could-replace-it"><strong>Fitbit is exiting the cheap smartwatch race — and this brand could replace it</strong></a></li><li><a href="https://www.tomsguide.com/wellness/fitness-trackers/apple-ring-rumors-release-date-price-design-features"><strong>Apple Ring — everything we know so far about the rumored smart ring</strong></a></li><li><a href="https://www.tomsguide.com/wellness/smartwatches/smartwatch-vs-adventure-watch"><strong>Smartwatch vs. adventure watch — which is best for you?</strong></a></li></ul>
                                                            </article>
                            ]]>
                        </content:encoded>
                                                </item>
            </channel>
</rss>