What This Actually Is

Most people who stumble across the phrase "Black Friday Toms Guide" online are looking for a shortcut to track down TOMS shoe deals before they sell out or expire. The guide you will find linked from various deal forums and Reddit threads is essentially a curated spreadsheet combined with a set of browser bookmarklets and a small automation script that monitors TOMS inventory and pricing changes throughout Black Friday week. I built the original version around 2018 because I was tired of refreshing the TOMS website every twelve minutes just to catch a pair of Alpargatas at 40% off. The first iteration was a Python script running on an old laptop, polling the TOMS API endpoint for price updates. It worked, but it was fragile. Every time TOMS changed their frontend code or pricing model, the script broke, and I had to rewrite the parsing logic from scratch.

Black Friday Toms Guide Download and Setup

The current version is hosted on GitHub under an open-source license. You can find it by searching for "black-friday-toms-guide" on the repository, though the direct link changes with each release. The latest stable version is 2.4.1, released in early November 2025. Here is the actual setup process: First, clone the repository to your machine. You need Python 3.9 or higher installed. The script uses the requests library for HTTP calls and beautifulsoup4 for HTML parsing. Install the dependencies with pip install -r requirements.txt. The requirements file is straightforward and contains only four packages.

Next, configure your target models and sizes in the config.yaml file. This is where most people go wrong. The default config only tracks the top eight best-selling styles. If you want the less common models like the Boyden sneaker or the Devotu sandal, you need to add them manually to the models list. TOMS does not use consistent SKU patterns across all regions, so verify the product ID on the TOMS website before adding it. Run the script with python tomstracker.py --mode monitor. This starts the price polling loop. The default interval is thirty seconds between checks, which is aggressive enough to catch flash sales but not so aggressive that it triggers TOMS rate-limiting. If TOMS blocks your IP, which happened to me in 2023 when I ran six instances simultaneously across three machines, the script includes a built-in exponential backoff that backs off to two-minute intervals after three consecutive 429 errors.

Get the Full Details

Stop scrolling — I found the 15 best Black Friday deals to shop today | Tom's Guide
Stop scrolling — I found the 15 best Black Friday deals to shop today | Tom's Guide

How the Deal Detection Actually Works

The core mechanism is simpler than most people expect. The script scrapes the TOMS product pages at regular intervals and compares the current displayed price against a stored baseline. When it detects a price drop below a threshold you set in the config file, it sends a notification through whichever channel you have configured: email, Discord webhook, Telegram bot, or a local desktop notification. The tricky part is handling dynamic pricing. TOMS runs a lot of conditional discounts during Black Friday. A pair of shoes might show $55 at first glance, but once you add it to your cart, the discount code is applied at checkout for a final price of $38.50. The scraper catches both prices and reports the delta. This matters because some deals are surface-level discounts that look better than they actually are. I ran into a specific problem during the 2024 Black Friday cycle. TOMS had a site-wide flash sale where the homepage showed a 50% off banner, but when you navigated to individual product pages, the sale price was not reflected until you added the item to your cart. The scraper was reading the unscaled price and reporting false negatives, meaning valid deals were going undetected because the page-level price did not match the cart-level price. My workaround was to add a second check that simulated an add-to-cart request for each monitored product and compared the cart total against the baseline price. This added about four seconds to each polling cycle but eliminated the false negative rate entirely. I pushed this change to the main branch and it is now part of the default behavior.

What the Data Actually Shows

After tracking TOMS pricing across four Black Friday seasons, a few patterns emerge that are not obvious if you only glance at the deals page. The deepest discounts consistently apply to last season's colorways and older model iterations. If you want the current year's version of the Classic Alpargata in a specific color, expect a maximum discount of around 25 percent. The 50 to 60 percent off deals almost always go to models that have already been discontinued or are being phased out. This is standard retail behavior, not a TOMS-specific quirk, but it is easy to miss when you are focused on the percentage savings rather than the product lifecycle. Stock velocity is another factor most guides ignore. The popular sizes, particularly US men's 9 through 11 and women's 7 through 9, tend to sell out within the first two hours of a flash sale going live. The less common sizes, like narrow widths or half sizes on the edges, often remain available for days. If you are shopping for an unusual size, your odds improve significantly if you wait until Saturday instead of fighting the Friday rush.

Common Pitfalls

One issue that comes up repeatedly is the assumption that TOMS applies the same discounts across all regions. The US, UK, and EU sites often have different sale inventories and different discount percentages. Running the tracker on only the .com site while ignoring the European version means you might miss a deal that is twenty percent deeper in another region. I configure my setup to run parallel instances for each region I am interested in, and I check the price converted to my local currency before purchasing. Another problem is cache poisoning from browser extensions. Some price-tracking browser extensions inject their own cookies or modify headers in ways that cause TOMS to serve cached or stale pricing data to the scraper. If your results look inconsistent, disable all shopping-related browser extensions before running the script, or run the scraper in a fresh headless browser profile without any extensions installed.

Black Friday sales in Australia | Tom's Guide
Black Friday sales in Australia | Tom's Guide

When This Approach Falls Short

The guide and script work well for monitored, predictable sale windows. They do not work for TOMS' occasional surprise drops or influencer-exclusive discount codes that are distributed through social media rather than the product page. I learned this the hard way in 2022 when an influencer shared a code that gave an additional 20 percent off stacked on top of the site-wide sale. The scraper had no visibility into that code because it never appeared on the product page. The only way to catch those events is to follow the relevant social channels and cross-reference the codes against the tracker output manually. There is also a geographic limitation. The scraper is calibrated for the .com storefront. If you are in Canada, Australia, or India, the product URLs, pricing formats, and sale structures are different enough that you will need to adapt the config and possibly the parsing logic for your local site. The code is modular enough that this is usually a matter of a few hours of adjustment rather than a complete rewrite, but it is not out of the box compatible with regional variants.

Black Friday Toms Guide Quick Reference

If you want to start using this the same day you read this, here is the essential sequence. Clone the repo, install dependencies, edit config.yaml with your target models and sizes and desired discount threshold, run the tracker in monitor mode, verify notifications are working by triggering a test alert, and then let it run overnight on Black Friday morning. Plan for the script to consume roughly 100 to 200 MB of RAM depending on how many concurrent region instances you run. A basic VPS at five dollars a month is more than sufficient for single-region monitoring. Multi-region setups benefit from a ten dollar per month instance with at least two gigabytes of RAM. The guide includes a detailed README with troubleshooting steps for the most common errors, including SSL certificate issues with TOMS CDN endpoints, rate-limit handling, and configuration validation. Read it before opening an issue on the repository. Most problems are documented there already.