Skip to content

feat(forensic): STA, SNOA, COMBOACCRUAL + complete manipulation screen (#89) - #120

Open
JLaborda wants to merge 3 commits into
cursor/forensic-permanent-loss-89-b5ebfrom
cursor/comboaccrual-sta-snoa-230f
Open

feat(forensic): STA, SNOA, COMBOACCRUAL + complete manipulation screen (#89)#120
JLaborda wants to merge 3 commits into
cursor/forensic-permanent-loss-89-b5ebfrom
cursor/comboaccrual-sta-snoa-230f

Conversation

@JLaborda

@JLaborda JLaborda commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Summary

Completes the QVAL Ch. 3 manipulation screen for issue #89 by adding STA, SNOA, and COMBOACCRUAL with a bottom-5% hard-exclusion gate, on top of the forensic evaluator from #118.

Supersedes: #118close #118 when merging this PR.

Manipulation metrics (phase 2a — complete)

Metric Formula Gate
Beneish M-Score (PROBM) 8-variable model, 2 PIT periods FRD_BENEISH_BOTTOM_PCT
STA (net income - operating cash flow) / total assets
SNOA (operating assets - operating liabilities) / lagged total assets
COMBOACCRUAL avg cross-sectional percentile(STA, SNOA) FRD_COMBOACCRUAL_BOTTOM_PCT

Distress rules (BK_*), EDGAR fraud stubs, CLI, and Enron/Lehman/WorldCom regression are unchanged from #118.

New / changed paths

  • src/smartwealthai/accrual_scores.py
  • config/permanent_loss/accrual_v1.yaml, comboaccrual_gate_v1.yaml
  • forensic_evaluator.py — wires COMBOACCRUAL gate after distress + Beneish
  • spec/features/008-permanent-loss-filter/spec.md, CONTEXT.md, backlog

Still phase 2b

PFD distress logit, EDGAR confirmed fraud, ML fusion.

Tests

65 forensic tests passing (incl. tests/test_accrual_scores.py + COMBOACCRUAL integration).

Open in Web Open in Cursor 

Extend the permanent-loss filter with QVAL Ch. 3 accrual screens:
STA and SNOA from PIT fundamentals, COMBOACCRUAL as the average
cross-sectional percentile, and FRD_COMBOACCRUAL_BOTTOM_PCT hard
exclusion alongside the existing Beneish gate.

Updates spec 008, CONTEXT.md, and backlog; expands GitHub #89 scope.
@JLaborda
JLaborda changed the base branch from develop to cursor/forensic-permanent-loss-89-b5eb July 7, 2026 12:00
JLaborda added 2 commits July 7, 2026 14:04
Run make format on accrual tests; require make format before every
commit in git-conventions and AGENTS.md.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant