Every number on a signal card answers a different question. Here is what each one measures, how it is calculated and how much it is worth, including where the model is only modestly better than chance.
stocks scored every night
12markets, US and Europe
167,840signals the two models were built on
~12 yrsof history per model
// three numbers, three questions
Don't read them as one score.
Mixing how good a signal looks with how much evidence stands behind it is the most expensive mistake in reading signals. So we keep them apart.
Looks forward
Conviction
0 to 100 · High ≥ 73 · Medium ≥ 67
A trained model estimates the probability that this specific signal closes in profit.
Answers: How likely is this one to close in profit?
Looks back
Confidence
High n ≥ 30 · Medium 15 to 29 · Low < 15
How many historical trades stand behind the win rate. It measures sample size, not success.
Answers: How much should I trust the number?
Looks back
Historical win rate
a percentage, with its n
How often this pattern on this stock closed in profit in the past, with the number of cases next to it.
Answers: What happened the last times?
Confidence is about sample size, not success. A pattern with a 92% win rate over 6 cases shows Low confidence. One with 61% over 400 shows High. Confidence tells you how much credit the number next to it deserves.
// two strategies, two models
Bounce and Impulse answer different questions.
Bounce
Mean reversion: a sharp dip in a healthy uptrend
+3%target
10sessions, horizon
0.599AUC, out of sample
Win rate by conviction bandout of sample · win = closed in profit
Low60.8%
Medium72.6%
High79.0%
Measured on 24 September 2026, before the levels were set on the published entry (18 October 2026).
Maximum hold: 35 sessions. Out-of-sample AUC 0.599. Model built on 114,368 signals.
Impulse
Trend following: strong momentum confirmed by structure
+10%target
180sessions, horizon
0.606AUC, out of sample
Win rate by conviction bandout of sample · win = closed in profit
Low54.0%
Medium70.7%
High73.7%
Measured on 24 September 2026, before the levels were set on the published entry (18 October 2026).
Maximum hold: 125 sessions. Out-of-sample AUC 0.606. Model built on 53,472 signals.
// how conviction is built
A trained model, not a points system.
Conviction is a logistic regression trained on the closed operations of the backtest: historical signals, simulated with the published rules. The event it predicts is simple: did this signal close in profit?
// the formula, in fullz = intercept + Σ coef · zfzf = clip((x − mean) / sd, −3, +3)conviction = sigmoid(z) × 100// Impulse also adds hinge terms: max(0, z - k)
1WinsoriseEach input is clipped to the range seen in training, so an extreme value the model never saw cannot push it somewhere without data.
2StandardiseEvery input becomes how many standard deviations it sits from its mean, so all of them live on the same scale.
3Clip at ±3 sigmaEven after winsorising, a value at 8 sigma would dominate the sum. We cap it.
4SigmoidThe linear sum becomes a number between 0 and 100 you can read as a probability.
// how honest the numbers are
An AUC of 0.60 ranks somewhat better than chance. It is not beating the market.
0.50 would be chance. We always publish the out-of-sample figure, measured on a period the model never trained on; in-sample, the same models read higher, and that is not evidence of anything. The AUC measures whether the signals that closed in profit had scored higher than those that did not; it does not say whether they beat their index, and against it, out of sample, neither method does.
0.50 chance1.00 perfect
Chance0.500
Bounce model0.599
Impulse model0.606
// full methodology
Methodology and assumptions
How each signal is produced, from what data, under what assumptions and within what limits. Published under Article 4.1 of Delegated Regulation (EU) 2016/958. The change log is at the end of this page.
Last updated: 24 October 2026 (v1.5) · Deployed model: v10.24 ()
On this page
1. What a signal is
A signal is a computed observation about one security on one day, published as a non-personalised investment recommendation within the meaning of Article 20 of Regulation (EU) No 596/2014 on market abuse, with the disclosures it requires. It is not an opinion about the company and not a personalised recommendation: it is the result of applying a fixed procedure to closing prices, identical for every security in the universe and published to all subscribers at the same moment.
There are two families, and they do not mix:
Bounce (mean reversion). A +3% target, a 10-session horizon and a maximum hold of 35 sessions. It looks for a security in a long-term uptrend (closing above its 200-session average) that has just fallen hard: its 2-session RSI drops below a threshold that adapts to the security’s own volatility (20, 15 or 10, from lower to higher ATR relative to price). It is not generated when the last two sessions traded more than 1.5 times their 20-session average volume, a sign of sustained selling.
Impulse (trend following). A +10% target, a 180-session horizon and a maximum hold of 125 sessions: the horizon is the method’s reference duration, and the exit rules close any position before it is reached. It looks for a security already moving that may keep moving, and two generators produce it: momentum continuation (ADX above its own 80th percentile, with the close above its 21-session exponential average and that average above the 200-session one) and breakout confirmation (a close above the upper Bollinger band, on volume above its own 90th percentile and with the close above the 200-session average).
Each method publishes its own new signal, with its own date and levels. One company can carry a new signal of one method and an open position of the other at the same time, and an exit of one method does not affect the other method’s signal.
Every signal names its entry, its target, its stops and its exit rules in advance. The published entry is a limit buy order at a price equal to the close that produced the signal plus 0.5%, valid only for the next session. It fills at the open if the stock opens at or below that limit, and at the limit if the price touches it during the session; if it does not, the signal is discarded. The target and the stops are set on that published limit price, not on the price the order fills at, which is usually a little lower; the return is measured from the fill price. The entry is never the close the signal was calculated on.
Closing is mechanical too, and the full list is declared before opening: no exit is decided after the fact. During the session, a position closes when it reaches its target, on the volatility (ATR) stop or, for Impulse, on the fixed -20% stop. The ATR stop sits 4 ATR below the published entry, never further than -10%, for Bounce, and 6 ATR below, never further than -15%, for Impulse, and it acts only during the first 10 sessions for Bounce and the first 20 for Impulse; the Impulse fixed stop always acts. On the entry day, if the order filled at the limit during the session, the target only counts if the close reaches it. At the close the rules check overbought (2-session RSI above 80, for Bounce only and only with the position in profit), the tiered trailing stop (it activates from +0.5% for Bounce and +3% for Impulse, and acts only in profit), the loss of the 200-session average, stagnation (for Impulse, more than 60 sessions without ever gaining 2%), the time stop while the position is still at a loss (after 30 sessions for Bounce and 120 for Impulse) and the maximum hold (35 and 125 sessions), which closes the position in any case. Exits evaluated at the close are filled at the next open, so even an exit in profit can fill below the entry.
No new signal is published on a frozen price. When the ATR is below 0.35% of the price and the range of the last 10 sessions is below 1.5%, as happens when a cash takeover offer pins the share price, the published levels would mean nothing. The filter affects publication only: open positions and the backtest are unchanged.
Market context. Each market is classified every day into one of six states by its own index: its position against its 200- and 50-session averages and its one-month return. A new signal may carry a context label measured for its method, its market and that state (144 combinations): “very favourable” when the confidence interval of the mean return of past operations lies entirely above +0.40%, “favourable” when it lies entirely above zero, “no signal” when it crosses zero, “unfavourable” when it lies entirely below zero and “too few cases” with fewer than 30 operations. The interval groups operations by entry week, because those entering in the same week share the same market move. The label describes what happened in that context; it does not predict the signal, and it appears on new signals only. No market is vetoed: the state of the market withholds no signal.
2. Universe covered and inclusion criterion
Twelve stock indices are covered, around 1,300 unique securities; the exact figure, which changes with index membership and with the securities that have enough history, is the one shown at the top of this page. The inclusion criterion is objective and singular: membership of one of those indices. There is no discretionary selection, no watchlist of favourites and no exclusion by sector or by opinion.
United States: S&P 500, Nasdaq 100, Dow Jones and Russell 1000. Eurozone: DAX 40, EuroStoxx 50, CAC 40 and IBEX 35. Rest of Europe: FTSE 100, SMI, OMX 30 and OMXC 25.
A security needs at least 250 sessions of history before it can be scored; below that it stays out. Securities whose price series stops updating are withdrawn automatically before publication. Every week the membership of each universe is compared with its index and corporate actions (ticker changes, mergers, delistings) are reviewed.
3. Data sources and their reliability
Daily open, high, low, close and volume, plus fundamental data published by the companies themselves, obtained from external market-data providers, mainly Yahoo Finance. The download happens after each covered market closes, once its close is final at the provider, and the calculation runs on closing prices.
What does not enter the model or the signal rules, and it is worth saying:
Intraday data, order book or market depth. The live session tracking subscribers see is informative only: the signals, their exits and their official record are calculated on daily bars.
Analyst estimates, third-party research or consensus figures. The 360 analysis shows earnings per share against consensus as information; it enters no score.
Alternative, proprietary or non-public data of any kind. Everything that enters the model is public market information.
Known limits: adjustment for dividends and splits depends on the provider and can arrive late; fundamental coverage runs between 92% and 99% depending on the index, and a security without it keeps its technical score but not its fundamental one. A series that has not updated in three days is treated as stale and that security is not published.
4. The model and its variables
Each family has its own model: a logistic regression estimating the probability that the signal closes in profit. The output is presented as a Conviction Score from 0 to 100.
Choosing a linear model is deliberate. It can be read in full, audited coefficient by coefficient, and its failure modes are visible. It was compared against non-linear gradient boosting alternatives and they did not beat it out of sample, so interpretability was not paid for with accuracy.
Twenty-three inputs: 21 technical and 2 regional. By family:
Trend and position: distance to the 50- and 200-session moving averages, position and slope of the 21-session exponential average, MACD, ADX and the linear fit of the close over 10 sessions.
Momentum and oscillators: 14- and 2-session RSI, stochastic, daily change and distance to the 20-session low.
Volatility and range: ATR relative to price (ATR / close, which enters through two variables: relative ATR and relative volatility), and the position and width of the Bollinger bands.
Volume: volume relative to its average, volume trend, and OBV against its average.
Region: two indicators placing the security in the eurozone, the rest of Europe or the United States. They are there because the same technical indicators have behaved differently in each region.
Inputs are trimmed at their extremes, standardised and capped at three standard deviations, so one anomalous reading cannot drag the score. The Impulse model adds hinge terms on five variables, letting their effect change beyond a certain level; the Bounce model has none, because there they did not improve the out-of-sample measurement.
5. Training and validation
The models are trained on the simulated (backtest) operations of historical signals from the same universe, closed with the published exit rules: 114,368 Bounce signals and 53,472 Impulse. The deployed version is v10.24, trained on data through 2026-09-24.
Measurement uses a temporal split: the model is fitted on everything before a cut-off date and measured on what follows, with a purge zone at the boundary so that no training signal overlaps its horizon with the measurement window. The cut-offs are 2023-03-10 for Bounce and 2023-07-20 for Impulse.
Out-of-sample AUC is 0.599 for Bounce and 0.606 for Impulse. It is the measure of model quality we publish, never the in-sample one: the served model is then refitted on 100% of the history, so any measurement over that same data would be in-sample, would read higher, and would mean nothing. Measured on 24 September 2026, before the levels were set on the published entry (18 October 2026).
What an AUC is and is not. It is the probability that a signal which closed in profit scored higher than one which did not. 0.50 would be a coin toss and 1.00 would be always right. Our figures sit a good deal closer to the first than the second: they describe a modest, real ability to rank, not an ability to be correct, and ranking well is not beating the market (assumption 8).
6. Material assumptions
All of the above rests on assumptions that may not hold. These are the ones that carry the most weight, with what happens if they fail.
The past distribution of prices informs the near future
This is the assumption holding up everything else. If the relationship between the indicators and the outcome breaks (a change of market regime, for instance) the scores keep being calculated and stop meaning what they say, with nothing failing visibly. That is why the model is monitored continuously, why a context label is measured by method, market and market state, and why changes are logged publicly.
The proposed entry is executable
It is assumed that a limit order at the close plus 0.5% fills in the next session as described: at the open when the stock opens at or below the limit, at the limit when the price touches it. An opening gap, a thinly traded security or a wide spread can make the real entry differ from the published one, or not happen at all, and with it the whole result. The levels are set on the published limit price, so a fill below it does not move them.
Published figures are gross
They exclude commissions, spread, taxes and currency conversion. This is not a detail: in our own simulation across account sizes from EUR 2,000 to EUR 250,000, a flat per-trade fee was enough to leave the Bounce strategy at zero or below at every account size. The deciding variable is the broker, not the size of the account.
No future information enters the calculation
History is reconstructed under a time lock: each signal is scored only with what existed that day. This assumption already failed us once, with metrics built on a snapshot that contained later data, and that is why track-record badges are presented as historical context and never as predictive power.
The historical universe carries survivorship bias
History is built from the current composition of the indices, so securities that left them are under-represented. The effect pushes historical figures upward, and its order of magnitude has been estimated: in the US, an equal-weight portfolio of the current members returns 15.1% a year over twelve years, against 12.6% for the index (SPY), before tax, and part of that gap is the bias. Every historical figure is therefore a ceiling.
The model is stable between retrainings
There is no online learning: coefficients are fixed at retraining and do not change until the next one. The further the market moves from the training period, the weaker the guarantee behind the published measurement.
The score measures probability, not magnitude
The model estimates whether a signal closes in profit, not how much is gained, nor how much is lost when it does not. A high score does not describe the size of the possible loss.
Closing in profit is not beating the market
Conviction estimates whether a signal closes in profit, not whether it does better than its own index over the same days. Measured that way, out of sample (25 September 2026, before the levels were set on the published entry), the signals’ edge over the index is zero for Bounce (-0.01% per operation) and negative for Impulse (-0.19%), gross and before tax. No figure on this page claims or suggests that the methods beat the market.
7. Risk and sensitivity
Investing in equities involves the risk of loss, including the total loss of the capital invested. The signals, rankings and scores are non-personalised investment recommendations within the meaning of Article 20 of Regulation (EU) No 596/2014 on market abuse, published with the disclosures it requires; the rest of the content of this platform is general market information. None of it is investment advice or a personalised recommendation. Past results do not guarantee future results.
On the sensitivity of the score, which usually goes unsaid. Measured on 24 September 2026, before the levels were set on the published entry (18 October 2026): out of sample, for Bounce the low conviction band closed in profit 60.8% of the time for a +0.26% mean, the medium band 72.6% (+0.28%) and the high band 79.0% (+0.49%); for Impulse, 54.0% (+0.35%), 70.7% (+1.16%) and 73.7% (+1.17%). These are gross backtest figures, before tax. The conviction bands are different products wearing one face, and the difference between adjacent bands is a few points.
As a result, a small change in the input data (a revised price, a dividend arriving late) can move a score from one band into the next. The boundary between bands is not a line between good and bad: it is a cut across a continuous variable.
// changelog
Every material change, on the record.
Required by Delegated Regulation (EU) 2016/958. We publish what changed and what it did to the numbers.
It records material methodology changes in everything we publish: the Bounce and Impulse signals with their generation, publication and exit rules, the Conviction Score, the market-context label, the quality, value, dividend and technical Scores, the General Score and the ordering criteria of the rankings. Model versions and rule changes that came without a new model appear together, each with its own date.
rules
Not comparable with earlier figures
The Quality and Value scores move continuously instead of in steps, and the General Score keeps two decimals
Each factor of the Quality score (gross profitability, ROE, debt to equity, earnings stability) and of the Value score (PER against its sector, FCF yield, price to book) was scored in steps of five to seven fixed values, so companies with very different figures shared the same score. Each factor now moves along a straight line between anchor points placed at the middle of the old steps, and the maximum is reached only by roughly the best 2 to 5% of each figure. Weights, special cases (missing data, negative cash flow, negative equity from buybacks) and the 0 to 100 scale do not change. The General Score, which was rounded to a whole number, now keeps two decimals.
Effect: Measured on 1,339 companies on 25 October 2026: the Value score went from 51 distinct values to 1,182 (16 companies at exactly 100, now 2) and the Quality score from 93 to 1,213. The average moves by less than one point (Value +0.1, Quality -0.7) and the order barely changes (rank correlation with the old scores 0.99). Scores published before this date are not comparable one by one with those published after it.
This change altered how the published figures are measured, not only how the model is fitted: figures published before it are not comparable with those after it. The entry itself explains which way they moved and why.
rules
Market-context labels account for trades that entered in the same week
Each context label is decided by the confidence interval of the mean return of past operations of the same method, market and market state. Those intervals treated every operation as independent, although operations that entered in the same week share the same market move. They are now computed with operations grouped by entry week, which gives wider, more honest intervals.
Effect: 17 of the 144 cells changed label, every one towards less certainty: the two "unfavourable" cells became "no signal", six "very favourable" became "favourable" and nine "favourable" became "no signal".
rules
No market is vetoed any more: Bounce signals are published again in the US when its index falls
Since 29-30 August 2026 no new Bounce signal had been published in the four US universes while their index was below both its 200- and 50-session averages. Re-measured on the corrected history of v10.24, that cell no longer shows a loss that can be told apart from zero, the same reading for which other markets and Impulse were never vetoed. The veto was retired; the reader is told about the market context with the context label instead of having the signal withheld.
Effect: US Bounce, conviction 73 or more, index below both averages: -0.14% per operation, 95% interval [-0.89%, +0.62%], which crosses zero. Gross figures, before tax.
rules
Not comparable with earlier figures
Target and stops are set on the published entry price, not on the fill
The published entry is a limit order at the close plus 0.5%. Most orders fill at the open, below that limit, and until this change the backtest set the target, the ATR stop and the fixed stop on the fill price. They are now set on the published limit, the price the signal shows, in the backtest, in the signal cards and in the portfolio exits. Returns are still measured from the fill. The history now describes what a reader following the published levels would have obtained.
Effect: Measured on 169,066 closed operations: the mean return per operation does not change for Bounce (+0.005 points, interval [-0.012, +0.022]) and falls slightly for Impulse (-0.021 points, interval [-0.039, -0.003]); the share that reaches its target falls (US Bounce from 33.6% to 24.3%) and the share closed in profit falls by 1 to 3 points depending on method and market. Figures measured before this date are not comparable with those measured after it.
This change altered how the published figures are measured, not only how the model is fitted: figures published before it are not comparable with those after it. The entry itself explains which way they moved and why.
rules
A signal’s validity is its maximum hold: 35 sessions for Bounce, 125 for Impulse
Each signal was published as valid for its horizon, 10 sessions for Bounce and 180 for Impulse. Neither figure was how long a position can actually stay open: the exit rules close any position after the time stop plus five sessions. A signal is now published as valid until its exit, at most 35 market sessions for Bounce and 125 for Impulse. The horizon (10 and 180 sessions) is still published as the method’s intended duration.
Effect: No signal or exit changes; only the published validity does. Impulse had published 180 sessions and never holds beyond 125; Bounce had published 10 and 12.5% of its positions stay open longer.
rules
No new signal is published on a frozen price
When a cash takeover offer pins a share price, its levels mean nothing. A new signal is no longer published when the ATR is below 0.35% of the price AND the range of the last 10 sessions is below 1.5%. It affects publication only: open positions and the backtest are untouched, and if the data cannot be read the signal is published.
Effect: Measured on 169,152 closed operations, it would have removed 62.
rules
A new signal is published per method, not per company
Each company had one card, so a company holding an open position of one method never showed a new signal of the other. Each method now has its own new signal, with its own date and levels: a company can carry a new Bounce signal and an open Impulse position at once, and an exit of one method no longer turns the other one into an exit. Since 16 October 2026 a re-entry after an exit inside the same streak is dated on the close of that exit.
Effect: Measured on the day of the change, 54% of Bounce signals had been hidden this way. More signals are published from this date.
v10.24
· model in useNot comparable with v10.20
Both models learn from the same twelve years the track record shows; the backtest reads the entry day conservatively
Bounce (mean-reverting) signals are now simulated and learned over about twelve years, like Impulse: before, the published Bounce history reached 2014 while the model learned from the last seven, and part of that history could not be reproduced by the current simulation. The backtest no longer lets a trade reach its target on a price printed on the entry day before the order filled: on the day a limit order fills during the session, the target only counts if the close reaches it. Long moving averages now need their full window before a signal can rely on them. Indicators are stored with six decimals instead of two, and the accumulation/distribution input no longer depends on where its running sum happens to start.
Effect: Out-of-sample AUC: Bounce 0.599 on 114,368 signals, Impulse 0.606 on 53,472. Measured on the same out-of-sample period, twelve years of training beat seven in both (Bounce 0.599 vs 0.592, Impulse 0.606 vs 0.600), and in Impulse the gap between the High and Medium conviction bands widened from 1.5 to 2.9 points. Out-of-sample win rate by conviction band, Bounce: Low 60.8%, Medium 72.6%, High 79.0%; Impulse: 54.0%, 70.7%, 73.7%. Measured on 24 September 2026, before the levels were set on the published entry (18 October 2026, see that entry): these figures are not comparable with later ones.
This change altered how the published figures are measured, not only how the model is fitted: figures published before it are not comparable with those after it. The entry itself explains which way they moved and why.
v10.23 · rules
Each market is classified by its own index; context labels and a US Bounce veto
On 29-30 August 2026 each market was classified every day into six states by its own index (its position against its 200- and 50-session averages and its one-month return). Each new signal carries a context label measured for its method, its market and that state: very favourable, favourable, no signal, unfavourable, or too few cases, decided by the confidence interval of the mean return of past operations, not by the mean. And no new Bounce signal was published in the four US universes while their index was below both averages (retired on 19 October 2026). Neither change touches the history: vetoed operations kept being simulated and counted.
Effect: As measured then, with the index below both averages, Bounce lost money in the US (-0.30% per operation, interval [-0.46%, -0.15%], entirely below zero), while among 52,481 high-conviction Bounce operations six of the eight European markets made money in that state; so the veto applied to the US only. Those figures predate the corrected history of v10.24.
v10.20
The Impulse model gains hinge terms; Bounce learns from seven years; continuous monitoring between retrains
The Impulse (trend-following) model may now bend its response to its five strongest inputs instead of assuming a straight line, using hinge terms at fixed knots. The Bounce (mean-reverting) model does NOT: the same change tied on ranking there and worsened the separation between its conviction bands, so it was not adopted. The same day the Bounce training window went from about three years to about seven (from roughly 30,000 signals to 66,336). A monitor now runs between retrains and watches for drift and band integrity, which nothing did before.
Effect: Impulse: out-of-sample AUC from 0.584 to 0.602 on 54,800 signals; the gap between the High and Medium conviction bands widened from 1.1 to 3.8 percentage points. Bounce: AUC 0.595 on 66,336 signals.
v10.19
Not comparable with v10.18
How the models are measured and fitted was corrected; published figures dropped as a result
Three defects in the training procedure were fixed. Signals whose outcome resolved inside the test window were being used to train, which let the model see part of the answer. The deployed model was the one fitted on the older 70% of history, so it had learned nothing from the most recent third. And extreme values were left unbounded, letting a single outlier neutralise a whole input. Training now purges overlapping signals, refits on all available history before deployment, and caps outliers.
Effect: Quality figures published from here on are NOT comparable with earlier ones and read lower. That is the correction, not a degradation: the earlier figures were inflated by the leak this version removed.
This change altered how the published figures are measured, not only how the model is fitted: figures published before it are not comparable with those after it. The entry itself explains which way they moved and why.
v10.18
Impulse model retrained with the +10% exit rule active
The Impulse strategy exits at +10%, and the model is now trained against that same rule rather than against an uncapped outcome, so what it predicts matches what the strategy does.
Effect: Trained on 55,156 signals.
v10.17
Overlapping signals removed from training
The same stock could contribute several overlapping signals covering the same days, which counted one market move as several independent confirmations.
Effect: Bounce trained on 29,725 signals after filtering.
v10.16
Two near-constant inputs removed; conviction scores stopped clustering at the extremes
Two yes/no inputs (price above its 200- and 50-day averages) almost never varied, which pushed scores to the extremes and made the two strategies produce nearly the same ranking. The continuous distance to those averages already carried the same information and was kept.
Effect: The double-peaked score distribution disappeared (Impulse spread 30.7 to 6.3) and the correlation between the two strategies fell from 0.94 to 0.77.
v10.14 · rules
General Score: quality and technical weigh more than value and dividend
The General Score of the 360 analysis gave its pillars equal weight. It now weighs Quality 35%, Technical 35%, Value 15% and Dividend 15% for a company that pays a dividend, and Quality 40%, Technical 40% and Value 20% for one that does not.
Effect: Measured then over 759,000 closed signals, comparing the top and bottom fifth of each pillar: Quality (+3.6 points of win rate) and Technical (+2.7) were partially predictive, Value (-4.3) and Dividend (-2.5) inversely so. Those figures predate the corrections of v10.19 and v10.24.
v10.14.2 · rules
Quality score: negative equity from buybacks no longer scores as distress
The quality score has four factors at 25% each: gross profit to assets, return on equity, debt to equity and earnings stability. A profitable company that has bought back so many shares that its equity is negative scored zero on debt to equity and on return on equity, as if it were in distress. Both factors now score a neutral 0.5 when equity is negative and the company is profitable (gross profit to assets of at least 0.05, or positive earnings stability); a loss-making company still scores zero.
Effect: Affects only companies with negative equity. Example: Booking Holdings went from 10 to 35.
v10.13
Historical success rate removed from the score; badges stopped being treated as predictive
The conviction score mixed the model output with a stock’s historical success rate. That rate was computed using data from after the signal, so it could not have been known at the time and made the score look far more discriminating than it was. The score is now the model output alone. The same audit showed the Track Record badges suffer the identical defect; they were kept as historical context and are no longer presented as indicating future performance.
Effect: Measured causally, the badges’ apparent 6.6x discrimination on Bounce fell to 1.00x, that is, none.
This change altered how the published figures are measured, not only how the model is fitted: figures published before it are not comparable with those after it. The entry itself explains which way they moved and why.
Backtest and out-of-sample figures are gross: no commissions, slippage or taxes. Conviction is an estimate of probability, not a promise. InbestPlanners does not provide investment services or personalised advice: the signals are non-personalised investment recommendations. Past performance does not guarantee future results.
Scores are the output of a statistical model applied to public market data. The signals are non-personalised investment recommendations, not personalised advice, and past results do not guarantee future results.