Security

审计追踪

Try it

上市公司审计追踪与风险检测技能包,自动化分析往来账龄、标记异常交易、检测重复付款、监控大额异常预警。适用于财务审计、内控合规、风险预警、税务风险检测等场景。当用户提到审计追踪、账龄分析、异常交易检测、重复付款、大额预警、风险检测、内控审计、应收账款、应付账款、银行对账、费用审计、税务风险等关键词时触发。

What it does

本技能包为上市公司提供全面的财务审计追踪与风险检测能力,通过自动化分析帮助审计人员高效识别异常交易、账龄问题、重复付款等风险点,提升审计效率与准确性。

The skill document

财务审计追踪技能包

概述

本技能包为上市公司提供全面的财务审计追踪与风险检测能力,通过自动化分析帮助审计人员高效识别异常交易、账龄问题、重复付款等风险点,提升审计效率与准确性。

核心检测流程

模块一:应收账款账龄分析

1.1 账龄区间划分标准

账龄区间天数范围风险等级备注
即时/当前0-30天低正常在信用期内
短期31-60天中低轻度关注
中期61-90天中需要催收跟进
长期91-180天高存在逾期风险
超长期181-365天很高坏账可能性大
长期挂账1年以上极高需专项审计

1.2 坏账准备计提比例(企业会计政策参考)

坏账计提比例 = 
  1年内:     0-5%
  1-2年:     10-30%
  2-3年:     30-50%
  3年以上:   50-100%

账龄分析表生成公式:

期末坏账准备 = Σ(各账龄区间余额 × 对应计提比例)

1.3 逾期客户预警清单生成

触发条件:

  • 单笔应收款逾期超过30天
  • 同一客户逾期总额超过信用额度的50%
  • 逾期金额占总应收账款10%以上

输出格式:

逾期预警清单:
| 客户名称 | 逾期金额 | 账龄 | 信用额度 | 占用比例 | 风险等级 |
|---------|---------|------|---------|---------|---------|
| XXX公司 | ¥500,000 | 45天 | ¥800,000 | 62.5% | 🔴高 |

模块二:应付账款账龄分析

2.1 供应商账龄统计

统计维度:

  • 按供应商维度汇总应付余额
  • 按账龄区间分组统计
  • 按付款条件对比实际付款周期

2.2 逾期应付款预警

预警规则:

逾期天数 = 实际付款日期 - 应付到期日
逾期金额 = 逾期天数 > 0 的应付账款合计

2.3 付款优先级排序算法

付款优先级 = 
  (紧急程度权重 × 逾期天数) + 
  (金额权重 × log(应付金额)) + 
  (关系权重 × 供应商评级)

权重参考:

  • 紧急程度权重:0.4
  • 金额权重:0.3
  • 关系权重:0.3

模块三:异常交易检测

3.1 大额交易预警

阈值设定:

单笔预警阈值 = max(历史平均交易额 × 3, 固定阈值)
固定阈值默认值:¥500,000

判断逻辑:

def check_large_transaction(amount, history_avg):
    threshold = max(history_avg * 3, 500000)
    if amount > threshold:
        return {"flag": True, "level": "warning", "threshold": threshold}
    return {"flag": False}

3.2 非工作时间交易检测

检测范围:

  • 工作日 22:00 - 次日 06:00
  • 周末及节假日全天

异常指数计算:

非工作时间交易频率 = 非工作时间交易数 / 总交易数
异常指数 = 非工作时间交易频率 × 金额占比

3.3 频繁小额交易(拆单检测)

拆单特征识别:

def detect_split_transactions(transactions, amount_threshold=10000):
    """
    检测是否存在将大额交易拆分为多笔小额交易
    """
    # 1. 按交易对手+时间段分组
    grouped = group_by_counterparty_and_period(transactions)
    
    # 2. 识别金额接近阈值的连续交易
    suspicious_patterns = []
    for key, txns in grouped.items():
        sorted_txns = sort_by_time(txns)
        # 3. 检测是否存在金额之和超过阈值的连续小额交易
        for i in range(len(sorted_txns)):
            window_sum = 0
            for j in range(i, min(i+5, len(sorted_txns))):  # 5分钟内
                window_sum += sorted_txns[j].amount
                if window_sum > amount_threshold * 0.9:  # 达到阈值90%
                    suspicious_patterns.append({
                        "transactions": sorted_txns[i:j+1],
                        "total_amount": window_sum,
                        "count": j - i + 1
                    })
    return suspicious_patterns

3.4 关联交易异常检测

关联交易识别维度:

  • 关联方识别:母公司、子公司、合营企业、联营企业
  • 交易频率异常:与关联方交易频率显著高于其他供应商
  • 价格异常:关联方交易价格偏离市场价20%以上
  • 条款异常:给予关联方特殊付款条件

风险评分公式:

关联交易风险分 = 
  基础分(20) + 
  频率异常加分(0-30) + 
  价格偏离加分(0-30) + 
  条款异常加分(0-20)

3.5 整数金额交易检测

整数判定规则:

def is_round_amount(amount):
    """检测是否为整数金额(可能存在虚假交易)"""
    # 排除已知的整数交易类型(如工资、水电费)
    if is_known_regular_expense(amount):
        return False
    # 判断是否为整数或接近整数
    return abs(amount - round(amount)) < 0.01

def calculate_round_amount_risk(txns):
    """计算整数金额交易风险指数"""
    round_count = sum(1 for t in txns if is_round_amount(t.amount))
    total_count = len(txns)
    round_ratio = round_count / total_count if total_count > 0 else 0
    
    # 整数金额占比超过行业均值可能有异常
    industry_avg = 0.15  # 行业平均水平
    risk_score = min((round_ratio - industry_avg) * 100, 50)
    return risk_score

3.6 月末突击入账检测

检测逻辑:

def detect_month_end_spike(transactions, month):
    """检测月末突击入账(粉饰报表嫌疑)"""
    month_txns = filter_by_month(transactions, month)
    
    # 按日期分组统计
    daily_amounts = group_by_day(month_txns)
    
    # 计算最后5天占比
    last_5_days_amount = sum(daily_amounts[-5:])
    month_total = sum(daily_amounts)
    
    spike_ratio = last_5_days_amount / month_total if month_total > 0 else 0
    
    return {
        "last_5_days_ratio": spike_ratio,
        "flag": spike_ratio > 0.4,  # 超过40%触发预警
        "risk_level": "high" if spike_ratio > 0.5 else "medium"
    }

模块四:重复付款检测

4.1 相同金额+相同供应商+相近日期检测

检测规则:

def detect_duplicate_payment(transactions, tolerance_days=7, tolerance_amount=0.01):
    """
    检测重复付款
    - 相同供应商
    - 金额差异小于 tolerance_amount
    - 日期差小于 tolerance_days
    """
    duplicates = []
    for i, t1 in enumerate(transactions):
        for t2 in transactions[i+1:]:
            same_supplier = t1.supplier_id == t2.supplier_id
            similar_amount = abs(t1.amount - t2.amount) / t1.amount < tolerance_amount
            close_date = abs((t2.date - t1.date).days) <= tolerance_days
            
            if same_supplier and similar_amount and close_date:
                duplicates.append({
                    "transaction_1": t1,
                    "transaction_2": t2,
                    "match_type": "amount_supplier_date"
                })
    return duplicates

4.2 相同发票号重复报销检测

def detect_duplicate_invoice(invoices):
    """检测相同发票号重复报销"""
    invoice_groups = group_by_invoice_number(invoices)
    duplicates = {k: v for k, v in invoice_groups.items() if len(v) > 1}
    return duplicates

4.3 重复凭证号检查

def detect_duplicate_voucher(vouchers):
    """检测凭证号重复"""
    voucher_groups = group_by_voucher_number(vouchers)
    duplicates = {k: v for k, v in voucher_groups.items() if len(v) > 1}
    return duplicates

4.4 已付款状态变更检测

检测场景:

  • 同一笔付款记录出现多次"付款完成"状态
  • 已付款记录状态被回退为"未付款"
  • 付款金额被修改

模块五:银行对账异常

5.1 银行流水与账面余额差异分析

对账公式:

银行对账差异 = 银行余额 - 账面余额

调整后余额 = 银行余额 ± 未达账项
应等于 = 账面余额

5.2 未达账项分析

未达账项类型:

类型方向说明
银行已收企业未收企业少计加回
银行已付企业未付企业多计减除
企业已收银行未收银行少计减除
企业已付银行未付银行多计加回

5.3 长期挂账项目标记

挂账期限阈值:

短期挂账: 30-90天
中期挂账: 90-180天
长期挂账: 180天以上

5.4 资金流向异常检测

def detect_fund_flow_anomaly(transactions, base_ratio=0.3):
    """
    检测资金流向异常
    - 单个账户流出/流入占比异常
    - 资金快进快出
    - 资金闭环流动
    """
    # 计算各账户资金流占比
    account_flows = calculate_account_flow_ratio(transactions)
    
    anomalies = []
    for account, flow in account_flows.items():
        if abs(flow.out_ratio - 0.5) > base_ratio:  # 流出或流入占比过高
            anomalies.append({
                "account": account,
                "out_ratio": flow.out_ratio,
                "pattern": "单向流动异常" if flow.out_ratio > 0.9 or flow.out_ratio < 0.1 else "比例失衡"
            })
    
    return anomalies

