Prediction Mind is an autonomous forecasting system for financial markets. Earlier articles in this series described its dual-process architecture, its change-field world model, and an experiment in aligning that model with a multidimensional geometry. One gap remained open from the beginning: although the architecture borrowed its vocabulary from Daniel Kahneman and part of its mathematical language from Karl Friston, neither framework was yet deeply embedded in the machinery. Kahneman survived mainly in the distinction between a fast System 1 and a slower System 2, while Friston survived in a handful of information-theoretic quantities whose role was more suggestive than structural.
That has changed. Eight mechanisms now connect prediction error, surprise, attention, confidence correction, deliberative effort, abstention, model revision, and learning, so that what had previously been a loose theoretical resemblance has become an explicit computational architecture. The important change is not philosophical but operational: surprise now has a common unit, deliberation has a trigger, confidence has an empirical reference point, and the system can distinguish between uncertainty, error, instability, and evidence that its own model of the world may no longer be adequate.
Every equation below is followed by the same idea in ordinary language, because mathematics is useful only up to the point where notation begins concealing what the mechanism is actually doing.
Two theories, one architecture
Kahneman's distinction is familiar enough to have become almost dangerously familiar. System 1 is fast, automatic, and continuously available, whereas System 2 is slower, selective, and computationally expensive; the useful part of the distinction is therefore not that one system is somehow intuitive while the other is somehow clever, but that a functioning cognitive architecture cannot afford to subject every observation to the same depth of processing.
That asymmetry maps naturally onto Prediction Mind. System 1 is the continuously operating forecasting layer: it ingests observations, updates signals, produces probabilities, records predictions, and later grades those predictions against realized outcomes. System 2, by contrast, is not another small agent sitting beside it, nor is it simply a large-language-model call wrapped in an impressive prompt. It is the deliberative subsystem of the architecture, comprising the mechanisms that decide when additional reasoning is warranted, retrieve relevant evidence, examine conflicts and anomalies, compare competing explanations, revise a thesis when necessary, and record whether the additional expenditure of computation produced any measurable improvement.
The architectural question is therefore not whether the system is capable of performing something we are willing, with the usual computational looseness, to call reasoning. It plainly can. The harder question is when further reasoning is worth invoking, because a system that deliberates about everything is not necessarily intelligent; it may simply be expensive.
This is where Kahneman and Friston become useful together. Kahneman gives us the architectural asymmetry: most situations should be handled cheaply, while a minority deserve additional attention. Friston provides a probabilistic language in which the reasons for that attention can be represented. A generative model expresses what the system expects to observe, incoming evidence can then be evaluated according to how improbable it was under those expectations, and prediction errors can be weighted according to how informative their sources have historically proved to be.
The bridge between the two is therefore comparatively simple: System 2 should become active when prediction error has accumulated enough informational significance that continuing with the fast model is no longer obviously economical. This is much more useful than instructing a language model to “think carefully,” a phrase that belongs to the large and distinguished family of software requirements that sound meaningful until somebody has to implement them.
The earlier version of Prediction Mind had the vocabulary but not the mechanism. Its surprise scanner ranked candidates by adding z-scores, which are useful standardized deviations but not a common information measure, so rankings could depend heavily on what else happened to be scanned during the same run. Effort was equally crude, because a modest anomaly and a substantial model failure could receive essentially the same treatment: one model call, one prompt, one temperature.
The supposed “outside view” was also weaker than the name suggested, since the reference rate could still be supplied by the language model rather than by the historical record. Most importantly, System 2 had no principled way to conclude that System 1 was already adequate, because agreement was implicitly treated as a failure to contribute anything new and thereby created a subtle incentive toward manufactured disagreement.
Those are not prompt defects. They are architectural defects, and the rest of this article describes how they were replaced by measurable mechanisms.
A small glossary before the equations
The mathematics is deliberately modest and consists mostly of logarithms, averages, correlations, probability distributions, and a few transformations that allow quantities measured on different scales to be compared without pretending that they were originally the same thing.
| Symbol | Read as | Meaning |
|---|---|---|
| \(p\) | “p” | A forecast probability between 0 and 1 |
| \(h\) | “h” | The realized outcome: 1 if the forecast was correct, 0 otherwise |
| \(b\) | “b” | A historical base rate |
| \(\log\) | “log” | The natural logarithm |
| \(z\) | “z” | A standardized deviation from a variable's usual behavior |
| \(a\) | “a” | Standardized acceleration: change in the rate of change |
| \(w\) | “w” | A factor weight |
| \(\rho\) | “rho” | A correlation or empirical validity coefficient |
| \(\sigma\) | “sigma” | Standard deviation |
| \(c\) | “c” | Accumulated surprise charge |
| \(\theta\) | “theta” | The threshold that charge must cross |
| \(\pi\) | “pi” | Prior belief before today's observation |
| \(q\) | “q” | Posterior belief after today's observation |
| \(n\) | “n” | Number of observations |
| \(\lambda\) | “lambda” | A weighting parameter |
Most information quantities below are measured in nats, the unit produced when information is expressed using the natural logarithm rather than a base-2 logarithm, in which case the corresponding unit would be the bit. One nat is approximately 1.44 bits, but the conversion itself matters far less than the property that makes the unit useful here: information measured this way is additive, which means that surprise from different observations can be accumulated, compared, and carried across time without reducing everything to a ranking whose meaning changes with the comparison set.
Surprise in a unit that can accumulate
Suppose the system assigns probability \(p\) to an event that subsequently occurs. Its surprisal is
$$ -\log p. $$
An event assigned probability 1 therefore produces zero surprise,
$$ -\log 1 = 0, $$
while an event assigned a very small probability produces a large value. The resulting asymmetry is exactly what a forecasting architecture needs, because a cautious mistake and a confident mistake should not be treated as equivalent merely because both eventually landed on the wrong side of the outcome.
For a binary forecast, the negative log-likelihood is
$$ \mathrm{NLL}(p,h) = -\left[ h\log p + (1-h)\log(1-p) \right]. $$
The notation merely implements a switch. If the forecast is correct, \(h=1\), the second term disappears; if it is wrong, \(h=0\), the first term disappears. What remains is a penalty determined by the probability the system assigned to the outcome that actually occurred, so confidence becomes consequential rather than decorative.
Raw surprisal, however, is not yet sufficient, because some forecasting situations are inherently difficult and should not trigger expensive deliberation merely because reality refused to be accommodating. What matters is whether System 1 performed worse than a suitably naive reference forecast, which is why the system maintains a running base rate
$$ b_i = \frac{H_i+1}{i+2}, $$
where \(i\) is the number of forecasts graded so far and \(H_i\) the number that were correct. The \(+1\) and \(+2\) implement Laplace smoothing, preventing an early run of successes or failures from forcing the reference rate prematurely toward certainty when the evidence is still thin.
For each forecast we can then compute
$$ s_{\text{excess}} = \mathrm{NLL}(p_i,h_i) - \mathrm{NLL}(b_i,h_i). $$
The interpretation is more useful than the formula: how much additional surprise did System 1 create relative to a simple historical baseline? Values near zero indicate that the forecast performed roughly as well as the reference model, whereas large positive values indicate something more interesting than mere error. In those cases System 1 was not simply wrong; it was more confident than its historical evidence justified, and that excess confidence produced avoidable information loss.
That is precisely the class of cases for which a slower deliberative subsystem becomes interesting.
Surprise can also come from the world
Forecast error is one source of surprise, but the world itself can also move in ways that deserve attention even before a forecast has had time to fail. Suppose, for example, that a market factor moves far outside its historical range. Under a Gaussian approximation, the relative surprisal associated with a standardized deviation \(z\), ignoring the constant shared by all observations, is
$$ \frac{z^2}{2}. $$
This provides a convenient way to translate unusual movements in heterogeneous variables into a comparable information scale, after which the system can aggregate those deviations without pretending that a change in a bond spread and a change in an equity factor were originally measured in the same units.
For an entity with several factors, the system computes
$$ S_{\text{vel}} = \sum_n \min\left( \frac{z_n^2}{2},C \right) + \frac{1}{2} \sum_n \min\left( \frac{a_n^2}{2},C \right), $$
where \(z_n\) is the standardized velocity of factor \(n\) and \(a_n\) its standardized acceleration. Acceleration receives half the weight because second-order changes are considerably noisier, while each individual contribution is capped at
$$ C=8. $$
Under the Gaussian approximation, eight nats correspond to a four-standard-deviation observation because
$$ \frac{4^2}{2}=8. $$
The cap matters because financial data are not politely Gaussian simply because the equation is convenient. They have heavy tails, discontinuities, regime changes, data errors, and occasional events for which the distinction between “extreme observation” and “wrong statistical assumption” becomes difficult to maintain. Once a reading moves far enough into the tail, allowing the quadratic penalty to grow without limit gives the model increasing confidence precisely where its distributional assumption deserves decreasing trust.
Past that point, a larger score may describe the weakness of the assumed tail model more faithfully than the significance of the event itself.
System 2 needs a trigger, not a mood
A deliberative subsystem should not activate merely because something somewhere looks unusual; if it did, the distinction between fast and slow processing would collapse as soon as the market became interesting, which is roughly when the distinction is needed most. What System 2 requires is not sensitivity alone but memory of unresolved surprise.
Prediction Mind therefore maintains, for each entity, an accumulated surprise charge:
$$ c \leftarrow c\cdot 2^{-\Delta t/h} + \max(0,s). $$
Here \(c\) is the previously accumulated charge, \(\Delta t\) is the elapsed time since the entity was last evaluated, \(h\) is the charge half-life, and \(s\) is newly observed surprise. With the current half-life set to three days, the first term makes old evidence decay exponentially, while the second adds only positive surprise, so calm observations do not mechanically erase evidence that has not yet become irrelevant.
System 2 is recruited when
$$ c > \theta. $$
That produces two behaviors that are difficult to obtain from a simple per-night threshold. A sufficiently severe anomaly can cross the threshold immediately, but a sequence of individually modest deviations can also accumulate until their combined weight becomes large enough to justify deeper analysis. This matters because many failures, whether in markets, software systems, or organizations, do not announce themselves through one spectacular event; they emerge as a persistence of small inconsistencies that remain individually dismissible until the pattern itself becomes the signal.
The charge mechanism gives that persistence an explicit mathematical representation, while preserving the other side of the bargain: ordinary conditions remain cheap because, when nothing accumulates, System 2 has no reason to intervene.
Free energy separates two kinds of model failure
Prediction Mind maintains a probability distribution over nine named market regimes. Each day begins with a prior distribution
$$ \pi $$
and, after incorporating new evidence, ends with a posterior distribution
$$ q. $$
The corresponding variational free-energy expression is
$$ F = D_{\mathrm{KL}}(q\|\pi) - \mathbb{E}_q[\log p(o\mid s)]. $$
The first term,
$$ D_{\mathrm{KL}}(q\|\pi), $$
is the complexity cost, measuring how far the posterior had to move from the prior in order to accommodate the new observation. If the day's evidence changes almost nothing, this quantity remains small; if the evidence forces probability to be redistributed substantially across regimes, it becomes large. That distinction matters because a model that appears to explain every day by radically rewriting its beliefs is not necessarily adaptive in an interesting sense. It may simply be unstable.
The second term,
$$ \mathbb{E}_q[\log p(o\mid s)], $$
captures accuracy, meaning how well the updated distribution over regimes explains the observation once those new beliefs have been taken into account. Together, the two terms allow the system to distinguish situations that a single anomaly score would collapse into the same number.
A large complexity term says that the observation can be accommodated, but only by substantially changing the system's beliefs about which known regime it is in. Poor accuracy without a corresponding useful redistribution says something different: the problem may not be that the system chose the wrong regime, but that none of the regimes it currently represents explains the observation particularly well.
The first pattern suggests belief revision within the model. The second suggests inadequacy of the model itself.
There is, however, an important mathematical limitation that should remain explicit. Because the regime space is small and inference can be computed exactly, free energy evaluated at the exact posterior reduces to observation surprisal:
$$ F=-\log p(o). $$
That equality is an identity of the inference setup rather than an empirical discovery, so the useful information lies less in the scalar value of \(F\) than in its decomposition. Two days can exhibit similar total surprise while differing radically in structure: one may require a substantial shift among known regimes, while another may fit none of them well at all.
Those are different failures, even when the headline number is the same.
From fixed attention weights to empirical reliability
The earlier attention score was
$$ \text{attention} = \max_n w_n|z_n| + \frac{1}{2} \max_n w_n|a_n| + \text{event bonus}. $$
Absolute values are used because an extreme fall may be as informative as an extreme rise, while the maximum is used instead of an average because one genuine break should not disappear simply because several unrelated factors remained quiet. The weakness was not in this aggregation rule but in the weights themselves, since the original \(w_n\) values were hand-set constants and therefore represented design assumptions rather than learned measures of informational reliability.
The revised system estimates an empirical precision proxy for each factor. For factor \(n\), let
$$ \rho_n $$
denote the rank correlation between how unusual that factor appeared when a forecast was opened and how poorly that forecast eventually scored. A factor whose extreme values repeatedly precede forecast errors should matter more to the attention mechanism than one whose excursions have little relationship to subsequent failure, although the system must also remain cautious when the evidence behind that relationship is sparse.
The estimate is therefore
$$ \pi_n = \max(0,\rho_n) \frac{n_n}{n_n+K}, $$
followed by normalization,
$$ w_n = \frac{\pi_n} {\max_m \pi_m}. $$
Here \(n_n\) is the amount of graded evidence available for factor \(n\), while
$$ K=100 $$
acts as a shrinkage pseudo-count. When the sample is small, the estimate remains conservative; as observations accumulate, the measured relationship is allowed to exert progressively more influence. Negative correlations are currently truncated at zero rather than inverted, because an apparent negative relationship under weak evidence is treated as insufficient reason for attention rather than automatically being promoted to the status of a stable contrarian signal.
Strictly speaking, this is not Fristonian precision in its full probabilistic sense. It is an engineering proxy built around the same operational question: which error signals have historically deserved more trust than others?
Keeping that distinction explicit matters, because borrowing a useful concept is one thing; quietly declaring two mathematically different quantities identical is how metaphors acquire tenure.
Correcting intuitive confidence with observed validity
System 1 produces an intuitive forecast, but the mere fact that a model can print a number between zero and one does not make that number calibrated. A system that repeatedly announces 90 percent confidence and succeeds 60 percent of the time does not possess 90 percent evidence; it possesses an optimism problem expressed with suspicious numerical precision.
Kahneman's correction for intuitive prediction begins from a base rate and moves toward the intuitive estimate only to the extent that the evidence has demonstrated predictive validity. The operational form is
$$ \hat p = b+\rho(p_{\text{raw}}-b), $$
where \(p_{\text{raw}}\) is the original confidence stated by the model, \(b\) is the observed base rate for the relevant reference class, and \(\rho\) is the empirically estimated validity of the confidence signal.
The limiting cases make the mechanism clear. If
$$ \rho=0, $$
the model's stated confidence has provided no useful predictive information, so the corrected probability collapses to the base rate,
$$ \hat p=b. $$
If
$$ \rho=1, $$
the confidence signal has demonstrated full validity under this correction rule, and the original estimate is retained unchanged. Real observations should ordinarily lie somewhere between those extremes, which means confidence is treated not as an intrinsic property of the model's answer but as a signal whose reliability has to be learned from performance.
The more important architectural change is that the base rate no longer comes from the language model. It is drawn from the graded record, beginning with the narrowest reference class supported by enough history, such as the same entity and direction, then broadening through direction within regime, event type, and eventually pooled history when necessary. The hierarchy is therefore empirical rather than rhetorical.
The system also records the difference between any base rate implicitly or explicitly assumed by the model and the rate found in the actual historical record, which turns a vague concern about anchoring into a quantity that can be inspected over time. The correction mechanism itself is then subjected to the same discipline: competing correction rules are replayed against historical forecasts, and whichever produces better out-of-sample results earns the right to influence production.
Even calibration, in other words, has to survive calibration.
Deliberative effort should scale with the problem
A single language-model inference is one judgment, and one judgment contains both signal and noise in proportions that cannot be inferred merely by staring harder at the answer. For sufficiently high-charge cases, System 2 can therefore request several independent samples of the same underlying question and aggregate them, not simply because majority voting occasionally improves robustness, but because repeated judgment reveals instability that a single pass cannot expose.
For \(k\) samples, confidence dispersion is
$$ \sigma_{\text{conf}} = \sqrt{ \frac{1}{k} \sum_{i=1}^{k} (p_i-\bar p)^2 }, $$
while directional agreement is
$$ \text{agreement} = \frac{ \#\{i:d_i=d^\star\} }{k}. $$
Here \(p_i\) is the confidence returned by sample \(i\), \(\bar p\) the mean confidence, \(d_i\) the predicted direction, and \(d^\star\) the majority direction. Together, these quantities expose something a single model call necessarily conceals: judgmental instability under repeated evaluation of essentially the same evidence.
A forecast can therefore fail in at least two substantially different ways. It can be systematically biased, producing errors in a consistent direction, or it can be noisy, producing materially different answers when the same case is evaluated again. The former is primarily a calibration problem; the latter is a variance problem. Kahneman, Sibony, and Sunstein make this distinction central in Noise, and the computational implication is straightforward: any system that never asks the same question more than once has almost no direct access to the variability of its own judgments.
Repeated sampling is therefore not merely an answer-improvement technique. It is also an instrument for measuring the reliability of the deliberative process itself.
System 2 can additionally invoke an adversarial pass in which the current thesis, together with the strongest evidence against it, is subjected to a deliberately opposing analysis. This should not be understood as another independent agent competing with Prediction Mind; it is a second deliberative operation within the same System 2 process, introduced because the functional role of criticism is different from the functional role of initial synthesis.
The final confidence can then incorporate both the initial analysis and the challenge raised against it, allowing disagreement inside the deliberative process to become evidence rather than theatre. Repeated sampling and adversarial analysis remain disabled by default, however, because they consume additional model capacity and money, and a system that invokes expensive cognition indiscriminately has merely rediscovered bureaucracy in silicon.
Deliberation must be allowed to agree
One of the most consequential changes is also conceptually simple: System 2 can now conclude that System 1 was already adequate.
Previously, the architecture implicitly rewarded difference because, if the deliberative layer examined a case and arrived at essentially the same conclusion as the fast layer, the result could appear unproductive. That creates the wrong incentive. A deliberative subsystem should be evaluated according to whether it improves decision quality, not according to whether it can invent a disagreement sufficiently elaborate to justify its own existence.
System 2 therefore has three distinct outcomes. It may override the System 1 forecast when deeper analysis provides sufficient reason to change it; it may endorse the original forecast when the additional evidence and reasoning leave the fast conclusion intact; or it may abstain when the available evidence does not support a sufficiently strong commitment in either direction.
Endorsement carries a value difference of zero by construction because the deliberative layer preserves the System 1 forecast, while abstention is evaluated relative to the measured base rate rather than being automatically counted as a failed directional prediction. The distinction is especially important in financial markets, where uncertainty is not an implementation defect waiting to be patched out but a structural feature of the environment.
Kahneman and Gary Klein's work on expert intuition emphasized two requirements for reliable intuitive judgment: sufficient regularity in the environment to make stable relationships learnable, and sufficiently informative feedback for those relationships actually to be learned. Financial markets satisfy these conditions unevenly, sometimes locally and temporarily, which means that a forecasting architecture needs representations not only for “System 1 is wrong,” but also for “System 1 remains adequate” and “the available evidence does not justify a stronger claim.”
The learning system therefore tracks overrides, endorsements, and abstentions as separate cohorts, allowing it to ask a much more meaningful question than whether System 2 frequently disagreed:
When System 2 chose to intervene, did that intervention improve anything that can subsequently be measured?
What deserves thought next?
Triggering System 2 answers one question: whether a case has accumulated enough surprise to deserve deliberation. It does not answer another, equally important one: if several cases cross that threshold simultaneously, which of them should receive scarce computation first?
For that purpose the architecture uses a prioritization score inspired by the pragmatic and epistemic decomposition used in active inference:
$$ G(e) = z(c_e) + \lambda z(\hat v_e) + z(\varepsilon_e). $$
This should be understood as an engineering analogue rather than a literal implementation of the canonical expected-free-energy functional. The resemblance is functional: the score attempts to combine immediate pressure, expected practical benefit, and expected information gain in a form that can guide resource allocation.
The first term,
$$ c_e, $$
is accumulated surprise charge and therefore represents urgency. The second,
$$ \hat v_e, $$
estimates the pragmatic value of deliberating about entity \(e\) by asking how much similar cases have historically improved after System 2 examined them. The third,
$$ \varepsilon_e, $$
represents epistemic value, or how little evidence the system currently possesses about the relevant entity or situation.
For a simple beta-binomial record, the latter is approximated by
$$ \varepsilon_e = \frac{1}{\alpha+\beta}, $$
where \(\alpha\) and \(\beta\) summarize observed successes and failures. Sparse history therefore produces a larger epistemic term, allowing a case to receive attention not merely because it looks dangerous, but because examining it may reduce uncertainty in a region where the system currently knows very little.
The transformation \(z(\cdot)\) places the components on comparable standardized scales, while the parameter
$$ \lambda $$
controls how strongly estimated practical benefit influences prioritization. At present,
$$ \lambda=0, $$
because only 24 graded pairs are available, which is not enough to estimate the value-of-deliberation term with confidence. The quantity is therefore recorded but not yet permitted to influence production behavior, while ranking continues to depend primarily on accumulated surprise and epistemic value.
This is an important design principle throughout the architecture: a mechanism does not have to be trusted merely because it has been implemented. It can run in shadow mode, accumulate evidence about its own usefulness, and remain operationally inert until the record is strong enough to justify giving it influence.
What the theory does, and what it does not do
None of this establishes that Prediction Mind is a cognitive implementation of Kahneman or a biological implementation of Friston, nor would such a claim add much engineering value even if it sounded impressively ambitious in a conference abstract. Kahneman's distinction is used here as an architectural discipline: separate cheap continuous processing from expensive selective deliberation, then make the transition between them explicit and measurable rather than rhetorical.
The Free Energy Principle contributes a different discipline by encouraging prediction, surprise, belief revision, model adequacy, and information value to be expressed probabilistically rather than left as metaphors. Several correspondences nevertheless remain deliberately approximate. The learned factor weight is a practical proxy for signal reliability rather than a complete implementation of precision as used in active inference, while the prioritization score borrows the pragmatic-versus-epistemic distinction from expected free energy without pretending to be the canonical expected-free-energy functional.
Likewise, because regime inference is exact in the current discrete model,
$$ F=-\log p(o) $$
is a mathematical identity of the model and should not be mistaken for evidence that the system has uncovered some deeper physical principle. The value lies in the decomposition and in the operational distinctions it makes visible.
The architecture can now distinguish forecast error from environmental anomaly, confidence from calibration, bias from noise, belief revision from model inadequacy, urgency from information value, and disagreement from useful deliberation, while learned attention weights, confidence correction, regime parameters, and related adaptive mechanisms remain subject to replay against data they were not fitted on before they are permitted to alter production forecasts.
Repeated sampling and adversarial analysis remain disabled unless explicitly enabled because their computational cost is real even when their intellectual appeal is considerable. More generally, no mechanism receives operational authority merely because a theory gave it an attractive name.
Kahneman and Friston provide hypotheses about what distinctions may matter. The architecture turns those distinctions into measurable mechanisms, and the graded record decides whether they deserve to survive.
That is a stricter standard than naming a class System2 and hoping the philosophy somehow happens by inheritance.