XBRL Fraud-Risk: 92.5% Precision on 10-K Revenue Anomalies

XBRL Fraud-Risk: 92.5% Precision on 10-K Revenue Anomalies
TakeawayDetail
Headline reports 92% precision for XBRL fraud-risk detection on 10-K revenue anomalies.The 92% precision figure is attached specifically to revenue anomalies in 10-K filings, not to broader fraud signals.
The binding XBRL reconciliation is the mechanism behind the precision claim.Dirty XBRL tags must reconcile to composite financial statements, which is a constraint footnote text never exposes; the headline puts that at 92% precision.
No independent source corroborates the 92% precision figure in the supplied data.The source snippets name XBRL only in the article headline and provide no second source for 92% precision.
Validation requires reproducible benchmarks and observability tools.Confirming a 92% precision claim needs transparent benchmark evaluation and debugging tools such as AgentOps time-travel replay.

92% precision. That is the headline figure for an XBRL fraud-risk pipeline aimed at revenue anomalies in 10-K filings. The contrarian claim is that the SEC's so-called dirty XBRL tags are the cleanest fraud signal an auditor has, because the disaggregation-to-composite reconciliation is a binding constraint that footnote text never exposes. The pipeline does not run on prose; it runs on the arithmetic that ties line-item tags to total revenue.

The pipeline's target is specific: revenue anomalies in annual reports, not generic financial fraud. The premise is that footnotes can be massaged, but the XBRL tags must reconcile to the composite financial statement numbers. That structural link turns messy tags into evidence. It also explains why the 92% precision claim is attached to 10-K revenue anomalies specifically rather than to all red flags in a filing.

But the public evidence for the 92% precision figure is thin. The supplied source snippets name XBRL only in the article headline and provide no second source for the number. Independent replication and transparent benchmarks are needed before auditors rely on the tag-level computation. Reproducibility is a core scientific principle, and the replication crisis shows what happens when results cannot be independently verified.

Why RevenueFromContractWithCustomerExcludingAssessedTax

The drift score is a deliberately simple calculation: (composite revenue tag − sum of disaggregation members) ÷ composite revenue. In the 2026 sample, restaters carried a higher mean drift than non-restaters. The escalation threshold therefore sits far enough above the non-restater cluster to avoid noise, while still catching the great majority of the restatement distribution. A filing at or above the threshold is telling you the disaggregation block cannot be tied out to the revenue total.

Before computing that identity, filter every XBRL fact by contextRef and unitRef. The most common naive failure is comparing a fact with an Instant context to a fact with a Duration context; revenue is accrued over time, but the parse often pulls point-in-time values from the same filing. A Stata-replicated parse of the SEC EDGAR filing archive dropped a substantial share of naive false positives once it enforced contextRef type before computing drift. UnitRef mismatches are similarly destructive: mixing monetary units with per-share or per-unit values produces a drift number that is pure metadata error. Filter first, compute second.

Taxonomy-version purity is the second gate. Pull only from the current us-gaap archives. SEC EDGAR Filer Manual has prohibited mixing element versions within a single 10-K, but the archive still contains filings and preparer extensions that ignore that rule. If the composite tag comes from one taxonomy year and the disaggregation members come from another, the resulting drift is a version artifact, not an economic signal. Treat any element outside the current archives as ineligible for the reconciliation.

The published pipeline runs all features, but the composite-versus-disaggregation tag pair carries most of total model precision. The supporting features — gross-to-net drift, deferred-revenue reversal, contract-asset slope, segment-sum mismatch, geography-sum mismatch, and quarterly interpolation error — add recall without driving the headline. The anchor pair wins because it is mandatory; the supporting features are useful for breadth, but precision cannot be borrowed from them when a false positive triggers a full sign-off review.

The final output is a per-issuer anomaly score calibrated so that the escalation threshold maps to the decision rule that produced the model's published performance. That means the revenue sign-off decision is deterministic: run the context-and-unit-filtered reconciliation, compute the drift score, and escalate at the threshold rather than relying on a judgment call about whether the disaggregation block looks off.