模块六:费用审计

6.1 费用率异常波动检测

费用率计算:

费用率 = 费用发生额 / 营业收入 × 100%

同比变化率 = (本期费用率 - 上期费用率) / 上期费用率 × 100%

预警阈值:

  • 同比波动超过20%:⚠️关注
  • 同比波动超过50%:🔴重点审计

6.2 差旅费合理性检查

检查维度:

def audit_travel_expense(claims, company_policy):
    """
    差旅费合理性审计
    - 机票价格是否超标
    - 住宿费是否超标准
    - 出差天数与行程匹配性
    """
    violations = []
    for claim in claims:
        # 机票舱位检查
        if claim.ticket_class != "经济舱" and not claim.is_approved_premium:
            violations.append(f"机票舱位超标: {claim.employee}")
        
        # 住宿费检查
        if claim.hotel_rate > company_policy.max_hotel_rate:
            violations.append(f"住宿超标: {claim.employee}, 实际¥{claim.hotel_rate}, 标准¥{company_policy.max_hotel_rate}")
        
        # 行程合理性检查
        if claim.trip_days < 0.5:  # 当天往返
            if claim.total_expense > company_policy.same_day_limit:
                violations.append(f"当天往返费用超标: {claim.employee}")
    
    return violations

6.3 业务招待费限额检测

税法规定:

扣除限额 = min(营业收入 × 0.5%, 发生额 × 60%)
超出部分需调增应纳税所得额

检测公式:

def check_entertainment_limit(revenue, entertainment_expense):
    limit_1 = revenue * 0.005  # 营业收入0.5%
    limit_2 = entertainment_expense * 0.6  # 发生额60%
    deductible_limit = min(limit_1, limit_2)
    
    over_limit = entertainment_expense - deductible_limit
    return {
        "deductible_amount": deductible_limit,
        "over_limit_amount": max(0, over_limit),
        "tax_adjustment": max(0, over_limit) * 0.25,  # 假设25%税率
        "flag": over_limit > 0
    }

6.4 工资异常变动检测

检测维度:

def detect_salary_anomaly(salary_records, threshold_ratio=0.2):
    """
    工资异常变动检测
    - 月度波动检测
    - 人员变动检测
    - 奖金异常发放
    """
    anomalies = []
    
    for employee, records in group_by_employee(salary_records).items():
        sorted_records = sort_by_month(records)
        
        for i in range(1, len(sorted_records)):
            change_ratio = (sorted_records[i].total - sorted_records[i-1].total) / sorted_records[i-1].total
            
            if abs(change_ratio) > threshold_ratio:
                anomalies.append({
                    "employee": employee,
                    "month": sorted_records[i].month,
                    "change_ratio": change_ratio,
                    "possible_reason": "大额奖金" if change_ratio > 0 else "扣款异常"
                })
    
    return anomalies

模块七:税务风险检测

7.1 进销项比率异常

def check_input_output_ratio(purchases, sales, industry_avg_ratio=1.2):
    """
    进销项比率分析
    正常企业进项税额应略大于销项税额
    比率过高可能存在虚开或滞留发票
    比率过低可能存在隐瞒收入
    """
    input_tax = sum(p.amount for p in purchases)
    output_tax = sum(s.tax for s in sales)
    
    ratio = input_tax / output_tax if output_tax > 0 else float('inf')
    
    return {
        "ratio": ratio,
        "flag": ratio < 0.8 or ratio > 2.0,
        "risk": "比率过低-可能隐瞒收入" if ratio < 0.8 else 
                "比率过高-可能虚抵进项" if ratio > 2.0 else "正常"
    }

7.2 税负率偏离检测

行业税负率参考:

industry_tax_burden = {
    "制造业": (3, 5),      # 增值税税负率范围
    "批发零售": (1.5, 3),
    "建筑业": (2.5, 4.5),
    "服务业": (3, 6),
    "房地产": (5, 10)
}

def check_tax_burden_rate(industry, tax_amount, revenue):
    burden_rate = tax_amount / revenue * 100
    min_rate, max_rate = industry_tax_burden.get(industry, (2, 8))
    
    return {
        "burden_rate": burden_rate,
        "industry_range": (min_rate, max_rate),
        "flag": burden_rate < min_rate or burden_rate > max_rate,
        "risk_level": "偏低-需关注" if burden_rate < min_rate else 
                      "偏高-正常经营" if burden_rate < max_rate else "异常"
    }

