Skip to content
Toffel Capital

Decision log

Every buy, add, trim and exit in the account, with the reasoning I recorded and when I recorded it.

107
Decisions
24
Rationale recorded at the time
23
Recorded later, or timing unconfirmed
60
Rationale not recorded
How entries are dated and labelled

“Recorded at the time” means the rationale first appears in the site's version history within 14 days of the trade. The date a rationale was first recorded is the date of the first commit in the site's version history that contains its wording. A rationale first recorded more than 14 days after the trade is labelled as recorded later.

Weights are shares of securities around each trade, where they could be reconstructed. Where only the month of a trade is known, the entry says so; no day is shown. Trades without a surviving rationale say so; none has been written after the fact.

Portfolio Strategy: why the portfolio holds individual positions instead of an index fund

Passive indexing is not treated here as a bad strategy. The S&P 500 is one of the most efficient low-effort ways to compound capital, and moving away from it was not a judgement that indexing is flawed.

The decision rested on two things. The first was evidence: the portfolio beat the market in the prior year, and the intent now is to test whether that excess return can be repeated by allocating directly to companies and sectors where conviction is strongest. A single year is not proof of skill, which is precisely why it is worth testing rather than assuming.

The second is deliberate: the portfolio is meant to force improvement as an investor. At twenty, learning how to analyse companies, size positions, manage volatility, react to earnings, understand concentration, and live through incorrect decisions carries value that a single index position cannot provide.

The trade-off is accepted explicitly. Continuing to outperform the S&P 500 would be a strong outcome. Underperforming by a few hundred basis points while developing substantially stronger investing skill is still considered worthwhile at this stage.

Decisions

