top | item 39304068

Show HN: Daily price tracking for Trader Joe's

274 points| cmoog | 2 years ago |traderjoesprices.com

147 comments

order

azemetre|2 years ago

Interesting!

I’ve always held on to my grocery receipts for the last 8 years. I took pictures of them but when I moved a box got water damaged so now I only have like the last 3ish years.

Is there any open source software that I can use to transfer these receipts into a useful csv?

I have an idea for a few interesting data visualizations as I’d often buy the same things every week. Grocery bill went from like $70 to $150 with not much changes from what I can tell.

Would be cool to put it out in the public.

m_0x|2 years ago

I have attempted this and the biggest issue is that sometimes the receipts use codes hard to understand. And the codes will change from store to store.

If you're lucky, you won't need to go to a grocery store and determine what a code means, you will only need to map the code to an actual item you bought.

DreamGen|2 years ago

ChatGPT Vision will do well with this kind of OCR stuff. Just give it the header and a few example rows to get back consistently formatted output.

Or use JSON mode with the API.

transitionnel|2 years ago

I'd love it if Apple (since they appear not to sell data) would provide an anonymized receipt analysis service like this.

Huge user base right off the bat.

Neileeso44|2 years ago

I do the same with WholeFoods receipts. The pipeline is:

1. Scan to FTP dir to TIFF

2. Nightly job submits image(s) from the dir to Veryfi (their free tier is enough and they looks like the best for receipts OCR)

3. Save that raw JSON, enhanced JSON (fix occasional mis-attribution for discounts, calculate unit price), and CSV. Filename is a purchase date - correctly extracted by Veryfi.

4. Render with bash + gnuplot.

5. TODO: store into some DB and render with Grafana or something.

Edit: formatting

Ir0nMan|2 years ago

At the current price of $0.01 for 9ft, you could buy enough Trader Joe's Felted Wool Garland to wrap around the earth for just $146,000. Not bad!

Y_Y|2 years ago

How festive

ChuckMcM|2 years ago

Given that these prices are going into a database, I was hoping that you could click on an item and get its pricing over time (not a referral link to the Trade Joes web site).

bobchadwick|2 years ago

Looks like they're just straight up links, and not referral links. Pretty sure nobody is earning a commission when someone clicks them.

rexf|2 years ago

TIL Trader Joe's has a website with prices.