7.3 发票金额与合同金额不匹配

def check_invoice_contract_mismatch(invoices, contracts):
    """
    检测发票金额与合同金额差异
    允许合理差异范围: ±5%
    """
    mismatches = []
    for invoice in invoices:
        contract = find_contract(contracts, invoice.contract_id)
        if contract:
            diff_ratio = abs(invoice.amount - contract.amount) / contract.amount
            if diff_ratio > 0.05:
                mismatches.append({
                    "invoice_no": invoice.no,
                    "contract_no": contract.no,
                    "invoice_amount": invoice.amount,
                    "contract_amount": contract.amount,
                    "diff_ratio": diff_ratio
                })
    return mismatches

7.4 长期零申报/负申报预警

检测规则:

def detect_zero_negative_filing(tax_records, threshold_months=6):
    """
    检测长期零申报或负申报
    连续超过 threshold_months 触发预警
    """
    consecutive_count = 0
    warning_periods = []
    current_sequence = []
    
    for record in sorted(tax_records, key=lambda x: x.month):
        if record.tax_amount <= 0:
            consecutive_count += 1
            current_sequence.append(record.month)
            if consecutive_count >= threshold_months:
                warning_periods.append(current_sequence.copy())
        else:
            consecutive_count = 0
            current_sequence = []
    
    return warning_periods

模块八:审计报告辅助

8.1 审计发现清单自动生成

发现分类标准:

风险等级判定条件响应要求
🔴高风险可能导致重大财务损失或违规24小时内上报
🟡中风险可能造成财务不实5个工作日内处理
🟢低风险内控缺陷但不影响报表公允30日内整改

生成模板:

审计发现清单
报告期间: XXXX年XX月
生成时间: XXXX年XX月XX日

一、🔴高风险发现
序号 | 问题描述 | 影响金额 | 发现依据 | 建议措施
---- | -------- | ------- | ------- | -------

二、🟡中风险发现
...

三、🟢低风险发现
...

四、风险汇总统计
| 风险等级 | 数量 | 涉及金额 |
|---------|------|---------|
| 🔴高   | X   | ¥XXX    |
| 🟡中   | X   | ¥XXX    |
| 🟢低   | X   | ¥XXX    |

8.2 整改建议生成规则

def generate_remediation_suggestions(finding):
    """根据审计发现自动生成整改建议"""
    suggestion_templates = {
        "大额异常交易": "建议立即冻结相关账户,追查资金去向,完善大额交易审批流程",
        "重复付款": "建议启动付款追回程序,完善付款复核机制,建立付款冲突检测系统",
        "账龄逾期": "建议启动法律催收程序,重新评估客户信用等级,计提相应坏账准备",
        "税务风险": "建议聘请专业税务顾问进行自查,准备相关证明材料,按期完成更正申报",
        "费用超标": "建议加强费用预算管理,完善费用报销审批流程,开展费用合规培训"
    }
    
    category = classify_finding(finding)
    base_suggestion = suggestion_templates.get(category, "建议进行进一步调查核实")
    
    return {
        "finding_id": finding.id,
        "category": category,
        "immediate_action": f"24小时内: {get_immediate_action(category)}",
        "short_term": f"30日内: {get_short_term_action(category)}",
        "long_term": f"制度层面: {get_systemic_action(category)}"
    }

8.3 审计底稿模板

# 审计底稿模板

## 基本信息
- 项目名称: 
- 审计期间: 
- 审计人员: 
- 复核人员: 
- 审计日期: 

## 审计范围
[描述本次审计覆盖的科目、期间、业务范围]

## 审计程序
### 1. 风险评估程序
- 了解被审计单位及其环境
- 识别和评估重大错报风险

### 2. 实质性程序
- [具体测试步骤]

## 审计证据
| 证据编号 | 证据类型 | 证据来源 | 主要内容 | 获取日期 |
|---------|---------|---------|---------|---------|
| E-001 | 文件 | 财务系统 | XX科目明细 | XXXX-XX-XX |

## 审计结论
[基于审计证据得出的结论]

## 重大事项说明
[需要特别说明的事项]

## 附件清单
1. 
2. 

数据输入格式

标准输入格式(CSV/Excel)

交易日期,凭证号,供应商/客户,摘要,借方金额,贷方金额,余额,交易类型
2024-01-15,V001,供应商A,采购商品,50000,0,50000,采购
2024-01-16,V002,客户B,销售商品,0,80000,80000,销售