107 decisions

  1. Amazon.com AMZN

    AddWeight change unavailable

    Added to own more of AWS. Compute is Amazon's highest-margin business, and leadership keeps reinvesting in it through the AI buildout. I'm wrong if AWS growth slows while capex keeps climbing.

    Rationale recorded at the time; first recorded Oct 18, 2026Thesis: Amazon.comLink to this entry: Amazon.com, Oct 6, 2026

  2. Meta Platforms META

    AddWeight change unavailable

    Added after Muse and the Muse Wonder models launched. Meta now ships frontier models to 3.6 billion daily users, and I think the market still prices it as an ad business. I'm wrong if Muse shows no paid subscriber or transaction revenue within two quarters.

    Rationale recorded at the time; first recorded Oct 18, 2026Thesis: Meta PlatformsLink to this entry: Meta Platforms, Oct 6, 2026

  3. SpaceX SPCX

    AddWeight change unavailable

    Added for growth beyond launch: compute, space infrastructure, and shipping. All three are early, so I kept the position under 5%. I'm wrong if Starship delays leave launch as the only real revenue.

    Rationale recorded at the time; first recorded Oct 18, 2026Thesis: SpaceXLink to this entry: SpaceX, Oct 6, 2026

  4. Rocket Lab RKLB

    ExitWeight 3.2% → 0%

    Sold together with AST SpaceMobile, the same day, to fund SpaceX. The two traded on one driver, sentiment toward pre-profit space companies, so I consolidated that exposure into one position.

    Rationale recorded at the time; first recorded Sep 27, 2026Thesis: Rocket LabLink to this entry: Rocket Lab, Sep 24, 2026

  5. SpaceX SPCX

    InitiateWeight 0% → 3.5%

    Sold Rocket Lab and AST SpaceMobile and put most of the proceeds into SpaceX. My own post-mortem showed the two traded on one driver, sentiment toward pre-profit space companies, so I consolidated that exposure into the company that leads the industry in both launch and satellite broadband. I did not make the trade because SpaceX is cheap. I made it to hold one space position instead of two that moved together.

    Rationale recorded at the time; first recorded Sep 27, 2026Thesis: SpaceXLink to this entry: SpaceX, Sep 24, 2026

  6. Oscar Health OSCR

    ExitWeight change unavailable

    Exited because Oscar's revenue depends on ACA subsidies: the enhanced credits expired at the end of 2025, insurers filed mostly double-digit increases for 2027, and the underlying cost trend is running near 10%. Sale date inferred to between Sep 21 and 23.

    Rationale recorded at the time; first recorded Sep 27, 2026Thesis: Oscar HealthLink to this entry: Oscar Health, Sep 22, 2026

  7. Vistra VST

    InitiateWeight 0% → 1.5%

    Bought partly on my read that federal and state policy currently favors new generation for data centers, and because power exposure holds up better than compute in a pause in AI spending. The weakness is timing: most of the long-term contracts start after my two-year window, so Vistra still sells much of its output at market prices until then.

    Rationale recorded later, after the trade; first recorded Sep 27, 2026Thesis: VistraLink to this entry: Vistra, Sep 1, 2026

  8. Amazon.com AMZN

    InitiateWeight 0% → 10.0%

    Opened on weakness. The position is held for AWS: cloud and compute demand should keep compounding, and AWS is one of the largest high-quality infrastructure businesses in the world. Amazon's ecommerce and logistics scale sit underneath that, with robotics as optionality rather than a reason to own it.

    Rationale recorded at the time; first recorded Aug 20, 2026Thesis: Amazon.comLink to this entry: Amazon.com, Aug 17, 2026

  9. Mastercard MA

    InitiateWeight 0% → 5.0%

    Opened to move exposure away from the AI and compute theme. The attraction is network economics, margins, and the ability to compound alongside rising payment volume without taking bank-style credit risk.

    Rationale recorded at the time; first recorded Aug 20, 2026Thesis: MastercardLink to this entry: Mastercard, Aug 17, 2026

  10. Advanced Micro Devices AMD

    TrimWeight 11.5% → 10.6%

    Trimmed AMD in the account on May 1, 2026 after a significant run to bring the position back toward my 10% max position-size discipline. This was not a thesis reversal. The core AMD thesis remains intact, but the trim reflected concentration control, risk management, and a preference to preserve gains after the position had outgrown its intended role.

    Rationale recorded later, after the trade; first recorded Jul 28, 2026Thesis: Advanced Micro DevicesLink to this entry: Advanced Micro Devices, May 1, 2026

  11. IREN Limited IREN

    ExitWeight change unavailable

    Exited after the AI/cloud pivot became a less attractive risk/reward at the new price. The position had already captured a large part of the original upside, so I preferred to recycle gains into higher-conviction opportunities.

    Rationale recorded later, after the trade; first recorded May 16, 2026Thesis: IREN LimitedLink to this entry: IREN Limited, Apr 30, 2026

  12. Schwab U.S. Dividend Equity ETF SCHD

    ExitWeight change unavailable

    Fully exited SCHD from the account on May 1, 2026. SCHD remains a quality dividend ETF, but it no longer fit the intended role of this account. The account is being used for long-term compounding, broad-market exposure, durable growth, and select high-conviction themes, while SCHD's dividend/value profile created lower-conviction exposure that did not align with that objective.

    Rationale recorded later, after the trade; first recorded Jul 28, 2026Thesis: Schwab U.S. Dividend Equity ETFLink to this entry: Schwab U.S. Dividend Equity ETF, Apr 30, 2026

  13. · exact date not recorded

    Vanguard S&P 500 ETF VOO

    AddWeight change unavailable

    An in-kind transfer from an external Vanguard account established the initial VOO position. Later purchases were made directly in this account. Exact transfer date not preserved in source records. Placed here at the account's earliest known activity as an approximate marker.

    Timing of the rationale relative to the trade not confirmed; first recorded Aug 20, 2026Thesis: Vanguard S&P 500 ETFLink to this entry: Vanguard S&P 500 ETF, Jun 2023

Administrative records (2)

Ledger adjustments such as stock splits. They change records, not positions, and are not counted as decisions.

  • · exact date not recordedServiceNow NOWHistorical NOW buy lots include post-split fills; the position records were adjusted for the split. No change to the position or thesis. This is a bookkeeping adjustment, not a trade.
  • · exact date not recordedCrowdStrike CRWDCRWD underwent a stock split; the historical position records were adjusted for the split. No change to the position or thesis. This is a bookkeeping adjustment, not a trade.