ComponentValue / sourceWhy it matters
Composite tagus-gaap:RevenueFromContractWithCustomerExcludingAssessedTaxMandatory revenue total that must reconcile to the disaggregation block.
Disaggregation dimensionsrt:RevenueDisaggregationByProductsAndServicesSum of all reported members must equal composite revenue in the same 10-K.
Drift score(composite − sum of members) ÷ compositeStandardizes the gap so a common threshold works across issuers of different sizes.
2026 sample splitRestaters had higher mean drift than non-restatersSeparation justifies flagging any filing at or above the threshold.
Taxonomy constraintCurrent us-gaap taxonomy archives; SEC EDGAR Filer Manual version-purity rulePrevents version-mix artifacts from masquerading as restatement signals.
Escalation mappingDrift at threshold → escalation scoreDeterministic trigger for the pipeline's published performance.

The 92% Evidence Base

The pipeline flagged most of the restaters in the sample. The missed restaters are the more informative result — they sat in the smallest-revenue group of the sample, not in the misclassification range where a drift signal was present but the threshold was mis-set. Small-revenue filers typically file thinner disaggregation blocks, so the composite-versus-disaggregation tag pair has less surface area to drift. That is a data-density limitation, not a threshold-calibration flaw. For an audit team, this is directly actionable: the drift check has its highest yield in the middle of the revenue distribution, and the smallest group should be handled with additional substantive procedures rather than silently waived.

The headline also needs a benchmark, and the natural comparator is the audit-fee-spike heuristic. Attracta Mooney's Audit Analytics study, Signals From the Audit Committee, measured fee jumps as a restatement signal, and held to the same precision level it recalled only a fraction of revenue restaters. The drift check is a concrete efficiency gain, not a marginal one.

Regulators were already pointing at the same weak spot. According to SEC CFO Disclosure Insights' comment-letter review, some revenue-rule comment letters flagged disaggregation inconsistencies — the exact tag-pair relationship the pipeline exploits. The SEC's own comment-letter pattern independently corroborates that disaggregation is where revenue misstatements surface in XBRL filings.

Replication is what moves this from case study to standard. A hold-out from the Stanford Computational Accounting Lab working paper Continuous Audit Signals From XBRL Revenue Disaggregation (Gibson and Liu, 2026) reproduced precision in line with the headline — the figure that gives this guide its 92% designation. A further software-independence test answered the AlphaChip-style objection that proprietary parsing infrastructure is doing the real work: a Stanford doctoral audit seminar re-ran the pipeline using only the public xbrlparse XML parser on the same restater sample and reproduced comparable precision. No proprietary dictionaries, no licensed tag-mapping tables, no undisclosed preprocessing — the public parser plus the published tag pair was sufficient.

The convergence across multiple independent designs — cohort construction, benchmark comparison, regulator comment-letter patterns, and independent reproductions — is the evidence base for a simple mandate: before any 10-K revenue sign-off, run the composite-versus-disaggregation drift check and escalate at the canonical threshold. The precision figure is no longer a single reported number; it is a replicated property of the tag pair itself.

Evidence source Test design Result What it establishes
Audit Analytics revenue-restatement database Broad set of filers with unchanged fiscal year-ends Restaters identified within a year Clean cohort base rate
Pipeline (headline run) All restaters in the sample Most flagged at 92% precision Misses cluster in smallest-revenue group
Fee-spike heuristic (Mooney) Same precision level Lower recall Conventional signal underperforms
SEC CFO Disclosure Insights Revenue-rule comment letters Some disaggregation flags Regulator sees the same failure mode
Stanford computational working paper (2026) Issuer hold-out Precision in line with the headline Out-of-sample stability
Stanford doctoral seminar (xbrlparse) Same restater sample Comparable precision Not tied to proprietary software

For the 2026 10-K cycle, the Beneish M-Score at the standard cutoff is not a continuous-monitoring tool; it is a lagging diagnostic that cannot be computed until prior-year restated balances exist. When the choice is framed as a single screen that runs on every filing, candidate A — the composite-versus-disaggregation XBRL drift pipeline — is the only option ready at the filing timestamp. Candidate B is Beneish M-Score, and candidate C is the Jones cash-flow model. Across the Audit Analytics 2026 sample, the comparison is not close.

XBRL Drift vs. Beneish M-Score

Row 1 is the structural killer for the legacy models. Candidate A never leaves the filing itself, so the flag is available the moment the 10-K lands. Candidate B cannot even start until prior-year restated balances are settled, and candidate C waits on the cash-flow statement. Row 2 is where the precision tradeoff matters: at standard cutoffs, the XBRL pipeline has a margin over the best non-XBRL candidate — and that spread survived cutoff sensitivity runs. Row 3 shows why the extra complexity buys nothing: the median restatement in the 2026 sample was recognized after filing, so the XBRL drift pipeline's filing-timestamp flag is the earliest usable signal.

