Assay · User Guide

Applies to: Desktop 0.3.2 · Web app at assay.onepbdc.com/m/ · Data package 2026-09-11 · Guide dated 2026-09-15

This guide is for people who use Assay to look at companies.


Contents


0. Before you start: what Assay is, and is not

Assay does one narrow thing: it reads the numbers a listed company signs in its SEC filings and pins the contradictions between them, quarter by quarter, in plain sight. The classic one is "profit is positive, operating cash flow is negative" — both figures are in the filing, both reconcile, and the gap between them cannot lie. Every finding traces back to an EDGAR accession number.

It is made of three instruments, all derived from the same filings, so they never disagree about what a company reported:

Instrument The question it answers
Company Doctor (checkup, vital signs, attribution, prescriptions, Operating Score) Where do this company's latest-quarter numbers fail to add up?
Cockpit and Ledger (universe status, new alerts, insider and congressional trades, Market Weather) Across the whole coverage, who developed a new problem this quarter? Did the market notice?
Daily Forecast and the scoring desk When the system (or you) made a call, how did it fare afterwards — and what did it cost?

Three things it is not. Please read these first:

  1. Not investment advice. It outputs observations and probabilities, tailored to nobody's circumstances. Any decision you make, and its consequences, are yours.
  2. Not a price predictor. The seven-dimension Operating Score was back-tested and has no predictive power for returns; not one registered forecast model has yet produced a consistently positive skill score (skill scores near zero). The interface publishes those negatives as they are.
  3. It detects operating decay, not fraud or off-balance-sheet risk. It reads only structured XBRL fields; off-balance-sheet leverage, refinancing risk, Level 3 valuations and legal liabilities are invisible to it. Companies later named in SEC enforcement actions looked, beforehand, like everyone else on this checkup.

How useful it is has a checkable number. The library holds labels for 203 companies that later filed for bankruptcy (each anchored to an 8-K), 140 of them evaluable. Raising an alarm on "three or more anchored alerts per quarter on average" lights up 142 companies, of which 75 actually went bankrupt (precision 53%) — but simply "has any alert" carries almost no information, since nine in ten companies do. Keep both sentences together.


1. Pick an edition

You want to Use Install Account?
Look at company checkups on a PC, offline Desktop (Windows / Linux) One installer (~130 MB) Not for the free tier; Company Doctor etc. need sign-in + membership
Install nothing, just open it Web app https://assay.onepbdc.com/m/ Nothing (first load a few tens of MB, then cached) Same
Look on a phone, offline Mobile (iOS / Android) In testing, not yet in stores Same
Take the raw data into SQL / a notebook Data package (~20 MB, 22 Parquet files) Anything that reads Parquet No

Desktop, web and mobile run the same front end, the same queries and the same data package; only the shell differs. The page descriptions below apply to all three.

Queries run on your own device. Which companies you look at and what you search never leave your machine. The server does exactly one job — keeping score (sign-in, membership, forecast submissions, paper trading) — because a record has to live somewhere the person being scored cannot edit.


2. Install and first launch

2.1 Windows 10 / 11 (64-bit)

  1. Open https://assay.onepbdc.com/, scroll to Download, and get Assay-0.3.2-Windows.zip (132 MB).
  2. Optional but recommended: verify the hash. The download section prints the zip's SHA-256. In PowerShell: powershell Get-FileHash .\Assay-0.3.2-Windows.zip -Algorithm SHA256 Install only if it matches.
  3. Unzip and double-click Assay.Setup.0.3.2.exe.
  4. The installer is not yet code-signed, so Windows SmartScreen shows "Windows protected your PC". Click More info → Run anyway.
  5. Launch Assay from the Start menu. First launch lands on the Cockpit; no registration needed.

The install folder contains resources\legal\LICENSE and THIRD-PARTY-NOTICES, readable even if the app will not start.

2.2 Linux

A machine without a desktop environment (bare WSL, for example) will lack Electron's runtime libraries and complain about libnspr4.so or similar; install the usual desktop libraries (libnspr4 libnss3 libgtk-3-0t64 libgbm1 libasound2t64 …).

2.3 Web app

Open https://assay.onepbdc.com/m/. On first load a splash screen walks through three stages: downloading the data package (~25 MB), downloading the query engine (~8 MB compressed), and compiling the engine (a few seconds). This happens once; the browser caches everything and later opens are instant. If the connection drops while the page is open, local queries (Company Doctor, insider trades, coverage, …) keep working; reopening the page needs the network.

2.4 What you see first

All three editions open on the Cockpit as a guest: the bottom bar shows Cockpit, Ledger and More, and under More you can open Coverage Check, Data Health and About & Licence. Company Doctor, Operating Score, Market Weather, Insider Trades and Daily Forecast need a sign-in and a membership — see section 3.

2.5 Language

The interface ships complete Chinese and English copy. The default follows your system: Chinese locales get Chinese, everything else English. Switch under the top-right avatar → Language; the sign-in page has a toggle too. The choice is remembered.