标准输出格式

{
  "audit_date": "2024-01-20",
  "findings": [
    {
      "id": "F001",
      "category": "重复付款",
      "risk_level": "high",
      "description": "检测到向供应商A重复支付",
      "evidence": ["交易记录1", "交易记录2"],
      "amount": 50000,
      "suggestion": "启动付款追回程序"
    }
  ],
  "statistics": {
    "total_transactions": 1000,
    "anomalies_detected": 15,
    "risk_distribution": {"high": 3, "medium": 7, "low": 5}
  }
}

使用示例

示例1:应收账款账龄分析

输入:

客户 | 应收账款余额 | 账龄
---------------------------
A公司 | ¥800,000 | 45天
B公司 | ¥1,200,000 | 120天
C公司 | ¥300,000 | 200天
D公司 | ¥500,000 | 15天

输出:

📊 应收账款账龄分析报告

【账龄分布】
| 区间 | 金额 | 占比 | 客户数 |
|------|------|------|-------|
| 0-30天 | ¥500,000 | 18.5% | 1 |
| 31-60天 | ¥800,000 | 29.6% | 1 |
| 91-180天 | ¥1,200,000 | 44.4% | 1 |
| 180天以上 | ¥300,000 | 11.1% | 1 |

【坏账准备估算】
按一般计提比例:
- 31-60天 (5%): ¥40,000
- 91-180天 (30%): ¥360,000
- 180天以上 (50%): ¥150,000
合计坏账准备: ¥550,000

⚠️ 预警客户:
🔴 B公司 - 账龄120天,逾期严重,建议启动催收或法律程序
🔴 C公司 - 账龄200天,建议全额计提坏账

示例2:重复付款检测

输入:2笔向同一供应商的付款记录,金额相近,日期相差3天

输出:

🚨 重复付款警报

【检测结果】
- 凭证号 V001 和 V002 疑似重复付款
- 供应商: XX供应商
- 金额: ¥50,000 vs ¥49,995 (差异0.01%)
- 日期: 2024-01-10 vs 2024-01-13 (相差3天)

【建议措施】
1. 立即冻结第二笔付款
2. 联系供应商确认实际收款情况
3. 检查付款审批流程漏洞
4. 追回多付款项

【风险评级】🔴 高风险

注意事项

  1. 数据保密:审计数据涉及商业机密,处理过程需确保数据安全
  2. 阈值调整:各检测阈值可根据企业实际情况调整
  3. 人工复核:所有自动检测结果需经审计人员复核确认
  4. 合规要求:税务相关检测需符合最新税法规定
  5. 持续更新:检测规则库需随业务变化和监管要求更新

Related skills

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván559 installs18 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai22 installs8 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván855 installs69 stars

More from aolikeji

Browse all skills

OpenClaw 财务能力终极扩展包 - 覆盖财报分析、杜邦拆解、风险识别、财务报告生成、现金流分析、税务管理等企业级财务工作流。适用于投资分析、尽职调查、财务尽调、预算管理等场景。

by aolikeji2 installs

万能财务会计技能包 — 基于进销存收支记账一体化系统设计,涵盖账务处理、分录生成、凭证审核、发票管理、银行对账、税务计算、财务报表编制、Excel自动化操作。适用于上市公司或中小企业的日常财务核算、报表分析、税务申报、往来管理、库存成本核算。

by aolikeji2 installs

企业成本核算技能包 — 面向上市公司成本会计,覆盖材料成本、人工成本、制造费用、 在产品/产成品成本结转、标准成本法、作业成本法、成本差异分析、降本增效等全流程。 支持品种法/分批法/分步法/作业成本法等多种成本核算方法,提供公式、示例和Excel自动化模板。

by aolikeji1 installs

上市公司税务计算技能包 — 覆盖增值税(一般纳税人/小规模)、企业所得税(季度预缴/年度汇算)、个人所得税(累计预扣法/综合所得)、附加税费、税务申报逻辑与税负预警。适用于企业税务核算、申报辅助、财税合规检查。

by aolikeji1 installs

上市公司财务文件归档与整理技能包,自动整理凭证、合同、附件,按标准目录结构归档,支持PDF处理、批量重命名、MD5查重、会计档案保管期限管理及审计支持。

by aolikeji1 installs

面向上市公司的发票识别与自动入账技能包,通过 OCR 拍照/截图提取发票数据, 自动分类并匹配入账。支持增值税专用发票、普通发票、全电发票、机动车发票、 通行费、火车票机票等全类型发票,实现发票验真、自动分类、三单匹配和台账管理。

by aolikeji1 installs