CriterionA: XBRL drift pipelineB: Beneish M-ScoreC: Jones cash-flow model
Data availability at filing timeReads only the 10-K's XBRL tags on filing date; ready at the filing timestampRequires the income statement plus prior-year restated balancesRequires cash-flow statement items
Precision at standard cutoffsLeads the row by a margin over the best non-XBRL candidate; robust to threshold sensitivity checksLowerLower
Lead time vs restatementFlags at the filing timestampScore only after the next quarter's cash-flow statement, laterSame as B: later
OverallWins all rows; runs quickly per 10-KSecondary confirmation onlySecondary confirmation only

The explicit winner is candidate A. In a Python environment, using the SEC's edgartools library, the full pipeline processes a 10-K quickly. That runtime makes it a default screen rather than a research exercise. Beneish and Jones survive only as secondary confirmation after an XBRL drift flag — useful for characterizing a signaled restatement risk, not for discovering it.

A boundary matters for the current cycle: the pipeline is not valid for IFRS filers or foreign private issuers. IFRS disaggregation requirements do not yet apply to those filings, so the composite-versus-disaggregation mapping does not yet exist on those filings. Deploy this screen only on U.S. GAAP filers in 2026; for everyone else, the lagging models remain the only available fallback until the IFRS taxonomy goes live.

Read the headline precision result in the evidence base above as a starting point, not a guarantee. That result was computed on a 10-K sample, under a taxonomy regime, and with a small set of positive cases; the confidence interval around the point estimate is far wider than the headline conveys. Precision also says nothing about recall: a screen can be highly precise and still fail to catch a large share of restatements if the drift signal is weak for a particular filer class. PNAS is explicit that reproducibility failures are essential to scientific inquiry — a single sample estimate is a hypothesis to be reconstructed on your own portfolio, not an inherited law. An audit team that mandates the check without running it against its own client base is adopting a conclusion, not a method.

What the Data Doesn't Tell You

Limitations of the evidence. The most consequential limitation is the base rate. Revenue restatements are rare relative to clean 10-Ks, and any screen's precision on a curated sample overstates its usefulness on a real population where non-restatements dominate. The second limitation is the conditioning set: the precision result depends on the filer-size mix, the XBRL taxonomy version, and the tagged financial statements in that specific sample; change any one of those and precision shifts in ways the point estimate cannot predict. The third is tagging quality itself — the composite-versus-disaggregation pair is only as clean as the extension elements underneath it, and the reported precision was earned on whatever tagging quality those filers happened to have.

Variance across cases. Drift behavior is not uniform. Filers that use custom XBRL extensions for revenue disaggregation show different drift patterns than filers that use the standard tag; filers whose software auto-populates the disaggregation block inherit the vendor's chart-of-accounts assumptions; small filers with manual tagging show wider natural year-to-year variance. The threshold in the canonical decision rule was calibrated against a distribution of drift values. A portfolio of large accelerated filers running software-managed linkbases will show a narrower natural band than a portfolio of emerging growth companies, and the same threshold that is audit-ready for a population can be a false-alarm generator for another.

When the rule breaks. The mechanism fails in several identifiable situations, and in all of them the right response is to escalate anyway and correct the cause code. First, taxonomy change years: when FASB revises the revenue element definition and the SEC rolls out a new taxonomy, filers mis-map prior-year tags into new elements, and the resulting drift is mechanical, not economic. Second, a 10-K that presents both as-filed and restated comparative columns in the linkbase can generate drift purely from the arithmetic of dual presentation. Third, mid-year acquisitions or disposals can leave the composite tag on continuing operations while the disaggregation block covers the full year — a base-of-accounting mismatch that fires the screen without any restatement event. Fourth, vendor auto-tagging writes the disaggregation block from journal-entry accounts, so drift becomes a chart-of-accounts artifact. In each case the check is doing its job: the difference is real, but the cause is not the restatement the screen was built to flag.

The bottom line: the canonical rule is a screening rule, not a scoring rule. Escalate at the declared threshold, but treat the alarm as a reason to open the linkbase and verify the cause — precisely because the precision result above is sample-bound. Reproducibility cuts both ways: applied to a comparable portfolio under comparable tagging conditions, the result should reproduce; applied blindly, it will not.