(I shop their stores, but I don't use their website at all.)

manuelleduc|2 years ago

Open food fact recently launched Open Prices (https://prices.openfoodfacts.org/). It's currently crowd-sourced instead of an automated crawling, but prices are localized in space and time which could lead to intersting results. This will lead to an open database of food product prices.

matthewbauer|2 years ago

It's a neat idea, but I think you need some automation to make it useful over a long period of time. There's a website to do track gas prices, and they just change too much to keep updated.

internet101010|2 years ago

Localized pricing just adds noise to data. Intermittent updates combined with possibility of input error also creates issues.

Retailers that utilize price zones typically have the baseline price that drives the prices for each price zone (e.g. set prices in California to be 10% more than baseline). Getting the baseline price in an automated way is the ideal solution.

bthallplz|2 years ago

This is super cool! I'd hoped to build something like this.

spondylosaurus|2 years ago

Pleasantly surprised to see about as many price reductions as price increases. Also funny that they marked up the price of roses ahead of Valentine's Day!

brianwawok|2 years ago

Why is it funny prices rose as demand increases? That’s Econ 101 expected behavior

orev|2 years ago

> they marked up the price of roses ahead of Valentine's Day!

Simple supply/demand.

swyx|2 years ago

surprised to see trader joe's exposes prices via graphql: https://github.com/cmoog/traderjoes/blob/54588336f3b7a4ce23c...

one of the few notable production gql users?

mortenjorck|2 years ago

This caught me completely by surprise. I never would have imagined that a grocery chain, even Trader Joe's, would have a publicly-accessible API endpoint for its current product catalog.

I wonder how the author even found the endpoint! Is this at risk of Trader Joe's noticing and moving to require an auth token? I can't imagine the openness being intentional, at least outside that brief period of techno-optimism in the late 2000s where it seemed like everyone was offering data sources to build into your Twitter bot.

Possible secondary application: could this GraphQL endpoint potentially be used to determine when a product is being discontinued?

orange_county|2 years ago

How are they getting the prices for these? Is this run by Trader Joe’s? I hope someone isn’t manually updating these.

Also won’t prices differ by location? So many questions.

clumsysmurf|2 years ago

Pretty sure TJ's has also given us shrinkflation. I suspect the almond-butter bottles have gotten smaller (but same price).

rnadomvirlabe|2 years ago

Is this for one store or all stores? It's commendable that you posted your code, but a minimal README would be appreciated.

Looking through your code, I see that the default store is Chicago South Loop (701). This would be helpful information to include on the website displaying the results.

crazygringo|2 years ago

Trader Joe's prices are famously the same across all stores.

So that shouldn't be an issue.

cmoog|2 years ago

Yes, you make a good point. Although I suspect there may be regional differences in price, I haven't yet run the diff on that. Should be simple enough for me to allow the user to select their regional store location.

cnees|2 years ago

As of right now, it costs $9,039.55 to buy one of everything on the list.

dgrin91|2 years ago

This is very fun, I like it. The price history only goes back a few days, is that because this just started or do you only keep a few days of history?

cmoog|2 years ago

Thanks! That's because it just started. I intend to keep the full history.

xur17|2 years ago

Very cool!

It would be neat to be able to click on a product and see a price history graph as well (since it seems like you should have this data your db).

cmoog|2 years ago

Agreed. Planning to add that next.

pazimzadeh|2 years ago

The $1.99 Dijon mustard is the best bang for the buck for Dijon on the US market. Maybe even cheaper than in France.

But where are the cornichons?

packjc|2 years ago

If you don't mind sharing, how do you find their API? I don't understand graphql that well and I've been trying to play with https://www.traderjoes.com/api/graphql to no avail. Cool project, github star achieved.

nostromo|2 years ago

Just browse the website and look at the requests it makes to their API.

sva_|2 years ago

Might be interesting to track their price per weight as package sizes commonly change these days ('shrinkflation')

matthewbauer|2 years ago

I wonder if this could encode unit price as well? It looks like the website will say /32 fl oz or /pound.

_ea1k|2 years ago

I see the price change list, but is there a full history for all products? That would be really interesting to see.

cmoog|2 years ago

I plan to add that shortly. The data collection model supports it though.

RSHEPP|2 years ago

Trader Joe's sells liquor?? Guess I wouldn't know living in Texas. That's surprised me though.

e40|2 years ago

Why? You can’t sell liquor in a grocery store in Texas?

bordercases|2 years ago

I would love a directional arrow in the table to indicate prices from day to day.

muhammadusman|2 years ago

YES! thank you for doing this, I have been curious about some of the stuff I buy often and I felt like over the last year or two, things have climbed in prices a lot compared to the normal inflation price hikes.

faramarz|2 years ago

Ha! The uptrend towards Valentine’s Day - florals up from $9.99 to $14.99!

Really cool, and gives you POV like you’d get with Uber Surge.

Is this how retailers hedge and make up for losses elsewhere?

I wish we could also know tracked wholesale price.

ctrlGsysop|2 years ago

Nice project.

Open nodes at stores could help BLS & commercial orgs doing regular price data gathering. I work on supplier pricing dynamics and for commoditized products freeing your pricing data is powerful.

dtgriscom|2 years ago

This is cool, but with the apparently random ordering it's just about impossible to find anything. Add sort buttons? A description of why this ordering is used?

camhart|2 years ago

Setup an alert system so I can be alerted when seasonal items are in stock. I need more lebkuchen.

borbtactics|2 years ago

Time to wishlist those strawberries

erikig|2 years ago

Prices of two dozen roses went up by 50% just in time for St. Valentine's Day.

__mharrison__|2 years ago

Would be much more interested if that data had a date associated with each row...

rconti|2 years ago

This implies the prices are the same across all TJs stores - is that the case?

crazygringo|2 years ago

It is the case. It's kind of a famous quirk about their stores, that prices are identical nationwide.

cmoog|2 years ago

Good catch. These prices are hard coded to my local store in Chicago. Soon I will add support for selecting your local store.

moxplod|2 years ago

Is there something like this for costco?

wizerno|2 years ago

Is there something similar for Ralph's or other stores?

max4c|2 years ago

Is there a website that does this for all grocery stores?

chx|2 years ago

https://minnesotareformer.com/2024/02/02/trader-joes-argues-...

Yes, please, continue to shop at Trade Joe's and subscribe to Spotify. Please.

groby_b|2 years ago

This is shredding close to HNs "please no political battle", but I'll try to take this as neutral as possible.

You are suggesting these are stores people should avoid for labor-unfriendly practices. Assuming that people are aligned with you on that value set, I don't think a sarcastic comment without actual recommendations, on a post about a tangentially related project, is going to move any needles.

And so, assuming the mods let us live: What are your recommended alternatives to TJs? TJs is, for better a worse, one of the few grocery store options with both decent quality and not entirely ludicrous prices. This project makes it even more enticing, because you can finally look up prices directly and see price history.

If there's another store that offers all that, I think a lot of people would be interested, independent of "why".

timcobb|2 years ago

Are there any collaborative price tracking sites out there?

cebu|2 years ago

Do individual stores have any autonomy over their pricing?

sharkweek|2 years ago

Didn't work at Trader Joes, but at another grocery chain for a while as a store buyer. I had essentially no control over pricing unless we had a bunch of backstock we had to move quick to avoid expiration. In those cases we had some level of store-level autonomy to "price to move." That being said, it was heavily tracked and if anyone was doing it too much I'm sure there would be consequences of some sort.

Besides that, we'd get updates from corporate with a list of new price tags we'd print out any time they changed something (100% with regional fluctuation baked in, but not at a store level).

hmcq6|2 years ago

Trader Joe's doesn't franchise. I'm not entirely sure what that means for store autonomy but I know it means less.

tony_cannistra|2 years ago

Honestly it's wild that they publish live prices online. Can they be _that_ confident that they're under-cutting competitors all the time?

obmelvin|2 years ago

I think there are enough grocery apps that it is better to show price data than not. Though I'm certainly baising that off how I shop rather than a general economics / game theory POV.

I regularly use the Ralphs app to cross shop while I'm at Trader Joes. They are only 2 minutes walking apart, so I normally start at TJs. However, sometimes I end up at Ralphs first and now having this data it could lead to an unplanned trip to TJs to save a few bucks.

gigatexal|2 years ago

Where’d the prices come from? Scraping or an api?

yoyopa|2 years ago

it would be nice to round all the 0.99 to 1.00 so its easier to see how much things really cost

mandeepj|2 years ago

A search filter would be helpful

lom|2 years ago

Control + f

ElijahLynn|2 years ago

Oh my.. useful!!!

Now do all the grocery stores!

blast|2 years ago

I hope not, but this is likely to get C&D'd by the famously secretive TJs.

inamberclad|2 years ago

I've decided to stop patronizing Trader Joe's after they argued that the NLRB is unconstitutional.