The Dawson LedgerMichael W.J. Dawson
Search
← Investing & judgement

essay

The State Estimator: Bayesian Fusion of Incomplete Signals

Michael Dawson × AI Originally 20 November 2025 Revised 9 October 2026

A brass optical instrument on a marble terrace, with coloured beams meeting at a central lens above a coastal landscape at dawn.
AI-generated illustration from The Dawson Ledger
View full artwork →

A market can look healthy in one measure and fragile in another. Output is growing, manufacturers report weaker orders, credit spreads are widening, and a company’s dividend still looks well covered. I need a way to hold those observations together without choosing whichever one suits my position.

That is what I mean by a state estimator: a model that turns incomplete observations into a provisional view of conditions, with the assumptions visible enough to question. A credit state is not a temperature an instrument reads. It is a model’s interpretation, and a number does not remove the uncertainty.

Five Lenses for Reading Monetary Policy describes the policy tools and transmission mechanisms I want to understand. This essay asks how I might combine the evidence. It is a personal research method, with illustrative code and arithmetic, rather than a report of a validated trading engine.

Start with the evidence

I organize the inputs into four families. They answer different questions, so agreement is useful and disagreement deserves attention.

Signal familyExamplesWhat I want to learn
GrowthReal GDP releases, manufacturing surveys, unemployment and initial claimsWhether activity and employment are strengthening or weakening
CreditHigh-yield option-adjusted spreads, loan prices, lending surveys and defaultsWhat borrowers pay for funding and whether lenders are becoming more cautious
PolicyRate decisions, securities purchases and redemptions, fiscal measuresWhich instruments are in use and what they are intended to change
Individual holdingsValuation, net asset value, non-accruals, income and leverageWhether a particular investment differs from the wider environment

The interpretation must respect the indicator. ISM’s Manufacturing PMI reading above or below 50 concerns expansion or contraction in manufacturing, not a mechanical verdict on the whole economy. The Fed’s Senior Loan Officer Opinion Survey asks about lending standards, terms and demand; it is generally quarterly, so an unchanged weekly download is not new evidence.1

High-yield option-adjusted spread is a market measure, not a pure default forecast. It reflects pricing relative to a Treasury curve after adjustment for embedded options. A threshold such as 500 basis points can be a research convention; it is not an official dividing line between safety and danger.2

For a business development company, or BDC, I would examine the asset-level evidence alongside the macro view. A discount to reported net asset value may offer opportunity or reflect a plausible loss of asset value. Income covering a dividend in one reporting period does not establish future coverage. Non-accrual figures need their denominator, valuation basis and reporting date before comparisons are meaningful.

These are questions for research, not fixed buy and sell signals.

The date belongs to the observation

A useful record needs more than a value. It needs the period measured, the release date, the source and the version of the data available when the decision was made.

For example, the BEA released its advance estimate for third-quarter 2024 GDP on 30 October 2024. It reported annualized real growth of 2.8%. That was roughly one month after the quarter ended. Later estimates can differ, so a historical review should retain the advance release if that was what the decision-maker could see.3

The same discipline applies to a quoted spread, an earnings filing and a policy announcement. A current database can be convenient for analysis while still being the wrong evidence for reconstructing an earlier decision.

A Bayesian update you can reproduce

Bayes’ rule expresses how evidence changes a prior belief:

P(R∣E)=P(E∣R)P(R)∑rP(E∣r)P(r)P(R\mid E)=\frac{P(E\mid R)P(R)}{\sum_r P(E\mid r)P(r)}

Here, RR is a state in the model and EE is the evidence. The denominator adds the prior-weighted likelihood across all states under consideration.

For this synthetic teaching example, define three mutually exclusive credit states: benign, neutral and stress. Their economic definitions would need to be specified before fitting a real model. Assume the states cover the possibilities in this deliberately small example.

Suppose a fictional spread rises from 350 to 420 basis points. Define the evidence as a widening into a specified band around 420, rather than treating an exact point in a continuous distribution as an event with positive probability. Choose these priors and likelihoods for demonstration.

The figures in the worked example are rounded.