Content returned by the backend (company names, the checkup's headline sentences, prescription text, 10-K excerpts) is not translated — it is data, not interface.


3. Accounts, sign-in and membership

3.1 What works without signing in

Guests (and registered accounts without a membership) get the free tier:

The free tier never needs an account — "a record you must pay to inspect is not a record."

3.2 Register

Open any page that needs a sign-in and you land on the sign-in form. Tap "No account yet? Create one":

  1. Choose a password (at least 6 characters).
  2. Type the 4-character captcha (case-insensitive; tap the image for a new one).
  3. Tap Create account.

The system assigns a numeric account ID (e.g. 20000123) and shows it once. Write it down immediately — it is your sign-in name and will not be shown again. No email, phone number or name is required.

Limit: at most 5 registrations per hour from one IP address; wait an hour if refused.

3.3 Sign in

Three fields: Account (the numeric ID — not a username, not an email), Password, Captcha. The password is hashed on your device before it is sent; the plain text never leaves your machine.

Sessions are issued by the scoring server. The same account signed in on desktop and web shares one session; signing out in one place signs out the other.

3.4 Plans and prices

Free Pro Lab
Price $0 $12 / month or $96 / year $29 / month or $240 / year
Cockpit, Ledger vs Ticker, Coverage Check, Data Health ✅ ✅ ✅
Yesterday's Market (top-10 gainers / losers / volume, indices, FX, rates, metals, futures; the checkup score column and the close-vs-estimated-value board need Pro) ✅ ✅ ✅
Company Doctor: vital signs, attribution, prescriptions — ✅ ✅
Operating Score (seven dimensions) — ✅ ✅
Market Weather, Stance — ✅ ✅
Insider and congressional trades — ✅ ✅
Daily Forecast subscription and submissions — ✅ ✅
Paper trading and My Scorecard ✅ ✅ ✅
Strategy Lab (back-tests) — — ✅
API keys for programmatic access — — ✅

Prices are in US dollars; at checkout you can settle in USD or CAD. Billing goes through Stripe; Assay never sees or stores your card number.

3.5 Upgrade, manage, cancel

Upgrade: sign in, open More → Membership, tap "Upgrade to pro" or "Upgrade to lab", choose a currency, and pay on Stripe's checkout page; you are sent back to the app afterwards. Membership takes effect immediately, no re-sign-in needed — every request re-reads the membership table. If the menu has not grown new entries when you return, reload the page once.

Manage / cancel / change card / invoices: More → Membership → Manage subscription opens the Stripe billing portal. After cancelling, access continues to the end of the paid period and then stops; there is no grace period and no retention pop-up.

Refunds (full text at /legal.html on the site):

3.6 Permissions: why some pages are missing

Menus and the bottom bar follow permissions. A page you cannot see is not hidden; the account simply cannot call that group of endpoints. Each page's permission is listed in Appendix B.

When a membership lapses or is revoked, its permissions are withdrawn immediately. Roles changed by an administrator need a fresh sign-in (roles are issued with the session).

If you sign in and a page says "These pages are not open to you yet", it lists the permissions you hold — compare with Appendix B to see which one is missing. Signing in again does not change permissions; do not loop on it.

3.7 Change or forgotten password

3.8 Sign out

Top-right avatar → Sign out. You return to guest status; the free tier keeps working.


4. The interface at a glance

A single-column, phone-first layout (the desktop window caps at 980 px wide).

Bottom bar: Cockpit · Ledger · Doctor · Trade · My Scorecard · More. Which tabs light up depends on permissions; guests see three.

Top-right avatar (shows the last two digits of your account): account, role, permission list, language toggle, sign out.

Ticker strip (top of Cockpit, Company Doctor and others): a search box that matches ticker, company name or industry; by default it lists the companies with the most new alerts this quarter. Once you pick a company, Company Doctor, Operating Score, Insider Trades, Market Weather and Stance share the same current company — no re-selecting when you switch pages.

Status chips (used everywhere):

Shown Meaning
Alert The metric tripped its criterion
Watch Close to the criterion
Not triggered Normal
No basis Cannot be judged — the year-ago base was distorted by a restatement, the prior-year quarter is missing, or the metric is not judged at all. This is not "normal".
New / Ongoing First appeared this quarter / already present last quarter

Colour rules: only the anchored layer (figures that reconcile to the filing) gets semantic colour and counts toward ratings; the structural layer (customer concentration, overdue share, …) is greyed and labelled "not judged". Forecast probabilities are never coloured. Colour always appears together with a text label and never carries meaning alone.


5. Page by page

5.1 Cockpit (free)

The landing page. Four blocks, top to bottom:

  1. Reconciliation gate: "N checks reconciled · zero variance" — the synthesized operating ledger equals the 10-K disclosed totals line by line. A quarter that fails reconciliation is unusable for any judgment, hence it comes first. Desktop and web have no local ledger layer, so the gate is not shown there.
  2. Universe checkup · latest quarter: counts of all checked companies by latest-quarter status (Alert / Watch / Not triggered / No basis). Status is decided by the anchored layer only.
  3. New alerts: companies whose alert findings first appeared this quarter and were absent last quarter. Chronic problems are not re-counted — otherwise an old issue would ring every day. Tap a company to open its Doctor page.
  4. My watchlist: your watchlist (shared with the Daily Forecast; edit it there). Each company shows one anchored finding most worth reading, plus the count of insider-sale filings in the last 90 days and a "year-ago base distorted by restatement" flag. Neither of those is coloured: a sale is a fact, not a judgment; the restatement flag says "this quarter's year-over-year cannot be judged", not "the company got worse" — restated companies look cleaner in the findings, which is exactly why the flag is listed separately.

The footer states "N companies checked · read from a materialized snapshot · not real-time" with the snapshot time.

5.2 Ledger vs Ticker (free)

A company's operating ledger and its share price on one chart.

This page needs prices, so desktop and web hand it to the server. Offline it shows "the local edition has no market data" — not a fault.

5.3 Company Doctor (Pro)

A checkup report for one company, one fiscal quarter. After picking a company, top to bottom:

Scope note: how many anchored metrics were examined, and the five categories explicitly out of scope: off-balance-sheet leverage, debt maturity structure, Level 3 assets, legal liabilities, refinancing risk.

Anchored: one card per finding, each with

Normal findings are folded under "N more normal signs"; expand to read them.

Anchored metrics include: revenue, gross margin, net margin, contract liabilities, operating cash flow, cash conversion (OCF / revenue), DSO, DIO, DPO, cash conversion cycle, accrual ratio, TTM free cash flow, profit without cash, payables-propped cash, net debt / OCF, shareholder equity (negative equity), HTM securities eroding equity (financials), ROIC minus cost of capital and its durability, capex intensity, incremental ROIC, invested-capital change, working-capital model, and the YoY baseline (restatement).

Structural: customer concentration, overdue receivables share, order count, active customers. The whole block is greyed and titled "not judged" — these numbers reflect generator configuration, not the company (filings do not disclose them; nothing to reconcile against).

Prescriptions: this quarter's entries, each generated by a model from reconciled data and each required to quote a passage of the 10-K. "Quote verified" entries link to the filing on EDGAR; "No filing quote to support it" marks reasoning, not evidence. Older quarters' prescriptions are not mixed in; only their count is noted.

5.4 Operating Score (Pro)

More → Operating Score. The Doctor's findings grouped into seven dimensions, each starting at 100 and losing 25 per Alert and 10 per Watch, floored at 0.

Dimension What it reads
Financial health Net debt / OCF, return on capital, accrual ratio, free cash flow, HTM unrealized losses
Growth Revenue, net income, gross and net margin YoY, contract liabilities
Risk DSO, DIO, CCC, capex intensity
Peer comparison Cross-sectional findings against the same industry in the same calendar quarter
Disclosure credibility Restatement history, bankruptcy filings, SEC enforcement
Insider flow Form 4 open-market trades, relative position within the same quarter's cross-section
Valuation P/E rank within industry and quarter (P/S and P/B shown but not scored)

5.5 Market Weather (Pro)

Volume, price and the checkup read as weather. This is observation, not forecast — the icons describe the quarter that already happened.

5.6 Stance (Pro)

Existing conclusions summed by weight and normalised into Long / Hold / Short leans. Weights: checkup 2.5 > quadrant 2.0 > reading 1.5 > revenue YoY 1.0 > CCC YoY 0.75.

These are leans, not probabilities — they answer "which way does the evidence tip, and how clearly", not "what are the odds it goes up". The page ends with a falsification chart (universe-wide, independent of the selected company): forward excess return by stance bucket at entry time, ±2 standard errors. All three buckets sit on the zero line — the reading shows no directional effect, which is a result, not a fault.

5.7 Insider Trades (Pro)

Selling is routine; buying is rare (81k buys vs 353k sells in the library), so only buys are coloured. This page is fact, not a buy signal: "insider buying" was built as a forecast signal and scored a skill of −0.0016 — statistically zero.

5.8 Daily Forecast (Pro)

One brief per trading day at 18:30 New York time.

Subscribe: tap "Subscribe to the daily forecast". Optionally set a watchlist (comma-separated tickers; empty = all; it only changes which rows the brief shows you, never the brief itself) and an email (empty = no mail; if set, each issue is sent as plain text with the count in the subject; the in-app inbox is the delivery of record, email is only a reminder).

Inbox: issues listed with an unread count. You receive an issue even on days with no forecast, saying "No new forecast today" with the rolling score attached — otherwise, two quiet weeks would be indistinguishable from a dead system.

Brief: a table of ticker, horizon (5 / 21 / 63 trading days), model probability and climatology baseline. Probabilities are never coloured — what matters is the gap to climatology. An issued brief is never rewritten.

Rolling score: two columns, Live and Backfill. Each gives per-model Brier, baseline Brier, skill and actual hit rate.

Account score: each contributor (all model names merged per account) with points balance, settled count and skill. Calibration: of the times it said 60%, did about 60% happen? Buckets with fewer than 50 forecasts are not drawn.

The scorecard does not require a subscription: public endpoint https://app.assay.onepbdc.com/api/lt/dx/forecast/scorecard, also answered locally on desktop. At the end of each trading day the hashes of that day's forecasts, baselines and checkup snapshot are written into an evidence file and pushed to the public repository https://github.com/wr169/assay-data, each chained to the previous — anyone can verify that issued records were not altered.

5.9 Submit a Forecast (Pro)

Hand your own signal to the scoring machine to be settled, benchmarked and scored.

Form: ticker (must have price data), horizon (5 / 21 / 63 days, default 21), probability (the probability that this stock beats the equal-weighted universe over the window, strictly between 0 and 100), model name (your own, e.g. MOMENTUM), basis (why — a probability without a rationale is unexplainable afterwards).

You get a receipt: your probability, today's climatology baseline, and how many settled observations the baseline was estimated from. The forecast cannot be edited; it settles automatically when the window closes.

Five rules (each one is a refusal, not a correction):

  1. The information cut-off is today — no date parameter is accepted.
  2. Out-of-range probabilities are rejected, not clamped.
  3. The ticker must have price data, or it could never settle.
  4. One forecast per day per ticker per horizon per model; to revise, use another model name.
  5. Today's climatology baseline must already be published (it goes out with the 18:30 brief; submissions before that are refused).

Every submission stakes points. Each contributor has a fixed, non-refillable budget of points (no real money is involved). Each forecast opens a binary position against the day's baseline: above baseline buys YES, below buys NO; the stake is Kelly-sized by how far your probability sits from the baseline, and is deducted at submission. Right calls pay out, wrong calls go to zero; a depleted account is sealed and cannot restart. It answers the half of the question the scorecard cannot: what did you put behind what you said?

My submissions: each forecast with its state (pending / beat / missed). Pending is not a fault: a 63-day window naturally hangs for three months.

5.10 Coverage Check (free)

The question to ask before subscribing: how many of my holdings are covered?

Paste tickers (commas, spaces and newlines all separate; up to 500 at once) and tap "Check coverage". Each ticker comes back with seven layers: anchor, prices, checkup, prescription, segments, ledger, weather.

Three-state legend: filled = present; hollow = checked, absent; dashed with a question mark = this layer cannot answer right now. The last two are never the same thing — desktop has no local prices, ledger or weather, so those layers are drawn as question marks rather than declared "absent".

Tickers missing from the master list are marked "not in master": a typo, not on the SEC list, or delisted.

5.11 Data Health (free)

Answers "what day is this system's data stuck on". A read-only backend being "alive" says almost nothing; what actually breaks is an upstream source stopping — every endpoint keeps returning fine, the content just quietly freezes on a date.

This endpoint needs no sign-in: https://app.assay.onepbdc.com/api/lt/status; it returns aggregate counts and timestamps only.

5.12 Strategy Lab (Lab)

Compresses "idea → signal → back-test" into minutes. Its value is cheap trial, not endorsement: a quarterly signal on one stock over four or five years gives a dozen rebalances, so return differences are mostly noise.

Three tabs:

Technical: a single-stock moving-average rule. Parameters: MA length (default 20), buy multiple (default 1.05 — buy when price crosses 1.05 × MA), sell multiple (default 0.90), one-way fee in basis points (default 3).

Diagnostic: tick a set of Doctor statuses (Alert / Watch / Not triggered / No basis) and hold only while the company's checkup is in one of them. Entry is always the first trading day after the filing date — aligning to quarter-end is look-ahead.

Wall St.: ten literature templates.

Template Parameters Note
Earnings drift (PEAD) SUE threshold, holding days Entry anchored to the first trading day after the 10-Q/10-K filing date
Fundamental factor Factor (composite / low accruals / high gross profit ÷ assets / low asset growth / buybacks), percentile threshold Hold when the filing-day cross-sectional percentile ≥ threshold
Pairs (long leg) Peer ticker, formation window, entry z, exit z Long leg only; the NAV contains market direction
Trend following Rule (past return positive / above SMA), lookback, skip, SMA, monthly or daily Flat when trend is off; no shorting
Follow insider buys / Follow Congress buys Amount threshold, buyers, cluster window, holding days Anchored to the day after the filing date; Congress data starts in 2025; companies with no filings say so
52-week high / MA crossover / RSI oversold bounce / Calendar effect Their own windows and thresholds Price only; each note states how the rule fared in the pool tests

Tap "Run backtest". Results: strategy vs buy-and-hold total and annualized return, signals / usable / held, trade count, wins / losses, average win / loss, exposure, years, NAV curve (normalized to 1), by-year table, trade list, and whether the strategy is holding or flat at the end of the range. That end state uses the last daily bar in the library, not the current market.

Trial registry (always at the foot of the page): every pool-wide test this project has run on "does this rule predict returns", one row each, never deleted or edited — hypothesis, sample, result, verdict (passed / thin / no power / reversed / withdrawn) and any forecast model it was promoted to. The header shows the number tested and the hurdle for the next hypothesis: the larger of 2.78 (single test), 3.0 (family floor) and the Bonferroni value for that count. Testing twenty rules and reporting one is not the same as testing one, and the hurdle should not be the same either. Single-ticker backtest returns are not evidence; the evidence is this registry, and most of it is negative.

5.13 Trade (paper trading; any registered account)

A simulated book with USD 100,000 of virtual cash and one closing auction per trading day as the only fill opportunity.

5.14 My Scorecard (any registered account)

Two tracks that answer different questions; do not read them together:

You can pick the right company and still get stopped out — the buy call is positive, the round trip is negative, and both are correct. With few trades a hit rate or an average says nothing; the page warns you.

5.15 Other pages


6. Data and updates

6.1 The data package and updates

A new package ships weekly (published on Sundays). Everything in it comes from public SEC filings (public domain) and Assay's own derived output; no third-party market prices. The current version is assay-public-2026-09-11.zip, about 20 MB, 22 Parquet files, with MANIFEST.json (bytes and sha256 per file, plus the datasets excluded and why) and SHA256SUMS.

The local package can be up to a week older than the server. Data Health shows the package date.

6.2 Verification

A failed check does not block launch (you may have deliberately swapped in a trimmed package of your own); it just says which file does not match.

6.3 Desktop / web: what runs locally

Queries take one of two routes: whatever can be answered locally is answered locally (even when connected to the server); the rest goes to the scoring server.

Answered locally (works offline) Sent to the server (needs network)
Company list, Company Doctor checkup / findings / attribution / prescriptions, 10-K narrative Ledger vs Ticker, market language
Operating Score, six dimensions (the seventh, valuation, and the two prices need market data) Market Weather, Stance, valuation
Insider trades, congressional trades, restatement detection Strategy Lab back-tests
Coverage Check (prices / ledger / weather drawn as question marks) Sign-in, membership, paper trading, scorecard
Data Health (local package), forecast scorecard Daily brief, subscription, submissions

When the server is unreachable only the right-hand column is affected, and the error says which side is down; the left column keeps working.

6.4 Fully offline mode (optional)

Desktop ships pointed at https://app.assay.onepbdc.com. To make it never touch the network: create config.json inside the resources folder of the install directory containing { "remote": "" } and restart. The app then injects a local session (with LEDGER_VIEW + DOCTOR_VIEW) instead of a guest one, so Company Doctor and the other local pages open without signing in; server-only pages show "not in the local edition" with a reason.


7. How to read the numbers (required)

Not every number in this library is equally trustworthy. This section matters more than any feature.

7.1 Two layers. Anchored = reconciles to the filing; coloured; rated. Structural = customer concentration, overdue share, order size and the like, derived from generator parameters; greyed; not judged. Three companies in unrelated businesses all show top-10 customer share around 30% — that is a configuration value, not a fact.

7.2 Three states, not two. "Checked, absent" and "cannot answer this layer" are never the same. When you see the dashed question mark, do not conclude on its behalf.

7.3 "No basis" is not "normal". When a later restatement distorts the year-ago base, the Doctor demotes that finding to no-basis instead of raising a false alert; the company then looks cleaner, which is why the Cockpit lists the restatement flag separately.

7.4 New is the signal. Sort by "New" to find the quarters where something actually happened; a chronic problem should not be re-reported every quarter.

7.5 Density beats presence. Nine in ten companies have had an alert; what separates them is "three or more per quarter on average". Even then precision is 53%, and the lowest score decile's one-year bankruptcy rate is 6.7% — 93% false alarms, though 2.7× the base rate.

7.6 Read skill, not probability. Forecasts are probabilities, not directions; each carries a same-ticker, same-day, same-window climatology baseline (the unconditional hit rate), and skill is the difference in Brier scores. A Brier without a baseline is an uninterpretable number. No registered model has yet shown consistently positive skill.

7.7 Insider selling is not bearish. Sales are mostly routine post-vesting disposals (sells : buys ≈ 4 : 1); buys are someone staking their own money — and even the "insider buying" signal scored zero skill.

7.8 In-quarter returns contain look-ahead. That move happened before the filing was public; to judge "did the market read this filing", use the post-filing window only.

7.9 A high back-test return does not make a strategy valid. A dozen rebalances on one stock is mostly noise; in the universe-wide test neither trend rule beat buy-and-hold.


8. FAQ and troubleshooting

Symptom Cause What to do
Windows says "protected your PC" Installer not code-signed More info → Run anyway; verify SHA-256 before installing
Only three tabs / no Company Doctor under More Guest or free account; DOCTOR_VIEW missing Sign in and subscribe to Pro; reload after paying
"These pages are not open to you yet" Missing that page's permission Compare the listed permissions with Appendix B; signing in again changes nothing
Paid but the menu did not change Membership state not re-fetched yet Reload; if still missing, sign out and in; then email with your account number
Sign-in says the account is wrong You typed a username / email The account is the number assigned at registration
Forgot password No self-service reset Email support@onepbdc.com with your account number
Registration refused 5 per hour per IP Wait an hour
"The local edition has no market data" / "no such endpoint" Desktop offline, or the feature is server-side Normal; goes to the server once online
"Cannot reach the scoring server" Network or server Local diagnostics keep working; retry later; status at https://app.assay.onepbdc.com/api/lt/status
"Offline — check you are still on the same Wi-Fi" Device offline Check the connection
A page does nothing when tapped (web) Front end just redeployed; the old page references retired chunks The page reloads itself once; otherwise refresh manually
Question marks on Coverage Check Layer cannot answer locally Normal, see 7.2
Operating Score shows no total Fewer than 4 computable dimensions Normal
Question marks in weather history Those quarters cannot be read Normal; usually the prior-year volume baseline is missing
"Pending" for a long time 63-day windows take three months Normal; only a settled count that never grows is abnormal
Data Health says "mismatch" A package file was altered or the download was incomplete "Download and switch" again from Data Health, or reinstall
Web app stuck on the sign-in form Private window blocked local storage Use a normal window
Want to see which endpoints the app calls (desktop) — Run from source with npm run serve; the terminal prints every [api] line

9. Privacy, terms and contact


Appendix A: Glossary

Term Meaning
Anchor Quarterly financials aligned by filing date and restatement-aware, from SEC XBRL
Anchored / structural layer Metrics that reconcile to the filing / metrics derived from generator parameters (not judged)
Finding The Doctor's verdict on one metric in one quarter: Alert / Watch / Not triggered / No basis
New / Ongoing (onset) First appeared this quarter / already present last quarter
Prescription A model-written note on a new alert, required to quote the 10-K
Restatement The company later rewrote last year's figures, distorting the YoY base
CCC / DSO / DIO / DPO Cash conversion cycle / days sales outstanding / days inventory / days payables
Accrual ratio (TTM net income − TTM operating cash flow) ÷ average total assets; higher means more profit that did not become cash
Climatology The unconditional hit rate for the same ticker, day and window; what a forecast must beat
Brier / skill Mean squared error of a probability forecast (lower is better; random = 0.25) / 1 − model Brier ÷ baseline Brier (positive = skill)
Quantiles / quantile skill The 5 / 25 / 50 / 75 / 95% quantiles of forward excess return (the brief shows the median and worst 5%) / the same skill formula with pinball loss; positive = skill
Calibration Of the times it said 60%, did about 60% happen?
Live / backfill Scores settled on forward-issued forecasts / scores replayed on history (greyed, reference only)
Kelly stake A stake sized by the gap between your probability and the baseline; reporting your honest probability is the only optimum
Front A company whose price rose after the filing while the checkup says something is wrong
Materialized snapshot A pre-computed summary the pages read instead of computing live; carries a refresh time
Form 4 The per-trade insider transaction filing
PEAD Post-earnings-announcement drift
Evidence chain (attest) Daily hash files pushed to a public repository, each chained to the previous, for verifying that issued records were not altered

Appendix B: Pages and permissions

Page Where Permission Who has it
Cockpit Bottom bar LEDGER_VIEW Guest / free
Ledger vs Ticker Bottom bar LEDGER_VIEW Guest / free
Coverage Check More LEDGER_VIEW Guest / free
Data Health More Any session (the endpoint itself is public) Guest / free
About & Licence, Change Password More Any session All accounts
Company Doctor Bottom bar DOCTOR_VIEW Pro / Lab
Operating Score, Stance, Market Weather, Insider Trades More DOCTOR_VIEW Pro / Lab
Daily Forecast, Submit a Forecast More DOCTOR_VIEW Pro / Lab
Strategy Lab More BACKTEST_RUN Lab
Trade Bottom bar ORDER_PLACE or ACCOUNT_VIEW Every registered account
My Scorecard More ACCOUNT_VIEW Every registered account
User Admin More ADMIN_OPS Administrators

In fully offline mode (6.4) the local session carries LEDGER_VIEW + DOCTOR_VIEW, so Company Doctor and the other local pages open without signing in.

Assay 试金 · 用户使用手册

适用版本:桌面版 0.3.2 · 网页版 assay.onepbdc.com/m/ · 数据包 2026-09-11 · 手册日期 2026-09-15

这份手册写给用 Assay 看公司的人。


目录


0. 读之前:Assay 是什么,不是什么

Assay 做的是一件很窄的事:读一家上市公司自己向美国证监会(SEC)申报并签了字的数字,把这些数字之间的矛盾按季度钉在明面上。 典型的一条是「利润为正、经营现金流为负」——两个数都在财报里、都能对账,它们的差说不了谎。每一条结论都能追溯到 EDGAR 上的申报编号。

它由三样东西组成,都算自同一批申报,因此彼此不会打架:

仪器 答的问题
企业医生(体检、体征、归因、处方、经营评分) 这家公司最近一季的账,哪里对不上?
驾驶舱与经营对股价(全池状态、新增预警、内部人与议员交易、股市天气) 整个覆盖池里,谁本季出了新问题?市场读没读懂?
每日预报与记分台 系统(和你)说过的话,事后准不准?为此付出过什么?

它不是什么,请先记住三句:

  1. 不是投资建议。 它输出的是观察与概率,不针对任何人的具体情况;任何买卖决定与后果由你自己承担。
  2. 不预测股价。 七维经营评分回测过,对收益没有预测力;至今没有一个已注册的预报模型稳定跑出正的 skill score(接近零)。界面上会把这些负结果照登,不美化。
  3. 抓经营衰竭,不抓造假与表外风险。 它只读 XBRL 结构化字段:表外杠杆、再融资风险、Level 3 估值、法律负债读不到。被 SEC 点名的公司,事前在这套体检上和别人长得一样。

它有多大用,有可复核的数字:库里 203 家后来真的申请破产的公司标签(每条带 8-K 编号),其中 140 家可评。按「平均每季 ≥3 条锚定层异常」拉警报,点亮的 142 家里 75 家真破产(精确率 53%);但单看「有没有异常」几乎没有信息量——九成的公司都有。这两句话要一起记。


1. 选一种用法

你想 用这个 要装什么 要账号吗
在电脑上离线看公司体检 桌面版(Windows / Linux) 一个安装包(约 130 MB) 免费功能不要;企业医生等要登录 + 会员
什么都不装、打开就看 网页版 https://assay.onepbdc.com/m/ 无(首次加载约几十 MB,之后缓存) 同上
在手机上离线看 手机版(iOS / Android) 测试中,尚未上架 同上
拿原始数据自己写 SQL / 进 notebook 数据包(约 20 MB,22 个 parquet) 任何能读 parquet 的工具 不要

桌面版、网页版、手机版跑的是同一套前端、同一份查询、同一个数据包,只是壳不同。手册后面的页面说明对三者通用。

查询在你自己的设备上跑。 你看了哪家公司、搜了什么,不会离开你的机器。服务器只做一件事:记分(登录、会员、预报投稿、纸上交易)——记录必须放在被记分的人改不了的地方。


2. 安装与首次打开

2.1 Windows 10 / 11(64 位)

  1. 打开官网 https://assay.onepbdc.com/,滚到 Download 区,下载 Assay-0.3.2-Windows.zip(132 MB)。
  2. 可选但推荐:核对哈希。官网下载区印着这个 zip 的 SHA-256,在 PowerShell 里跑 powershell Get-FileHash .\Assay-0.3.2-Windows.zip -Algorithm SHA256 对得上再装。
  3. 解压,双击 Assay.Setup.0.3.2.exe。
  4. 安装包尚未做代码签名,Windows SmartScreen 会弹「Windows 已保护你的电脑」。点 更多信息 → 仍要运行。
  5. 安装完成后从开始菜单打开 Assay。首次启动直接进驾驶舱,不需要注册。

安装目录下有 resources\legal\LICENSE 与 THIRD-PARTY-NOTICES,就算应用打不开也能直接读条款原文。

2.2 Linux

无桌面环境的机器(比如裸 WSL)会缺 Electron 的运行库,报 libnspr4.so 之类的错误;装上 libnspr4 libnss3 libgtk-3-0t64 libgbm1 libasound2t64 等常见桌面库即可。

2.3 网页版

浏览器打开 https://assay.onepbdc.com/m/。首次打开会有一个启动画面,进度条走完三段:下载数据包(约 25 MB)、下载查询引擎(约 8 MB 压缩包)、编译引擎(几秒)。这些只下载一次,之后浏览器缓存住,再开就是秒开。页面打开后即使断网,本地查询(企业医生、内部人、覆盖率等)仍然能用;但重新打开页面需要联网。

2.4 首次打开看到什么

三种版本首次打开都是驾驶舱,且都以访客身份运行:底栏能看到「驾驶舱」「经营对股价」「更多」,「更多」里能进「覆盖率查询」「数据健康」「关于与许可」。企业医生、经营评分、股市天气、内部人交易、每日预报这些要登录并开通会员,见第 3 节。

2.5 语言

界面有中文与英文两套完整文案。默认跟系统走:中文环境显示中文,其余显示英文。切换在右上角头像 → 语言,登录页右上角也有切换按钮。选择会记住。

后端返回的内容(公司名、体检结论原句、处方正文、10-K 原文摘录)不翻译——它们是数据,不是界面。


3. 账号、登录与会员

3.1 不登录能用什么

访客(以及注册后没买会员的账号)拥有免费层:

免费层不需要账号,也永远不需要——「一份要付钱才能查验的记录不是记录」。

3.2 注册

在任何需要登录的页面点进去会落到登录页,点 「还没有账号?创建一个」:

  1. 设一个密码(至少 6 位)。
  2. 输入 4 位验证码(不分大小写;点图片可以换一张)。
  3. 点 创建账号。

系统会分配一个数字账号(例如 20000123)并显示出来。请立刻记下这个数字——它就是你的登录账号,之后不会再显示第二次。 注册不需要邮箱、手机号或姓名。

限制:同一 IP 每小时最多注册 5 个账号,超过会被拒;等一小时再试。

3.3 登录

登录页三个框:账号(数字 uid,不是用户名,不是邮箱)、密码、验证码。密码在你的设备上先做哈希再上送,明文不出你的机器。

登录会话由记分服务器签发。同一个账号在桌面版、网页版登录的是同一份会话;在一处退出,另一处也一并失效。

3.4 套餐与价格

免费 Pro Lab
价格 $0 $12 / 月,或 $96 / 年 $29 / 月,或 $240 / 年
驾驶舱、经营对股价、覆盖率、数据健康 ✅ ✅ ✅
昨日行情(涨跌 / 成交量前十、指数、外汇、利率、贵金属、期货;榜上的体检分与「收盘 vs 估算价值」两组要 Pro) ✅ ✅ ✅
企业医生:体征、归因、处方 — ✅ ✅
经营评分(七维) — ✅ ✅
股市天气、三态倾向 — ✅ ✅
内部人交易、议员交易 — ✅ ✅
每日预报订阅与投稿 — ✅ ✅
纸上交易与我的成绩单 ✅ ✅ ✅
策略实验室(回测) — — ✅
API key 程序化取数 — — ✅

价格以美元计,结账时可以选 USD 或 CAD 结算。通过 Stripe 收款,Assay 不接触也不存储你的卡号。

3.5 开通、管理与取消

开通:登录后进 更多 → 会员,点 「升级到 pro」 或 「升级到 lab」,选币种,会跳到 Stripe 的结账页面付款;付完自动跳回应用。会员立即生效,不用重新登录——每个请求都重新查会员表。回来后如果菜单没多出条目,刷新一次页面。

管理 / 取消 / 换卡 / 看发票:更多 → 会员 → 管理订阅,进 Stripe 账单门户。取消后已付周期内照常使用,到期即止;没有宽限期,也没有挽留弹窗。

退款规则(全文见官网 /legal.html):

3.6 权限点:为什么有的页面看不到

菜单和底栏按权限点显示。看不到某一页,不是被藏起来了,而是这个账号当前调不动那组接口。各页面对应的权限点见 附录 B。

会员到期或撤销,对应权限立即收回;管理员改的角色则要重新登录才生效(角色随会话签发)。

如果你登录后进到某页看到「这些页面还没对你开放」,页面会列出你当前持有的权限点——对照附录 B 就知道缺哪一个。重新登录不会改变权限,别反复登录。

3.7 修改密码 / 忘记密码

3.8 退出登录

右上角头像 → 退出登录。退出后回到访客身份,免费层照常可用。


4. 界面总览

界面是一列式的窄栏设计(手机优先,桌面版最宽 980 px)。

底栏:驾驶舱 · 经营对股价 · 企业医生 · 交易 · 我的成绩单 · 更多。哪几格亮由权限点决定;访客只有三格。

右上角头像(显示账号末两位):账号、角色、权限点清单、语言切换、退出登录。

公司代码条(驾驶舱、企业医生等页顶部):一个搜索框,输代码、公司名或行业都能搜;默认列出本季新增预警最多的若干家。选中一家后,企业医生、经营评分、内部人、股市天气、三态倾向这些页共用同一个当前公司,切页不用重选。

状态芯片(贯穿全篇):

显示 含义
异常(ALERT) 该项指标触发了判据
关注(WATCH) 接近判据
未触发(NORMAL) 正常
不判定(NOT_JUDGED / NO_BASIS) 判不出——同比基准被重述扭曲、缺去年同季数据、或指标本身不参与判定。它不是「正常」。
新增 / 持续 本季首次出现 / 上季已有

颜色约定:只有能对回财报的锚定层才带语义色并参与评级;结构层(客户集中度、逾期占比这类)一律灰化,标题直书「不参与判定」。预报概率一律不着色。颜色永远和文字标签同时出现,不单独承载含义。


5. 逐页说明

5.1 驾驶舱(免费)

打开即到。四块,自上而下:

  1. 对账闸门:「N 项对账 · 零差异」——合成的经营总账与 10-K 披露值逐项相等。对不上的财季不可用于任何判断,所以放在最前。桌面版 / 网页版本地没有这一层,不显示。
  2. 全池体检 · 最新财季:所有已体检公司按最新财季的状态计数(异常 / 关注 / 未触发 / 不判定)。状态只由锚定层决定。
  3. 新增预警:本季首次出现、上季没有的异常体征的公司清单。持续存在的老问题不重复计入——否则一个老问题会天天报警。点任一家进企业医生。
  4. 我的关注:你的关注列表(与每日预报共用同一份,在预报页编辑)。每家只列一条最该看的锚定层体征,另附近 90 天内部人卖出申报数与「同比基准被重述扭曲」标记。后两者不着色:一笔卖出是事实不是判断;重述标记说的是「这一季的同比没法判」,而不是公司变差——被重述扭曲的公司在体征里反而显得更「干净」,所以必须单独标出来。

页脚写着「N 家公司完成体检 · 数据读自物化快照 · 非实时」和快照时间。

5.2 经营对股价(免费)

把一家公司的经营账本和股价放在同一张图上。

这一页要行情,桌面版与网页版会把它交给服务器答。离线时显示「本地版不含行情」,不是故障。

5.3 企业医生(Pro)

对一家公司一个财季的体检报告。选好公司后自上而下:

检查范围说明:本次检查了多少项能对回财报的锚定层指标,以及明确不在范围内的五类:表外杠杆的真实性、融资期限结构、Level 3 资产、法律负债、再融资风险。

锚定层:逐项体征卡片,每张含

正常的体征折叠在「另有 N 项正常体征」里,点开可看。

锚定层的指标包括:收入、毛利率、净利率、合同负债、经营现金流、经营现金流占收入、应收周转(DSO)、存货周转(DIO)、应付周转(DPO)、现金转换周期、应计比率、滚动四季自由现金流、利润未变现金、应付撑起的现金、净负债 / 经营现金流、股东权益(负权益)、持有到期证券侵蚀权益(金融机构)、ROIC 减资本成本及其持续季数、资本开支强度、增量 ROIC、投入资本变化、营运资金模式、同比基准(重述)。

结构层:客户集中度、逾期应收占比、订单笔数、活跃客户数。整块灰化,标题写「不参与判定」——这些数字反映的是生成器配置,不是这家公司(财报不披露,无从对账)。

处方:本季的处方条目,每条由模型基于对账后的数据生成,必须挂一段 10-K 原文。带「原文已核验」的可点「10-K 原文」跳到 EDGAR;标「无披露原文支撑」的是推理,不是依据。更早财季的处方不混在本页,只提示数量。

5.4 经营评分(Pro)

「更多 → 经营评分」。把企业医生的体征归成七维,各维从 100 起扣:每条异常扣 25、每条关注扣 10,扣到 0 为止。

维 看什么
财务体质 净负债对经营现金流、资本回报、应计比率、自由现金流、HTM 浮亏
成长性 收入、净利、毛利率、净利率同比,合同负债
风险 DSO、DIO、CCC、资本开支强度
产业比较 同行业、同日历季度的横向体征
披露可信度 重述史、破产申请、SEC 执法
筹码流向 Form 4 公开市场买卖在同季横截面里的相对位置
估值高低 同行业同季市盈率排名(市销率、市净率一并给出但不进分)

5.5 股市天气(Pro)

把量价与体检读成天气。这是实况,不是预报——天气图标说的是已经发生的那一季。

5.6 三态倾向(Pro)

把已有结论按权重加起来,归一成多头 / 持有 / 空头三个倾向度。权重:体检 2.5 > 象限 2.0 > 判读 1.5 > 营收同比 1.0 > CCC 同比 0.75。

这三个数是倾向度,不是概率——它回答「现有证据往哪边倒、倒得有多明显」,不回答「涨的概率有多大」。页尾附一张证伪表(全池、与所选公司无关):按建仓时刻的三态分桶,看之后到下次披露的超额收益 ±2 个标准误。目前三个桶都压着零线——这套判读测不出方向性效果,这是结论,不是故障。

5.7 内部人交易(Pro)

卖出是常态,买入才罕见(库内买 8 万笔、卖 35 万笔),所以只给买入着色。这一页是事实,不是买入依据:「内部人买入」做成过预报信号,实测 skill −0.0016,统计上就是零。

5.8 每日预报(Pro)

每个交易日 18:30(纽约时间)出一期简报。

订阅:点「订阅每日预报」。可填关注列表(逗号分隔代码,留空 = 全部;只改简报里显示哪几条,不改简报本身)和邮箱(留空不发信;填了每期发一封纯文本邮件,条数写在标题上;站内信箱是投递本体,邮件只是提醒)。

信箱:按期列出,标未读数。没有预报的日子也会收到一期,明说「今日无新预报」并附滚动成绩——否则连着两周收不到东西时,分不清是系统停了还是真没预报。

简报:一张表:标的、窗口(5 / 21 / 63 个交易日)、模型概率、气候基准。预报概率一律不着色——该看的是它与气候基准差多少。已出的一期永不重写。

滚动成绩:分「实盘」与「回填推演」两栏。每栏按模型给 Brier、基准 Brier、skill、实际命中率。

账户成绩:投稿人(按账号合并所有模型名)的积分余额、已结算数、skill。校准:说 60% 的那些次里是不是真有约 60% 发生了;分桶不足 50 条的不画。

记分卡不需要订阅就能看:公开接口 https://app.assay.onepbdc.com/api/lt/dx/forecast/scorecard,桌面版本地也能答。每个交易日结束时,当天发出的预报、基准与体检快照的哈希会写进一份证据文件推到公开仓库 https://github.com/wr169/assay-data,前后链接——任何人都能验「已发出的有没有被改」。

5.9 投一条预报(Pro)

把你自己的信号交给这台记分机结算、配基准、打分。

表单:标的(必须有行情)、窗口(5 / 21 / 63 日,默认 21)、概率(这只票在窗口内跑赢等权全池的概率,0 与 100 之间、两端不含)、模型名(自起,例如 MOMENTUM)、依据(为什么这么报——只给概率不给判据,事后没人说得清当时在想什么)。

提交后给一张回执:你报的概率、今日气候基准、基准由多少条已结算观测估出。这条预报不可修改,窗口走完自动结算。

五条规矩(每条都是拒绝,不是纠正):

  1. 信息截止日只能是今天——不接受日期参数。
  2. 概率越界直接拒,不夹逼。
  3. 标的必须有行情,否则永远结算不了。
  4. 同日同标的同窗口同模型只收一次;要改就换个模型名另发一条。
  5. 必须有当日已发布的气候基准(每交易日 18:30 随发报一起发布,之前投会被拒)。

每条投稿要押注。 每个投稿人有一份固定的、不可充值的积分(不涉及任何真实资金)。每条按当日气候基准建一个二元仓位:报得比基准高就是买 YES、低就是买 NO;注码按 Kelly 由你报的概率与基准差多远决定,下注当时就扣。押对拿回来,押错归零,亏光封存出局、不能重开。它答的是记分卡答不了的那半个问题:你为自己说过的话付出过什么。

我投过的:列出你每条投稿与状态(待结算 / 跑赢 / 没跑赢)。待结算不是故障:63 日窗口天然要挂三个月。

5.10 覆盖率查询(免费)

订阅之前该先问的一件事:我的持仓里有几只在覆盖范围内。

贴一串代码(逗号、空格、换行都当分隔符,一次最多 500 个),点「查覆盖」。逐只返回七层:财报锚、行情、体检、处方、分部、经营明细、天气。

三态图例:实心 = 有;空心 = 查过了,没有;虚线加问号 = 这一层现在答不上来。后两者绝不是一回事——桌面版本地没有行情、经营明细、天气这三层,就画成问号,而不是替它们下「没有」的结论。

不在主数据里的代码单独标「未收录」:可能是拼写、不在 SEC 清单里,或已退市。

5.11 数据健康(免费)

回答「这套东西的数据停在哪一天」。这个后端「活着」几乎不说明任何事,真正会坏的是上游数据停了——那时所有接口正常返回,只是内容悄悄停在某一天。

这个接口不需要登录:https://app.assay.onepbdc.com/api/lt/status,只出聚合计数与时间戳。

5.12 策略实验室(Lab)

把「想法 → 信号 → 回测」压到几分钟。它的价值是降低试错成本,不是给结论背书:季频信号一只标的四五年只有十几次调仓,收益差异主要是噪音。

三个标签页:

技术面:单标的均线策略。参数:均线天数(默认 20)、买入倍数(默认 1.05,价格站上均线 × 1.05 买)、卖出倍数(默认 0.90)、单边费率(基点,默认 3)。

诊断状态:勾选一组企业医生结论(异常 / 关注 / 未触发 / 不判定),只在该公司体检落在这些状态时持有。入场一律在披露日之后的第一个交易日——按财季末对齐是前视。

华尔街:十个文献模板。

模板 参数 备注
盈利惊喜漂移(PEAD) SUE 门槛、持有天数 进场锚在 10-Q/10-K 提交日之后第一个交易日
基本面因子 因子(复合 / 低应计 / 高毛利÷总资产 / 低资产增长 / 回购)、百分位门槛 披露当日截面百分位 ≥ 门槛才持有
配对(多头腿) 对手标的、形成窗口、开仓 z、平仓 z 只表达多头腿,净值含市场方向
趋势跟踪 规则(过去收益为正 / 高于均线)、回看、剔除最近、均线、每月末 / 每日判定 趋势为空时空仓、不做空
跟内部人买 / 跟国会议员买 金额门槛、买家人数、成簇窗口、持有天数 锚在申报日次日;国会数据从 2025 年起;没有申报的公司会明说
52 周新高 / 均线金叉 / RSI 超卖反弹 / 日历效应 各自的窗口与阈值 只看价格;每条说明里写着它在全池检验里的下场

点「跑回测」,结果:策略 vs 买入持有的总收益与年化、信号数 / 可用 / 命中持仓、交易次数、盈亏笔数、平均盈亏、持仓占比、区间年数、净值曲线(起点归一为 1)、分年度对照、逐笔成交、区间末端持有 / 空仓状态。末端状态取的是库里最后一根日线,不是此刻行情。

试验登记册(页尾常驻):本项目对「某条规律能不能预测收益」做过的每一次全池检验,一次一行、不删不改,写明假设、样本、结果、结论(过门槛 / 薄 / 无区分度 / 反的 / 已撤回)与注册成的预报模型。上面写着已测条数与下一条假设的门槛——单检验 2.78、家族下限 3.0、按条数的 Bonferroni 三者取大;测二十条只讲一条与只测一条,不该用同一个门槛。单票回测的收益数字不构成证据,证据在这一册里,而且多数是否定的。

5.13 交易(纸上交易;注册即可用)

模拟盘,初始资金 100,000 美元(虚拟),一天只有收盘一次集合竞价成交机会。

5.14 我的成绩单(注册即可用)

两条轨道,答的是不同的问题,不要合起来读:

一个人可能选对了公司却被止损扫出去——那时买入判断是正的、实际往返是负的,两个都对。笔数少时命中率与平均值说明不了任何事,页面会提醒。

5.15 其他页


6. 数据与更新

6.1 数据包与更新

数据包每周一版(每周日发布),内容全部来自 SEC 公开申报(公有领域)与 Assay 自有产物,不含第三方行情。当前版 assay-public-2026-09-11.zip,约 20 MB,22 个 parquet,附 MANIFEST.json(每个文件的字节数与 sha256、被剔除的数据集及理由)与 SHA256SUMS。

本地包最多比服务器旧一周。数据健康页写着包的日期。

6.2 校验

校验不过不拦启动(你可能是有意换了自己裁的包),只是说清楚哪个文件对不上。

6.3 桌面版 / 网页版:本地能做什么

查询分两路:本地能答的一律本地答(哪怕连着服务器),其余交给记分服务器。

本地答(离线可用) 交给服务器(要联网)
公司清单、企业医生体检 / 体征 / 归因 / 处方、10-K 叙事 经营对股价、市场语言
经营评分六维(第七维估值与两个价格要行情) 股市天气、三态倾向、估值
内部人交易、议员交易、重述检出 策略实验室回测
覆盖率查询(行情 / 经营明细 / 天气三层画问号) 登录、会员、纸上交易、成绩单
数据健康(本地包)、预报记分卡 每日简报、订阅、投稿

服务器连不上时只影响右边那列,错误信息会说清楚是哪一边不通;左边照常。

6.4 纯离线模式(可选)

桌面版出厂默认连接 https://app.assay.onepbdc.com。想让它完全不联网:在安装目录的 resources 文件夹里新建 config.json,写入 { "remote": "" },重启应用。此时不注入访客会话而是一份本地会话(带 LEDGER_VIEW + DOCTOR_VIEW),企业医生等本地页不需要登录即可看;要服务器的页显示「本地版没有」并说明原因。


7. 读数规则(必读)

这个库里的数字不是一样可信的。 这一节比任何一页的功能都重要。

7.1 两个层。 锚定层 = 能对回财报的口径,带色、参与评级。结构层 = 客户集中度、逾期占比、笔均订单这类由生成器参数派生的,灰化、不参与判定。三家业态迥异的公司前十大客户占比都在 30% 上下——那是配置值,不是事实。

7.2 三态,不是两态。 「查过了没有」与「这一层答不上来」绝不是一回事。虚线问号出现时,不要替它下结论。

7.3 「不判定」不是「正常」。 同比基准被事后重述扭曲时,企业医生会把该体征降为不判定而不是报假异常;这家公司在体征里反而显得更干净,所以驾驶舱把重述标记单独列出。

7.4 新增才是信号。 按「新增」排序才能找出哪几季真的出了事;持续的老问题不该每季重报。

7.5 密度比有无重要。 九成公司都出过异常;有区分度的是「平均每季 ≥3 条」。即便如此,精确率也只有 53%,而分数最低一档的公司一年内破产率是 6.7%——九成三是假警报,虽然是基础率的 2.7 倍。

7.6 预报看 skill,不看概率。 报的是概率而不是方向;每条预报配一条同标的、同日、同窗口的气候基准(无条件命中率),两者 Brier 相减才是 skill。没有基准的 Brier 是个无法解释的数字。至今没有一个已注册的预报模型稳定跑出正的 skill。

7.7 内部人卖出不是看空。 卖出多半是期权到期的例行减持(卖 : 买 ≈ 4 : 1),买入才是有人拿自己的钱下注;即便如此,「内部人买入」信号实测 skill 也是零。

7.8 财季内回报含前视。 那段涨跌发生在财报公布之前;要判断「市场读没读懂这份财报」,只能用披露后窗口。

7.9 回测收益高不等于策略有效。 单标的四五年十几次调仓,差异主要是噪音;全池检验里趋势跟踪两条规则都没跑赢买入持有。


8. 常见问题与故障排除

症状 原因 怎么办
Windows 弹「已保护你的电脑」 安装包未签名 更多信息 → 仍要运行;装前核对 SHA-256
底栏只有三格 / 更多里没有企业医生 访客或免费账号,缺 DOCTOR_VIEW 登录并开通 Pro;开通后刷新页面
「这些页面还没对你开放」 缺该页的权限点 看页面列出的权限点,对照附录 B;重新登录不会改变权限
付了钱菜单没变 页面还没重新拉会员状态 刷新页面;仍不行则退出重登;再不行写信附账号数字
登录说账号不对 填了用户名 / 邮箱 账号是注册时分配的数字
忘记密码 无自助找回 写信 support@onepbdc.com 附账号数字
注册被拒 同一 IP 每小时 5 个 等一小时
「本地版不含行情」「本地版没有这个接口」 桌面版离线,或该功能要服务器 正常;联网后自动走服务器
「连不上记分服务器」 网络或服务器 本地诊断照常;稍后再试;服务状态 https://app.assay.onepbdc.com/api/lt/status
「网络不通,检查是否还连着同一个 Wi-Fi」 设备离线 检查网络
某页点了没反应(网页版) 前端刚更新,旧页面引用的分块已下线 页面会自动重载一次;仍不行手动刷新
覆盖率页画问号 本地答不上这一层 正常,见 7.2
经营评分没有总分 算得出的维度不足 4 维 正常
股市天气历史里有问号 那几季判不出 正常,多半缺去年同季成交量基准
「待结算」挂了很久 63 日窗口要三个月 正常;已结算数不涨才是异常
数据健康说「对不上」 数据包某文件被改或下载不完整 数据健康页重新「下载并换上」,或重装
网页版停在登录框且登不上 浏览器隐私模式禁了本地存储 换普通窗口
想看应用到底调了什么接口(桌面版) — 用源码方式 npm run serve,终端打印每条 [api]

9. 隐私、条款与联系方式


附录 A:术语表

术语 含义
财报锚(anchor) 按申报日对齐、重述感知的季度财务数据,来自 SEC XBRL
锚定层 / 结构层 能对回财报的指标 / 由生成器参数派生的指标(不参与判定)
体征(finding) 企业医生对一项指标在一个财季的判定:异常 / 关注 / 未触发 / 不判定
新增 / 持续(onset) 本季首次出现 / 上季已有
处方(prescription) 针对新增异常、挂着 10-K 原文的模型生成建议
重述(restatement) 公司事后改写了去年数据,导致同比基准失真
CCC / DSO / DIO / DPO 现金转换周期 / 应收周转天数 / 存货周转天数 / 应付周转天数
应计比率 (滚动四季净利润 − 滚动四季经营现金流)÷ 平均总资产,越高利润越多没变成现金
气候基准(climatology) 同标的、同日、同窗口的无条件命中率,预报要打败的对象
Brier / skill 概率预报的均方误差(越小越好,随机 0.25)/ 1 − 模型 Brier ÷ 基准 Brier(正数才有技能)
分位数 / 分位 skill 前向超额收益的 5 / 25 / 50 / 75 / 95% 分位(简报只显示中位与最差 5%)/ 同一个 skill 公式换成 pinball loss,正数才有技能
校准 说 60% 的那些次里,是否真有约 60% 发生
实盘 / 回填 前向发出后结算的成绩 / 用历史数据推演的成绩(灰化,只当参考)
Kelly 注码 按报的概率与基准差多远定注码;报你真信的概率是唯一最优
锋面 财报公开后股价在涨、而体检说有问题的公司
物化快照 预先算好的汇总表,页面读它而非实时算;有刷新时刻
Form 4 内部人交易的逐笔申报
PEAD 盈利公告后漂移
证据锚定链(attest) 每日推到公开仓库的哈希文件,前后链接,用于验证已发出的记录未被改

附录 B:页面与权限速查

页面 入口 权限点 谁有
驾驶舱 底栏 LEDGER_VIEW 访客 / 免费
经营对股价 底栏 LEDGER_VIEW 访客 / 免费
覆盖率查询 更多 LEDGER_VIEW 访客 / 免费
数据健康 更多 登录即可(接口本身免鉴权) 访客 / 免费
关于与许可、修改密码 更多 登录即可 所有账号
企业医生 底栏 DOCTOR_VIEW Pro / Lab
经营评分、三态倾向、股市天气、内部人交易 更多 DOCTOR_VIEW Pro / Lab
每日预报、投一条预报 更多 DOCTOR_VIEW Pro / Lab
策略实验室 更多 BACKTEST_RUN Lab
交易 底栏 ORDER_PLACE 或 ACCOUNT_VIEW 所有注册账号
我的成绩单 更多 ACCOUNT_VIEW 所有注册账号
用户管理 更多 ADMIN_OPS 管理员

纯离线模式(6.4)下本地会话自带 LEDGER_VIEW + DOCTOR_VIEW,企业医生等本地页免登录。