Performance

The screen that honestly shows which method works. Every rate is shown with its confidence interval and sample, against naive baselines, and against both residual and raw return. The tabs at the top choose the horizon.

Consensus acceptance warning

What it is: A green or yellow box saying whether D · Consensus beats each of its components (A, B, C) individually at the selected horizon.

What data feeds it: /api/performance/leaderboard → the engineD result of the latest completed analysis run. The comparison uses the backtest hit rates in the same walk-forward window; at least 200 observations are required.

What it shows: It shows whether the consensus is usable, and which component it fails to beat.

What can be concluded from it: If the warning is yellow, the "Strong signal" cards on the Today screen should not be used for decisions; the signal of the best single model is better. This rule is deliberately strict: combining adds value only if it is better than every part.

Residual return versus raw return

What it is: A table in which the same backtest signals are scored twice: once against the residual return at the end of the horizon, once against the raw return. A warning appears if the difference exceeds three points.

What data feeds it: The signal_daily and signal_outcome tables are joined in the database; the realized_residual column is used for residual and the realized_return column for raw. The computation is done in SQL.

What it shows: The left column shows how well the model does on the target it was trained on, the right column how well it does on the actual price movement.

What can be concluded from it: This is the most important table in the application. If a model's skill disappears in the right column, what it predicts is not the price but how the residual return is constructed. On real data, the 58% hit rate of B · Cross-sectional ranking at 21 days falls to 50.5% on raw return. What matters for investing is the right column.

Model ranking

What it is: The live and backtest hit rates of the four models, their information coefficients, and a breakdown by calm and turbulent regimes.

What data feeds it: The live columns are computed from the signal_daily and signal_outcome rows in the LIVE tier. The backtest columns come from the stored evaluation result of the latest analysis run. The regime is determined by the 70th percentile of the average correlation on the map screen.

What it shows: The hit rate is shown with its Wilson 95% interval and n; below 200 observations, "cannot be distinguished yet" is shown instead of a number. Backtest cells are hatched. The information coefficient is the Spearman correlation between the predicted rank and the realised rank within a day. The best backtest model is highlighted. A hit is defined the same way everywhere: the signal's direction and the sign of the residual return at the end of the horizon are the same. The residual return is the stock's return with the effect of the market (XU100), the sector and USD/TRY removed; it is not the price itself.

What can be concluded from it: There is no difference between two models whose intervals overlap. The real question is whether the model ahead in the backtest also stays ahead live; as live results accumulate, this table answers that question. A drop in the hit rate in the turbulent regime shows that the model is unreliable in times of crisis.

Cumulative hit rate

What it is: For each model, the curve of the cumulative hit rate of its live signals up to each day, and a dashed 50% line.

What data feeds it: The signal_daily and signal_outcome rows in the LIVE tier. Only live records are drawn; if there are no live records, the chart stays empty and says so plainly.

What it shows: It shows at what level the curve settles over time. In the first days the curve is very jumpy, because the sample is small.

What can be concluded from it: A curve that stays permanently above the 50% line points to real skill. A curve that starts high and approaches 50% shows that the first results were luck; drawing conclusions requires waiting a few months.

Baselines

What it is: The hit rates of four naive rules that a model must beat.

What data feeds it: The evaluation result of the latest analysis run. The same test days and the same residual returns are used.

What it shows: Random (50%); sector persistence (the sign of today's average sector residual persists tomorrow); the stock's own AR(1) (the sign of today's residual persists); market persistence (the index's sign today persists).

What can be concluded from it: On real data these rules stay between 49% and 51%. If a model's hit rate cannot be distinguished from them, it has found nothing, whatever its absolute rate.

Portfolio curves

What it is: The cumulative return of an equal-weighted portfolio that buys the top 10% of stocks by score and short-sells the bottom 10%; with and without transaction costs.

What data feeds it: The evaluation result of the latest analysis run. Returns are computed on residual return. Rebalancing is done in steps equal to the horizon, over non-overlapping periods; the cost is 15 basis points one way.

What it shows: Sharpe ratio (annualised with √(252/horizon)), maximum drawdown, turnover and number of periods. The dashed line is without costs, the solid line with costs.

What can be concluded from it: For decisions, look at the curve with costs. Because the returns are on residual return, the artefact in the "residual / raw return" table applies here too: the high Sharpe of B · Cross-sectional ranking and D · Consensus is not the return of a real price portfolio.

Pairwise tests

What it is: A table in which pairs of models are compared on the same stock-days; live and backtest in separate rows.

What data feeds it: McNemar's test on the paired hits; the Diebold–Mariano test on the losses. Computed from the database for live and from the latest run's result for backtest.

What it shows: A result such as "B > A, p=0.003", or "cannot be distinguished yet" if the sample is insufficient.

What can be concluded from it: Only differences with p < 0.05 should be counted as real differences. With a large sample, very small differences can also come out significant; significance does not mean the difference is large enough to be useful.

The investment information, comments and recommendations given here are not within the scope of investment advisory services. Investment advisory services are provided under an investment advisory agreement to be signed between a client and brokerage houses, portfolio management companies, or banks that do not accept deposits. The signals here are produced from historical data with statistical models, are shown the same to everyone and are not personalised; they may not suit your financial situation or your risk and return preferences. Therefore, making investment decisions based solely on the information given here may not produce results that meet your expectations.