Credit statePrior P(R)P(R)Assumed likelihood P(E∣R)P(E\mid R)ProductPosterior (rounded)
Benign0.400.100.0409.76%
Neutral0.500.700.35085.37%
Stress0.100.200.0204.88%

The normalizing total is 0.410. The displayed percentages are rounded and sum to 100.01%; the unrounded probabilities sum to one.

Notice something easy to miss: the assumed evidence lowers the probability of both benign and stress relative to the prior. That is what these likelihoods imply. Widening does not automatically increase the estimated probability of the most severe state; in this example it is much more characteristic of the neutral state. If that seems economically implausible, the likelihood assumptions need scrutiny. The arithmetic cannot rescue them.

This small Python example calculates the table:

from math import isclose

# Synthetic assumptions for one evidence event, not fitted market data.
priors = {"benign": 0.40, "neutral": 0.50, "stress": 0.10}
likelihoods = {"benign": 0.10, "neutral": 0.70, "stress": 0.20}

if priors.keys() != likelihoods.keys():
    raise ValueError("The state sets must agree.")
if not isclose(sum(priors.values()), 1.0):
    raise ValueError("Priors must sum to one.")
if not all(0 <= p <= 1 for p in (*priors.values(), *likelihoods.values())):
    raise ValueError("These event probabilities must lie between zero and one.")

joint = {state: priors[state] * likelihoods[state] for state in priors}
evidence_probability = sum(joint.values())
if evidence_probability == 0:
    raise ValueError("The assumed model assigns no probability to this evidence.")

posterior = {
    state: value / evidence_probability
    for state, value in joint.items()
}
for state, probability in posterior.items():
    print(f"{state}: {probability:.2%}")

This implements a calculation. It does not implement data collection, fit the likelihoods, calibrate probabilities or execute an investment strategy.

Selecting neutral because it has the largest posterior is maximum a posteriori, or MAP, classification. Maximum likelihood would instead select the state with the largest likelihood of the observed evidence, without multiplying by the prior. The two rules need not agree.

More signals do not always mean more information

A weighted score can organize judgment. A Bayesian posterior requires a specified probabilistic model. Normalizing arbitrary scores to sum to 100% does not turn them into calibrated probabilities.

Credit spreads, loan prices and lending surveys can respond to the same underlying deterioration. Treating each as independent confirmation risks counting the same information several times.

For multiple signals, the relevant likelihood is joint:

P(E1,E2∣R)=P(E1∣R)P(E2∣E1,R)P(E_1,E_2\mid R)=P(E_1\mid R)P(E_2\mid E_1,R)

Replacing the second factor with P(E2∣R)P(E_2\mid R) assumes conditional independence. That is a substantive modeling choice, not a convenience that becomes harmless when written in code.4

There are several reasonable research paths: estimate a joint model, model the conditional relationships, combine redundant inputs, or use a transparent scoring method while calling it a score. The choice depends on the evidence available. A small, understandable model may be more useful than a complicated one whose apparent precision cannot be defended.

The weights remain judgments too. Assigning credit signals 1.5 times the weight of growth signals expresses a belief about their relevance. It does not prove their reliability. Thresholds, state definitions and the model’s form should be recorded and tested alongside the data.

Keep policy, credit and cycle phase separate

The five policy lenses in the companion essay describe instruments and constraints. A credit state describes financing conditions. A cycle phase describes a broader economic interpretation. They can inform each other without becoming the same classification.

I retain five phase names as a working vocabulary:

PhasePattern I would investigateQuestion for the portfolio
Early expansionActivity and financing conditions improve from a weak base.Is the recovery reaching the businesses I own?
Late expansionActivity is strong while valuations, leverage or capacity pressures warrant attention.What has already been priced in?
TighteningFinancing conditions become more restrictive.Which cash flows and refinancing needs are exposed?
Slowdown or recessionWeakness becomes broader across activity, credit and employment.How much liquidity and resilience do the holdings have?
Early easingPolicy becomes less restrictive while the economic outcome remains uncertain.Is easing preventing damage or responding to damage already under way?

These patterns overlap and their boundaries depend on definitions. Before assigning probabilities across them, I would need a coherent set of distinct states or a model that explicitly permits overlap. “Early easing,” “neutral credit” and “benign conditions” cannot simply share one probability table: they answer different questions.

