frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Price Per Ball – Site that sorts golf balls on Amazon by price per ball

https://priceperball.net/
29•rockdiesel•2h ago
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.

Comments

onionisafruit•1h ago
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.
jasoncartwright•1h ago
Came here to comment how much it's like the superb diskprices.com. Excellent work.
rockdiesel•1h ago
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.
smokedetector1•1h ago
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
gertrunde•1h ago
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•1h ago
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.
rockdiesel•1h ago
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.

fru2013•1h ago
ChatGPT was able to tell that there were 48 balls given only the URL...
giarc•49m ago
Maybe add a "flag listing" button so users can alert you?
parhamn•16m ago
gemini flash!
litenboll•1h ago
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•1h ago
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•1h ago
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•1h ago
O wow, that's an interesting approach. That would've never crossed my mind without posting this on HN. Appreciate the suggestion.
tonygrue•1h ago
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•1h ago
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•49m ago
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.

datsci_est_2015•53m ago
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.

fultonn•30m ago
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.
jmux•1h ago
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•1h ago
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.
sagacity•1h ago
Alternatively, make your site so popular that manufacturers tune their description to work with your site :)
dymk•43m ago
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•34m ago
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.
eagleinparadise•1h ago
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!
millzlane•1h ago
Nice. This reminds me of ammoseek.
austin-cheney•54m ago
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.

thatguy0900•51m ago
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.
rockdiesel•48m ago
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.
koolba•48m ago
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.
bombledmonk•44m ago
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•39m ago
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.

kopollo•44m ago
Which Amazon API is this data coming from?
rockdiesel•38m ago
Product Advertising API - https://webservices.amazon.com/paapi5/documentation/
KRAKRISMOTT•41m ago
How does it compare to Costco?
golfer•26m ago
Awesome to see golf related projects on HN! Nice work.
seemaze•22m ago
This will help me navigate the great AI golf ball shortage of 2026.
baxtr•14m ago
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.

luddit3•4m ago
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.

HackMyClaw

https://hackmyclaw.com/
107•hentrep•1h ago•43 comments

Claude Sonnet 4.6 System Card

https://www.anthropic.com/claude-sonnet-4-6-system-card
30•adocomplete•18m ago•2 comments

Using go fix to modernize Go code

https://go.dev/blog/gofix
45•todsacerdoti•1h ago•4 comments

GrapheneOS – Break Free from Google and Apple

https://blog.tomaszdunia.pl/grapheneos-eng/
811•to3k•8h ago•525 comments

Async/Await on the GPU

https://www.vectorware.com/blog/async-await-on-gpu/
46•Philpax•1h ago•5 comments

So you want to build a tunnel

https://practical.engineering/blog/2026/2/17/so-you-want-to-build-a-tunnel
32•crescit_eundo•1h ago•14 comments

I converted 2D conventional flight tracking into 3D

https://aeris.edbn.me/?city=SFO
119•kewonit•3h ago•31 comments

Trata (YC W25) Is Hiring Founding Engineers (NYC)

1•emc329•1h ago

Show HN: I wrote a technical history book on Lisp

https://berksoft.ca/gol/
29•cdegroot•2h ago•2 comments

Can a Computer Science Student Be Taught to Design Hardware?

https://semiengineering.com/can-a-computer-science-student-be-taught-to-design-hardware/
11•stn8188•38m ago•5 comments

Launch HN: Sonarly (YC W26) – AI agent to triage and fix your production alerts

https://sonarly.com/
7•Dimittri•1h ago•0 comments

Show HN: 6cy – Experimental streaming archive format with per-block codecs

https://github.com/byte271/6cy
9•yihac1•1h ago•1 comments

Show HN: I taught LLMs to play Magic: The Gathering against each other

https://mage-bench.com/
21•GregorStocks•1h ago•14 comments

Is Show HN dead? No, but it's drowning

https://www.arthurcnops.blog/death-of-show-hn/
216•acnops•7h ago•189 comments

Show HN: Continue – Source-controlled AI checks, enforceable in CI

https://docs.continue.dev
11•sestinj•59m ago•2 comments

Chess engines do weird stuff

https://girl.surgery/chess
44•admiringly•59m ago•7 comments

Show HN: I built a simulated AI containment terminal for my sci-fi novel

https://vertex.flowlogix.ai
10•stevengreser•1h ago•4 comments

Semantic ablation: Why AI writing is generic and boring

https://www.theregister.com/2026/02/16/semantic_ablation_ai_writing/
107•benji8000•1h ago•106 comments

A sitting US president launched two memecoins that wiped out $4.3B+

https://twitter.com/MeshnetCapital/status/2023573563559547180
45•doener•32m ago•20 comments

14-year-old Miles Wu folded origami pattern that holds 10k times its own weight

https://www.smithsonianmag.com/innovation/this-14-year-old-is-using-origami-to-design-emergency-s...
866•bookofjoe•23h ago•184 comments

Climbing Mount Fuji visualized through milestone stamps

https://fuji.halfof8.com/
5•gessha•37m ago•1 comments

Four Column ASCII (2017)

https://garbagecollected.org/2017/01/31/four-column-ascii/
296•tempodox•2d ago•70 comments

Gentoo on Codeberg

https://www.gentoo.org/news/2026/02/16/codeberg.html
4•todsacerdoti•46m ago•0 comments

Hamming Distance for Hybrid Search in SQLite

https://notnotp.com/notes/hamming-distance-for-hybrid-search-in-sqlite/
52•enz•2d ago•9 comments

Students Are Being Treated Like Guinea Pigs: Inside an AI-Powered Private School

https://www.404media.co/students-are-being-treated-like-guinea-pigs-inside-an-ai-powered-private-...
18•trinsic2•38m ago•2 comments

Show HN: Cycast – High-performance radio streaming server written in Python

https://github.com/LukeB42/Cycast
9•LukeB42•2h ago•0 comments

Labyrinth Locator

https://labyrinthlocator.org/
10•emigre•3d ago•1 comments

Show HN: Clawntown – An Evolving Crustacean Island

https://clawntown.lol
8•acnops•2d ago•0 comments

Show HN: Glitchy camera – a circuit-bent camera simulator in the browser

https://glitchycam.com
144•elayabharath•1d ago•19 comments

Rise of the Triforce

https://dolphin-emu.org/blog/2026/02/16/rise-of-the-triforce/
387•max-m•20h ago•59 comments