Portfolio update - May 2026
Discussing my positions in NKE, LULU, ONON, GTX, DORM and NOMD
I got side tracked with a couple of projects around this substack. They are still not where I want them to be so I thought that will be a good time to reflect on my current position and how portfolio building is going.
And going be rough.
Portfolio is in red this year. Total current value $54,550 against the $58,119 we started the year with. We’ve clawed back about a third of the drawdown in the past weeks. One position is up 67%. One name lost 37% from cost and I’m still holding it.
The bright spot is passive portfolio, but thats not the subject of this substack.
The portfolio right now
Positions as of Friday’s close, sorted by performance since purchase:
I will go through each position laying out my current understanding.
Garrett Motion (GTX): the one that is working
Entered March 6 at $18.49. Friday close $30.98. Up 67.6% from cost. The position is now 15.5% of the book and the largest by dollar value behind cash.
The full thesis is in the GTX deep dive post.
At the time of the analysis market priced GTX extremely attractively with a small caveat. Main business is ICE and it’s going out of fashion.
I happened to disagree. And instead of testing my conviction market suddenly repriced the stock launching it high.
I think what every one caught on is REEV. Range-extender EVs are a separate category from PHEVs. In China the pure PHEV growth has stalled, but the REEV segment grew 181% in 2023, 124% in H1 2024, and is forecast at 17% CAGR through 2030. Every REEV needs a turbocharger that runs at fixed-RPM peak efficiency. That is exactly the engineering Garrett is good at. Li Auto, BYD, Geely, Leapmotor are all REEV players. Leapmotor is being built in Europe via a Stellantis partnership starting 2026, which is Garrett’s home turf.
Q4 2025 results were operationally strong, FCF held at $403M, they announced a $250M buyback for 2026 (about 4.4% of market cap). FY2025 results in February were a clean print. The stock walked from $18 to $32 over the spring on no real news, just the bear case quietly dying as more people realized ICE wasn’t going to fall off a cliff by 2030.
My model fair value is $41 vs current price of around $30. The position is 15.5% of the book carrying +67.6% of unrealized gain. Selling now to lock the gain is tempting but I’m holding.
One thing worth mentioning. Oaktree Capital holds 6.57% of their fund in this name, going back to the Garrett bankruptcy and emergence in 2020-2021. They’ve been gradually selling. Fairfax (Watsa) holds a smaller position and has also been reducing. Big-name distressed investors taking profits is not the same as conviction breaking, but it’s a flag worth tracking.
Dorman Products (DORM): boring as a feature
Entered April 3 at $100.19. Friday $116.16. Up 15.9% from cost. About 11% of the book.
The DORM post went up April 10 a week after purchase and after a bit of growth. I know, I know. I was a bit late.
What got me sold on DORM was the ROIIC profile. And I was working to update my whole portfolio understanding based on that.
The full methodology is in the ROIIC post, but for DORM specifically: 10-year ROIIC of 11.1%, reinvestment rate 76%, intrinsic value growth around 8.5% per year. The DCF said fair value $154 against a price of $100 at the time. Both the quality lens and the price lens agreed. That doesn’t happen often. When it does, you take the trade.
Q1 came in clean. Revenue +4%, EBIT margins held in the 16-17% range, FCF generation strong, guidance reaffirmed. Capital allocation continues to be disciplined. The thesis hasn’t been tested by adverse data. The position just compounds quietly. The way it’s supposed to work.
The hope..
As with GTX I am holding DORM. No need to change anything yet.
On Holding (ONON): the bull case validated, but I bought too high
Last years purchase at $44.90. Friday $37.26. Down 17.0% from cost. About 7% of the book.
The NKE + LULU + ONON positions now drag my portfolio like never before. And the drama is in.
I don’t think I’ve ever told the story how I got into ONON. The short version is - I’ve started seeing it everywhere. Not just on runners, but every second person I’ve met at the local mall had a pair.
Held it ever since and I disappointed me every time I’ve looked at it.
On March 3 they reported Q4 and missed on guidance. Stock cratered to the high $30s. The next few weeks were ugly.
This is the only position I’ve never had a model on.
I needed a way to justify keeping it. So I built two.
A base case with conservative APAC deceleration following the Nike China growth pattern, and a bull case where APAC stays hot and tariffs get absorbed.
Base case said fair value $21.02. Bull case said $39.24. The stock was at $35. Which model was right was a $20-per-share question.
The Q1 print on May 12 sort of answered it. Revenue +26.4% in constant currency against bull-case expectation of 26.9%. EMEA +25.6% (sixth straight quarter at 25%+). APAC +61.4%, now over 20% of the business with no visible deceleration. Adj EBITDA margin guide raised to 19.5-20%, implying EBIT in the 15.3-15.8% range, ahead of even the bull case for year one. Tariffs absorbed without lowering profitability, which neither model had built in.
The bull case is now the working fair value. The ONON is the next LULU in China framing turned out to be the right read, and I had it as a side bet rather than the main case.
Pure gamble if you ask me. Could have gone the other way.
I am still down 17%. The bull-case fair value is $39.24. Even if the bull case plays out exactly, the position only recovers to about $39 against my $44.90 cost. The Q1 print closed some of the gap but the math says I paid too much.
The current question is what to do with it. Hold and see if ONON improves? Or just sell it now as it reaches my valuation?
Guess I will have to decide sooner, rather than later. It is a growth company that might run out of steam. Especially given the NKE and LULU drama that is going in the background.
One observation that matters more than the position math: ONON Q1 was the cleanest validation of any model I’ve run. APAC was the decisive factor and the framing I used in the bull case (premium athletic share-shift, runway intact) turned out to be exactly right. I’ll see if it stands.
Nike (NKE): the position I have to talk about
Entered April 14 last year $56.13. Friday $41.88. Down 25.4% from cost. About 14% of the book.
This is the awkward one. Not because of the loss. Because the loss happened in a specific way that I was transparent about.
I wrote about my mistake in a separate piece: the NKE teardown.
The post lays out the five mistakes: instant-recovery margins from year one (no turnaround drag modeled), ΔNWC set to zero across all eight years, top-line growth peaking at 10% for three consecutive years instead of building bottom-up by segment (where it tops out at 6.6%), CapEx declining while revenue grows (internally inconsistent), and using FCFE instead of FCFF which made all the other errors easier to miss.
The old model wasn’t aggressive. It was just garbage. But it’s my first. Like the first love. Utterly undefensible.
That teardown post was the most uncomfortable thing I’ve written so far. I owned a stock based on a fair value that wasn’t real. Walking through five specific errors in your own work is a different exercise than critiquing someone else’s.
It hurts.
But it had to be public because I learned a lot in the past year.
So now I’m holding a stock the new model says is overvalued. Why? Three reasons, and none of them are good enough on their own.
The brand is real. North America wholesale was up 11% in Q3 FY26. Running grew 20%. The classics cleanup is in its late innings. Elliott Hill has a coherent strategy and he’s executing it. Tariffs are a structural ~120bp permanent headwind I’ve baked into the model, but the rest of the business is recovering.
The model could still be wrong on the upside. My new fair value of $38.33 caps the terminal EBIT margin at 12.5% to reflect tariffs as permanent. If the tariff regime eases, that cap is too low. The bull scenarios for normalized margins are in the $50-70 range, but I’d need a specific things to happen to upgrade. But I am not there yet.
Third is China. Greater China comps were -10% in Q3 FY26 and guided to -20% next quarter. The competitive displacement from Anta and Li Ning isn’t just macro, it’s structural. The bull-case argument that “China comes back” is the weakest link. But NKE is investing into new experience there. Lets see how this plays out.
Together those 3 are ways for upside to show. But then again..
10-year ROIIC essentially zero. Reinvestment dominated by debt-funded buybacks rather than productive capital. The brand is still the brand, but the capital allocation pattern of the last decade was extracting value from the business, not compounding it.
The ROIIC numbers don’t tell me to sell. They tell me to be honest about what I’m holding. I am holding a brand cyclically depressed, with structural headwinds, where management is shifting from financial engineering to operational rebuilding. That’s a fine thing to own at $25. Less obvious at $42.
I’m holding a position the model says is overvalued, or I treat it as an exit candidate. The next forced data point is Q4 FY26 results in late June. Probably the right time to sit down and decide.
Nomad Foods (NOMD): the macro you can’t escape
Entered late last year at $12.68. Friday $9.80. Down 22.7% from cost. About 7% of the book.
I refreshed this model today. Fair value went from $35.84 (previous model) to $27.13. A 24% cut on the same business.
The reasons are worth talking about because they apply to almost every European consumer name with European factories.
NOMD makes Birds Eye fish sticks, Iglo frozen peas, Findus everything. 18 manufacturing plants across Europe. World’s largest buyer of MSC-certified fish. They source vegetables from European growers, chicken from South America, and they freeze everything in factories that consume meaningful electricity and natural gas. The pre-2022 EBIT margin norm was about 12.7%. The 11-year average. The 6-year average. The number I had in my head when I bought the stock.
That margin was built on a regime that no longer exists. Cheap Russian gas piped into European factories. Cheap nitrogen fertilizer from Russia and Belarus flowing into pea and spinach grower contracts. Cheap-ish diesel for cold-chain logistics. The fertilizer-driven cost of agricultural inputs sat in the low single digits as a share of revenue. Everything was cheap.
That regime is gone. The 20-F discloses something the headlines don’t make explicit. NOMD’s “hedges,” the ones the CFO references on every earnings call, are physical fixed-price supply contracts that run one to twelve months. There is no financial commodity hedge book. The Note 29 disclosure says they hedge FX and interest rates only. When the 2026 fixed-price physical contracts roll into 2027, the company is fully exposed to spot energy and spot fertilizer prices.
The CFO was explicit on the Q1 call. Coverage extends through most of 2026. The incremental inflation starts flowing through the P&L in Q4 2026 and into fiscal 2027 if current conditions hold.
I spent the morning today on a ground-up cost decomposition of NOMD’s COGS from the 20-F Note 6, cross-checked against peer disclosures. Factory energy lands at 3-4% of revenue. Logistics fuel another 1-2%. Vegetable raw materials, where fertilizer is the embedded driver, around 5%. Poultry feed (corn and soy, also fertilizer-driven) around 4-5%. Total energy plus ag-commodity-linked inputs land at 14-19% of revenue, which is roughly 19-26% of COGS. A 30% sustained increase in those inputs is a 130-290 basis point hit to EBIT margin, partly offset by the €200M three-year cost program, leaving net margin pressure around 100-150 basis points.
The terminal margin in my updated model is 10.75%, anchored to FY2025 reality, not 12.7% from previous years. The 2027 sags to 9.0% as the contracts repricing into elevated spot. Fair value falls from $35.84 to $27.13.
So am I selling? Probably not. At least not yet.
At $9.80 the stock is below the 50% margin of safety line of $13.57. The market is pricing something materially worse than the new normal model assumes.
The bull trigger to watch is macro resolution. Sustained EU TTF gas back to €20-25/MWh ($200 per thousand cubic meters), Brent in the $50-60 range, fertilizer normalized, all three together. That implies Russia-Ukraine resolution with Nord Stream restart, and Mid-East de-escalation. If any of that happens, this model is too conservative and the fair value needs to come back up toward 12% terminal margin and FV in the $30-35 range.
But it’s a strong candidate for sell. May be I am missing something. No matter how much negative factors I add to my model, it’s still valued very conservatively by the market. What am I missing?
Lululemon (LULU): the deepest cut, and the most reframed
Entered in December 2025 at $190.08. Friday $119.14. Down 37.3% from cost. About 6% of the book. The worst drawdown by percent. The most chaotic narrative.
The stock has been a study in how many ways a position can hurt you in less than a year.
Q4 FY25 earnings on March 19 missed and the stock fell from ~$170 to the low $150s. Then drift.
Then on April 22 the company named Heidi O’Neill as CEO and the stock dropped 13.33% in a single session on the news. Then more drift, down to $119 by mid-May.
The CEO event is interesting. Heidi O’Neill came from Nike. Twenty-eight years at Nike. Most recently President of Consumer, Product and Brand. The market read this as “Nike-arc CEO joining a Nike-arc company.”
The activist investor Elliott had preferred Jane Nielsen from Ralph Lauren and didn’t get her. Chip Wilson, the founder with a 4.27% stake, launched a formal GOLD-card proxy contest nominating three alternative directors including Marc Maurer from On Holding.
The board responded by appointing Chip Bergh (ex-Levi Strauss CEO) and Esi Eggleston Bracey (ex-Unilever) as independent directors. The picture is board-vs-activist-vs-founder, three-way struggle.
Most of the analysts did not like O’Neill as a CEO.
The bear case for O’Neill is that she came from the late-Nike era of DTC oversaturation and lifestyle-over-technical product. That era hurt Nike’s margins. The argument runs: she’ll do the same thing at LULU.
The reframe I now hold is that LULU doesn’t need the same thing Nike did. Nike was a wholesale-heavy business trying to transition to DTC. The over-DTC playbook hurt them because they cut wholesale and lost shelf space. LULU is already 95%+ DTC. They don’t need to dismantle wholesale. They need to defend premium positioning against Alo Yoga and Vuori without resorting to markdowns. May be some innovation and quicker product development might help.
O’Neill’s actual playbook at Nike, before the strategic drift took over, was the opposite of margin compression. She grew the NCX (NikePlus) membership program at roughly 30% per year to over 100M members. She built the SNKRS app where gamified members spent five times more than guest shoppers. She launched the House of Innovation flagships in New York and Shanghai where visitors spent 30% more with the brand in subsequent months. That is retention plus monetization-per-customer playbook. That is exactly what LULU needs to defend its premium without discounting. Whether she imports that playbook or imports the late-Nike drift is the real question. The activist contest aside, the playbook fit is better than everybody gives her credit for.
I also sourced her compensation package details from the April 22 8-K. Base salary $1.4M, target bonus 200% of base, $10M annual equity awards split 60% performance-vesting RSUs and 40% stock options, one-time signing equity $7M, and a $2M cash retention bonus. Pay at risk is about 77% of total comp. The 60/40 RSU-to-options mix is bullish-skewed for a turnaround. The specific RSU performance metrics are not yet disclosed and will land in the FY26 proxy statement, which is the next document to read.
So today I refreshed the model again. I extended the EBIT margin trough by one year to reflect what I’m calling the lost year. O’Neill doesn’t take over until September 8, 2026 because of her Nike non-compete. First strategic articulation lands around December 2026. First operating year fully under her is FY2027. The previous model had margin recovering from 18.5% in FY26 to 19.5% in FY27 to 21% in FY28. The lost-year version holds 18.5% in FY27 and pushes everything right by one year.
New fair value $185.17. 30% margin of safety line $129.62. Current price $119.14 is $10.48 inside the buy zone. Not deep in the buy zone, but inside.
I’m holding the position.
Probably adding more if it continues to drift.
CASH: 40% bracing for the impact
214 shares of an iShares T-bill ETF. About $21,500. Yields whatever the front of the Treasury curve is paying, currently around 4.3% on an annualized basis.
S&P at ATH. Michael Burry recently made his statement about current market valuation. And I mostly agree.
I diligently track a lot of stocks that satisfy my criteria for investing. But finding good value is impossible. And even quality is right now - all trades at a premium.
Berkshire recently disclosed that they’ve tripled their position in Google at current prices. Which can be a bullish AI signal. Yet they still sit at a substantial pile of cash. And a few fellow substack investors have been discussing what could that mean. The consensus is bullish and I will write about that in the future. I think it is different with Google in particular. Google may be one of the few companies that in my opinion will get hit the least when AI cycle will inevitably come to a close.
So this cash will go either towards ideas that I find like DORM or GTX, or will serve as a dry powder if we get a major sell-off near the end of the year.
What I’m watching
The named events in the next 30 days are short.
GTX Investor Day this Wednesday. Largest dollar position, $250M buyback announced, multi-year framework reveal. Post-event model refresh window May 25-30.
LULU proxy battle is interesting piece of drama.
NOMD is a decision. Might finalize my first loss in this experiment.
ONON decision frame still open. Q1 print validated the bull case. Waiting for Q2 and then we will see.
NKE structural call is the longest open question in the book. Held against a model that says overvalued. Will probably need to dive deep into this one after next print.
What I have learned in eight weeks
Three things, none of them surprising in retrospect.
Sitting in losing positions is harder than the books make it sound. Especially when the model fair value keeps falling with each new data point. The discipline isn’t in being right. It’s in being honest about whether the thesis is still intact while the price moves against you. I am at peace with the answer on every position right now. That does not mean I’m right.
Old models from 2025 were materially overstated. NKE’s came down 53% on rebuild. LULU’s came down 32% on first refresh. NOMD’s came down 24% today. The shape of the errors was similar across positions. Once the framework changed, the fair values changed. Learning every day.
The most useful addition to the toolkit was ROIIC. It’s not a valuation tool. It’s a conviction tool. It tells me whether the business is actually good before the DCF tells me whether it’s cheap. Two of my positions look very different after running it.
The plan stays the same. Real money, real models, real positions disclosed with entry prices and sizes. No daily updates. No signals. When I have something worth your time, I publish.
Trust your chuyka. Don’t let FOMO eat you alive.
Not an investment advice. Think for yourself. Don’t trust online experts.