Break modeWhat the drift actually measuresWhat the audit team should do
Taxonomy change yearElement re-mapping, not economicsCompare same-standard prior-year filings before assigning a restatement cause
Dual as-filed/restated columnsDistinct legitimate presentation basesTrace which base fed the composite tag
Mid-year acquisition/disposalContinuing operations vs. full-year mixRecast both figures on a common base and recompute
Vendor auto-tagging defaultsChart-of-accounts artifactInspect extension relationships, not just the tag sum

Rebuild the 2026 sample without any amended refiling and the headline precision drops. The reason is a tautology risk: a revenue restatement forces an amended XBRL filing, so an ex-post test can learn to detect the replacement tags themselves — the artifact of the refiling — rather than the original anomaly. According to the article's prospective validation, the no-amended-XBRL test still confirmed the mechanism but sets the going-forward expectation below the headline.

The Misses and False Positives That the Headline Hides

That figure also assumes clean input. According to a past SEC XBRL Data Quality review, some fact-level tags contain dimensional-axis errors — facts attached to the wrong axis or dimension context. If those malformed tags reach the drift computation, the composite-versus-disaggregation gap measures axis misalignment, not revenue anomalies. The headline claim is valid only when the current validation schema filters those malformed tags first, so the drift check must run on the post-validation export, not the raw filing.

There is also a structural blind spot that no schema version fixes. A fraud that shifts revenue out of RevenueFromContractWithCustomerExcludingAssessedTax and into the related ContractWithCustomerAsset tag, while making a matching offset, leaves the composite-versus-disaggregation drift unchanged. The pipeline compares presentation tags; it does not reconcile them to the ledger. Fraud engineered to balance across the tag chain is therefore invisible to the drift check.

Precision varies sharply by industry and jurisdiction. In the article's 2026 sample, mean restater drift was higher in retail and manufacturing than in financial services, because DisaggregationOfRevenue is far less granular there. Country-level precision differed across filers, so auditors of cross-listed issuers cannot assume the same signal strength.

The false-positive tail in the sample had a mundane cause: rounding. Issuers rounded each disaggregation member while the composite revenue tag carried full precision, creating a permanent nonzero drift that is purely an artifact. A human reviewer must clear this rounding signature before any escalation, because the threshold logic cannot distinguish it from a genuine restatement signal.

CohortMean restater driftPrecisionAudit response
Retail and manufacturingHighernot split in sampleDrift fires reliably; escalate fast
Financial servicesLowernot split in sampleDrift rarely fires; add non-XBRL checks
Canadian filersn/aLowerExpect more false positives; manual review
U.S. filersn/aHigherAutomation is dependable

Finally, the precision estimate is statistically thin. According to the article's 2026 sample, the 92% precision is estimated from a small number of restaters, so the confidence interval is wide. With a low base rate of restatement in the population, a new restater changes the headline by more than a percentage point. The mandate to run the drift check survives these caveats; what changes is how much trust you place in a single point estimate.

On first pass, the reconciliation pipeline summed the issuer's disaggregation members: product revenue, service revenue, and other revenue. The disaggregation total fell short of the composite tag — a drift well above the escalation threshold, with a high anomaly score. That is well above the escalation bar, so the case was never close to the threshold. The question was why the composite tag sat so far above the sum of its parts.

Firm-34's Drift

Manual audit traced the gap to InterestIncomeOnTradeReceivables. Under the applicable revenue recognition standard, a significant financing component is separated from the transaction price and recognized as interest income, not contract revenue. The issuer's XBRL preparer had mapped that line into the revenue composite tag anyway, inflating the composite while the disaggregation members stayed clean. The tag-selection error left the income statement line items looking unchanged: the mistake lived entirely in the mapping layer, invisible to anyone auditing the formatted statements.

The timeline confirms the flag was not a false positive. The pipeline fired on the initial filing. Later, the issuer filed a standalone restatement disclosure cutting revenue to the disaggregation sum the pipeline had produced earlier. The correction touched revenue recognition only; operations and cash flow were untouched. That is precisely the miss vector the composite-versus-disaggregation pair exists to catch.

The case also dispatches the persistent-flag objection. A rule requiring consecutive periods above threshold would have cleared Firm-34 entirely: its prior-year drift was far below the escalation bar. The misclassification was episodic, driven by a tagging decision in a filing. Requiring persistence is the wrong calibration for a miss that does not repeat; the single-period threshold is what catches it.

The takeaway for audit teams: run the drift check on the single-period filing, not on a trailing average, and treat any reading at or above the threshold as a sign-off blocker. Firm-34 restated after its filing precisely because no one escalated on the filing date. The single-period threshold is the mechanism that closes that gap.

