Px Methodology
how the engine calculates
← Back to the briefing

How Px calculates

Every number in the briefing is computed by a deterministic engine from public filings — the same inputs always produce the same output. No AI writes the figures, and nothing is guessed.

This page is the engine with the lid off: each signal's exact formula, the thresholds that turn it green, amber or red, the public source it reads, and a worked example. Click any term you don't know through to the glossary.

DeterministicPure calculation, no language model. Re-run it on the same filings and every digit is identical.
TraceableEach figure comes from a named SEC / central-bank source you can open and check yourself.
Honest about gapsWhere the filing doesn't say, Px shows Unknown — it never fills the hole with a guess.
01How to read a signal

Green is not "safe"

The risk radar reduces each theme to one of four states. They describe what the data shows this run — nothing more.

Green — no warning detected Amber — watch Red — material deterioration Unknown — insufficient data

Green means no warning sign was found in the inputs Px can see — not that a fund is safe, and not advice. Unknown is a real, deliberate state: when a filing doesn't disclose what a signal needs, Px shows Unknown rather than inventing a number. A parser that finds the disclosure but can't recognise its format also returns Unknown rather than a wrong figure.

02The signals, in formulas

Credit Stress

Are public credit markets demanding more compensation for risk? Private marks tend to lag this public signal, so it is an early read.

What it reads
signal = US High-Yield OAS (level, %) + 30-day change (Δ)
Red
level ≥ 5.00%, or rising with a 30-day move of ≥ +0.50 — the market is repricing credit risk materially higher.
Amber
level ≥ 3.75%, or the spread is rising — compensation is elevated or widening; watchful.
Green
below 3.75% and not rising — no broad credit-stress signal in the spread this run.
2.74% · this run
green < 3.75% · amber 3.75–5% · red ≥ 5% — a lower spread is less stress

These are policy thresholds Px uses for triage — not regulatory or market-standard cut-offs. They may be revised as the backtest and price history expand.

Worked example

HY OAS prints 2.74%, falling −0.05 over ~30 days. Below 3.75% and not rising → Green. The note still reminds you green ≠ safe.

Source: FRED — ICE BofA US High-Yield OAS (BAMLH0A0HYM2). Euro and EM HY OAS are tracked alongside for regional context.

Are the funds' own quarter-end marks drifting down? A breadth read across every watched BDC, not a single fund's move.

What it computes
f = funds whose NAV / share fell quarter-over-quarter breadth = f ÷ (all watched BDCs with NAV history)
median = the middle fund's quarter-over-quarter NAV/share change
Red
breadth ≥ 66% falling and the median decline is worse than −3% — broad and deep erosion, not one or two outliers.
Amber
breadth ≥ 66% with a milder median, or breadth ≥ 33% — a mixed-to-broad picture worth monitoring.
Green
fewer than a third falling — most funds held or rose this period.

Why depth as well as breadth: NAV is lagged and model-marked, so a single sharp outlier (shown on its own card) should not flip the whole portfolio red — Red is reserved for erosion that is broad and deep.

Worked example

NAV/share fell at 11 of 12 watched BDCs → breadth 92%, but the median decline is only −2.5%Amber, not Red. One fund at −9.9% shows on its card; it does not, alone, turn the portfolio red. A model-marked, quarter-end number, not a live price.

Source: SEC XBRL — NetAssetValuePerShare from each fund's latest periodic filing. Quarterly and lagged by design.

Yield Quality · dividend coverage

Is the dividend being earned, or paid out of capital? Measured from net investment income (NII), the recurring earnings of a lender.

Per-fund formulas
quarterly NII coverage = NII per share ÷ quarterly common distribution per share × 100% total payout coverage = annualized NII per share ÷ TTM distributions per share × 100%

Two coverages, on purpose. Quarterly annualizes only the latest quarterly common distribution, so a multi-quarter declaration cannot distort it. Total payout sums the trailing twelve months of distributions, catching supplementals and specials. Above 100% means recurring income covers the payout; below means the fund is dipping into capital or gains. The radar flag below runs off quarterly coverage across the funds with comparable SEC facts:

Red
≥ 2 funds below 90% coverage, or any below 90% and they are ≥ 33% of funds with data — broad dividend-cover stress.
Amber
any fund below 90%, or half or more of funds running thin (90–110%) — mixed.
Green
every fund with data covers its quarterly distribution above 110%.
109% · example
red < 90% · amber 90–110% · green > 110% — above 100% the dividend is earned
Worked example

A fund earns $0.48 NII/share and declares a $0.44 quarterly distribution → coverage 109% → "thin cushion" (amber band). If three of five funds sit in the 90–110% band, the portfolio radar reads Amber.

