| ▲ | Show HN: Price Per Ball – Site that sorts golf balls on Amazon by price per ball(priceperball.net) |
| 33 points by rockdiesel 4 hours ago | 46 comments |
| I took inspiration from diskprices.com, but applied it to my golfing hobby. For someone who can't always keep it in the fairway, golf balls can get rather expensive, so I decided to build a way for me to view Amazon listings by how much they cost per ball in the hopes of finding some good deals. Hence the name of the website. The site is hosted on Cloudflare pages and I use Github actions to trigger a python script that fetches and checks the prices. It runs twice a day. If the script encounters any new ASINs, it stores them for future checks, so the list of golf balls being price checked should keep growing over time. Changes are then pushed to Cloudflare pages. There can sometimes be some pricing oddities when the product title says one count, but the unit count being returned from Amazon is another number, so I'm trying to add some checks to help accommodate for that. Right now, I just have some manual overrides for certain ASINs, but I'm looking to improve on it in the future. The frontend is just some basic HTML, CSS and JavaScript. Listings on Amazon can be inconsistent sometimes because, for example, product titles will say used balls, but the seller lists them as new. I added some filters to that allow you to exclude used/recycled balls, plastic golf balls, etc... You can also filter by brand. Give it a spin and let me know if you run into any issues or have any feature ideas to make it more useful. |
|
| ▲ | koolba 2 hours ago | parent | next [-] |
| If you really want to get cheap balls, go play a round at a mid tier course and take a peek in the bushes. You’ll get an assortment of balls. |
|
| ▲ | litenboll 3 hours ago | parent | prev | next [-] |
| Great idea, simple and effective.
Tiny bit of feedback: seems like some listings use "unit count" for the number of balls, look at the most expensive listing for an example. Annoyingly the second most expensive balls have the number of dozens in the unit count instead. |
| |
| ▲ | rockdiesel 3 hours ago | parent [-] | | Yeah. I'm trying to figure out how to combat these inconsistencies. Right now, I have some manual overrides, but not sure it's sustainable to keep manually overriding inconsistent listings. Any thoughts? Should I default to what's in the product title instead of the unit count? Not sure the best way to combat this. | | |
| ▲ | Propelloni 2 hours ago | parent | next [-] | | Maybe you could build a heuristic around shipping weight? A single golf ball weighs about 45 to 50 g, so divide the shipping weight by, say, 50 g to account for boxing and so on and you get a rough estimate of the balls in the package. | | |
| ▲ | rockdiesel 2 hours ago | parent [-] | | O wow, that's an interesting approach. That would've never crossed my mind without posting this on HN. Appreciate the suggestion. |
| |
| ▲ | fultonn 2 hours ago | parent | prev | next [-] | | what I've done for a similar script in the past: answer_initial = llm(prompt=prompt, site=site) # JSON with answer and any stuff needed to do heuristic checks.
heuristic_results = heuristics(answer_final) # rule based.
answer_final = llm(prompt-prompt, site=site, answer=answer_initial)
mark_for_review = ... # basically just a bunch of hard-coded stuff I add flag possible failures for review.
You can use an extremely small/cheap model for something like this -- granite 4.0 micro works fine for me, 3.3 8b did as well, both run on my macbook. YMMV / try different models and see how it goes. | |
| ▲ | datsci_est_2015 2 hours ago | parent | prev | next [-] | | The funny thing is, if your method becomes the dominant way of price discovery, a bad actor will simply try to circumvent the system to get their product ordered first, and you’ll be embattled in a Cold War. See also: toilet paper sheet count comparisons. | |
| ▲ | tonygrue 2 hours ago | parent | prev | next [-] | | You could make a list of all the metadata and pass it through a LLM to determine the quantity. You’ll need some sanity checking but if you prompt it with some examples it will do well. (Done something very similar myself.) | |
| ▲ | hluska 2 hours ago | parent | prev [-] | | I’m not the person you replied to but I took a look at the data and this is an interesting one. You found a really cool data set and this will be fun. Consider the top four most expensive golf balls on your current list: TaylorMade 2021 TP5x (3+1 Box) 4DZ Golf Ball Pack, White — uses 4DZ in title, 48.0 in unit count in product specs. Bridgestone Golf Tour B RXS Quadfecta - nothing in the title, unit count in product specs is 4.0. This one shows 4 dozen in a different spot than other balls. TaylorMade Golf 2024 TP5 Golf Balls 3+1 Box Four Dozen — Four dozen in the title, unit count in product specs is 1.0 but it has 4.0 dozen in the same div as the Bridgestone balls. Srixon Z Star Yellow Golf Balls - Buy 2 DZ Get 1 DZ Free — Title shows buy 2 DZ get 1 free. That’s represented as 2+1 or 3+1 in other data. In product specs it shows a unit count of 1.0. — In that extremely limited sample, the product weight is a pretty good metric to show that the unit count is flawed though that only works in comparison to others. I wonder if you could do a multi pass approach, where you sort data first and then do a unit count versus weight check to find outliers and then start rocking through the titles? You’ll still end up digging through a lot of edge cases and that won’t be much fun but a multi pass would at least give you some insight into those weird edge cases. | | |
| ▲ | rockdiesel 2 hours ago | parent [-] | | I appreciate you taking a look. This product weight approach has me intrigued and something I'll look into. I'm thinking I could just start with any listing where unit count = 1 and take a pass at those first. I haven't looked yet, but I'm guessing single unit counts are almost always inconsistent with the actual number of golf balls. |
|
|
|
|
| ▲ | onionisafruit 3 hours ago | parent | prev | next [-] |
| What a great niche site. I don’t usually suggest adding ads to a site, but this is begging for an ad for golf lessons to help fix your slice. |
|
| ▲ | kwar13 an hour ago | parent | prev | next [-] |
| Good stuff! I built something similar but for price / g of protein for protein powders and bars: https://www.proteinmath.app/ |
| |
|
| ▲ | bradfa an hour ago | parent | prev | next [-] |
| Would be nice if you could filter based on the number of pieces or layers of the golf ball manufacturing process. Might require some leg work to actually find out, but many manufacturers will list it on their product info. |
| |
|
| ▲ | luddit3 an hour ago | parent | prev | next [-] |
| Very cool! An improvement for version 2.0 would be to add the ability to filter by ball type: two-piece, swing speed, and cover. This would provide users with better insight into pricing. |
| |
| ▲ | rockdiesel an hour ago | parent [-] | | That's a good idea. Thanks for the suggestion. I'll look into expanding the filters to be more useful and allow some more granularity. |
|
|
| ▲ | seemaze an hour ago | parent | prev | next [-] |
| This will help me navigate the great AI golf ball shortage of 2026. |
|
| ▲ | bombledmonk 2 hours ago | parent | prev | next [-] |
| Rather than filter in brands, I'd rather filter out brands (aka exclude). Maybe just an include/exclude toggle there? A select all UI element, then deselect might also be adequate. |
| |
| ▲ | rockdiesel 2 hours ago | parent [-] | | Funny that you mention that. That's how it originally worked, but I changed it to filter in brands because I assumed golfers are more brand loyal, and thought they might want to only look at the brands they normally play with. I think your toggle idea is a good one though, and I'll look to implement that. I can see how some people might want that. |
|
|
| ▲ | baxtr an hour ago | parent | prev | next [-] |
| The last item shows 1 ball for $169. If you click on the link you’ll see it’s says 4 dozen, 48 balls, on the box. And not just one. |
| |
| ▲ | rockdiesel an hour ago | parent [-] | | Yep. That's one of the downsides of relying on unit count. Sellers don't always accurately match the unit count to their product title. I'll work on fixing these inconsistencies. |
|
|
| ▲ | eagleinparadise 2 hours ago | parent | prev | next [-] |
| omg thanks. Went to a bachelor party recently and think I spent like $100 on a pack of 12 balls. Outrageous, I was so pissed I had to do it. And then knocked most of them off course! |
|
| ▲ | smokedetector1 3 hours ago | parent | prev | next [-] |
| Somethings broken - the most expensive ball, "TaylorMade 2021 TP5x (3+1 Box) 4DZ" is listed as $169.95 for 1 ball. Clicking through, this is actually for 4 dozen balls, making the actual per ball $3.54 |
| |
| ▲ | rockdiesel 3 hours ago | parent | next [-] | | Posting my other comment from above: Yeah. I'm trying to figure out how to combat these inconsistencies. Right now, I have some manual overrides, but not sure it's sustainable to keep manually overriding inconsistent listings. Any thoughts? Should I default to what's in the product title instead of the unit count? Not sure the best way to combat this. | | | |
| ▲ | gertrunde 3 hours ago | parent | prev [-] | | I had the same thought, and checked a dozen or so of them, they're all multiple dozens of balls. The submitter's description does make reference to this a bit, the Amazon product description quantity for these items is "1"... And it gets more complicated for the ones that are 2 dozen, plus 1 dozen 'free'... | | |
| ▲ | rockdiesel 2 hours ago | parent [-] | | Yeah... I'm just now realizing how relying on unit count in the listing is more problematic than I thought. Sellers say their unit count is 1, but the product title says it is 4 dozen. I need to figure out how to fix these inconsistencies. |
|
|
|
| ▲ | jmux 2 hours ago | parent | prev | next [-] |
| Great idea, i love the simple html website :) For determining the number of balls, i had an idea but not sure of how well it’d fit in. Could you feed the listing title, unit count, and description into an LLM with a basic “figure out how many balls are in this listing and make sure that number makes sense with the price” prefix prompt and then store that number with the ASIN? One LLM call per product should be pretty low cost, and it could automate a bunch of repetitive manual work |
| |
| ▲ | rockdiesel 2 hours ago | parent [-] | | Before going full AI, maybe I could create a list of quantity keywords like "dozen", "3-pack", etc... and at least use that as a starting point. | | |
| ▲ | dymk 2 hours ago | parent | next [-] | | As much as I love simple deterministic things, this is a classic example of where NLP is better than hardcoding a list of keywords. Trying to guess every set of quantity keywords with various spelling, punctuation and how they interact ("1dzn box, two pack" is actually 24 balls) seems more brittle than an LLM. | | |
| ▲ | rockdiesel 2 hours ago | parent [-] | | You're probably right. I can see how LLM is the better way to approach this. I haven't looked into AI usage fees or anything, but I would think the amount of queries I'd send wouldn't be that expensive. I'll look into it. |
| |
| ▲ | sagacity 2 hours ago | parent | prev [-] | | Alternatively, make your site so popular that manufacturers tune their description to work with your site :) |
|
|
|
| ▲ | austin-cheney 2 hours ago | parent | prev | next [-] |
| See also https://diskprices.com/ for inspiration. The disk prices site does the exact same thing but the product is digital storage hardware. They made $50k from referrals to Amazon in 2024. The disk prices site frustrates me because it illustrates so directly to costs imposed on the US from the current tariffs. I was able to get a 14tb disk from there DEC 2024 for $90 and now the cheapest is $220. |
| |
| ▲ | rockdiesel 2 hours ago | parent | next [-] | | Yeah. I state in my post that I took inspiration from diskprices.com. I always wanted to build something similar, but for a product that I actually buy on semi-regular basis. | |
| ▲ | thatguy0900 2 hours ago | parent | prev [-] | | That's not all tariffs. The Ai boom is at the point where some memory manufacturers are selling their whole production capacity a year in advance. |
|
|
| ▲ | golfer 2 hours ago | parent | prev | next [-] |
| Awesome to see golf related projects on HN! Nice work. |
| |
|
| ▲ | kopollo 2 hours ago | parent | prev | next [-] |
| Which Amazon API is this data coming from? |
| |
|
| ▲ | KRAKRISMOTT 2 hours ago | parent | prev | next [-] |
| How does it compare to Costco? |
|
| ▲ | millzlane 2 hours ago | parent | prev | next [-] |
| Nice. This reminds me of ammoseek. |
|
| ▲ | jasoncartwright 3 hours ago | parent | prev [-] |
| Came here to comment how much it's like the superb diskprices.com. Excellent work. |
| |
| ▲ | rockdiesel 2 hours ago | parent [-] | | Thank you. I appreciate it. I love that site and always sat around thinking about building something like it, but for a product I buy frequently. And I finally built it. |
|