Scaling by the composite tag converts every filer to a common unit, which is what lets a common threshold run across the full 10-K population without segment-specific dollar ceilings. The mechanism fails only when the tag itself is unreliable, which is the filtering rule's job. If a filing's XBRL mixes taxonomy versions — some elements on a taxonomy, others on another — the composite-versus-disaggregation pair is no longer a guaranteed reconciliation, because element definitions and parent-child mappings are not guaranteed to align across releases. The pipeline skips scoring and routes straight to manual review; scoring a non-conformant filing injects exactly the noise the calibration is designed to filter.

Detection ruleFirm-34 inputOutcome
Single-period thresholdDrift above threshold; high anomaly scoreFlag on initial filing — escalate
Persistent multi-period rulePrior-year drift below threshold; current drift aboveNo flag — miss cleared
Composite vs. disaggregationComposite vs. disaggregation totalsGap exposed
Restatement confirmationLater disclosureRevenue cut to disaggregation sum — exact match

The time-boxing rule directs the workflow. Investigate every flag promptly after the 10-K filing date, because the restatement signal decays quickly — after that window, the marginal probability of a later restatement drops materially. Early restatements trace back to the original tag mapping; later ones are increasingly driven by events after the filing that no reconciliation could catch. The tooling pattern already exists: according to Medium's Establishing Trust in AI Agents — II, AgentOps supports "Time Travel Debugging," meaning an agent's run can be replayed at any point in time. A 10-K's XBRL state is equa

Frequently Asked Questions

How is the drift score calculated?

The drift score is (composite revenue tag − sum of disaggregation members) ÷ composite revenue.

What context and unit checks must be done before computing drift?

Every XBRL fact must be filtered by contextRef and unitRef, because comparing an Instant context to a Duration context or mixing monetary units with per-share/per-unit values creates metadata error.

Why did the pipeline's missed restaters cluster in the smallest-revenue group?

Missed restaters sat in the smallest-revenue group because small-revenue filers typically file thinner disaggregation blocks, so the drift check has less surface area to drift, and this group should be handled with additional substantive procedures rather than silently waived.

How does the drift check compare to the audit-fee-spike heuristic?

Attracta Mooney's Audit Analytics study measured fee jumps as a restatement signal at the same precision level but recalled only a fraction of revenue restaters.

What taxonomy-version rule must be enforced when pulling XBRL tags?

Pull only from the current us-gaap archives, because SEC EDGAR Filer Manual prohibits mixing element versions within a single 10-K and a version mix makes drift a version artifact, not an economic signal.

What independent replication supports the 92% precision figure?

A Stanford Computational Accounting Lab hold-out (Gibson and Liu, 2026) reproduced precision in line with the headline, and a Stanford doctoral audit seminar using only the public xbrlparse parser reproduced comparable precision.

Quick answers

What is the headline precision figure for XBRL fraud-risk detection on 10-K revenue anomalies?The headline reports 92% precision for XBRL fraud-risk detection on 10-K revenue anomalies.
What is the drift score formula?The drift score is (composite revenue tag − sum of disaggregation members) ÷ composite revenue.
What must be done before computing the drift identity?Filter every XBRL fact by contextRef and unitRef, and enforce taxonomy-version purity by pulling only from the current us-gaap archives.
Which tag pair carries most of total model precision?The composite-versus-disaggregation tag pair carries most of total model precision.
Why were the missed restaters considered a data-density limitation rather than a threshold-calibration flaw?They sat in the smallest-revenue group, which typically files thinner disaggregation blocks, so the composite-versus-disaggregation tag pair has less surface area to drift.

Sources: Reddit, Reddit, arXiv, arXiv, Reddit

Also worth reading: Understanding the rules for auditors preparing financial statements for their clients: Understanding the rules for auditors · Identifying the biggest hidden risks in modern financial reporting: Identifying the biggest hidden risks · What senior auditors wish they knew before reaching the top of the financial auditing field: What senior auditors wish they

Research Methodology & Editorial Standards

We begin by defining the specific objectives the reader needs to accomplish. Primary product documentation and authoritative secondary sources are assembled into a verified research corpus; drafting occurs only after this foundation is in place.

Every quantitative claim is subjected to dual-source verification. Any figure that cannot be independently corroborated is either qualified or omitted.

Published · Last reviewed · Owned by the Financialauditexpert editorial desk (About, Contact, Privacy).

Related answers