2025 Portfolio Review
I'm writing this half a month early so I can enjoy the holiday, all performance is through Dec 15.
This is the best year I've had investing from a percentage return perspective at +81.85%. Yet as I write this the $GDXJ is +163.37% and has smoked me. Given last year I had -6.57% performance while the $GDXJ had something like +32% it's a double smoking. Yet, I think investing in the $GDXJ is long term a good way to go broke.

Gold is +65%, Copper +34%, Lithium +29%, Silver +130%, S&P500 +14%, Russell 2000 +12%. In this environment it's not hard to accidently make money. Still, if the market returns on average 8% a year making 8 years of returns in a single year feels pretty nice.
This is probably also the most activity I've had in a year, I was kind of shocked how many names have come through my portfolio. Volatility was a tailwind. Something that previously I'd wait a year or two to play out might move as much as I expected in a week or two instead. A lot of my most speculative investments had the biggest percentage gains.
I'll do a separate post with some more depth on what positions I'm carrying into 2026 and what thematics I'm looking at. I think the value in the market now is less obvious than it was in 2025.
Royalties
| Ticker | Name | % gain on position | % impact on portfolio |
|---|---|---|---|
| ELE.V | Elemental | 59.5% | 10.6% |
| EMX | EMX Royalty | 28.8+78.9% | 4.1% |
| OR | Osisko Royalties | 34.8% | 1.6% |
| ECOR.L | Ecora | 66.5% | 1.6% |
| MTA | Metalla | 44.0% | 1.1% |
| GROY | Gold Royalty | 16.3% | 0.5% |
| FNV | Franco Nevada | 21.3% | 0.9% |
| MLZAM.PA | ZCCM-IH | -0.2% | 0.0% |
| LIRC.TO | Lithium Royalty | -3.2%-69% | 2.8% |
| SAND | Sandstorm | 28.8% | 1.0% |
| RGLD | Royal Gold | 26.8% | 1.0% |
| DRR | Deterra | 6.0% | 0.5% |
| VNOM | Viper Energy | 9.7% | 0.5% |
| --- | |||
| 26.2% |
Every royalty position if I had bought sooner, sized larger, and never sold I would have made more money. Instead I just did OK by being active and limiting my risk. One of the themes going in to the year was royalty acquisition targets but I was honestly all over the place.
Elemental was one of my high conviction pound the table investments and it paid off nicely. Some of the returns are muddled between this and EMX as I traded around the merger. Taken together the pair was a huge win for me.
I sold $EMX in July. Then after the merger announcement there was an arb difference so I sold my $ELE.V and bought $EMX and sold it less than a month later.
Osisko was a catchup trade as it was undervalued relative to peers, I then sold in July. With all the precious royalties that I sold continuing to hold would have made more money, but I think this was a fine outcome.
Considering I only held Metalla for 4 months I think it worked pretty well. It's up a lot from where I sold.
Gold Royalty, not to be confused with Royal Gold, is not my favorite royalty company. I held them less than a month.
With Franco I paid up for quality and am happy to hold it going in to 2026.
Ecora is a mostly non-precious royalty company that has made a bunch of mistakes a long the way, but I bought at such a low price they just needed to stop lighting money on fire and it was going to work out. The royalty model is beautiful.
I finally got tired of being a minority investor alongside a government vehicle because I'm an idiot. I sold at $1.25 in March and it now trades at $2.30.
Lithium Royalty has been a ride. It started the year at $5.80 and prompty sank like a rock as a spot price got depresssingly low. I was adding in Feb and April at a 4 handle. I tendered a few shares in May at $5.70. The shares I still hold are trading at $7.38. I like this royalty company but am not thrilled about their biggest source of revenue Sigma temporarily shutting their mine due to plain incompetence.
Sandstorm I exited in February and March.
Royal Gold is a new position in November setting up for next year.
With oil and gas I pay less attention so owning VNOM is an easy way to get some exposure to the commodity.
Project Generators
| Ticker | Name | % gain on position | % impact on portfolio |
|---|---|---|---|
| KLD.V | Kenorland | 83.3% | 7.0% |
| LMS.V | Latin Metals | -1.4% | 0.0% |
I didn't do as many investments in project generators this year. Hope to increase the allocation in 2026.
While I've trimmed and added around a core position Kenorland is largely a long term investment for me. Great team and great strategy.
Latin Metals was a newly established position in November & December as one of their partners gave back an optioned property.
Explorers/Developers
| Ticker | Name | % gain on position | % impact on portfolio |
|---|---|---|---|
| QTWO.V | Q2 Metals | 144.5% | 13.7% |
| PM.CA / ANDC.V | Andina copper | 227.7% | 7.0% |
| AE.V | American Eagle | -31% | -2.3% |
| TDG.V | TDG Gold | 61.9% | 1.7% |
| PPP.V | Prospector Metals | 34.7% | 1.0% |
| MERG.V | Metal Energy Corp | 40.8% | 1.4% |
| MAI.V | Minera Alamos | 14-41% | 1.9% |
| KRY.V | Koryx Copper | 33-52% | 2.6% |
| ARIC.V | Awale | 33.2% | 1.4% |
| KFR.V | Kingfisher | 30%+- | 1.1% |
| BIG.V | Hercules Metals | -3.5% | -0.2% |
| MLX.AX | Metals-X | 6.5% | 0.1% |
| --- | |||
| 27.8% |
This category is full of sex and violence with huge returns and losses.
Q2 I'm just holding until they sell or build the mine. It's a globally significant project.
Andina copper has gone way up while waiting for drilling to happen. There's some value in moving up an exchange and your jurisdiction becoming seen as less toxic.
American Eagle I took most of that loss in the first to weeks of the year in mid-January on disappointing results. I bought back in late July at basically the same price I exited with some positive developments on the project.
TDG Gold I thought they had a good chance to hit drilling an extension of their neighbors ore body, and I sold when it came in deeper and not as good as expected. Considering I held less than 2 weeks I just wish I'd sized it up more.
Prospector I bought to set up next year's exploration season.
Metals Energy is a project that got vended into an existing shell. I was going to invest after they raised, but then they got Centera to come in for 9.9% and I invested a tiny starter position on the back of that, and then they got Teck to come in. That's way too much juice for a junior that hasn't drilled a single hole but I'm here for it.
I bought Minera Alamos when it looked depressingly cheap in early to mid August and sold in mid October when I thought it had run too much for basically no positive business development. Then they announced the acquisition of the Pan mine and I actually liked it and started a new position.
Koryx copper is developing a pretty average project but has a great team behind it. I probably sold a bit early but was looking to take some risk off my portfolio at the time.
Kingfisher is an interesting explorer. I bought in June and July as drilling got underway and then the market liked the drilling results in early September and I hated them. I ended up liking the potential for next season of their last hole and added again at much lower prices.
Hercules early drill results underperformed expctations, but as of this writing I'm still optimistic on the project.
I held Metals-X for less than 2 hours.
Pre Production Sweet Spot
| Ticker | Name | % gain on position | % impact on portfolio |
|---|---|---|---|
| RIO.TO | Rio2 | 34%-284% | 14.5% |
| ERD.TO | Erdene | 112% | 6.2% |
| MAU.V | Montage | 69-325% | 5.4% |
| RBX.V | Robex | 40.8% | 0.9% |
| FOM.TO | Foran | -28.7% | -0.2% |
| --- | |||
| 26.8% |
The real lesson for the pre-production sweet spot investments is that I should consider sizing them a little larger.
Rio2 was one of my biggest winners for the year. It started the year at $0.64. I added at $1.50. I trimmed some at $2.01 when they announcement they were investing in another company, and I exited at $2.38 and $2.46 when they bought a copper mine.
Erdene was the classic investment for this class with no distrations.
Robex is getting close to first pour and I'll be ready to exit.
Selling half my Montage stake in April was one of the most obvious mistakes. Don't sell pre-production sweet spot companies until first pour. Really don't sell if it's a Lundin company.
Foran was a miss and I was happy to get out for a loss even though the stock later recovered. Exiting was the right choice.
Two Sided Network Marketplaces
| Ticker | Name | % gain on position | % impact on portfolio |
|---|---|---|---|
| BMBL | Bumble | -27.1% | -2.9% |
| YELP | Yelp | -9.0% | -0.8% |
| PYPL | Paypal | -6.0% | -0.7% |
| RELY | Remitly | 1.8% | 0.1% |
| CHL.AX | Camplify | -52.1% | -1.4% |
| --- | |||
| -5.7% |
The market still give rich multiples to hyper growth companies, but isn't giving much love to high margin marketplace companies whose growth have slowed (or in the case of Bumble turned negative). I expect I'll own even more of these in 2026 than I do now, while they were a drag on this year's peformance they seem set up nicely for the future.
Camplify is a residual position that has done so poorly it has become irrelevant to my portfolio. I've left it there as a reminder to do a post-mortem and evaluate if there's potential for a turnaround. Thankfully I've avoided the value trap mistake of adding on the way down.
Producer Expanding Production
| Ticker | Name | % gain on position | % impact on portfolio |
|---|---|---|---|
| HCC | Warrior Met Coal | 88.3% | 4.2% |
| TGB | Taseko Mines | 38.2% | 1.3% |
| LAR | Lithium Argentina | 9.6% | 0.4% |
| --- | |||
| 5.9% |
I have owned Warrior for years and still own Warrior going in to 2026 as well. I may sell after Blue Creek is in full production, but if the market doesn't value it I could be happy to just hold forever and cash dividend checks.
Taseko mines I bought for their Florence project brining new US based copper intot he market, but I sold when I got nervous about that outcome and they got a settlement on an unrelated project. I sold at $3.03 and today it closed at $5.41, so I clearly sold too soon.
Lithium Argentina I bought and sold twice for small gains. This was in fact just stupid as I liked the company long term. Since I sold at $2.27 it is up to $4.80 and I should have held the entire time.
Miners
| Ticker | Name | % gain on position | % impact on portfolio |
|---|---|---|---|
| VALE | Vale | 8.1% | 0.2% |
| AFM.V | Alphamin | ??? | 0.1% |
| JMS.AX | Jupiter Mines | 6.8% | 0.3% |
| --- | |||
| 0.6% |
VALE was the end of a longer hold closed out in early Feb. The 2025 portion of the gain was small and the stock did well after I sold, probably because it's a good company trading at a cheap multiple.
Alphamin I bought and sold several times, mostly for a profit. However that profit was mostly wiped out by selling during the invasion of the DRC when the mine shut down.
Jupiter Mines was a leftover position from 2024 I exited in February. It was a good lesson in Manganese as a commodity where there is tons of low grade stockpiles that will crush any spot price rally.
Macro ETFs
| Ticker | Name | % gain on position | % impact on portfolio |
|---|---|---|---|
| IEFA | Europe ETF | 22.9% | 1.2% |
| MYLD | Small cap yield ETF | -22.2% | -1.1% |
| FYLD | Foreign yield ETF | 6.2% | 0.6% |
| EWW | Mexico ETF | 8.4% | 0.4% |
| --- | |||
| 1.1% |
MYLD I bought as I thought large cap were overvalued relative to small cap. I sold when I thought things looked bad for small business in the US. It went on to be +42% after I sold, proving I'm a bad macro forcaster.
I evened out my small cap call by also calling Europe being undervalued relative to the US. So I'm now a neutral macro forcaster. The foreign shareholder yield was also pretty neutral, keeping my macro forcasting record pretty neutral. I closed out Mexico in March for a small gain and it's gone on to be +38.8% since I sold so I maintain my macro forcasting skills are equivalent to a monkey throwing darts.
Random Trades
| Ticker | Name | % gain on position | % impact on portfolio |
|---|---|---|---|
| SGML | Sigma Lithium | 100%? | 3.0% |
| AER | Aercap | 41.7% | 2.6% |
| SIVR | Physical Silver ETF | 32.4% | 0.9% |
| UNH | United Healthcare | 15.3% | 0.2% |
| ATLX puts | Atlas lithium puts | -100% | -0.1% |
| QRC.TO | Queens Road Capital | 4.5% | 0.2% |
I held United Healthcare for 4 calendar days after the announcement of a DOJ criminal investigatio of Medicaire fraud. It probably would have made another 10% gain if I'd held it through the end of the year, but I'm not in the business of holding health insurance companies.
I like to buy physical silver ETFs when the gold:silver ratio hits 100. While I made a quick 32.4% I could have made another 50% on top of that if I'd held towards the end of the year. I think my process is correct on this one even if the outcome didn't capture the full move.
My record on trading options is abysmal. As far as annual reminders of that fact this was a cheap lesson.
I think I completely exited Sigma like 7 times during the year. The gain on the position is hard to calculate as they were different sized positions each time, but overall it was a very profitable set of trades for me. It ends the year much higher despite negative business developments as it largely trades as beta to lithium spot prices and not on actual operating cashflow. Currently their mine is shut down and they are in danger of running out of cash, but lithium prices are up so their stock has skyrocketed.
Aercap is less compelling at these valuations, the business isn't worth 41.7% more than it was at the start of the year, but it's a long term position in one of the best run capital allocators out there so I'm not in a rush to sell it.
The Queens Road Capital position is only a few days old. They invest in convertible debt and choose good projects. Trading at a discount to NAV