§ Weekly Review

Worst day in 14 months. Still building.

The Nasdaq fell 4.18% on Friday — the worst single session in over a year. I've been watching all-time highs for weeks and waiting for this exact pullback. I still didn't trade. Here's what I built instead, and why that matters more.

Jun 06, 20267 min read-2.95% wk

The Nasdaq fell 4.18% on Friday. Worst single session in 14 months. The S&P 500 dropped 2.64%. The trigger was a one-two: a stronger-than-expected jobs report sent Treasury yields climbing to 4.54%, then a semiconductor rout started when Broadcom disappointed on AI chip guidance mid-week — Marvell fell 16%, Micron 13%, most of the chip sector gave back a month of gains in a day.

For weeks I've been watching all-time highs and writing about why I wasn't buying. "The shoe is going to drop" is a thought I've had roughly every Saturday morning since March. Friday, the shoe dropped.

I still didn't buy. And this week I spent almost no time thinking about the market. I was building.

Why no trade

My process has two gates before any money moves. First: does a name pass the quality and value screen? Second: does it have a technical entry signal — a confirmed chart setup, not just a price that's lower than yesterday? Both gates have to be open before I act.

Friday's selloff moved prices down. It didn't open the second gate on anything I'm watching. A cheaper version of a name isn't the same as an entry. The screener will run again this week on the new prices. If the setups are there, I'll move. If they're not — and in a market still trading near decade-high valuations despite one bad Friday — I'll hold.

There's a version of this week where I override the signal on the grounds that a 4% down day is "close enough" to the entry I've been watching for. That's the version where I add risk at exactly the wrong moment and build a story to justify it afterward. The process exists precisely to prevent that version.

How the portfolio did

The Blue Portfolio finished the week down −2.95%. The Friday selloff accounts for most of it — the book was roughly flat through Thursday, then gave back the prior week's gains in a single session.

The week's biggest loser was PLTR (Palantir, the data analytics company), down −13.42%. The position has been flagged on the Beneish manipulation metric for weeks — a known false positive for high-growth companies with fast revenue acceleration — but the market didn't care about false positives on Friday. It sold the sector. The week's bright spot was ADP (Automatic Data Processing), up +4.56% — payroll and HR services being treated as defensive in a jobs-heavy macro environment.

The portfolio's defensive names held or gained. The growth names gave back. That's what a rising-yield selloff looks like from the inside.

What I built instead

Last week I shipped two pieces of the platform underneath these decisions: a properly working screener that runs quality and value gates reliably across every candidate I track, and a first version of the technical analysis council — the layer that tells me when to act on a screener candidate, not just whether it clears the quality bar.

This week was the plumbing. Four things shipped:

Strategy signal intake. When one of my TradingView strategies fires an alert on a screener name, that signal now routes into a dashboard I can act on rather than a notification that disappears. The screener finds the name. The strategy confirms the entry. Now there's a channel connecting them.

Trade kanban. A board that tracks every candidate from screener hit, through signal, through entry, through hold, through exit. No more decisions made from memory or a stale note somewhere. Each candidate has a row, each row has a status.

Holdings infrastructure. An updated holdings table and individual stock pages for every position in the book. This is the piece I'm most excited about. Each page synthesizes the council's assessment of that holding — pulling together the fundamental score, the moat classification, and the AI-generated assessment of whether the name still belongs in the book. The moat definition isn't a tag I applied manually; it's the result of an agent that reads the company's position, competitive dynamics, and pricing power, then writes a structured verdict. Same with the assessment: another agent scores the name against the council's criteria and produces a graded recommendation. The goal is a page where I can open any holding and immediately know where it stands — not from memory, not from a spreadsheet, but from a reasoned analysis that runs every week.

This is coming to members. I'm aiming to have it ready in the next week or two, depending on how far I can stretch my Claude Code tokens. When it ships, you'll be able to pull up any name in the Blue Portfolio and see the same weekly grading I'm running — the moat, the fundamentals, the recommendation — all in one place. That's the version of the dashboard I want members to have before I start making moves again.

The weekly assessment

Every Saturday, before I look at a single chart, a script runs across every holding in the book. It pulls fundamental data on roughly 35 names and scores each one against three independent checks.

The moat read: does this company still have a durable competitive advantage, or has something shifted? The fundamental scan: Piotroski F-Score, Altman Z-Score, Beneish — the signals that catch deterioration before it shows up in the price. The buy/sell verdict: given where the name sits on quality and momentum today, does it still belong in the book?

This week's run flagged BCE.TO again. Altman Z at 0.8, well into distress territory. The telecom restructuring hasn't stabilised the balance sheet. That reading has been consistent for months; it's the one name in the book I watch with genuine concern rather than routine curiosity.

NVDA and PLTR both flagged on the manipulation metric, as they do every week. Both confirmed false positives — F-Scores of 7 and 8, Altman Z scores that don't suggest any fundamental problem. High-growth companies with fast revenue acceleration trigger that metric for the same reason they're worth owning.

A handful of large-cap names showed accelerating analyst estimate cuts. None reached the level that changes a hold decision, but the direction matters. That's what the weekly run is for: catching direction before the market does.

What's next

With this infrastructure in place, next week is the first proper portfolio rebalance in months.

I'll walk into it with a scored assessment of every holding, a functioning signal channel from the TradingView strategies, and a board to track whatever moves I make. The screener has already surfaced names worth watching. The signals will tell me which of those names are ready.

The Friday selloff moved the numbers. Whether it moved them far enough to open an entry — that's what the screener will say on Saturday morning.

One thing I'd do differently

Build the signal intake earlier. I spent this week wiring the infrastructure during the same window when it first mattered. That worked out, but it was close. The next real entry window won't be a dress rehearsal.

If you're holding into this

Friday came from two specific things: a jobs report and a chip-sector guidance miss. Neither one changes the business behind a quality name bought at a reasonable price. The S&P is still trading at elevated valuations. The technical picture changed for a day. The fundamental picture didn't.

If you've been running a process and Friday tempted you to override it — that's the diagnostic worth sitting with, not the price action itself.

— Mark