This also changes how I read a transition. Credit can tighten while the central bank cuts rates. Rather than force both into the word tightening, I can record easing policy, deteriorating credit and uncertain growth separately.

Preserve the path from evidence to judgment

The software idea I want to keep is an inspectable chain:

Observation → interpretation → proposed response → recorded result.

A subject–predicate–object record can represent one part of that chain. The standard word predicate describes the relationship.

This JSON is an illustrative output of the calculation above, not a live extract:

{
  "subject": "Synthetic credit-state example",
  "predicate": "has posterior distribution",
  "object": {
    "benign": 0.09756098,
    "neutral": 0.85365854,
    "stress": 0.04878049
  },
  "status": "calculated from stated synthetic assumptions",
  "calibration": "not established",
  "decision": "review; no trade instruction"
}

The record tells a reader what was calculated and what was not established. A real implementation would also need source references, data vintages, model versions and decision records. This essay describes an approach I keep inspectable.

A model should inform a play, not promise an outcome

Suppose several inputs begin to suggest worsening credit. That could prompt a review of leverage, liquidity, position size or the price of protection. The review is useful even when the exact phase remains uncertain.

Choosing a 40% stress-probability threshold for a review would be a decision rule. It would depend on the consequences of acting early or late, the model’s calibration and the cost of the proposed response. It would not be a boundary the market has agreed to respect.

The same distinction applies to options. Premium received is not total return, a covered call leaves substantial downside exposure, and a rule to consider a collar does not establish an actual portfolio loss limit. The policy essay explains these instrument-level distinctions. An estimator should send me back to those mechanics, not skip them.

A persuasive historical story is exactly what this method is supposed to test. A story that a method would have caught the 2022–23 rally is only a story until it survives a point-in-time test.

Make the method answerable

A useful weekly review would record new releases, check missing or stale values, update the interpretation and note any decision. A quarterly company figure carried forward through four weekly reviews is still one observation.

Periodically, I would ask:

  • Could this view have been reconstructed using only information available at the time?
  • Are correlated inputs making the model more confident without adding information?
  • Do estimated probabilities match outcomes under the stated labeling rules, or merely look precise?
  • Does the method improve on a simple baseline in periods it was not fitted to?
  • What happens when the model is uncertain, a feed is stale or conditions fall outside its experience?

A historical simulation would need data vintages, frozen rules, realistic trading costs and explicit treatment of dividends, assignment and corporate actions. Changing thresholds after seeing the result is model development; it is not independent evidence that the old rule worked. Revisions should become new versions that can be compared with the previous ones.

Sudden shocks remain difficult. A threshold alert may speed up attention, but it cannot guarantee timely protection or a favorable execution price. Allowing the system to say “uncertain” or “insufficient data” is part of making it useful.

My aim is to make my own reasoning harder to evade. I want evidence that can change a view, code that makes the calculation inspectable, and a record that lets me compare what I thought with what happened. That keeps the mechanism-first ambition intact while leaving responsibility where it belongs: with the person using the model.

The same questions about models and judgment continue in Mental Models Before Financial Models, Price and worth and A model worth questioning.

Sources and further reading

Footnotes

  1. Institute for Supply Management, Manufacturing PMI methodology, “About This Report”; Federal Reserve, Senior Loan Officer Opinion Survey. The methodology reference is used for the indicator’s definition, not as a source for a historical market snapshot. ↩

  2. Federal Reserve Bank of St. Louis, ICE BofA US High Yield Index Option-Adjusted Spread, BAMLH0A0HYM2, including the series definition. Numerical thresholds in this essay are illustrative conventions, not thresholds prescribed by the data provider. ↩

  3. Bureau of Economic Analysis, Gross Domestic Product, Third Quarter 2024, Advance Estimate, released 30 October 2024. The cited 2.8% is that release’s annualized estimate. ↩

  4. scikit-learn documentation, Naive Bayes, for the conditional-independence factorization and classification rule. The priors, likelihoods, code and examples here are illustrative; they are not a model fitted or validated by that documentation. ↩