Source: SEC XBRL — InvestmentCompanyInvestmentIncomeLossPerShare, same-period computed NetInvestmentIncome / WeightedAverageNumberOfSharesOutstandingBasic where the per-share tag is stale, and quarterly distribution tags including CommonStockDividendsPerShareDeclared / InvestmentCompanyDistributionToShareholdersPerShare; PSEC uses a validated 10-Q common-distribution table. PIK income reliance (PIK income ÷ total investment income) is parsed from XBRL where issuers tag it; PIK portfolio exposure stays Unknown.

Leverage · asset coverage

How much cushion sits above the legal borrowing limit? BDCs must keep assets at a multiple of their senior debt.

Formula (1940-Act)
asset coverage = (total assets − liabilities excl. senior debt) ÷ senior securities (debt) Regulatory-implied D/E = 1 ÷ (asset coverage − 1)

The 1940-Act floor for most BDCs is 1.5×; higher coverage = more cushion. This D/E is derived from filed asset coverage, not a filed metric — hence regulatory-implied: because the Act lets BDCs exclude SBIC-subsidised and certain other debt from the asset-coverage ratio, it reads healthier than true structural leverage. Full structural D/E — including SBIC and credit facilities — stays Unknown until the facility book is parsed (a Watch Floor upgrade target).

Green
asset coverage ≥ 1.8× — comfortable cushion to the 1.5× floor.
Amber
1.6×–1.8× — in the watch band: above the floor, below comfort.
Red
below 1.6× — thin cushion to the floor.

The portfolio radar takes the weakest fund, so the aggregate is never greener than its worst constituent.

1.72× · weakest fund
red < 1.6× · amber 1.6–1.8× · green ≥ 1.8× — higher coverage is more cushion
Worked example

Asset coverage 1.72× → Regulatory-implied D/E = 1 ÷ (1.72 − 1) = 1.39×. Above the 1.5× floor but below the 1.8× comfort line, so the fund — and any book whose weakest fund sits here — reads Amber on leverage.

Source: SEC XBRL — InvestmentCompanySeniorSecurityIndebtednessAssetCoverageRatio.

Funding / Back Leverage

What filed balance facts can Px read about a BDC's own funding stack? This is the first layer of back-leverage coverage: balances and capacity, not yet pricing or maturities.

What V1 reads
filed debt = latest SEC XBRL debt balance unused facility capacity = remaining/unused borrowing capacity where tagged line drawn = line-of-credit drawn or average outstanding where tagged

The radar is Amber when filed balance facts parse, because the balance layer is observable but still incomplete. Pricing, maturity ladders, collateral haircuts, lender names and amendment terms stay Unknown until the facility footnote parser is validated issuer by issuer. Px does not infer those terms from portfolio-company borrowing tables.

Amber
filed debt/facility-balance facts are parsed for at least one watched BDC, but terms remain incomplete.
Unknown
no comparable filed funding-balance fact was available this run.

Source: SEC XBRL company facts — LongTermDebt, LineOfCreditFacilityRemainingBorrowingCapacity, DebtInstrumentUnusedBorrowingCapacityAmount, LineOfCredit and related balance tags.

Non-accruals

How much of the portfolio has stopped paying interest? A hard, backward-looking signal that a credit has gone bad — parsed from 10-Q text for funds whose disclosure format Px has validated.

Formulas
non-accrual % (fair value) = non-accrual FV ÷ total portfolio FV markdown = (1 − non-accrual FV$ ÷ non-accrual cost$) × 100% ← only when the dollar book is disclosed divergence proxy = (1 − FV% ÷ cost%) × 100% ← when only percentages are given

When a filing reports the non-accrual book in dollars at both cost and fair value, Px computes the true write-down. When it reports only percentages of the portfolio at cost and at fair value (different denominators), Px reports a clearly-labelled divergence proxy, not a markdown. A reading where any leg exceeds 30% of the portfolio is treated as a format misread and returned as Unknown rather than published. This guard exists because a parser that accidentally reads the wrong table can produce impossible-looking percentages — Px would rather return Unknown than publish a dramatic but wrong number.

Worked example

A fund carries 4.2% of portfolio fair value on non-accrual. The filing gives the dollar book at cost $310M and fair value $210M → markdown = (1 − 210 ÷ 310) × 100 ≈ 32% already taken on those names. If only percentages were disclosed, Px would show the divergence proxy instead and say so.

Source: SEC 10-Q / 10-K text, validated per-issuer parsers. Coverage is shown honestly on the briefing's scorecard (e.g. 7/12 watched BDCs this run).

Regulatory Risk

Is there a substantive rule change in the private-credit perimeter, or just procedural noise?

