## 一、数据简介 **请注意:该表不是日频数据,不能直接作为因子使用。该表适合对财务数据有深入研究的用户,日频财务数据的加工方法见文末“通用文档”。** 盈利能力财务指标是用来衡量企业盈利能力的关键指标,帮助投资者和管理层评估公司在经营活动中的盈利效果。 - 数据起始时间:2010-01-04 - 数据结束时间:2026-10-31 - 数据更新频率:不定期,上市公司发布相关公告时更新 ## 二、主键说明 | 关键字 | 释意 | | --- | --- | | date | 公告日,表示站在这一天能看到的财务数据(`shift = 0` 为当时最新一期),不是报告期(报告期见 report_date),可能不是交易日;与 cn_stock_financial_changedate 中的 changedate 对应,详见文末“通用文档” | | instrument | 股票代码 | | report_date | 财务报告期,规则见文末“通用文档” | | shift | 偏移期,站在 date 这一天,向前偏移 n 期的财务数据,0 为当时最新一期,单位为季度 | ## 三、字段说明 字段名由下表的英文字段加后缀组成,后缀表示取数口径:_lf 最新一期,_mrq 单季度,_ttm 滚动十二期。不是每个指标都有三种后缀,具体字段以表结构为准。 | 中文名 | 英文字段 | 中文公式 | 英文公式 | | --- | --- | --- | --- | | 净资产收益率(平均) | `roe_avg` | `归属于母公司所有者的净利润 / 平均归属于母公司所有者权益合计` | `net_profit_to_parent_shareholders / avg_total_equity_to_parent_shareholders` | | 净资产收益率(摊薄) | `roe_period` | `归属于母公司所有者的净利润 / 期末归属于母公司所有者权益合计` | `net_profit_to_parent_shareholders / ending_total_equity_to_parent_shareholders` | | 净资产收益率(扣除,平均) | `roe_avg_deduct` | `扣非归母净利润 / 平均归属于母公司所有者权益合计` | `deducted_net_profit / avg_total_equity_to_parent_shareholders` | | 净资产收益率(扣除,摊薄) | `roe_period_deduct` | `扣非归母净利润 / 期末归属于母公司所有者权益合计` | `deducted_net_profit / ending_total_equity_to_parent_shareholders` | | 资产总计报酬率(平均) | `roa2_avg` | `息税前利润 / 平均资产总计` | `EBIT / avg_total_assets` | | 资产总计报酬率(摊薄) | `roa2_period` | `息税前利润 / 期末资产总计` | `EBIT / ending_total_assets` | | 资产总计净利率(平均) | `roa_avg` | `净利润 / 平均资产总计` | `net_profit / avg_total_assets` | | 资产总计净利率(摊薄) | `roa_period` | `净利润 / 期末资产总计` | `net_profit / ending_total_assets` | | 投入资本回报率 | `roic` | `EBIT(反推法)*(1-有效税率) / 平均全部投入资本` | `EBIT(Back Calculation)*(1-effective_tax_rate) / avg_total_invested_capital` | | 销售净利率 | `net_profit_rate` | `净利润 / 营业收入` | `net_profit / operating_revenue` | | 销售毛利率 | `gross_profit_rate` | `(营业收入-营业成本) / 营业收入` | `(operating_revenue - operating_cost) / operating_revenue` | | 销售成本率 | `cogs` | `营业成本 / 营业收入` | `operating_cost / operating_revenue` | | 销售期间费用率 | `period_expense_rate` | `(销售费用+管理费用+研发费用+财务费用) / 营业收入` | `(selling_expense + administrative_expense + R&D_expense + finance_expense) / operating_revenue` | | 成本费用利润率 | `profit_rate_to_expense` | `净利润 / (营业成本+销售费用+管理费用+财务费用+研发费用)` | `net_profit / (operating_cost + selling_expense + administrative_expense + finance_expense + R&D_expense)` | | 主营业务比率 | `prime_operating_rate` | `营业利润 / 利润总额` | `operating_profit / total_profit` | | 归属于母公司股东的净利润 / 营业总收入 | `profit_of_parent_to_total_revenue` | `归属于母公司股东的净利润 / 营业总收入` | `net_profit_to_parent_shareholders / total_operating_revenue` | | 息税前利润 / 营业总收入 | `ebit_to_total_revenue` | `EBIT(反推法) / 营业总收入` | `EBIT(Back Calculation) / total_operating_revenue` | | 息税前利润 / 资产总计 | `ebit_to_total_assets` | `EBIT(反推法) / 资产总计` | `EBIT(Back Calculation) / total_assets` | | 息税折旧摊销前利润/营业总收入 | `ebitda_to_total_revenue` | `EBITDA(反推法) / 营业总收入` | `EBITDA(Back Calculation) / total_operating_revenue` | | 销售费用 / 营业总收入 | `sales_to_total_revenue` | `销售费用 / 营业总收入` | `selling_expense / total_operating_revenue` | | 管理费用 / 营业总收入 | `admin_to_total_revenue` | `管理费用 / 营业总收入` | `administrative_expense / total_operating_revenue` | | 研发费用 / 营业总收入 | `research_develop_to_total_revenue` | `研发费用 / 营业总收入` | `R&D_expense / total_operating_revenue` | | 财务费用 / 营业总收入 | `finance_to_total_revenue` | `财务费用 / 营业总收入` | `finance_expense / total_operating_revenue` | | 资产减值损失 / 营业总收入 | `asset_impair_to_total_revenue` | `资产减值损失 / 营业总收入` | `asset_impairment_loss / total_operating_revenue` | | 资产减值损失 / 营业利润 | `asset_impair_to_operating_profit` | `资产减值损失 / 营业利润` | `asset_impairment_loss / operating_profit` | | 信用减值损失 / 营业总收入 | `credit_impair_to_total_revenue` | `信用减值损失 / 营业总收入` | `credit_impairment_loss / total_operating_revenue` | | 信用减值损失 / 营业利润 | `credit_impair_to_operating_profit` | `信用减值损失 / 营业利润` | `credit_impairment_loss / operating_profit` | ## 四、示例数据 2026-10-26 至 2026-11-02 的数据,字段较多,只展示 7 个字段,按日期、股票代码、报告期排序,展示前 5 行和后 5 行。 | date | instrument | report_date | shift | roe_avg_lf | roe_period_lf | roe_avg_deduct_lf | roe_period_deduct_lf | roa2_avg_lf | roa2_period_lf | roa_avg_lf | roa_period_lf | roic_lf | net_profit_rate_lf | gross_profit_rate_lf | cogs_lf | period_expense_rate_lf | profit_rate_to_expense_lf | prime_operating_rate_lf | profit_of_parent_to_total_revenue_lf | ebit_to_total_revenue_lf | ebit_to_total_assets_lf | ebitda_to_total_revenue_lf | sales_to_total_revenue_lf | admin_to_total_revenue_lf | research_develop_to_total_revenue_lf | finance_to_total_revenue_lf | asset_impair_to_total_revenue_lf | asset_impair_to_operating_profit_lf | credit_impair_to_total_revenue_lf | credit_impair_to_operating_profit_lf | roe_avg_mrq | roe_period_mrq | roe_avg_deduct_mrq | roe_period_deduct_mrq | roa2_avg_mrq | roa2_period_mrq | roa_avg_mrq | roa_period_mrq | roic_mrq | net_profit_rate_mrq | gross_profit_rate_mrq | cogs_mrq | period_expense_rate_mrq | profit_rate_to_expense_mrq | prime_operating_rate_mrq | profit_of_parent_to_total_revenue_mrq | ebit_to_total_revenue_mrq | ebit_to_total_assets_mrq | ebitda_to_total_revenue_mrq | sales_to_total_revenue_mrq | admin_to_total_revenue_mrq | research_develop_to_total_revenue_mrq | finance_to_total_revenue_mrq | asset_impair_to_total_revenue_mrq | asset_impair_to_operating_profit_mrq | credit_impair_to_total_revenue_mrq | credit_impair_to_operating_profit_mrq | roe_avg_ttm | roe_period_ttm | roe_avg_deduct_ttm | roe_period_deduct_ttm | roa2_avg_ttm | roa2_period_ttm | roa_avg_ttm | roa_period_ttm | roic_ttm | net_profit_rate_ttm | gross_profit_rate_ttm | cogs_ttm | period_expense_rate_ttm | profit_rate_to_expense_ttm | prime_operating_rate_ttm | profit_of_parent_to_total_revenue_ttm | ebit_to_total_revenue_ttm | ebit_to_total_assets_ttm | ebitda_to_total_revenue_ttm | sales_to_total_revenue_ttm | admin_to_total_revenue_ttm | research_develop_to_total_revenue_ttm | finance_to_total_revenue_ttm | asset_impair_to_total_revenue_ttm | asset_impair_to_operating_profit_ttm | credit_impair_to_total_revenue_ttm | credit_impair_to_operating_profit_ttm | |:--------------------|:-------------|:--------------------|--------:|-------------:|----------------:|--------------------:|-----------------------:|--------------:|-----------------:|-------------:|----------------:|------------:|---------------------:|-----------------------:|----------:|-------------------------:|----------------------------:|--------------------------:|---------------------------------------:|---------------------------:|--------------------------:|-----------------------------:|----------------------------:|----------------------------:|---------------------------------------:|------------------------------:|-----------------------------------:|--------------------------------------:|------------------------------------:|---------------------------------------:|--------------:|-----------------:|---------------------:|------------------------:|---------------:|------------------:|--------------:|-----------------:|-------------:|----------------------:|------------------------:|-----------:|--------------------------:|-----------------------------:|---------------------------:|----------------------------------------:|----------------------------:|---------------------------:|------------------------------:|-----------------------------:|-----------------------------:|----------------------------------------:|-------------------------------:|------------------------------------:|---------------------------------------:|-------------------------------------:|----------------------------------------:|--------------:|-----------------:|---------------------:|------------------------:|---------------:|------------------:|--------------:|-----------------:|------------:|----------------------:|------------------------:|-----------:|--------------------------:|-----------------------------:|---------------------------:|----------------------------------------:|----------------------------:|---------------------------:|------------------------------:|-----------------------------:|-----------------------------:|----------------------------------------:|-------------------------------:|------------------------------------:|---------------------------------------:|-------------------------------------:|----------------------------------------:| | 2026-10-26 00:00:00 | 000020.SZ | 2008-12-31 00:00:00 | 71 | nan | 0.0305393 | nan | nan | nan | 0.0256159 | nan | 0.0169429 | 0.0515469 | 0.039957 | 0.180719 | 0.819281 | 0.179197 | 0.222978 | 0.308598 | 0.039957 | 0.0604107 | 0.0256159 | 0.160097 | 0.0189471 | 0.125787 | nan | 0.0344627 | 0.0106429 | 1.32911 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | | 2026-10-26 00:00:00 | 000020.SZ | 2009-03-31 00:00:00 | 70 | nan | nan | nan | nan | nan | nan | nan | nan | nan | 0.0225409 | 0.143444 | 0.856556 | 0.107418 | 0.209843 | 1.05735 | 0.0225409 | 0.0471562 | nan | 0.0471562 | 0.0143394 | 0.073416 | nan | 0.0196627 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | 0.0225409 | 0.143444 | 0.856556 | 0.107418 | 0.209843 | 1.05735 | 0.0225409 | 0.0471562 | nan | 0.0471562 | 0.0143394 | 0.073416 | nan | 0.0196627 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | | 2026-10-26 00:00:00 | 000020.SZ | 2009-06-30 00:00:00 | 69 | nan | nan | nan | nan | nan | nan | nan | nan | nan | 0.0205505 | 0.149462 | 0.850538 | 0.11967 | 0.171726 | 1.02972 | 0.0205505 | 0.0466515 | nan | 0.0873444 | 0.0142702 | 0.0792991 | nan | 0.026101 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | 0.018988 | 0.154186 | 0.845814 | 0.129288 | 0.146865 | 0.990239 | 0.018988 | 0.0462553 | nan | 0.0462553 | 0.0142159 | 0.0839174 | nan | 0.0311552 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | | 2026-10-26 00:00:00 | 000020.SZ | 2009-09-30 00:00:00 | 68 | nan | nan | nan | nan | nan | nan | nan | nan | nan | 0.0272762 | 0.144478 | 0.855522 | 0.109068 | 0.250084 | 1.00418 | 0.0272762 | 0.0530836 | nan | 0.0530836 | 0.01133 | 0.0738215 | nan | 0.0239167 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | 0.0362858 | 0.137801 | 0.862199 | 0.0948659 | 0.382495 | 0.9869 | 0.0362858 | 0.0616997 | nan | 0.0616997 | 0.00739135 | 0.0664839 | nan | 0.0209906 | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | nan | | 2026-10-26 00:00:00 | 000020.SZ | 2009-12-31 00:00:00 | 67 | nan | 0.0164888 | nan | 0.0187618 | nan | 0.0248927 | nan | 0.00548983 | 0.0216949 | 0.0081741 | 0.112888 | 0.887112 | 0.0935444 | 0.0873821 | 1.16243 | 0.0081741 | 0.0370642 | 0.0248927 | 0.0712917 | 0.0120783 | 0.0584563 | nan | 0.0230098 | -0.00294797 | -0.180446 | nan | nan | nan | -0.0236168 | nan | nan | nan | -0.00109388 | nan | -0.00786302 | -0.00266335 | -0.0431867 | 0.0279531 | 0.972047 | 0.051805 | -0.833638 | 0.695504 | -0.0431867 | -0.00600801 | -0.00109388 | -0.00600801 | 0.0140902 | 0.0171433 | nan | 0.0205715 | nan | nan | nan | nan | nan | 0.0164888 | nan | nan | nan | 0.0248927 | nan | 0.00548983 | nan | 0.0081741 | 0.112888 | 0.887112 | 0.0935444 | 0.0873821 | 1.16243 | 0.0081741 | 0.0370642 | 0.0248927 | 0.0370642 | 0.0120783 | 0.0584563 | nan | 0.0230098 | nan | nan | nan | nan | | 2026-10-31 00:00:00 | 688825.SH | 2025-09-30 00:00:00 | 4 | -0.110095 | -0.106959 | nan | nan | -0.0141053 | -0.0138032 | -0.0201771 | -0.0197451 | -0.0138053 | -0.186396 | 0.244134 | 0.755866 | 0.447297 | -0.416716 | 0.998209 | -0.164569 | -0.130304 | -0.0138032 | -0.130304 | 0.00744069 | 0.184363 | 0.19943 | 0.0560632 | 0.0198694 | -0.106806 | 2.82789e-06 | -1.5201e-05 | -0.0614683 | -0.0597175 | nan | nan | -0.00352939 | -0.00345381 | -0.00638603 | -0.00624928 | -0.0034537 | -0.113707 | 0.34998 | 0.65002 | 0.517626 | -0.219671 | 0.990558 | -0.177097 | -0.0628431 | -0.00345381 | -0.0628431 | 0.0061936 | 0.296095 | 0.164469 | 0.0508679 | -0.00950082 | 0.0843487 | 0.00019262 | -0.00171009 | -0.146974 | -0.142788 | nan | nan | -0.027635 | -0.0270432 | -0.0276408 | -0.0270489 | nan | -0.204603 | nan | nan | 0 | nan | 0.987651 | nan | nan | -0.0270432 | nan | nan | nan | nan | nan | nan | nan | nan | nan | | 2026-10-31 00:00:00 | 688825.SH | 2025-12-31 00:00:00 | 3 | 0.0353353 | 0.033035 | nan | nan | 0.0333142 | 0.031637 | 0.0223376 | 0.0212131 | 0.0328844 | 0.115604 | 0.409938 | 0.590062 | 0.315781 | 0.366088 | 1.00254 | 0.0303379 | 0.172411 | 0.031637 | 0.610708 | 0.00545519 | 0.107298 | 0.155232 | 0.0477959 | 0.0122115 | 0.0977449 | -1.43411e-05 | -0.000114791 | 0.134847 | 0.126068 | nan | nan | 0.0463857 | 0.0440504 | 0.0410359 | 0.03897 | 0.0473504 | 0.44167 | 0.588955 | 0.411045 | 0.173785 | 2.54147 | 1.00065 | 0.240777 | 0.499249 | 0.0440504 | 0.499249 | 0.00331148 | 0.0240913 | 0.107513 | 0.0388698 | 0.00394324 | 0.00855965 | -3.28783e-05 | -7.13694e-05 | 0.0353353 | 0.033035 | nan | nan | 0.0333142 | 0.031637 | 0.0223376 | 0.0212131 | 0.0328844 | 0.115604 | 0.409938 | 0.590062 | 0.315781 | 0.366088 | 1.00254 | 0.0303379 | 0.172411 | 0.031637 | 0.172411 | 0.00545519 | 0.107298 | 0.155232 | 0.0477959 | 0.0122115 | 0.0977449 | -1.43411e-05 | -0.000114791 | | 2026-10-31 00:00:00 | 688825.SH | 2026-03-31 00:00:00 | 2 | 0.357631 | 0.302994 | nan | nan | 0.101045 | 0.0943569 | 0.0910724 | 0.0850448 | 0.0994535 | 0.649831 | 0.791575 | 0.208425 | 0.0769104 | 8.4492 | 0.999963 | 0.48744 | 0.720986 | 0.0943569 | 0.869199 | 0.00154141 | 0.00950541 | 0.0424013 | 0.0234623 | -0.00120588 | -0.00172887 | 0.000141634 | 0.000203061 | 0.357631 | 0.302994 | nan | nan | 0.101045 | 0.0943569 | 0.0910724 | 0.0850448 | 0.0994535 | 0.649831 | 0.791575 | 0.208425 | 0.0769104 | 8.4492 | 0.999963 | 0.48744 | 0.720986 | 0.0943569 | 0.869199 | 0.00154141 | 0.00950541 | 0.0424013 | 0.0234623 | -0.00120588 | -0.00172887 | 0.000141634 | 0.000203061 | 0.407226 | 0.345012 | nan | nan | 0.137119 | 0.128044 | 0.118576 | 0.110728 | 0.135475 | 0.403965 | 0.608389 | 0.391611 | 0.194744 | 2.07434 | 1.00053 | 0.265005 | 0.467138 | 0.128044 | 0.467138 | 0.00330003 | 0.0621743 | 0.094096 | 0.0351733 | -0.0016125 | -0.00373097 | 0.000103801 | 0.000240173 | | 2026-10-31 00:00:00 | 688825.SH | 2026-06-30 00:00:00 | 1 | 0.717086 | 0.576041 | 0.728061 | 0.584858 | 0.279302 | 0.25546 | 0.251212 | 0.229769 | 0.266972 | 0.715518 | 0.847419 | 0.152581 | 0.0635562 | 11.258 | 0.999991 | 0.516301 | 0.795524 | 0.25546 | 0.896927 | 0.00148443 | 0.00906603 | 0.0368401 | 0.0161657 | 0.00183732 | 0.0023575 | 0.00015591 | 0.000200051 | 0.48828 | 0.39224 | nan | nan | 0.193751 | 0.177212 | 0.174105 | 0.159243 | 0.184013 | 0.749052 | 0.875927 | 0.124073 | 0.0567389 | 13.2017 | 1 | 0.531034 | 0.833576 | 0.177212 | 0.911082 | 0.00145533 | 0.00884173 | 0.0340011 | 0.0124408 | 0.00339089 | 0.00412949 | 0.000163197 | 0.000198745 | 0.755958 | 0.607268 | nan | nan | 0.311511 | 0.28492 | 0.277447 | 0.253764 | 0.29879 | 0.603958 | 0.766265 | 0.233735 | 0.118642 | 5.09058 | 1.0002 | 0.415984 | 0.678109 | 0.28492 | 0.678109 | 0.00215905 | 0.0356296 | 0.0583204 | 0.0225332 | 0.00119588 | 0.0018238 | 0.000130492 | 0.00019901 | | 2026-10-31 00:00:00 | 688825.SH | 2026-09-30 00:00:00 | 0 | 0.674365 | 0.514022 | 0.684529 | 0.521769 | 0.385448 | 0.326858 | 0.344608 | 0.292226 | 0.353182 | 0.730538 | 0.868527 | 0.131473 | 0.0554684 | 13.1703 | 0.999986 | 0.490811 | 0.817114 | 0.326858 | 0.817114 | 0.001416 | 0.00808239 | 0.0324534 | 0.0135166 | 0.00328151 | 0.00408358 | 0.000141312 | 0.000175852 | 0.278014 | 0.211911 | 0.282111 | 0.215034 | 0.175779 | 0.14906 | 0.156026 | 0.132309 | 0.159178 | 0.749555 | 0.895252 | 0.104748 | 0.045228 | 16.5728 | 0.999979 | 0.458537 | 0.844449 | 0.14906 | 0.844449 | 0.00132936 | 0.00683694 | 0.0268992 | 0.0101625 | 0.00511006 | 0.0061252 | 0.00012283 | 0.000147231 | 0.710907 | 0.541875 | nan | nan | 0.411461 | 0.348917 | 0.367621 | 0.311741 | 0.378258 | 0.701804 | 0.840718 | 0.159282 | 0.0672374 | 10.4377 | 1.00003 | 0.46594 | 0.785496 | 0.348917 | 0.785496 | 0.00160454 | 0.00967479 | 0.0399196 | 0.0160385 | 0.00334733 | 0.00435014 | 0.000123986 | 0.00016113 | ## 通用文档 ## 【财务数据通用】一、数据体系 平台的财务数据分四类,从原始披露到加工指标逐层派生: | 类别 | 数据表 | 说明 | | --- | --- | --- | | 原始数据 | 资产负债表、利润表、现金流量表 PIT(`cn_stock_financial_*_pit`),财报变更日期(`cn_stock_financial_changedate`),财务附注(`cn_stock_financial_note_*`) | 公司披露什么就记录什么,只在披露财报时有记录,不是日频 | | 衍生数据 | `cn_stock_financial_lf_shift`、`ly_shift`、`mrq_shift`、`ttm_shift`、`notes_shift` | 把原始数据加工成最新一期(LF)、最新年报(LY)、单季度(MRQ)、滚动十二期(TTM),并用 `shift` 带出历史各期 | | 财务分析 | `cn_stock_financial_profitability`、`growth`、`operating`、`debt_repay`、`capital`、`cash_flow`、`earning_quality`、`xps`、`derivative` | 在衍生数据的基础上做加减乘除得到的财务指标 | | 盈利预期 | `cn_stock_financial_earnings_preview`、`cn_stock_financial_forecast_consensus_rolling` | 业绩快报和机构一致预期,口径独立,见各表文档 | 以上财务表都不是日频数据,不能直接当作每日因子使用,需要先按公告日对齐到交易日,做法见本文五。衍生数据和财务分析适合对财务数据有较深了解、希望构建复杂财务因子的用户。 ## 【财务数据通用】二、date 与 report_date 财务表里有两个时间概念,含义不同,使用时不要混淆: - `date`:公告日,即这条财务数据对外公布(首次披露或更正)的日期,也是这条数据可以被使用的最早日期。`date` 不是报告期。 - `report_date`:报告期,即这条数据属于哪一期财报。 关于 `date` 的几点说明: - `date` 就是公告日,原样记录,公告日不是交易日(周末、节假日)时也不会顺延,所以 `date` 可能不是交易日。按交易日使用时,用 `date <= 交易日` 取最新的记录即可(见本文五的 `ASOF JOIN`)。 - `date` 来自 `cn_stock_financial_changedate` 的 `changedate`,二者约等于同一个日期。数据入库时会去重,所有字段的取值完全相同的记录只保留一条。 - 原始表(三大报表 PIT、财务附注)中,一行是某个公司某个报告期在某个公告日的版本。同一个 `report_date` 首次披露和后来更正,会有不同的 `date`。 - 衍生表和财务分析表中,`date` 同样是公告日,表里只有公司有公告的日期。站在这一天,`shift = 0` 是当时能看到的最新一期,`shift = 1, 2…` 是更早的各期,数值是当时能看到的版本,示例见本文四。 报告期的取值: - xxxx-03-31 表示 xxxx 年一季报,比如 2024-03-31 指 2024 年一季报 - xxxx-06-30 表示 xxxx 年半年报,比如 2024-06-30 指 2024 年半年报 - xxxx-09-30 表示 xxxx 年三季报,比如 2024-09-30 指 2024 年三季报 - xxxx-12-31 表示 xxxx 年年报,比如 2024-12-31 指 2024 年年报 上市公司一年内披露四次财务报告,披露时限如下: - 一季报:应在 4 月 30 日前披露 - 半年报:应在 8 月 31 日前披露 - 三季报:应在 10 月 31 日前披露 - 年报:应在次年 4 月 30 日前披露 判断某一天能看到哪些数据要用 `date`,不能用 `report_date`,否则会用到当时还没有公布的数据。 ## 【财务数据通用】三、PIT (Point in Time) 上市公司除了正常披露财务报表外,后续会时常对历史财务数据进行修正。因此在量化投资领域,加工财务数据时不能只用最新修正后的数据,而要基于历史时间节点获取当时能获取的最新数据。PIT(Point In Time)数据指的是在某个时间点上,基于已公布的财务报表获取的某个财务指标的取值。 以 002473.SZ 的财务数据为例,在平台上调用以下代码: ```python import dai import pandas as pd pd.set_option('display.float_format', '{:.2f}'.format) dai.query(""" SELECT date, instrument, report_date, change_type, total_current_assets FROM cn_stock_financial_balance_general_pit WHERE instrument='002473.SZ' AND report_date='2019-12-31' AND date>'2020-01-01' """).df() ``` 运行上述代码,能得到以下数据: | date | instrument | report_date | change_type | total_current_assets | | --- | --- | --- | --- | --- | | 2020-04-30 | 002473.SZ | 2019-12-31 | 0 | 223449880.95 | | 2020-08-27 | 002473.SZ | 2019-12-31 | 1 | 228470428.90 | | 2020-10-26 | 002473.SZ | 2019-12-31 | 1 | 228470428.90 | | 2021-04-29 | 002473.SZ | 2019-12-31 | 1 | 228470428.90 | 该公司于 2020 年 4 月 30 日首次公布 2019 年年报,披露的流动资产(total_current_assets)为 223449880.95,又于 2020 年 8 月 27 日对 2019 年年报的流动资产进行修正,修正为 228470428.90,因此 2019 年年报在表中有多条记录。 date 为 2020-08-27、2020-10-26、2021-04-29 的 total_current_assets 取值相同,这些重复记录是必要的:公司每披露某一期财报,都会附带上年同期或上年年末的数据作对比,极少部分公司即使不发布修正公告,也会通过这种方式修改历史财务数据,所以每次披露都保留一条记录。 原始数据表里与此相关的字段: | 字段 | 释意 | | --- | --- | | change_type | 0 表示首次披露的财务数据,1 表示非首次披露或有更改的财务数据 | | fs_quarter_index | 对应季度,1 指一季报,2 指半年报,3 指三季报,4 指年报,仅报表 PIT 表有 | ## 【财务数据通用】四、衍生数据:LF、LY、MRQ、TTM 与 shift 原始财务数据只在公司披露财报时才有记录,这类非规整的数据很难直接用于量化投资。衍生数据把原始数据加工成四类,字段名就是原始财务字段加上对应的后缀。要查具体字段,先在原始财报的文档里找到财务字段,再加上后缀,比如利润表的 `net_profit` 对应 `net_profit_lf`、`net_profit_ttm`。 - lf(last file):取自最新一期财务数据,表为 `cn_stock_financial_lf_shift` - ly(last year):取自最新一期年报财务数据,表为 `cn_stock_financial_ly_shift` - mrq(most recent quarter):最新一个单季度的财务数据,表为 `cn_stock_financial_mrq_shift` - ttm(trailing twelve months):最新滚动十二个月的财务数据,表为 `cn_stock_financial_ttm_shift` - shift(偏移期):站在历史节点上向前偏移 n 期,shift=0 为当期,shift=1 为上一期。LF、MRQ、TTM 以季为单位,LY 以年为单位 在平台加工的“衍生数据”和“财务分析”两大类财务数据中,我们同样进行 PIT 处理,以 002473.SZ 这只股票的流动资产(total_current_assets)数据举例: ```python import dai import pandas as pd pd.set_option('display.float_format', '{:.2f}'.format) dai.query(""" SELECT date, instrument, report_date, shift, total_current_assets_lf FROM cn_stock_financial_lf_shift WHERE instrument='002473.SZ' AND shift < 3 AND ((date='2020-04-30') OR (date='2020-08-27')) """).df().sort_values("date") ``` 通过上述代码,我们得到以下数据,可以看出,站在 2020 年 4 月 30 日这一天,我们能获取到的 2019 年年报的流动资产为 223449880.95,但站在 2020-08-27 这一天时,我们能获取到的 2019 年年报的流动资产为 228470428.90。 | date | instrument | report_date | shift | total_current_assets_lf | | --- | --- | --- | --- | --- | | 2020-04-30 | 002473.SZ | 2019-09-30 | 2 | 268546184.69 | | 2020-04-30 | 002473.SZ | 2019-12-31 | 1 | **223449880.95** | | 2020-04-30 | 002473.SZ | 2020-03-31 | 0 | 213964081.16 | | 2020-08-27 | 002473.SZ | 2019-12-31 | 2 | **228470428.90** | | 2020-08-27 | 002473.SZ | 2020-03-31 | 1 | 233220236.75 | | 2020-08-27 | 002473.SZ | 2020-06-30 | 0 | 222315509.19 | ## 【财务数据通用】五、日频财务数据与日频 ROE 因子 衍生数据按公告日存储,不是日频。要得到日频数据,把财务表按公告日对齐到交易日:某一天只使用当天及之前已经公告的最新一期(`shift = 0`),在下一次公告之前沿用上一期的值。DAI SQL 用 `ASOF JOIN` 完成。 下面以日频 ROE 为例,ROE = 滚动十二期归属母公司股东的净利润 / 最新一期归属母公司股东的所有者权益: ```python import dai df = dai.query(""" SELECT b.date, b.instrument, t.net_profit_to_parent_shareholders_ttm / l.total_equity_to_parent_shareholders_lf AS roe_ttm FROM cn_stock_bar1d b ASOF JOIN (SELECT * FROM cn_stock_financial_ttm_shift WHERE shift = 0) t ON b.instrument = t.instrument AND b.date >= t.date ASOF JOIN (SELECT * FROM cn_stock_financial_lf_shift WHERE shift = 0) l ON b.instrument = l.instrument AND b.date >= l.date WHERE b.date >= '2024-01-01' ORDER BY b.date, b.instrument """, filters={"date": ["2023-01-01", "2024-12-31"]}).pl() ``` - `filters` 的起点要早于第一个需要的交易日,这里提前一年,这样起点之前已经公告的财报也能取到。 - 所有者权益为 0 或负数时,ROE 会是无穷值或负值,使用前需要处理。 - 其他财务科目的日频因子写法相同,只需替换字段和后缀。现成的 ROE 指标见 `cn_stock_financial_profitability` 的 `roe_avg_ttm`、`roe_period_ttm` 等字段。 平台还提供过已按日频处理好的财务表 `cn_stock_factors_financial_items`,以 002473.SZ 的流动资产(total_current_assets)数据举例(该表已不建议使用,建议基于衍生数据自行计算): ```python import dai import pandas as pd pd.set_option('display.float_format', '{:.2f}'.format) dai.query(""" SELECT date, instrument, total_current_assets_ly FROM cn_stock_factors_financial_items WHERE instrument='002473.SZ' AND ((date>'2020-04-25' and date<'2020-05-05') OR (date>'2020-08-25' and date<'2020-09-01')) """).df().sort_values("date") ``` 通过上述代码,我们得到以下数据。可以看出,当日期来到 2020 年 4 月 30 日这一天时,我们能获取到最新的流动资产(年报)数据是 223449880.95,这个数值一直保持到 2020 年 8 月 27 日,最新一期年报的流动资产变为了 228470428.90,符合预期。 | date | instrument | total_current_assets_ly | | --- | --- | --- | | 2020-04-27 | 002473.SZ | 330113974.90 | | 2020-04-28 | 002473.SZ | 330113974.90 | | 2020-04-29 | 002473.SZ | 330113974.90 | | 2020-04-30 | 002473.SZ | **223449880.95** | | 2020-08-26 | 002473.SZ | 223449880.95 | | 2020-08-27 | 002473.SZ | **228470428.90** | | 2020-08-28 | 002473.SZ | 228470428.90 | | 2020-08-31 | 002473.SZ | 228470428.90 | ## 【财务数据通用】六、财务分析与财务附注 - 财务分析表在衍生数据(LF、MRQ、TTM)的基础上通过加减乘除计算各类财务指标,所以数据结构、`shift` 的含义都与衍生数据相同,字段名带 `_lf`、`_mrq`、`_ttm` 后缀。各指标的计算公式见各表文档的“字段说明”。 - 财务附注是对资产负债表、利润表和现金流量表有关项目的说明,主要包括非经常性项目、收入明细、费用明细、投资收益等。多数附注科目只在半年报和年报中披露,一季报、三季报对应的记录大部分附注字段为空,使用时建议按 `report_date` 的月份筛选出 06-30 和 12-31 的记录。非经常性损益等少数科目在一季报、三季报中也有数据。 ## 【财务数据通用】七、收录范围 - 目前只收录合并报表的数据,没有母公司报表。 - 报表 PIT 表目前只收录一般企业的财务科目,针对金融类企业的特殊字段后续会逐渐加入。
财务分析(盈利能力) (cn_stock_financial_profitability)
数据描述: 该表详细记录了上市公司的盈利能力相关指标,如净资产收益率(包括平均和摊薄,以及扣除非经常性损益后的数据)、总资产报酬率、总资产净利率、投入资本回报率、销售净利率等。此外,还包括了与营业总收入、营业利润相关的各种比率,涵盖最新一期、单季度和滚动十二期数据。数据非日频,根据财报的发布进行更新。
文档
用例
表结构
| 字段 | 字段类型 | 字段描述 |
| shift | TINYINT | 偏移报告期 |
| cogs_lf | DOUBLE | 销售成本率(最新一期) |
| roic_lf | DOUBLE | 投入资本回报率(最新一期) |
| cogs_mrq | DOUBLE | 销售成本率(单季度) |
| cogs_ttm | DOUBLE | 销售成本率(滚动十二期) |
| roic_mrq | DOUBLE | 投入资本回报率(单季度) |
| roic_ttm | DOUBLE | 投入资本回报率(滚动十二期) |
| roa_avg_lf | DOUBLE | 总资产净利率(平均)(最新一期) |
| roe_avg_lf | DOUBLE | 净资产收益率(平均)(最新一期) |
| report_date | TIMESTAMP_NS | 报告期 |
| roa2_avg_lf | DOUBLE | 总资产报酬率(平均)(最新一期) |
| roa_avg_mrq | DOUBLE | 总资产净利率(平均)(单季度) |
| roa_avg_ttm | DOUBLE | 总资产净利率(平均)(滚动十二期) |
| roe_avg_mrq | DOUBLE | 净资产收益率(平均)(单季度) |
| roe_avg_ttm | DOUBLE | 净资产收益率(平均)(滚动十二期) |
| roa2_avg_mrq | DOUBLE | 总资产报酬率(平均)(单季度) |
| roa2_avg_ttm | DOUBLE | 总资产报酬率(平均)(滚动十二期) |
| roa_period_lf | DOUBLE | 总资产净利率(摊薄)(最新一期) |
| roe_period_lf | DOUBLE | 净资产收益率(摊薄)(最新一期) |
| roa2_period_lf | DOUBLE | 总资产报酬率(摊薄)(最新一期) |
| roa_period_mrq | DOUBLE | 总资产净利率(摊薄)(单季度) |
| roa_period_ttm | DOUBLE | 总资产净利率(摊薄)(滚动十二期) |
| roe_period_mrq | DOUBLE | 净资产收益率(摊薄)(单季度) |
| roe_period_ttm | DOUBLE | 净资产收益率(摊薄)(滚动十二期) |
| roa2_period_mrq | DOUBLE | 总资产报酬率(摊薄)(单季度) |
| roa2_period_ttm | DOUBLE | 总资产报酬率(摊薄)(滚动十二期) |
| roe_avg_deduct_lf | DOUBLE | 净资产收益率(扣除,平均)(最新一期) |
| net_profit_rate_lf | DOUBLE | 销售净利率(最新一期) |
| roe_avg_deduct_mrq | DOUBLE | 净资产收益率(扣除,平均)(单季度) |
| roe_avg_deduct_ttm | DOUBLE | 净资产收益率(扣除,平均)(滚动十二期) |
| net_profit_rate_mrq | DOUBLE | 销售净利率(单季度) |
| net_profit_rate_ttm | DOUBLE | 销售净利率(滚动十二期) |
| gross_profit_rate_lf | DOUBLE | 销售毛利率(最新一期) |
| roe_period_deduct_lf | DOUBLE | 净资产收益率(扣除,摊薄)(最新一期) |
| gross_profit_rate_mrq | DOUBLE | 销售毛利率(单季度) |
| gross_profit_rate_ttm | DOUBLE | 销售毛利率(滚动十二期) |
| roe_period_deduct_mrq | DOUBLE | 净资产收益率(扣除,摊薄)(单季度) |
| roe_period_deduct_ttm | DOUBLE | 净资产收益率(扣除,摊薄)(滚动十二期) |
| period_expense_rate_lf | DOUBLE | 销售期间费用率(最新一期) |
| ebit_to_total_assets_lf | DOUBLE | 息税前利润/资产总计(最新一期) |
| period_expense_rate_mrq | DOUBLE | 销售期间费用率(单季度) |
| period_expense_rate_ttm | DOUBLE | 销售期间费用率(滚动十二期) |
| prime_operating_rate_lf | DOUBLE | 主营业务比率(最新一期) |
| ebit_to_total_assets_mrq | DOUBLE | 息税前利润/资产总计(单季度) |
| ebit_to_total_assets_ttm | DOUBLE | 息税前利润/资产总计(滚动十二期) |
| ebit_to_total_revenue_lf | DOUBLE | 息税前利润/营业总收入(最新一期) |
| prime_operating_rate_mrq | DOUBLE | 主营业务比率(单季度) |
| prime_operating_rate_ttm | DOUBLE | 主营业务比率(滚动十二期) |
| admin_to_total_revenue_lf | DOUBLE | 管理费用/营业总收入(最新一期) |
| ebit_to_total_revenue_mrq | DOUBLE | 息税前利润/营业总收入(单季度) |
| ebit_to_total_revenue_ttm | DOUBLE | 息税前利润/营业总收入(滚动十二期) |
| profit_rate_to_expense_lf | DOUBLE | 成本费用利润率(最新一期) |
| sales_to_total_revenue_lf | DOUBLE | 销售费用/营业总收入(最新一期) |
| admin_to_total_revenue_mrq | DOUBLE | 管理费用/营业总收入(单季度) |
| admin_to_total_revenue_ttm | DOUBLE | 管理费用/营业总收入(滚动十二期) |
| ebitda_to_total_revenue_lf | DOUBLE | 息税折旧摊销前利润/营业总收入(最新一期) |
| profit_rate_to_expense_mrq | DOUBLE | 成本费用利润率(单季度) |
| profit_rate_to_expense_ttm | DOUBLE | 成本费用利润率(滚动十二期) |
| sales_to_total_revenue_mrq | DOUBLE | 销售费用/营业总收入(单季度) |
| sales_to_total_revenue_ttm | DOUBLE | 销售费用/营业总收入(滚动十二期) |
| ebitda_to_total_revenue_mrq | DOUBLE | 息税折旧摊销前利润/营业总收入(单季度) |
| ebitda_to_total_revenue_ttm | DOUBLE | 息税折旧摊销前利润/营业总收入(滚动十二期) |
| finance_to_total_revenue_lf | DOUBLE | 财务费用/营业总收入(最新一期) |
| finance_to_total_revenue_mrq | DOUBLE | 财务费用/营业总收入(单季度) |
| finance_to_total_revenue_ttm | DOUBLE | 财务费用/营业总收入(滚动十二期) |
| asset_impair_to_total_revenue_lf | DOUBLE | 资产减值损失/营业总收入(最新一期) |
| asset_impair_to_total_revenue_mrq | DOUBLE | 资产减值损失/营业总收入(单季度) |
| asset_impair_to_total_revenue_ttm | DOUBLE | 资产减值损失/营业总收入(滚动十二期) |
| credit_impair_to_total_revenue_lf | DOUBLE | 信用减值损失/营业总收入(最新一期) |
| credit_impair_to_total_revenue_mrq | DOUBLE | 信用减值损失/营业总收入(单季度) |
| credit_impair_to_total_revenue_ttm | DOUBLE | 信用减值损失/营业总收入(滚动十二期) |
| asset_impair_to_operating_profit_lf | DOUBLE | 资产减值损失/营业利润(最新一期) |
| asset_impair_to_operating_profit_mrq | DOUBLE | 资产减值损失/营业利润(单季度) |
| asset_impair_to_operating_profit_ttm | DOUBLE | 资产减值损失/营业利润(滚动十二期) |
| credit_impair_to_operating_profit_lf | DOUBLE | 信用减值损失/营业利润(最新一期) |
| profit_of_parent_to_total_revenue_lf | DOUBLE | 归属于母公司股东的净利润/营业总收入(最新一期) |
| research_develop_to_total_revenue_lf | DOUBLE | 研发费用/营业总收入(最新一期) |
| credit_impair_to_operating_profit_mrq | DOUBLE | 信用减值损失/营业利润(单季度) |
| research_develop_to_total_revenue_ttm | DOUBLE | 研发费用/营业总收入(滚动十二期) |
| research_develop_to_total_revenue_mrq | DOUBLE | 研发费用/营业总收入(单季度) |
| profit_of_parent_to_total_revenue_ttm | DOUBLE | 归属于母公司股东的净利润/营业总收入(滚动十二期) |
| profit_of_parent_to_total_revenue_mrq | DOUBLE | 归属于母公司股东的净利润/营业总收入(单季度) |
| credit_impair_to_operating_profit_ttm | DOUBLE | 信用减值损失/营业利润(滚动十二期) |
| instrument | VARCHAR | 证券代码 |
| date | TIMESTAMP_NS | 日期 |
表名:cn_stock_financial_profitability
起始时间:
最近更新时间: