[HN Gopher] Show HN: Daily price tracking for Trader Joe's
___________________________________________________________________
Show HN: Daily price tracking for Trader Joe's
Author : cmoog
Score : 156 points
Date : 2024-02-08 16:37 UTC (6 hours ago)
(HTM) web link (traderjoesprices.com)
(TXT) w3m dump (traderjoesprices.com)
| cmoog wrote:
| Source code here: https://github.com/cmoog/traderjoes
| pphysch wrote:
| I love this pattern of making tiny but powerful analysis tools
| with SQLite + a couple scripts.
| cmoog wrote:
| And with Haskell and Nix at that!
| rconti wrote:
| This implies the prices are the same across all TJs stores - is
| that the case?
| cmoog wrote:
| Good catch. These prices are hard coded to my local store in
| Chicago. Soon I will add support for selecting your local
| store.
| owlninja wrote:
| I am seeing comments that their prices are the same
| nationwide? Less work for you if true :)
| Omni5cience wrote:
| I think most non-perishable goods are the same across stores.
| There are regional differences between some perishable goods
| based on where they come from.
| thaumasiotes wrote:
| It would be shocking if it was.
| crazygringo wrote:
| It is the case. It's kind of a famous quirk about their stores,
| that prices are identical nationwide.
| xfour wrote:
| I feel like Charles Shaw is an exception to that and cheaper
| in California?
|
| https://www.foodandwine.com/news/trader-joes-two-buck-
| chuck-...
| azemetre wrote:
| 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.
| graphe wrote:
| https://docs.paperless-ngx.com
|
| Nextcloud also has OCR. You can use a scanner with either.
|
| Avoid touching the receipts.
| https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5453537/
| jxramos wrote:
| didn't see anything specifically receipt oriented but found a
| little blurb here that mentions receipts almost tangentially
| https://docs.paperless-ngx.com/usage/#basic-searching
| azemetre wrote:
| hmm, I guess I have a weekend project now.
|
| And thanks for the heads up about the toxicity, I use to save
| them all but after the move I simply take a picture with my
| phone and throw them out.
|
| paperless doesn't seem to be my exact use case but hopefully
| after it does the OCR transformation it can allow you to make
| a csv file.
| graphe wrote:
| I'd look into a document scanner for ease of use. They even
| have ones that auto loads, so no more waiting around. With
| that said, if you purchase a scanner, it probably already
| has proprietary OCR, and they have auto feeding ones for
| many documents. I foolishly bought one not knowing auto
| feeding was an option. https://youtu.be/fi0ZhTFaW7w I
| bought a brother 2 sided one since it had Linux drivers.
| azemetre wrote:
| hmm, IDK if a scanner would help me. I already have
| pictures of my receipts. I might have to do more research
| because I feel like there's gotta be something out there
| where you can just show images of receipts and have it
| generate a csv of the data.
|
| I'd even pay a decent amount to do it. After doing some
| more research it seems like MS Office might handle this
| workflow too in Excel (convert receipt picture to csv
| data).
| transitionnel wrote:
| 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.
| aorloff wrote:
| And who is the business consumer
| transitionnel wrote:
| Hmm, yeah I suppose anything promoting consumer knowledge
| would be antithesis to ordinary business schemes.
|
| Pie in the sky, alas.
|
| Maybe they could grab some preventative lobby money with
| the threat of it. /s
| Workaccount2 wrote:
| I wish there was just a standardized receipt sending format
| that would send your receipt to your pay app once you tap to
| pay something.
|
| Of course, I can only imagine this coming to fruition if it
| is packed to the brim with tracking and 3rd party
| dissemination.
| transitionnel wrote:
| To the brim, for sure.
|
| Probably one day we'll have a "citizen preferences file"
| where the confidentiality of our interactions with various
| entities can be granularly set.
| m_0x wrote:
| 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.
| azemetre wrote:
| That's perfectly fine for me. I can map the key items myself,
| the hard part is I don't want to devote a solid 120+ hours
| manually creating the CSVs for 150 receipts.
|
| Is it possible you can discuss more what you did?
| DreamGen wrote:
| 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.
| spondylosaurus wrote:
| 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!
| orev wrote:
| > they marked up the price of roses ahead of Valentine's Day!
|
| Simple supply/demand.
| dheera wrote:
| Has nothing to do with supply curve, it's just that roses on
| Valentine's Day change from elastic demand to inelastic
| demand.
|
| In simple terms on Valentine's Day they can charge whatever
| the hell they want and people still want to buy it.
|
| At other times of the year people have lots of alternatives
| to roses and are more price sensitive.
| brianwawok wrote:
| Why is it funny prices rose as demand increases? That's Econ
| 101 expected behavior
| graphe wrote:
| iPhones dropped in price as demand increased. Demand isn't as
| important as marketing, and this is probably supply limited
| rather than demand.
| jsight wrote:
| iphones dropped in price?
| Etheryte wrote:
| In practical terms, yes. Adjusted for inflation, a modern
| iPhone costs roughly the same as the ones in prior
| generations, except now you get a lot more bang for your
| buck with better battery life, improved camera, etc.
| cycomanic wrote:
| It doesn't really make sense to talk about a single product
| from a single supplier when talking about supply and
| demand. You completely leave out the competition side that
| drives the whole system.
| graphe wrote:
| A single example of gravity not working means the theory
| of gravity doesn't work, unless you mean that economics
| should not have scientific scrutiny.
|
| Economics is in a dire state of proving theories right.
| It only accounts for perfectly rational actors. A famous
| nobel prize winner was proven wrong in the same year or
| so and he said his graphs didn't account for it.
| screeno wrote:
| Except for a the obvious counter examples. Like food in
| general very in demand and very cheap. Housing very in demand
| but very expensive. So it's really more about who decides the
| prices than what.
| Ensorceled wrote:
| Econ 101 explains those counter examples as well: Food has
| high demand but lots of competition and easy substitution
| (rice expensive? buy pasta). Housing supply is limited (by
| location but often artificially via regulation) and
| substitution is difficult (have to move).
| graphe wrote:
| People are not economically rational. Most people don't
| buy pasta when rice is expensive. Econ 101 explains
| rational actors in a vaccum, not gluten free, asian
| culture, anti Italians sentiment, or hatred of Monsanto.
| Ensorceled wrote:
| > Most people don't buy pasta when rice is expensive.
|
| They would if rice prices went through the roof, which
| they won't because people who sell rice are not stupid.
|
| Econ 101 certainly explains why you can actually buy
| gluten free products now (supply for demand) and why
| gluten free products are usually more expensive (niche
| market).
|
| My ECON 101 prof talked about the limitations of models
| and theories based on assumption of rational actors in
| the 1980s ... I have no idea why everyone thinks this is
| a gotcha.
| graphe wrote:
| No, they're geniuses because they're subsidized and will
| always be profitable. They lowered prices by taking it
| from your taxes.
|
| Throw in subsidies like how Clinton ruined Jamaican rice
| with protectionism and your supply demand and price are
| no longer rational.
| https://www.texasgateway.org/resource/201-protectionism-
| indi...
|
| Econ 101 ignores subsidies which account for 100% of the
| big 3 crops and more like rice, and ignores any form of
| economics.
| Ensorceled wrote:
| I don't know where you took Econ 101 but mine definitely
| covered how things like subsidies and protectionism
| perversely impact market forces. You're just blaming
| economists for bad policies at this point.
| drekk wrote:
| How many recessions has "Econ 101" predicted? Economics
| is a "soft science", on the same tier as psychology which
| people love to ridicule. Understanding how rational
| actors behave in a microeconomic sense doesn't help you
| when you're talking about irrational actors in the
| macroeconomic sense
| Ensorceled wrote:
| The basics of Supply and Demand, Price Elasticity,
| Inflation, Monopolies, etc. etc. don't require humans to
| be perfectly rational actors to be useful concepts.
|
| Yes, Economics can't predict recessions or the next
| Beanie Baby fad, that doesn't mean supply and demand is
| nonsense.
| jsight wrote:
| TBH, people routinely overlook the other two factors,
| supply and underlying cost.
|
| Sometimes increases in demand can both increase supply and
| decrease cost.
| philwelch wrote:
| "Underlying cost" is part of the supply curve.
| jsight wrote:
| Ok, imagine the cost is driven by underutilized fixed
| costs. How does the supply curve model the decrease in
| cost as demand increases?
| philwelch wrote:
| "Demand goes up so price goes up" is true _ceteris
| paribus_. For instance, if the FDA banned Ozempic tomorrow,
| you would expect the price of food to go up because many of
| the Ozempic patients would return to their previous
| consumption habits. But there have been a thousand other
| things that have happened which adjusted the price up and
| down, and most of those events in the past 200 years made
| food cheaper instead of more expensive, because the world
| increased the amount of food it was able to grow a lot
| faster than people increased the size of their appetites.
|
| In fact, this actually demonstrates another effect: as
| something becomes cheaper, people will consume more of it.
| Strictly speaking, demand is a curve where quantity
| demanded is inversely proportional to price; if "demand
| goes up" we usually mean the entire curve shifts to the
| right. There's also a supply curve: quantity supplied is
| directly proportional to price. The intersection of these
| curves is the market price; nobody "decides the prices"
| unless you have a monopoly or cartel or government
| interference.
|
| Housing, incidentally, is a classic example of government
| interference.
| dgacmu wrote:
| Depends. Sometimes turkey prices drop before thanksgiving, as
| the producers plan their growth cycles around expected
| thanksgiving demand, and use freezers to meet demand. For
| example, see the 2022 august peak in poult placement in:
| https://downloads.usda.library.cornell.edu/usda-
| esmis/files/...
|
| and https://theconversation.com/why-does-the-price-of-
| turkeys-fa...
|
| The products often become loss-leaders (or close to it) to
| draw people into stores, so perhaps the interesting thing
| here is that valentines roses have a different pricing
| pattern -- probably because, unlike turkey, they don't freeze
| well, so supply is much less elastic.
| samschooler wrote:
| It is supply and demand, but actually has a fascinating supply
| chain behind it that needs to be timed perfectly. There is a
| great Planet Money episode on it:
| https://www.npr.org/sections/money/2015/02/13/386005044/epis...
| rnadomvirlabe wrote:
| 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.
| cmoog wrote:
| 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.
| crazygringo wrote:
| Trader Joe's prices are famously the same across all stores.
|
| So that shouldn't be an issue.
| mfarris wrote:
| That's a misconception. Prices are not the same across
| stores.
|
| I live in Los Angeles. Many times I've shopped at the TJ's in
| Silver Lake and one of the TJ's in Pasadena on the same day.
| Most prices are the same, but on many items the Silver Lake
| store is consistently 5-10% higher.
|
| I've also shopped in midwestern TJ's and noted that the
| prices were generally lower than LA.
|
| Products differ significantly, too. Items with the exact same
| name and packaging can be totally different regionally. For
| example, "Sonoma Chicken Salad" used to be a favorite of mine
| here in California. The Iowa version was disgusting, with
| roughly twice the mayonnaise, fewer nuts and grapes, and 3x
| the sugar.
| genocidicbunny wrote:
| I've noticed a similar thing with Trader Joes in PNW vs
| California. The produce selection was different, the pre-
| made foods (like the salads, wraps..etc) were somewhat
| different, meat selection and quality was also different.
|
| Part of it is that TJ's used to be much more about the
| 'one-off buy of a weird but tasty product'. They would find
| a product they could sell, buy as much of it as was
| possible, and sell through it, never to order and sell it
| again. Over time though, it grew to be the store where
| people went for basic staples, and so the way they sourced
| products probably changed to a more traditional model that
| grocery stores use, where many of the more perishable
| products are regionally sourced.
|
| So what you experienced with the Sonoma Chicken Salad
| (which, I commend your appreciation, that used to be a
| favourite of mine to get for lunch) is likely a result of
| them just being completely different products made in
| different places by different companies.
|
| Trader Joes in the 90's and early 2000's was a cool quirky
| grocery store to pick up some fun stuff and good wine to
| round out the weekly grocery shopping. TJ's in 2024 feels
| like Kroger standing on Whole Foods shoulders wearing a
| trench coat.
| crazygringo wrote:
| Are you sure?
|
| They list prices on their website even without a local
| store selected. And then picking a local store in different
| locations, I can't find any prices that change.
|
| I mean, obviously there might be exceptions. And I assume
| local produce varies, the same way it varies in every
| supermarket not just by the season but by the week. Most
| fresh produce isn't even listed on their site, and things
| like fresh salads are going to be based on local produce
| prices. (E.g. this daily price tracker doesn't have any
| entries for apples of any kind, for instance.)
|
| But I can't find any evidence of any Trader Joe's
| _products_ (whether frozen or snacks or jarred or bakery)
| having different prices between stores. Which is what I
| meant -- the stuff on their website. But it 's good to
| clarify the difference between that and fresh produce.
|
| (I could always be wrong, but you can find it repeated all
| over forums that Trader Joe's prices are the same
| everywhere, and they are in my experience as well -- it
| seems to be "common knowledge".)
| jxramos wrote:
| wow I never knew that. Is there an official source stating
| that somewhere or it's common knowledge somehow or something
| people at the stores repeat to customers? I never noticed
| this before since I don't think I've ever gone to two
| different locations on the same day.
| orange_county wrote:
| 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.
| cmoog wrote:
| Source code here: https://github.com/cmoog/traderjoes
|
| Discussion of regional price differences in other comments.
| ElijahLynn wrote:
| Looks like it is a GraphQL API from TJs. url <-
| HTTP.parseRequest "https://www.traderjoes.com/api/graphql"
|
| https://github.com/cmoog/traderjoes/blob/master/Prices.hs#L8...
| xur17 wrote:
| 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 wrote:
| Agreed. Planning to add that next.
| scarletphoenix wrote:
| Some day in the near future, the marketing department will wonder
| why so many people were curious about all of their products after
| browsing Organic Ground Beef[0]
|
| [0]:
| https://github.com/cmoog/traderjoes/blob/ea2da58a84d3a04e28f...
| cmoog wrote:
| Haha true. I should fix that.
| dheera wrote:
| I mean, it's okay to leave it, (a) it's funny (b) it teaches
| them a lesson that attempts to track people are futile
| block_dagger wrote:
| Modern tracking isn't bulletproof, but also not futile.
| tash9 wrote:
| Or... you could change it to something funnier, like
| "Pumpkin Body Butter"
| WirelessGigabit wrote:
| I'd also change it to `Referer`, as that is what Chrome seems
| to be using.
|
| And referrer is set twice!
| jsight wrote:
| Indeed, he spelled it the right way, which is the wrong
| way. He should spell it wrong, which is the right way. :)
|
| I think it is funny that this misspelling hasn't been fixed
| after all of these years. It was typo'ed in the original
| http spec in 1996:
| https://en.wikipedia.org/wiki/HTTP_referer
| jedberg wrote:
| Most things that care about that field accept both
| because so many programmers make that mistake.
|
| But you're technically right, the best kind of right.
| SilasX wrote:
| If the web server is following RFC 8969, it will treat
| "referrer" as "referer" and throw a 397 TOLERATING to let
| you know you should change it to the latter on your end.
| See Section 3.
|
| https://pastebin.com/TPj9RwuZ
|
| (Yes it's my April Fool's RFC.)
| cebu wrote:
| Do individual stores have any autonomy over their pricing?
| sharkweek wrote:
| 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).
| jsight wrote:
| I see the price change list, but is there a full history for all
| products? That would be really interesting to see.
| cmoog wrote:
| I plan to add that shortly. The data collection model supports
| it though.
| timcobb wrote:
| Are there any collaborative price tracking sites out there?
| jon_adler wrote:
| Were you aware of, or tempted by https://datasette.io/ for
| creating your solution?
| dgrin91 wrote:
| 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 wrote:
| Thanks! That's because it just started. I intend to keep the
| full history.
| ChuckMcM wrote:
| 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 wrote:
| Looks like they're just straight up links, and not referral
| links. Pretty sure nobody is earning a commission when someone
| clicks them.
| cmoog wrote:
| I can assure you I am not earning a commission :)
| ChuckMcM wrote:
| Sorry can't edit it now but you are correct and I wasn't
| thinking "that" kind of referral :-). Easy to see that
| interpretation though, will have to remind myself to use
| "links that reference the product".
|
| FWIW cmoog, I think it is pretty cool. I've always felt that
| good surveillance on retail prices with specific product
| information (like weight/servings) would be a solid data set
| for economists and people like me to understand "real"
| inflation, "greed" inflation, and general product pricing
| trends.
| Ir0nMan wrote:
| 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 wrote:
| How festive
| ElijahLynn wrote:
| Oh my.. useful!!!
|
| Now do all the grocery stores!
| marsissippi wrote:
| Made a little dashboard of the last couple weeks' changes
|
| https://www.julyp.com/shared-widget/018d8a17-fc96-72b3-806f-...
| [deleted]
| tony_cannistra wrote:
| 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 wrote:
| 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.
| clumsysmurf wrote:
| Pretty sure TJ's has also given us shrinkflation. I suspect the
| almond-butter bottles have gotten smaller (but same price).
| chx wrote:
| 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 wrote:
| 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".
| borbtactics wrote:
| Time to wishlist those strawberries
| swyx wrote:
| 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?
| inferiorhuman wrote:
| Lucky Supermarkets do as well.
| matthewbauer wrote:
| I wonder if this could encode unit price as well? It looks like
| the website will say /32 fl oz or /pound.
| mandeepj wrote:
| A search filter would be helpful
| manuelleduc wrote:
| 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 wrote:
| 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.
| packjc wrote:
| 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 wrote:
| Just browse the website and look at the requests it makes to
| their API.
| inamberclad wrote:
| I've decided to stop patronizing Trader Joe's after they argued
| that the NLRB is unconstitutional.
| muhammadusman wrote:
| 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.
| sva_ wrote:
| Might be interesting to track their price per weight as package
| sizes commonly change these days ('shrinkflation')
| jenningsjason wrote:
| The founder of "Trader Joe's" Joe Coulombe, wrote a memoir. One
| of the better business books you'll read:
|
| https://www.harpercollinsleadership.com/9781400225422/becomi...
| erikig wrote:
| Prices of two dozen roses went up by 50% just in time for St.
| Valentine's Day.
| cnees wrote:
| As of right now, it costs $9,039.55 to buy one of everything on
| the list.
| wizerno wrote:
| Is there something similar for Ralph's or other stores?
___________________________________________________________________
(page generated 2024-02-08 23:00 UTC)