How it scores
drive = high-impact rule items (not procedural / exemptive routine)
Red
a high-impact rule change is flagged in the scan window.
Amber
elevated procedural activity worth watching.
Green
items surfaced, but none substantive — routine procedural / exemptive or context only.

Source: SEC releases and rule dockets, impact-weighted so procedural noise doesn't drive the flag.

ΣThe Px Watch State

One verdict per fund

Each signal above answers one question. The Px Watch State combines them into a single per-fund read — a deterministic synthesis, not a recommendation. Same inputs → same state.

Stable
coverage, NAV, non-accruals and leverage all in normal ranges.
Watch
one soft signal — thin dividend cover, a mild NAV mark-down, or some non-accruals.
Deteriorating
several signals together, or a moderate one — e.g. below-dividend coverage with NAV erosion.
Stress
severe or multiple — sharp NAV decline, coverage well below the dividend, elevated non-accruals, or a red 8-K (acceleration / restatement).
Unknown
too little parsed this run to form a view.

It scores already-parsed inputs — base NII coverage, NAV QoQ, non-accruals (fair value, high-confidence only), asset coverage and PIK reliance — on policy thresholds (tunable), and a red 8-K (acceleration / restatement), which the SEC item number itself identifies, is read as Stress. A routine facility 8-K — an amendment, a revolver extension, a new credit agreement — is shown in the briefing and triggers an alert, but because Px classifies rather than parses its terms (and credit-agreement boilerplate names "covenants" and "events of default" either way), it does not by itself move a fund's verdict. Each fund card shows its state and the top reasons; the BDC section shows the portfolio mix. A triage read across the watched set — never a judgment to buy, sell or hold any fund.

03What the engine reads

Public records only

Px reads the primary public record directly — no scraped secondary reporting, no paywalled text. Each source carries its own cadence and lag, which the briefing states on every figure.

SourceFeedsCadence
SEC XBRL
company facts / concepts
NAV/share, NII/share, dividends, asset coverageQuarterly (filing-driven)
SEC 10-Q / 10-K textNon-accruals (validated issuers)Quarterly
SEC N-PORT
position-level holdings
Per-CLO-ETF: net assets & quarterly trend, issuer/deal concentration, fair-value Level 1/2/3 mix, held-tranche default/arrears/PIK flags, reported coupon & floating share, tranche seniority, stated legal-final maturities, issuer domicile & restricted %, position turnover, and cross-fund overlapQuarterly, lagged
FRED
ICE BofA OAS
SOFR; US IG & HY, Euro HY, Asia and EM (IG / HY / broad) corporate credit spreadsDaily
FRED / OECD
monthly proxies
Japan call rate, China 3-month interbank (policy-stance proxies, tagged monthly)Monthly, lagged
ECB Data Portal
SDMX, free / no key
€STR, euro AAA-government curve; EU credit conditions (Section 6): Bank Lending Survey credit standards & loan demand for enterprises, composite cost of borrowing for corporations, adjusted MFI loan growth to non-financial corporations, and CISS systemic-stress index — euro-area aggregates, walled from the US instrument viewDaily / monthly / quarterly
Bank of England
IADB
SONIA, Bank RateDaily

The global credit tape at the top of each briefing groups these rates and spreads by region. Honest labels are load-bearing: the Asia series is the ICE BofA Asia emerging-markets corporate OAS (not an IG-only gauge); the Japan and China rates are monthly OECD proxies for the policy stance, not the daily target, and are tagged monthly so they never read as live daily prints; and a euro investment-grade corporate OAS has no free public source, so Px shows it as Unknown rather than substitute a mislabelled series.

Provenance and the editorial rules — what Px will never do — are set out in How Px is made.

04Where the engine stops

Limits we won't paper over

This is news & analysis, not investment advice. Px explains what the public record shows and links you to it. What you do with it is your decision.
05Alert logic

Why an alert fires

Px alerts do not fire because a ticker moved. They fire when a watched instrument has a new filing or source update and one or more credit signals changes materially. The alert names what changed and why it earned its colour — you read a reason, not a price tick.

Red
a hard deterioration — e.g. NAV fell sharply and quarterly NII coverage dropped below 90%, or non-accruals jumped.
Amber
worth watching — dividend cover is thin, NAV declined, or non-accruals are present but contained.
Unknown
a watched fund filed, but key fields are not yet parsed — you are still told it filed, with whatever Px could read.
This is what the Watch Floor delivers. The briefing computes these signals for everyone; the Watch Floor turns them into an email the moment your watched fund files and its credit plumbing changes.
Read today's briefingSee these signals computed on this week's filings
Private Credit Intelligence · a research publication of Asakasa Technologies SRL (CUI 54809478)
News & analysis — not investment advice. You decide.