Ticket Resale Price-per-Seat Comparator
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This userscript helps ticket buyers find the best value by comparing resale prices per seat. It scans ticket resale listing pages—StubHub, Vivid Seats, SeatGeek, Ticketmaster Resale, Craigslist, Facebook Marketplace, and similar sites—to extract ticket details including section, row, seat number, quantity, total price, and fees. It calculates the price per seat, compares each listing to the average price for similar seats, and displays a visual badge or panel showing whether a listing is a Great Deal, Good Deal, Average, Above Average, or Overpriced. The script highlights the best value seats (lowest price per seat with similar location), shows the average price per seat, and calculates total cost including fees. This helps you quickly identify the most cost-effective tickets without manually comparing dozens of listings.
WHERE IT RUNS
The script works on ticket resale listing pages—StubHub, Vivid Seats, SeatGeek, Ticketmaster Resale, Craigslist, Facebook Marketplace, and similar sites. It runs entirely within your browser, reading only the visible content of the current page. It does not track your browsing history, access other tabs, or send any data externally. All comparisons are performed locally.
HOW TO USE
After installation, open the panel by clicking the tool's icon in the BotGentz sidebar. The script auto-scans ticket pages on load (toggle this on/off). Choose your display mode—"Badge only" shows a floating badge in the corner, "Panel only" shows details in the panel, or "Both" shows both. Toggle "Include fees in comparison" to account for service fees in the price-per-seat calculation. Click "Scan and compare" to manually analyze the page. The badge shows the status of the first listing (or the best value listing) with color coding. The panel displays a full comparison: average price per seat, best value listing, and a sorted list of all listings with their section, row, quantity, and price per seat. Use "Clear comparison" to remove all overlays.
THE TECHNICAL MECHANISM
This script uses DOM traversal and pattern matching to extract ticket listing data. It scans for listing elements using common selectors like .listing, .ticket-listing, .offer, [class*="listing"], [class*="ticket"], and [role="listitem"]. For each element, it extracts text and uses regex patterns to find section (e.g., "Section 123"), row, seat, quantity (e.g., "2 tickets"), total price (e.g., "$150.00"), and fees. Price per seat is calculated by dividing total price by quantity. Fees are added to the total price for comparison if enabled. The script calculates the average price per seat across all detected listings. Each listing is compared to the average to determine its status: Great Deal (>20% below average), Good Deal (10-20% below), Average (±10%), Above Average (10-25% above), or Overpriced (>25% above). The best value listing is the one with the lowest price per seat. The panel displays sorted results and highlights the best value.
THE PANEL
The panel is draggable anywhere on the screen and remembers its position between sessions. It can be collapsed to a small floating bubble to minimize distraction, and expanded again with a single click. The panel's width can be adjusted, and pressing the Escape key closes it instantly. All settings—display mode, include fees, and auto-scan—are persisted locally using GM_setValue, so your preferences remain intact across page reloads and browser restarts.
PLEASE NOTE
This userscript requires the free BotGentz extension to function. The script is designed for ticket resale sites; it may work on other event listing pages but is not guaranteed. The extraction relies on the current text patterns on each site—if a site updates its UI or wording, the script may need to be updated. Fees are detected from text and may not always be accurately captured. The comparison is based on price per seat and does not account for view quality, seat location preferences, or other subjective factors. Always check the actual seat location and event details before purchasing. The script does not access your account or API; it only reads what is visible on the page. No data from your browsing is stored or transmitted anywhere—all processing occurs entirely in your browser.