ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

FinSight AI财务风险检测规则全解析:现金流质量、杠杆、盈利趋势与应收账款压力

FinSight AI财务风险检测规则全解析:现金流质量、杠杆、盈利趋势与应收账款压力

【免费下载链接】FinSight-AI

AI equity research agent with resilient workflows, evidence-grounded RAG, versioned reports, and automated quality evaluation.

项目地址:https://gitcode.com/gh_mirrors/fi/FinSight-AI
点击查看免费下载

FinSight AI是一款 AI 投研代理,其中的财务风险检测模块会自动扫描上市公司年报数据,输出带严重度等级的风险信号。本文带你用 10 分钟读懂它的 4 条核心规则:利润现金含量偏弱、资产负债率偏高、毛利率连续下降、应收账款压力偏高——不看代码也能明白每条规则在"抓"什么风险。

一、风险信号是怎么产生的?

FinSight AI 的风险检测遵循一条清晰的流水线,源码位于 backend/src/main/java/com/finsight/metrics/:

  1. 指标计算:CoreFinancialMetricCalculator.java 按年度财报,基于 MetricDefinitionCatalog.java 中定义的metric-dag-v2指标 DAG 计算出一整套财务指标(毛利率、资产负债率、经营现金流/净利润等)。
  2. 规则扫描:RiskSignalDetector.java 把指标交给每一条实现了 RiskRule.java 接口的规则逐一评估。
  3. 信号落库:MetricApplicationService.java 的recalculate()方法每次全量重建指标后,把检测到的RiskSignal存入数据库,并记录一次计算运行(计算了几份财报、几个指标、几个信号),保证每次检测可追溯。

每条规则都继承自 AbstractRiskRule.java,统一生成带唯一 ID、标题、解释文案和严重度(severity,数值越大越严重)的风险信号。

二、规则一:现金流质量(WEAK_CASH_EARNINGS)

源码:CashEarningsQualityRule.java

这条规则回答一个关键问题:利润到底有没有变成真金白银?它对每个年度财报检查两个条件:

检查项阈值信号标题严重度
经营现金流 / 净利润(OCF_NET_PROFIT)< 0.8低于 0.8"利润现金含量偏弱"2
净利润同比增长(NET_PROFIT_YOY> 0)但经营现金流同比下降(OCF_YOY< 0)利润增、现金流降"净利润增长但经营现金流下滑"(code:PROFIT_CASH_FLOW_DIVERGENCE)3

👉新手理解:账面利润漂亮、口袋里却没有现金,是财务造假的经典前兆。第二个信号尤其危险——利润在涨、现金流却在掉,说明利润质量堪忧,严重度直接给到 3。

三、规则二:杠杆压力(HIGH_LEVERAGE)

源码:LeverageRiskRule.java

规则非常直接:资产负债率(DEBT_RATIO)> 65%的年度,就会触发"资产负债率偏高"信号(严重度 2)。

👉新手理解:65% 是一条经验警戒线。超过它意味着企业高度依赖债务运营,一旦利率上行或盈利下滑,偿债压力会明显放大。信号文案也提醒:需结合行业属性评估(地产、城投天然高杠杆,与消费品公司标准不同)。

四、规则三:盈利趋势走弱(PROFITABILITY_TREND_WEAKENING)

源码:ProfitabilityTrendRule.java

这条规则需要至少 3 年数据,检查最近三期的毛利率(GROSS_MARGIN)是否逐期连续下降:

第一年毛利率 > 第二年毛利率 > 最新年度毛利率 → 触发"毛利率连续下降"信号(严重度 2)。

👉新手理解:单年毛利率下滑可能是成本波动,但连续三期下滑往往是结构性问题——价格战、成本上升或产品结构恶化,值得重点深挖。

五、规则四:应收账款压力(HIGH_RECEIVABLE_PRESSURE)

源码:ReceivablePressureRule.java

这条规则盯住"货卖了但钱没回来"的风险,同样是逐年度检查:

检查项阈值信号标题严重度
应收账款 / 营收(AR_REVENUE)> 25%超过 0.25"应收账款压力偏高"2
应收账款增速 − 营收增速(RECEIVABLE_GROWTH_SPREAD)> 15 个百分点超过 0.15"应收账款增速明显快于营收"(code:RECEIVABLE_GROWS_FASTER_THAN_REVENUE)3

👉新手理解:第二个信号是收入确认质量的重要预警——应收收得比卖得还快,可能意味着放宽信用政策冲收入,回款周期在拉长。

六、如何查看与触发风险信号?

风险检测是指标计算的一部分,由 MetricController.java 暴露的 REST API 提供服务:

  • 触发全量重算(含风险检测):POST /api/metrics/recalculate/{companySymbol}
  • 查询风险信号:GET /api/metrics/{companySymbol}/risks
  • 查看历史计算运行:GET /api/metrics/{companySymbol}/runs
  • 查看指标定义清单:GET /api/metrics/definitions

检测出的风险信号不止是列表展示:它们会被写进 AI 分析报告的riskPoints,参与 docs/benchmark.md 中定义的评测维度(如结论一致性),并随报告一起支持 Markdown / PDF 导出与版本 Diff 对比。

如上图所示,当风险信号提示"现金流量质量偏弱"时,你可以在证据来源工作区直接检索"公司经营现金流能否支撑当前利润质量?",从财报、公告和结构化指标中找到可核验的原始依据——这正是 FinSight AI"结论必须有证据"的设计理念。

七、四条规则速查表

规则 Code关注维度核心阈值最高严重度源码
WEAK_CASH_EARNINGS利润现金含量OCF/净利润 < 0.83CashEarningsQualityRule.java
HIGH_LEVERAGE偿债压力资产负债率 > 65%2LeverageRiskRule.java
PROFITABILITY_TREND_WEAKENING盈利能力趋势毛利率连续三期下降(需 ≥3 年)2ProfitabilityTrendRule.java
HIGH_RECEIVABLE_PRESSURE收入回款质量应收/营收 > 25%;应收增速超营收增速 15pct3ReceivablePressureRule.java

总结

FinSight AI 的财务风险检测设计有三个亮点,值得每个关注基本面分析的学习者借鉴:

  1. 规则即组件:每条规则一个类、一个稳定 code、阈值写在代码里,想加新规则只需实现 RiskRule.java 接口,Spring 会自动把它纳入 RiskSignalDetector.java 的扫描链路。
  2. 信号可追溯:每次重算都会记录输入财报数量、指标数量、信号数量与时间戳(MetricCalculationRun),历史可查、可复现。
  3. 与 AI 报告联动:风险信号会进入 AI 研报的riskPoints和数据快照哈希,底层数据一变,报告就重新生成,避免"拿旧结论回答新行情"。

更多架构细节可阅读 docs/architecture.md 与 docs/product-requirements.md。

【免费下载链接】FinSight-AI

AI equity research agent with resilient workflows, evidence-grounded RAG, versioned reports, and automated quality evaluation.

项目地址:https://gitcode.com/gh_mirrors/fi/FinSight-AI
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进