Costco Wholesale Corp. (Costco (COST)) reported its June sales numbers after the bell on Wednesday, and the headline numbers look great. Net sales for the five weeks ended July 5 hit $29.24 billion, up 10.6% from a year ago. That's a lot of bulk-sized mayonnaise and giant teddy bears.
But the stock? It slipped about 1% in after-hours trading, settling around $943. So what gives?
Let's dig into the numbers first. U.S. comparable sales — a key metric for retailers — rose 10.6%, showing that consumers are still willing to swipe their cards at the warehouse club. Canada was a bit more subdued, with comps up just 3.7%, likely due to currency headwinds and different spending patterns. For the first 44 weeks of the fiscal year, total net sales reached $250.43 billion, up 10.1%. Gasoline price deflation and foreign exchange pressures were minor drags, but underlying demand remained solid.
So why the lack of enthusiasm from investors? Part of it might be technical. Costco's stock is currently trading below its key moving averages — the 20-day simple moving average is below the 50-day, which is a classic bearish signal. Momentum is leaning negative, and traders are cautious about jumping in.
The Relative Strength Index (RSI) is at 37.92, which is neutral but leaning toward oversold territory. It actually dipped below 30 on June 30, which is technically oversold. That could mean a bounce is possible if buyers step in. Meanwhile, the MACD (a momentum indicator) is above its signal line, suggesting some bullish undercurrents despite the overall bearish trend. It's a mixed bag.
Over the past month, Costco shares have fallen about 2.6%, while the S&P 500 has risen 0.3%. Year-to-date, Costco is up roughly 9%, compared to the S&P's 8.7% gain — so it's still keeping pace, just not in a straight line.
For long-term investors, the June sales data is a reminder that Costco's business is humming along. The stock's recent dip might be more about market sentiment than any fundamental flaw. But for traders watching the charts, the message is clear: wait for a clearer signal before loading up.













