Last updated: August 2026. Written by Tim du Toit, 39 years investing since 1987, founder of Quant Investing.
Every Monday morning a briefing is waiting for me. It lists the 5 biggest gainers and the 5 biggest losers across my watchlist over the past month, with a likely reason sitting next to each one. I did not run it. Claude did, at 09:00, on its own.
Below is the whole setup. The prompt, what comes back, how to schedule it, and the one habit that makes the review worth the 2 minutes. Everything here is general information from the screener and my own research process, not personalised advice.
Weekly portfolio movers review : definition:
A short, repeatable check of every holding on a watchlist, ranked by price move over a chosen window, with a likely cause attached to each of the biggest movers. Run through the Quant Investing Model Context Protocol (MCP) connector, Claude reads the watchlist straight from the screener, computes each move and searches for a dated catalyst behind it. Output is a gainers table, a losers table and a short judgement on which moves are worth looking into further.
- One prompt covers every holding on the watchlist. No spreadsheet, no sorting columns, no copying prices.
- The Quant Investing connector exposes 32 tools to Claude. This review uses 3 of them.
- In the sample month below, 4 of the 10 biggest movers had a dated catalyst, and only 2 of those changed how a holding looks. 8 of the 10 needed no response.
- The daily limit is 500 tool calls per key. A weekly review of a 30-name watchlist uses a handful.
- Set up once, it runs every Monday at 09:00 without being asked.
What is a weekly portfolio movers review?
It answers one question. Of everything I own or watch, what moved, and does the move mean anything?
Doing it by hand is tedious. Open the screener, sort by 1-month price index, write down the top and bottom names, then search each one for news. On a 30-name list that is most of an hour, which is why almost nobody does it every week.
The connector collapses that into a single instruction. Claude calls get_watchlists to find the list by name, calls get_watchlist_items for the price index columns, computes each move in the stock's own trading currency, ranks them, then searches the web for a dated catalyst behind each of the 10 biggest.
Every line comes back with a reason attached to it, which is the part that eats the hour when you do it by hand.
So what: the value sits in the reason column. That is the piece a screener alone cannot give you.
What does the output look like?
The review below runs on an illustrative sample watchlist rather than my own holdings, and the company names are replaced with descriptions. The shape of the output is the point here.
In Claude
You
Produce a weekly portfolio movers briefing for my Quant Investing watchlist "Core Ideas". Five biggest gainers, five biggest losers over the past month, and the likely reason for each.
Claude
Called get_watchlists, then get_watchlist_items for 31 open positions, then searched for a catalyst behind each of the 10 biggest movers. All moves are in each stock's local trading currency, with no foreign exchange (FX) conversion, so a strong local move can read differently in euro.
Top 5 gainers, past 1 month
| Holding | Exchange | 1M | Likely reason |
|---|---|---|---|
| German medical technology maker | XTRA, EUR | +35.7% | Real catalyst. Half-year results: earnings before interest and tax (EBIT) tripled year-on-year, full-year margin guidance raised, shares hit a 52-week high. |
| Japanese technology distributor | TSE, JPY | +21.7% | No dated catalyst. Momentum re-rating plus a 4.7% dividend yield ahead of results. |
| United Kingdom value retailer | LSE, GBP | +19.5% | Mostly technical. Rebound off multi-month lows. Underlying like-for-like sales still negative year-on-year. |
| Japanese auto-parts supplier | TSE, JPY | +19.2% | Real catalyst. Quarterly beat on sales, net income and earnings per share (EPS) against the prior year. Stock rose 11% in the release week. |
| Greek discount retailer | ATSE, EUR | +18.5% | Real catalyst. Sales momentum year-on-year, and the move held up through the ex-dividend date. |
Top 5 losers, past 1 month
| Holding | Exchange | 1M | Likely reason |
|---|---|---|---|
| Japanese small-cap logistics | TSE, JPY | -4.9% | No catalyst. Profit taking and thin trading ahead of results. |
| United States tobacco major | NYSE, USD | -4.5% | Real catalyst. Quarterly EPS below the prior year, cigarette volumes down year-on-year, guidance midpoint below consensus. |
| Japanese auto-mirror maker | TSE, JPY | -4.0% | No catalyst. Sector softness and thin trading. |
| United States midstream energy | NYSE, USD | -3.9% | Noise. It fell on a beat: record earnings before interest, tax, depreciation and amortisation (EBITDA), raised outlook, dividend increased year-on-year. Classic sell the news. |
| Japanese pharmaceutical ingredients holding | TSE, JPY | -3.2% | Mild real signal. Softer EPS year-on-year. |
One month of price moves on an illustrative sample list. Not a track record, and no return claim is being made. Prices fluctuate and capital can be lost.
So what: the losers table matters more than the gainers table. Four of the five losers moved less than 5%, which on a monthly view is close to nothing. Seeing that in black and white is what stops you acting on it.
Why did 8 of these 10 moves need no response?
Count the reason column. Four of the 10 moves have a dated fundamental cause: the tripled EBIT with raised guidance, the quarterly beat, the retailer's sales strength, and the tobacco company's EPS miss with falling volumes.
Of those four, two changed how the holding looks.
A company that triples EBIT and raises guidance has changed since you bought it. An EPS miss with falling volumes and light guidance is a faster decline than the one you may have thought. The other two are good quarters in businesses already doing what they were bought to do, so nothing needed deciding.
That leaves 8 of the 10 that called for no response at all: momentum, mean reversion off lows, thin small-cap trading, and one company falling on genuinely good numbers.
The midstream holding is the one to look at more carefully. It posted record EBITDA and raised its outlook, and its dividend went up year-on-year. The shares fell 3.9%. Nothing deteriorated. The market simply had a better result priced in already.
The reason column turns most red numbers into just a movement because of the weather.
What prompt do I use?
Copy this, replace the watchlist name, and paste it into Claude with the Quant Investing connector switched on. It is deliberately explicit about the steps, because a vague prompt gets a vague briefing.
Produce a weekly "portfolio movers" briefing for my Quant Investing watchlist called "[WATCHLIST_NAME]". Steps: 1. Use the Quant Investing MCP. Call get_watchlists and find the watchlist named "[WATCHLIST_NAME]" (match by name). 2. Call get_watchlist_items for it with columns ["Close","PriceIndex_1m","PriceIndex_3m","PriceIndex_6m", "PriceIndex_12m","adj_slope"]. Do NOT include closed items. 3. Ignore any row with no name or no PriceIndex_1m (stale entries for delisted securities). Only rank genuine, enriched holdings. 4. Compute each holding's 1-month move as (PriceIndex_1m - 1) * 100, in the stock's LOCAL trading currency (no FX conversion, and state this caveat). 5. Identify the 5 biggest gainers and the 5 biggest losers over the past month. 6. For each of those 10, search the web for the most likely reason for the move (earnings, guidance, dividend or ex-dividend, upgrades, sector news). If there is no dated catalyst, say so and give the probable driver (momentum, thin trading, ex-dividend mechanics). Cite sources as links. 7. Deliver a gainers table and a losers table (holding, exchange, 1-month %, reason), then a short "80/20" takeaway naming the ~20% of moves with real fundamental signal against the ~80% that is noise. Formatting: always use the "%" sign. Be concise and direct. This is general information from the screener, not personalised advice, so do not tell me what to buy, sell, or how much to hold.
Step 3 drops stale rows, which otherwise sit at the top of the losers table as phantom holdings from delisted securities. Step 4 states the currency caveat, because a Japanese holding up 21.7% in yen is a different number to a euro investor.
Point Claude at your own watchlist
The Model Context Protocol connector is included with the full Best Deal subscription, which carries the screener covering 22,000+ companies, the Quant Value newsletter and the Shareholder Yield Letter. Claude reads your saved watchlists, saved screens and both newsletter archives through the same connection, using 32 tools. Setup takes about 5 minutes.
See what the Best Deal subscription includes
100% money-back guarantee for the first 30 days.
How do I make it run by itself every Monday?
This is the part that turned a good idea into a habit. Claude can run a saved prompt on a schedule, so I asked it to.
Run this every Monday at 9am and give me the finished briefing.
That is the whole instruction. Claude saves the prompt as a scheduled task, runs it at 09:00 every Monday, calls the screener, does the searching, and the briefing is sitting there when I open the laptop. I read it with coffee. Most Mondays it takes 2 minutes, because most Mondays the answer is that nothing needs to be done.
Scheduled tasks are a Claude feature and availability depends on your Claude plan.
What does the monthly version add?
Once a month I run a longer version. Same watchlist, more columns, and a stop-loss check the weekly review does not have time for.
Produce a monthly portfolio review for my Quant Investing watchlist
"[WATCHLIST_NAME]" using the Quant Investing MCP.
Data:
1. get_watchlists to find "[WATCHLIST_NAME]" by name, then
get_watchlist_items (exclude closed) with columns:
["Close","PriceIndex_1m","PriceIndex_3m","PriceIndex_6m",
"PriceIndex_12m","adj_slope","adj_slope_LT","greenblatt_rank",
"f_score","roic","shareholder_yield","dividend_yield","z_score"].
(Run list_columns first to confirm the names.)
2. Drop any row with no name or no PriceIndex_1m.
Analysis:
3. Compute 1M / 3M / 6M / 12M moves = (PriceIndex_Nm - 1) * 100, in
LOCAL currency, and state the no-FX caveat.
4. Flag momentum divergence: names where the short-term (1M/3M) and
long-term (12M) trends disagree.
5. Rank the 5 biggest 1-month gainers and losers, and search for a
dated catalyst for each. If there is none, name the probable driver
and label it noise.
6. Quality check: flag holdings where fundamentals are weakening
(falling f_score, low roic, weak z_score) or strengthening, and
whether the price is confirming or contradicting.
Drawdown-from-high check (read the two limits in step 9 first):
7. For every holding, call get_price_history and find the highest
CLOSE over the past 12 months and over the past 6 months. For each
holding report: highest close in each window and the date it was
set, the current close, the fall from each high as a %, and whether
that fall is past 20%.
8. Dividend caution. The price series is adjusted for share splits
only, NOT for dividends, so any holding that has gone ex-dividend
inside the window shows a bigger fall than it really had. Mark
every holding with a dividend_yield above zero as UNCONFIRMED and
do not call its stop breached. Tell me to add the dividend per
share back by hand first, using the formula from the Quant
Investing article "How to calculate your trailing stop loss
correctly": (current price - highest price + dividend per share)
/ highest price.
9. State both limits in the output, in plain words: (a) this measures
from a fixed 12-month and 6-month window, NOT from the price when I
bought, because the screener does not hold my entry date, so for a
position held longer than the window through a higher peak the real
trailing stop is further away than this shows; (b) the numbers are
before dividends.
10. If I have attached my own stops file (ticker, entry date, entry
price, highest close since entry, dividends per share received
since entry), use those numbers INSTEAD of the window, because they
measure from my actual entry and include the dividend add-back.
Update highest close since entry where the current close is higher,
and never move it down.
Output:
- Gainers table, losers table (holding, exchange, local 1M %, catalyst).
- A "quality against price" table for any divergences.
- A drawdown-from-high table: holding, 12-month high and its date,
6-month high and its date, current close, fall from each high %,
past 20% Y/N, and a Confirmed / Unconfirmed (dividend) column.
- The two limits from step 9, written out, above that table.
- A closing 80/20 section naming the ~20% of moves with a dated
fundamental cause against the ~80% with none.
Rules: always use the "%" sign, year-on-year comparators on
financials, show losses beside gains, be concise. This is general
information from the screener, NOT personalised advice, so do not tell
me what to buy, sell, or how much to hold.
Steps 7 to 10 need a word of explanation, because there are two things the screener cannot know about your position.
It does not know when you bought. A trailing stop is measured from the highest price reached since you bought, and your entry date sits in your broker account, not in the screener. So the prompt measures from the highest close over the past 12 months and the past 6 months instead. For a holding bought inside the past year that is often the same number. For a position held for three years through a higher peak it is not, and the prompt says so rather than quietly reporting a number that looks precise and is wrong.
It does not adjust for dividends. The price history is adjusted for share splits only. When a stock goes ex-dividend its price drops by roughly the dividend and that drop stays in the series, so a dividend payer reads as further below its high than it really is. Step 8 marks every dividend payer unconfirmed and leaves the add-back to you. It is one line of arithmetic from how to calculate your trailing stop loss correctly: current price minus highest price plus dividend per share, divided by highest price. On a high yielder that difference decides whether you sell.
Two ways to get the exact number instead of the proxy. The screener already runs a stop-loss alert system: add a holding to a watchlist, set your percentage, and it emails you when the level is breached. Or keep your own file with entry date, entry price, the running high and dividends received, hand it to Claude at the start of the review, and step 10 uses your numbers instead of the window.
What else is worth asking?
Six questions I rotate through, in rough order of how often they change my mind.
- Concentration. What % of the ideas sit in which sectors, countries and currencies? Hidden concentration is the risk that does not show up in any single holding.
- Currency lens. Re-rank the same moves converted to euro. Which winners shrink once foreign exchange is stripped out?
- Valuation creep. Which winners have re-rated so far that they would no longer pass the screen that found them?
- Laggard audit. Any name down over both 3 months and 12 months with weakening fundamentals. The "why do I still own this" list.
- Catalyst calendar. Which holdings report or go ex-dividend in the next 2 to 4 weeks.
- Benchmark check. How did the ideas move against a world index exchange traded fund (ETF) over the same window?
Which files are worth keeping?
The review gets better when it has memory. Two comma separated values (CSV) files you can ask Claude to create and update do most of that work.
The trailing stop tracker. One row per holding: ticker, entry date, entry price, highest close since entry, the date that high was set, current close, stop width, stop level, distance to stop, and whether it has triggered. The high-water mark only ever ratchets up, never down. Each review, Claude pulls the current close, updates any new high, recomputes the stop level and flags anything at or through it.
The catalyst log. Dated events per holding: earnings dates, ex-dividend dates, guidance changes. Without it, every review researches the same news from scratch. With it, the history builds itself.
What this review will not do
It will not tell you what to buy or sell, and it will not tell you how much of anything to hold. That is deliberate, and the prompts above end with an instruction saying so.
What comes back is general information drawn from the screener over your own list, plus publicly reported news. It is research and commentary, not personalised advice, and it takes no account of your circumstances, tax position or goals. Every investment decision on the back of it is yours.
Get the screener, both letters and the Claude connector in one subscription
The weekly review works because the live screener, 16 years of Quant Value picks and the Shareholder Yield Letter archive sit in the same database, and the connector reaches all three from one prompt. Your watchlists and your saved screens, read from a single prompt. The full Best Deal subscription is the only place all of it meets.
Compare the subscription options
100% money-back guarantee for the first 30 days.
Already a Quant Investing subscriber? Upgrade to Best Deal and we refund the unused portion of your current subscription. No double-charge.
Frequently asked questions
Which subscription do I need to run this?
The full Best Deal subscription, which bundles the screener, the Quant Value newsletter and the Shareholder Yield Letter. Application programming interface (API) key generation is a Best Deal feature. A screener-only or newsletter-only subscription cannot create the key the connector needs. See the subscription options.
How long does the setup take?
About 5 minutes. Two minutes to generate your API key on your subscription page, two minutes to add Quant Investing as a custom connector in Claude, one minute for your first question. The step-by-step guide is here: how to connect Claude to Quant Investing.
Do I need a paid Claude plan?
Yes for the connector. Custom connectors are not available on the free Claude tier. The Quant Investing daily limit of 500 tool calls per key is separate from Claude's own message limits.
Where do the price moves come from?
From the screener's price index columns, the same numbers you see on the website. PriceIndex_1m is stored as a multiplier, so 1.357 means the stock is 35.7% higher over one month. Claude converts it. Moves are in each stock's local trading currency with no foreign exchange conversion, which is why the prompt states that caveat.
Why does the review ignore some rows?
Watchlists accumulate stale entries when a security is delisted or renamed. Those rows come back with no name and no price index. Left in, they sit at the top of the losers table as holdings that no longer exist. Step 3 of the prompt drops them.
Can I run it on more than one watchlist?
Yes. Name a different watchlist in the prompt, or ask for several in one go. The connector reads every watchlist on your account.
How many tool calls does a weekly review use?
Typically fewer than 10 against the 500 per day limit. Standard tools cost 1 unit each. The four backtest tools cost 5 units each and this review does not use them, so quota is not a practical constraint on a weekly habit.
Can Claude tell me whether to sell a holding?
No, and the prompts are written to stop it trying. The connector returns general information from the screener over your own list. It is not personalised advice and it knows nothing about your circumstances. What to do with a flagged holding is your decision.
Does this work with ChatGPT or another assistant?
The Model Context Protocol specification is open, so any client supporting remote MCP servers can connect with the same address and key. Claude currently has the most complete client, which is why the prompts above are written for it.
Where can I find more prompts?
The command library lists the queries other subscribers use most: Quant Investing MCP commands.
This article is general information and commentary published to a broad audience. It is not personalised investment advice and takes no account of your circumstances. Prices fluctuate and capital can be lost. Past performance is no guarantee of future results. See our full disclaimer.
