Sell-Opinion Whipsaw
A Sell opinion fires just before earnings; days later the stock is a Buy again. Research into that whipsaw at a bank's advice desk — a 503-stock early-warning cockpit built on real data, with the gaps stated as plainly as the findings.
Overview
At a bank's investment-advice desk, stock opinions run on a three-level scale — Buy, Hold, Sell — and the desk must act on them toward clients. A recurring, contradictory pattern triggered this research: a Sell appears just before quarterly earnings; after the print the price drops below Fair Value, and the opinion flips straight back to Buy within days. Clients are moved out of a position and back in on a signal that reversed almost immediately. That is a whipsaw — operationally costly, and it erodes trust in the advice.
The research question — how often has this actually happened, and what drives it — needs a full opinion-change history. What exists today is a single snapshot: current opinion, one prior opinion, price, Fair Value, next report date, per stock. A snapshot cannot show a three-step cycle over time, so the historical count is not yet possible — and the project says so, on the page and inside the tool. What it delivers instead is what the data honestly supports: a forward-looking cockpit that flags which current Sell opinions are most likely to flip at the next earnings.
The cockpit is a single self-contained HTML file: all 503 stocks in a sortable watchlist — ticker, opinion, price, Fair Value, buffer to FV, days to next report — and a scenario engine. Click any stock and it loads with its real price and FV; beat/meet/miss earnings scenarios estimate the post-earnings price, and the flip-risk score is the summed probability of the scenarios that land below Fair Value. Where real analyst consensus was harvested, it tilts the miss probability.
Approach
Ingest & join
Two Excel snapshots parsed with openpyxl. The data refresh added price, Fair Value and ticker but dropped the next-report date — recovered from the original snapshot via an ISIN join, verified consistent.
Validate the data
The Fair Value column was confirmed, not assumed: the price-vs-FV buffer correlates monotonically with the opinion across all 503 stocks (Buy −23%, Hold +2%, Sell +38% median). Currency-agnostic by construction — price and FV share a currency per row.
Model the chain
Earnings expectation → beat/meet/miss scenario → price reaction → does the new price cross Fair Value → flip risk. Expected move and scenario probabilities are adjustable for what-if analysis.
Verify
Every figure and the rendered cockpit checked programmatically — headless-browser render plus assertions on computed values. JNJ resolving to 0% flip risk and Ontex to 100% were confirmed against the underlying arithmetic.
What the question
needs vs what
the data supports
The single most important framing of this project is a gap — and it is stated, not hidden. Counting historical whipsaws needs three things the current data does not have:
A single snapshot cannot show a three-step cycle over time, so the historical whipsaw count is not yet possible. What is possible — and built — is a forward-looking early-warning cockpit that flags which current Sell opinions are most likely to flip at the next earnings. Its final link — price crossing Fair Value actually flipping the opinion — is not yet calibrated, and the tool says so on screen. Until the opinion history arrives, it predicts the crossing: the leading indicator of the flip, not the flip itself.
Timing and
valuation
disagree
Ontex Group — the contradiction, already live
Carries a Sell opinion while its price (2.30) sits 38% below Fair Value (3.70), with earnings ~22 days out. On valuation it should already be a Buy — exactly the pattern the research is about, materialised in the current snapshot.
Johnson & Johnson — urgent on timing, safe on valuation
Earnings in 7 days, but the price trades 41% above Fair Value — no normal earnings move can cross FV, and the calculator correctly reports 0% flip risk. High on a naïve days-to-earnings watchlist, low on the one that matters.
Bekaert — the opposite case
Earnings further out (22 days) but only +14% above Fair Value — the closest of the overvalued Sells to a flip. This two-dimensional view is why the cockpit adds a whipsaw-prone metric: Sells within 15% of FV — currently Ontex and Bekaert.
The opinion
engine is
FV‑driven
The Fair Value interpretation was validated, not assumed: across all 503 stocks, the median buffer between price and Fair Value rises monotonically with the opinion. Opinions track price-versus-FV almost mechanically — the finding that justifies using “price crosses FV” as the predictor of a flip.
| Opinion | Median buffer to Fair Value | Reading |
|---|---|---|
| Kopen (Buy) | −23% | price well below FV |
| Houden (Hold) | +2% | price roughly at FV |
| Verkopen (Sell) | +38% | price well above FV |
A second signal points the same way: of the 48 stocks whose prior opinion was Sell, 46 have since been upgraded (96%). Firm caveat, stated with the number: this is the single most recent change per stock, not the full history — a direction, not a confirmed whipsaw.
Still missing
— by design,
on the list
The build-in-progress checklist, told plainly. Data comes from a bank-internal snapshot plus Alpha Vantage for earnings consensus — where the free tier (25 requests/day) and a European coverage gap are real constraints: US consensus is excellent, European names return empty, and only JNJ has been harvested so far.
| Needed | Unlocks | Status |
|---|---|---|
| Full opinion history | Historical whipsaw count; calibrating the flip link | not yet available |
| Historical earnings dates | Confirming Sells fell just before prints | not yet available |
| Consensus per name | Scenario engine for all 17 Sells, not just JNJ | partial — JNJ only |
| Per-name expected move | Sharper flip risk than one global slider | global assumption today |
| Price / FV time series | Confirming the post-earnings drop mechanism | snapshot only |
Roadmap
Broaden consensus coverage
Daily Alpha Vantage harvest of the covered US tickers, spread across days within the 25/day limit — now possible with the refreshed tickers.
Per-name expected move
Options-implied move or each stock’s historical earnings-day reaction, replacing the single global slider.
Ingest opinion history
Enables the actual historical whipsaw count and calibration of the final link: price crossing FV → opinion flipping.
Agent-driven monitoring
The stated end goal: an automated watcher that flags when a fresh Sell opinion enters an earnings window close to Fair Value, and alerts the desk.