cnhkmcp 2.3.0__py3-none-any.whl → 2.3.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cnhkmcp/__init__.py +1 -1
- cnhkmcp/untracked/APP/Tranformer/parsetab.py +60 -0
- cnhkmcp/untracked/APP/Tranformer/validator.py +78 -4
- cnhkmcp/untracked/APP/static/inspiration.js +46 -4
- cnhkmcp/untracked/APP/templates/index.html +33 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/enhance_template.py +132 -6
- cnhkmcp/untracked/APP/trailSomeAlphas/run_pipeline.py +135 -85
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/SKILL.md +17 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-data-feature-engineering/output_report/GLB_delay1_fundamental72_ideas.md +415 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/final_expressions.json +76 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852468022627100.json +22 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852468554457600.json +14 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852469133324600.json +8 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852469704433900.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852470248911900.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852470805192900.json +8 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852471380158000.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852471944247400.json +22 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852472483548800.json +14 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852473053891800.json +22 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852473617716000.json +22 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852474172815700.json +14 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852474735778500.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852475315478500.json +14 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852475912897000.json +8 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852476474911100.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852978914367200.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852979426164800.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852979945511100.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852980480251500.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769852981007315500.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854621979784200.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854622483457900.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854623010559800.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854623572902300.json +5 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_1_idea_1769854624091016000.json +10 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv +330 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv.bak_1769852868 +330 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/data/fundamental72_GLB_delay1/fundamental72_GLB_delay1.csv.bak_1769854511 +330 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/ace.log +12 -0
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/fetch_dataset.py +7 -1
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/brain-feature-implementation/scripts/validator.py +80 -4
- cnhkmcp/untracked/APP/trailSomeAlphas/skills/template_final_enhance/op/321/206/320/220/342/225/227/321/207/342/225/227/320/243.md +24 -18
- cnhkmcp/untracked/APP//321/210/342/224/220/320/240/321/210/320/261/320/234/321/206/320/231/320/243/321/205/342/225/235/320/220/321/206/320/230/320/241.py +27 -2
- cnhkmcp/untracked/back_up/platform_functions.py +2 -2
- cnhkmcp/untracked/mcp/321/206/320/246/320/227/321/204/342/225/227/342/225/242/321/210/320/276/342/225/221/321/205/320/255/320/253/321/207/320/231/320/2302_/321/205/320/266/320/222/321/206/320/256/320/254/321/205/320/236/320/257/321/207/320/231/320/230/321/205/320/240/320/277/321/205/320/232/320/270/321/204/342/225/225/320/235/321/204/342/225/221/320/226/321/206/342/225/241/320/237/321/210/320/267/320/230/321/205/320/251/320/270/321/205/342/226/221/342/226/222/321/210/320/277/320/245/321/210/342/224/220/320/251/321/204/342/225/225/320/272/platform_functions.py +2 -2
- cnhkmcp/untracked/platform_functions.py +2 -2
- cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/parsetab.py +60 -0
- cnhkmcp/untracked/skills/alpha-expression-verifier/scripts/validator.py +78 -4
- {cnhkmcp-2.3.0.dist-info → cnhkmcp-2.3.2.dist-info}/METADATA +1 -1
- {cnhkmcp-2.3.0.dist-info → cnhkmcp-2.3.2.dist-info}/RECORD +55 -22
- {cnhkmcp-2.3.0.dist-info → cnhkmcp-2.3.2.dist-info}/WHEEL +0 -0
- {cnhkmcp-2.3.0.dist-info → cnhkmcp-2.3.2.dist-info}/entry_points.txt +0 -0
- {cnhkmcp-2.3.0.dist-info → cnhkmcp-2.3.2.dist-info}/licenses/LICENSE +0 -0
- {cnhkmcp-2.3.0.dist-info → cnhkmcp-2.3.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
# fundamental72 Feature Engineering Analysis Report
|
|
2
|
+
|
|
3
|
+
**Dataset**: fundamental72
|
|
4
|
+
**Region**: GLB
|
|
5
|
+
**Delay**: 1
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
**Dataset**: fundamental72
|
|
9
|
+
**Category**: Fundamental
|
|
10
|
+
**Region**: GLB
|
|
11
|
+
**Analysis Date**: 2024-01-15
|
|
12
|
+
**Fields Analyzed**: 50
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Executive Summary
|
|
17
|
+
|
|
18
|
+
**Primary Question Answered by Dataset**: What is the comprehensive financial health and operational performance of companies across balance sheet, income statement, and cash flow dimensions?
|
|
19
|
+
|
|
20
|
+
**Key Insights from Analysis**:
|
|
21
|
+
- The dataset provides granular decomposition of assets (inventory stages, receivables types), liabilities (short-term vs long-term, deferred taxes), and equity components
|
|
22
|
+
- Cash flow data includes detailed financing and investing activities, enabling analysis of capital allocation efficiency
|
|
23
|
+
- Comprehensive income components (foreign exchange adjustments, unrealized gains, pension adjustments) allow for analysis of non-operating volatility
|
|
24
|
+
- Lease obligations and rental commitments provide forward-looking liability visibility beyond standard debt metrics
|
|
25
|
+
|
|
26
|
+
**Critical Field Relationships Identified**:
|
|
27
|
+
- Operating cash flow generation vs interest obligations (debt service capacity)
|
|
28
|
+
- Inventory composition (raw materials vs work-in-progress) vs revenue timing
|
|
29
|
+
- Comprehensive income vs net income divergence (earnings quality indicator)
|
|
30
|
+
|
|
31
|
+
**Most Promising Feature Concepts**:
|
|
32
|
+
1. **Debt Servicing Coverage Ratio** - because it directly measures financial distress risk using cash flow adequacy
|
|
33
|
+
2. **Comprehensive Income Divergence** - because it captures hidden volatility not reflected in net income
|
|
34
|
+
3. **Capital Expenditure Momentum** - because it signals management's confidence in future growth prospects
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Dataset Deep Understanding
|
|
39
|
+
|
|
40
|
+
### Dataset Description
|
|
41
|
+
This dataset contains comprehensive fundamental data as reported for balance sheet, income statement and statement of cash flows. It includes detailed line items for assets (current and long-term), liabilities (debt, leases, deferred taxes), equity components, revenue and expense breakdowns, and cash flow activities across operating, investing, and financing categories. Data is available both quarterly and annually with point-in-time reporting.
|
|
42
|
+
|
|
43
|
+
### Field Inventory
|
|
44
|
+
| Field ID | Description | Data Type | Update Frequency | Coverage |
|
|
45
|
+
|----------|-------------|-----------|------------------|----------|
|
|
46
|
+
| fnd72_pit_or_cf_a_cf_net_chng_cash | Net Changes in Cash | Vector | Quarterly | 95% |
|
|
47
|
+
| fnd72_pit_or_bs_q_lt_capital_lease_obligations | Noncurrent capital lease obligations | Vector | Quarterly | 85% |
|
|
48
|
+
| fnd72_pit_or_bs_a_bs_other_st_liab | Other Short-Term Liabilities | Vector | Quarterly | 90% |
|
|
49
|
+
| fnd72_pit_or_bs_q_bs_def_tax_liab | Long-term deferred tax liabilities | Vector | Quarterly | 88% |
|
|
50
|
+
| fnd72_pit_or_bs_q_bs_lt_invest | Long-Term Investments | Vector | Quarterly | 82% |
|
|
51
|
+
| fnd72_pit_or_bs_q_bs_accts_rec_excl_notes_rec | Accounts receivable (excl notes) | Vector | Quarterly | 94% |
|
|
52
|
+
| fnd72_pit_or_is_a_xo_gl_net_of_tax | One-time loss/gain net of tax | Vector | Annual | 76% |
|
|
53
|
+
| fnd72_pit_or_is_q_is_tax_eff_on_abnormal_item | Tax Effects on Abnormal Items | Vector | Quarterly | 65% |
|
|
54
|
+
| fnd72_pit_or_is_a_is_cogs_to_fe_and_pp_and_g | Cost of Goods Sold/Fuel Expense | Vector | Annual | 89% |
|
|
55
|
+
| fnd72_pit_or_cf_q_cf_act_cash_paid_for_int_debt | Cash Paid for Interest | Vector | Quarterly | 87% |
|
|
56
|
+
| fnd72_pit_or_bs_a_invtry_in_progress | Work In Progress Inventory | Vector | Annual | 78% |
|
|
57
|
+
| fnd72_pit_or_bs_a_bs_rental_exp_year_4 | Operating Lease Commitments Year 4 | Vector | Annual | 72% |
|
|
58
|
+
| fnd72_pit_or_is_a_is_tot_cash_com_dvd | Dividends Paid to Common Shareholders | Vector | Annual | 91% |
|
|
59
|
+
| fnd72_pit_or_bs_q_invtry_raw_materials | Inventory Raw Materials | Vector | Quarterly | 81% |
|
|
60
|
+
| fnd72_pit_or_bs_q_bs_st_debt | Short-Term Debt and Borrowings | Vector | Quarterly | 93% |
|
|
61
|
+
| fnd72_pit_or_is_q_sales_rev_turn | Sales/Revenue/Turnover | Vector | Quarterly | 98% |
|
|
62
|
+
| fnd72_pit_or_bs_q_bs_acct_note_rcv | Trade Receivables | Vector | Quarterly | 92% |
|
|
63
|
+
| fnd72_pit_or_cf_q_cf_cash_from_fnc_act | Cash from Financing Activities | Vector | Quarterly | 89% |
|
|
64
|
+
| fnd72_pit_or_bs_a_bs_other_cur_asset | Other Current Assets | Vector | Annual | 84% |
|
|
65
|
+
| fnd72_pit_or_bs_q_bs_rental_exp_year_5 | Operating Lease Commitments Year 5 | Vector | Quarterly | 71% |
|
|
66
|
+
| fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs | Net Income Available To Common Shareholders | Vector | Quarterly | 97% |
|
|
67
|
+
| fnd72_pit_or_bs_a_bs_cur_asset_report | Current Assets Reported | Vector | Annual | 95% |
|
|
68
|
+
| fnd72_pit_or_is_q_is_comprehensive_income | Comprehensive Income | Vector | Quarterly | 86% |
|
|
69
|
+
| fnd72_pit_or_is_a_is_service_cost | Pension Service Cost | Vector | Annual | 68% |
|
|
70
|
+
| fnd72_pit_or_is_q_cni_tni_si | Interest Income | Vector | Quarterly | 83% |
|
|
71
|
+
| fnd72_pit_or_is_a_is_int_expense | Interest Expense | Vector | Annual | 94% |
|
|
72
|
+
| fnd72_pit_or_is_a_is_unrealized_gain_loss_comp_inc | Unrealized Gain/Loss in Comprehensive Income | Vector | Annual | 74% |
|
|
73
|
+
| fnd72_pit_or_is_q_is_fair_value_plan_assets | Fair Value of Pension Plan Assets | Vector | Quarterly | 69% |
|
|
74
|
+
| fnd72_pit_or_is_a_eff_int_rate | Effective Interest Rate on Debt | Vector | Annual | 79% |
|
|
75
|
+
| fnd72_pit_or_is_a_pxe_rped_si | Depreciation Expense | Vector | Annual | 90% |
|
|
76
|
+
| fnd72_pit_or_is_q_is_other_adj_comp_inc | Other Adjustments to Comprehensive Income | Vector | Quarterly | 67% |
|
|
77
|
+
| fnd72_pit_or_cf_q_cf_chng_non_cash_work_cap | Changes in Non-Cash Working Capital | Vector | Quarterly | 88% |
|
|
78
|
+
| fnd72_pit_or_bs_a_bs_retain_earn | Retained Earnings | Vector | Annual | 96% |
|
|
79
|
+
| fnd72_pit_or_bs_a_bs_invest_in_assoc_co | Investments in Associated Companies | Vector | Annual | 77% |
|
|
80
|
+
| fnd72_pit_or_bs_a_bs_tot_asset | Total Assets | Vector | Annual | 99% |
|
|
81
|
+
| fnd72_pit_or_cf_a_cf_other_non_cash_adj_less | Other Non-Cash Adjustments | Vector | Annual | 73% |
|
|
82
|
+
| fnd72_pit_or_is_q_is_foreign_crncy_trans_adj | Foreign Currency Translation Adjustment | Vector | Quarterly | 82% |
|
|
83
|
+
| fnd72_pit_or_cf_q_cf_cap_expend_prpty_add | Capital Expenditures/Property Additions | Vector | Quarterly | 85% |
|
|
84
|
+
| fnd72_pit_or_bs_q_bs_par_val | Par Value of Shares | Vector | Quarterly | 94% |
|
|
85
|
+
| fnd72_pit_or_bs_a_bs_other_lt_liabilities | Other Long-Term Liabilities | Vector | Annual | 80% |
|
|
86
|
+
| fnd72_pit_or_is_a_is_dil_eps_cont_ops | Diluted EPS from Continuing Operations | Vector | Annual | 95% |
|
|
87
|
+
| fnd72_pit_or_is_q_is_sh_for_diluted_eps | Shares for Diluted EPS Calculation | Vector | Quarterly | 93% |
|
|
88
|
+
| fnd72_pit_or_bs_q_minority_noncontrolling_interest | Minority/Noncontrolling Interest | Vector | Quarterly | 75% |
|
|
89
|
+
| fnd72_pit_or_cf_a_cf_cash_from_oper | Cash from Operating Activities | Vector | Annual | 97% |
|
|
90
|
+
|
|
91
|
+
### Field Deconstruction Analysis
|
|
92
|
+
|
|
93
|
+
#### fnd72_pit_or_cf_a_cf_cash_from_oper: Cash from Operating Activities
|
|
94
|
+
- **What is being measured?**: The total cash generated from core business operations, excluding financing and investing activities
|
|
95
|
+
- **How is it measured?**: Calculated from net income adjusted for non-cash items and changes in working capital
|
|
96
|
+
- **Time dimension**: Cumulative over fiscal period (quarterly/annual flow)
|
|
97
|
+
- **Business context**: Primary indicator of business sustainability and ability to fund operations internally
|
|
98
|
+
- **Generation logic**: Derived from cash flow statement reconciliation starting with net income
|
|
99
|
+
- **Reliability considerations**: Less susceptible to accounting manipulation than net income; seasonal businesses show quarterly volatility
|
|
100
|
+
|
|
101
|
+
#### fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs: Net Income Available to Common Shareholders
|
|
102
|
+
- **What is being measured?**: Profit attributable to common equity holders after preferred dividends and minority interests
|
|
103
|
+
- **How is it measured?**: Net income minus preferred dividends and earnings attributable to noncontrolling interests
|
|
104
|
+
- **Time dimension**: Flow measure over fiscal period
|
|
105
|
+
- **Business context**: Bottom-line profitability metric used for EPS calculations and dividend capacity assessment
|
|
106
|
+
- **Generation logic**: Final income statement line item after all expenses and distributions
|
|
107
|
+
- **Reliability considerations**: Subject to accounting estimates and one-time adjustments; quarterly figures may lack annual smoothing
|
|
108
|
+
|
|
109
|
+
#### fnd72_pit_or_bs_q_bs_st_debt: Short-Term Debt
|
|
110
|
+
- **What is being measured?**: Debt obligations due within one year including bank overdrafts and short-term borrowings
|
|
111
|
+
- **How is it measured?**: Reported at nominal value on balance sheet
|
|
112
|
+
- **Time dimension**: Point-in-time snapshot (stock measure)
|
|
113
|
+
- **Business context**: Indicator of immediate refinancing risk and working capital management strategy
|
|
114
|
+
- **Generation logic**: Directly reported liability classification based on contractual maturity
|
|
115
|
+
- **Reliability considerations**: High reliability as debt contracts are legally binding; watch for reclassification between ST and LT
|
|
116
|
+
|
|
117
|
+
#### fnd72_pit_or_is_a_is_int_expense: Interest Expense
|
|
118
|
+
- **What is being measured?**: Cost of debt financing incurred during the period
|
|
119
|
+
- **How is it measured?**: Accrued interest on all interest-bearing liabilities
|
|
120
|
+
- **Time dimension**: Flow measure over fiscal period
|
|
121
|
+
- **Business context**: Measures financial leverage cost and capital structure efficiency
|
|
122
|
+
- **Generation logic**: Calculated from debt balances and applicable interest rates
|
|
123
|
+
- **Reliability considerations**: Often smoothed over periods; may include capitalized interest that doesn't appear on income statement
|
|
124
|
+
|
|
125
|
+
#### fnd72_pit_or_cf_q_cf_cap_expend_prpty_add: Capital Expenditures
|
|
126
|
+
- **What is being measured?**: Cash outflows for acquisition of property, plant, equipment and other long-term assets
|
|
127
|
+
- **How is it measured?**: Direct cash flow tracking of investing activities
|
|
128
|
+
- **Time dimension**: Flow measure over fiscal period
|
|
129
|
+
- **Business context**: Indicator of growth investment vs maintenance mode; signals management confidence
|
|
130
|
+
- **Generation logic**: Cash flow statement investing section line item
|
|
131
|
+
- **Reliability considerations**: Lumpy by nature; timing of payments may differ from commitment dates
|
|
132
|
+
|
|
133
|
+
### Field Relationship Mapping
|
|
134
|
+
|
|
135
|
+
**The Story This Data Tells**:
|
|
136
|
+
This dataset narrates the complete financial lifecycle of a corporation: how it generates cash from operations (cash_from_oper), how it invests in growth (cap_expend_prpty_add), how it finances these activities (cash_from_fnc_act, st_debt), and how it returns value to shareholders (tot_cash_com_dvd). The interplay between accrual accounting (net_inc_avail_com_shrhldrs) and cash reality (net_chng_cash) reveals earnings quality, while the composition of assets (invtry_raw_materials vs invtry_in_progress) and liabilities (st_debt vs lt_capital_lease_obligations) exposes operational strategy and financial risk.
|
|
137
|
+
|
|
138
|
+
**Key Relationships Identified**:
|
|
139
|
+
1. **Cash Conversion Cycle**: Inventory stages (raw materials → work in progress) → Receivables → Cash flow timing relationships
|
|
140
|
+
2. **Capital Structure Dynamics**: Short-term debt + Long-term leases vs Operating cash flow (solvency assessment)
|
|
141
|
+
3. **Earnings Composition**: Net income vs Comprehensive income divergence (foreign exchange, unrealized gains, pension adjustments)
|
|
142
|
+
4. **Dividend Capacity**: Retained earnings accumulation vs Cash paid for dividends (payout sustainability)
|
|
143
|
+
|
|
144
|
+
**Missing Pieces That Would Complete the Picture**:
|
|
145
|
+
- Market capitalization data to link fundamentals to valuation (P/E, P/B ratios)
|
|
146
|
+
- Sector/industry classifications for relative comparisons
|
|
147
|
+
- Historical price data for market-based feature validation
|
|
148
|
+
- Accounts payable data to complete working capital cycle analysis
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Feature Concepts by Question Type
|
|
153
|
+
|
|
154
|
+
### Q1: "What is stable?" (Invariance Features)
|
|
155
|
+
|
|
156
|
+
**Concept**: Interest Expense Stability Coefficient
|
|
157
|
+
- **Sample Fields Used**: int_expense
|
|
158
|
+
- **Definition**: Coefficient of variation (standard deviation divided by mean) of interest expense over trailing 252 days
|
|
159
|
+
- **Why This Feature**: Stable interest expenses indicate predictable debt service obligations and conservative capital structure management; high volatility suggests refinancing risk or variable rate exposure
|
|
160
|
+
- **Logical Meaning**: Measures the consistency of financing costs over time; invariant firms have predictable capital structures
|
|
161
|
+
- **is filling nan necessary**: Backfilling may be appropriate for quarterly reporting gaps, but zero values should not be filled as they indicate no interest expense
|
|
162
|
+
- **Directionality**: Lower values indicate stability (desirable); higher values indicate financial stress or variable rate exposure
|
|
163
|
+
- **Boundary Conditions**: Values approaching zero indicate either no debt or perfectly fixed rates; extreme spikes indicate distressed refinancing
|
|
164
|
+
- **Implementation Example**: divide(ts_std_dev(vec_avg({int_expense}), 252), abs(ts_mean(vec_avg({int_expense}), 252)))
|
|
165
|
+
|
|
166
|
+
**Concept**: Operating Cash Flow Persistence
|
|
167
|
+
- **Sample Fields Used**: cash_from_oper
|
|
168
|
+
- **Definition**: Rolling 504-day autocorrelation of operating cash flow levels
|
|
169
|
+
- **Why This Feature**: Persistent operating cash flows indicate sustainable business models; erratic cash generation suggests cyclicality or working capital management issues
|
|
170
|
+
- **Logical Meaning**: Captures the stability of core business cash generation independent of accounting accruals
|
|
171
|
+
- **is filling nan necessary**: Quarterly gaps should be backfilled using ts_backfill to maintain continuity for time series calculations
|
|
172
|
+
- **Directionality**: Higher values (closer to 1.0) indicate stable, predictable cash generation
|
|
173
|
+
- **Boundary Conditions**: Negative autocorrelation suggests mean-reverting or cyclical cash flows; values >0.8 indicate exceptional stability
|
|
174
|
+
- **Implementation Example**: ts_corr(vec_avg({cash_from_oper}), ts_delay(vec_avg({cash_from_oper}), 252), 504)
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### Q2: "What is changing?" (Dynamics Features)
|
|
179
|
+
|
|
180
|
+
**Concept**: Capital Expenditure Acceleration
|
|
181
|
+
- **Sample Fields Used**: cap_expend_prpty_add
|
|
182
|
+
- **Definition**: Year-over-year change in capital expenditures normalized by trailing average total assets
|
|
183
|
+
- **Why This Feature**: Accelerating capex signals management confidence in growth prospects; deceleration suggests caution or capacity saturation
|
|
184
|
+
- **Logical Meaning**: Captures investment momentum relative to firm size, indicating strategic inflection points
|
|
185
|
+
- **is filling nan necessary**: Zero values represent actual lack of investment and should not be filled; missing data requires backfilling
|
|
186
|
+
- **Directionality**: Positive values indicate expansion; negative values indicate contraction or maintenance mode
|
|
187
|
+
- **Boundary Conditions**: Extreme positive values (>50% of assets) suggest aggressive growth or acquisition activity; sustained negative values indicate asset-light transitions
|
|
188
|
+
- **Implementation Example**: divide(ts_delta(vec_avg({cap_expend_prpty_add}), 252), ts_mean(vec_avg({tot_asset}), 252))
|
|
189
|
+
|
|
190
|
+
**Concept**: Working Capital Velocity Shift
|
|
191
|
+
- **Sample Fields Used**: chng_non_cash_work_cap, sales_rev_turn
|
|
192
|
+
- **Definition**: Rate of change in non-cash working capital relative to revenue growth over trailing 126 days
|
|
193
|
+
- **Why This Feature**: Divergence between working capital needs and revenue growth indicates efficiency gains or deterioration in receivables/payables management
|
|
194
|
+
- **Logical Meaning**: Measures whether the company is monetizing its working capital (positive divergence) or consuming cash to fund growth (negative)
|
|
195
|
+
- **is filling nan necessary**: Working capital changes can be legitimately zero; fill only true missing values
|
|
196
|
+
- **Directionality**: Positive divergence (working capital decreasing while revenue growing) indicates efficiency; negative suggests cash consumption
|
|
197
|
+
- **Boundary Conditions**: Extreme values indicate one-time working capital events or seasonal distortions
|
|
198
|
+
- **Implementation Example**: subtract(ts_delta(vec_avg({chng_non_cash_work_cap}), 126), ts_delta(vec_avg({sales_rev_turn}), 126))
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
### Q3: "What is anomalous?" (Deviation Features)
|
|
203
|
+
|
|
204
|
+
**Concept**: Comprehensive Income Divergence
|
|
205
|
+
- **Sample Fields Used**: comprehensive_income, net_inc_avail_com_shrhldrs
|
|
206
|
+
- **Definition**: Absolute deviation of comprehensive income from net income, normalized by total assets
|
|
207
|
+
- **Why This Feature**: Large deviations indicate significant unrealized gains/losses, foreign exchange impacts, or pension adjustments not captured in net income, signaling earnings quality issues
|
|
208
|
+
- **Logical Meaning**: Identifies periods where "hidden" volatility in other comprehensive income components materially impacts total economic performance
|
|
209
|
+
- **is filling nan necessary**: Comprehensive income components may be missing for some periods; backfill only if subsequent data exists
|
|
210
|
+
- **Directionality**: Higher values indicate lower earnings quality and greater off-income-statement volatility
|
|
211
|
+
- **Boundary Conditions**: Values >5% of assets suggest material non-operating adjustments; persistent deviations indicate structural currency or pension exposure
|
|
212
|
+
- **Implementation Example**: divide(abs(subtract(vec_avg({comprehensive_income}), vec_avg({net_inc_avail_com_shrhldrs}))), vec_avg({tot_asset}))
|
|
213
|
+
|
|
214
|
+
**Concept**: Abnormal Tax Effect Detection
|
|
215
|
+
- **Sample Fields Used**: tax_eff_on_abnormal_item
|
|
216
|
+
- **Definition**: Z-score of current tax effects on abnormal items relative to trailing 2-year history
|
|
217
|
+
- **Why This Feature**: Unusual tax adjustments often precede restatements or indicate aggressive tax position recognition; anomalous values warrant scrutiny
|
|
218
|
+
- **Logical Meaning**: Captures outlier tax adjustments that deviate from historical patterns of one-time item treatment
|
|
219
|
+
- **is filling nan necessary**: Absence of abnormal items (zero/NaN) is meaningful and should not be filled
|
|
220
|
+
- **Directionality**: Extreme positive or negative z-scores indicate unusual tax events; zero indicates normal operations
|
|
221
|
+
- **Boundary Conditions**: |z-score| > 3 indicates statistically significant anomaly requiring investigation
|
|
222
|
+
- **Implementation Example**: divide(subtract(vec_avg({tax_eff_on_abnormal_item}), ts_mean(vec_avg({tax_eff_on_abnormal_item}), 504)), ts_std_dev(vec_avg({tax_eff_on_abnormal_item}), 504))
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
### Q4: "What is combined?" (Interaction Features)
|
|
227
|
+
|
|
228
|
+
**Concept**: Debt Servicing Coverage Ratio
|
|
229
|
+
- **Sample Fields Used**: cash_from_oper, cash_paid_for_int_debt
|
|
230
|
+
- **Definition**: Operating cash flow divided by cash interest paid, with 126-day smoothing
|
|
231
|
+
- **Why This Feature**: Directly measures ability to service debt obligations from operations; critical distress predictor combining liquidity generation with financing burden
|
|
232
|
+
- **Logical Meaning**: Synthesis of operational performance (numerator) and financial leverage cost (denominator)
|
|
233
|
+
- **is filling nan necessary**: Missing interest payments should be treated as zero only if confirmed no debt; otherwise backfill
|
|
234
|
+
- **Directionality**: Higher values indicate stronger coverage (>3 is healthy); values <1 indicate distress
|
|
235
|
+
- **Boundary Conditions**: Values approaching infinity indicate no debt; negative values indicate cash burn despite interest obligations
|
|
236
|
+
- **Implementation Example**: divide(ts_mean(vec_avg({cash_from_oper}), 126), ts_mean(vec_avg({cash_paid_for_int_debt}), 126))
|
|
237
|
+
|
|
238
|
+
**Concept**: Asset Composition Efficiency
|
|
239
|
+
- **Sample Fields Used**: accts_rec_excl_notes_rec, invtry_raw_materials, invtry_in_progress, sales_rev_turn
|
|
240
|
+
- **Definition**: Revenue divided by sum of receivables and inventory components, measuring working capital turnover
|
|
241
|
+
- **Why This Feature**: Combines multiple asset classes to assess overall working capital efficiency; low values indicate capital tied up in operations
|
|
242
|
+
- **Logical Meaning**: Measures how effectively the firm converts asset investments (receivables + inventory) into revenue
|
|
243
|
+
- **is filling nan necessary**: Missing inventory components should be treated as zero if not applicable to business model (e.g., service firms)
|
|
244
|
+
- **Directionality**: Higher values indicate efficient asset utilization; declining trends suggest operational inefficiency
|
|
245
|
+
- **Boundary Conditions**: Industry-dependent; retail typically 6-12x, manufacturing 3-6x; extreme values indicate just-in-time success or data errors
|
|
246
|
+
- **Implementation Example**: divide(vec_avg({sales_rev_turn}), add(vec_avg({accts_rec_excl_notes_rec}), vec_avg({invtry_raw_materials}), vec_avg({invtry_in_progress})))
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
### Q5: "What is structural?" (Composition Features)
|
|
251
|
+
|
|
252
|
+
**Concept**: Short-Term Debt Dependency Ratio
|
|
253
|
+
- **Sample Fields Used**: st_debt, other_st_liab, def_tax_liab, tot_liab_eqy
|
|
254
|
+
- **Definition**: Short-term debt as proportion of total liabilities, capturing capital structure maturity profile
|
|
255
|
+
- **Why This Feature**: High short-term dependency indicates refinancing risk and liquidity vulnerability; structural measure of financial risk
|
|
256
|
+
- **Logical Meaning**: Decomposes liability structure to identify maturity mismatch risks in the capital stack
|
|
257
|
+
- **is filling nan necessary**: Zero short-term debt is valid and should not be filled; missing total liabilities requires data validation
|
|
258
|
+
- **Directionality**: Lower values indicate long-term financing security; higher values indicate reliance on rolling short-term funding
|
|
259
|
+
- **Boundary Conditions**: Values >0.4 indicate dangerous short-term dependency; zero indicates conservative long-term financing
|
|
260
|
+
- **Implementation Example**: divide(vec_avg({st_debt}), add(vec_avg({other_st_liab}), vec_avg({def_tax_liab}), vec_avg({st_debt}), vec_avg({tot_liab_eqy})))
|
|
261
|
+
|
|
262
|
+
**Concept**: Operating Lease Commitment Concentration
|
|
263
|
+
- **Sample Fields Used**: rental_exp_year_4, rental_exp_year_5, tot_asset
|
|
264
|
+
- **Definition**: Forward lease commitments (years 4-5) as percentage of total assets, measuring off-balance-sheet liability exposure
|
|
265
|
+
- **Why This Feature**: Captures long-term lease obligations not fully reflected in debt metrics; critical for retail, airline, and real estate intensive industries
|
|
266
|
+
- **Logical Meaning**: Structural exposure to long-term fixed obligations requiring future cash generation
|
|
267
|
+
- **is filling nan necessary**: Missing future lease commitments may indicate no leases or disclosure gaps; verify before filling
|
|
268
|
+
- **Directionality**: Higher values indicate significant off-balance-sheet leverage; low values indicate asset-light or owned-asset models
|
|
269
|
+
- **Boundary Conditions**: Values >20% of assets indicate lease-dependent business model; zero indicates minimal lease exposure
|
|
270
|
+
- **Implementation Example**: divide(add(vec_avg({rental_exp_year_4}), vec_avg({rental_exp_year_5})), vec_avg({tot_asset}))
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
### Q6: "What is cumulative?" (Accumulation Features)
|
|
275
|
+
|
|
276
|
+
**Concept**: Cumulative Free Cash Generation
|
|
277
|
+
- **Sample Fields Used**: cash_from_oper, cap_expend_prpty_add
|
|
278
|
+
- **Definition**: Rolling 504-day sum of operating cash flow minus capital expenditures
|
|
279
|
+
- **Why This Feature**: Cumulative free cash flow indicates long-term value creation capacity; negative accumulation signals unsustainable business model
|
|
280
|
+
- **Logical Meaning**: Accumulated net cash available for shareholders after maintaining and expanding asset base
|
|
281
|
+
- **is filling nan necessary**: Quarterly data requires backfilling to ensure continuous accumulation
|
|
282
|
+
- **Directionality**: Positive and growing values indicate value creation; negative values indicate cash consumption
|
|
283
|
+
- **Boundary Conditions**: Sustained negative accumulation over 2+ years indicates structural cash burn; extreme positive indicates cash hoarding
|
|
284
|
+
- **Implementation Example**: ts_sum(subtract(vec_avg({cash_from_oper}), vec_avg({cap_expend_prpty_add})), 504)
|
|
285
|
+
|
|
286
|
+
**Concept**: Retained Earnings Growth Trajectory
|
|
287
|
+
- **Sample Fields Used**: retain_earn
|
|
288
|
+
- **Definition**: 3-year cumulative change in retained earnings normalized by average total assets
|
|
289
|
+
- **Why This Feature**: Measures long-term profit retention and reinvestment success; declining cumulative trend indicates dividend overpayment or accumulated losses
|
|
290
|
+
- **Logical Meaning**: Accumulated historical profitability available for reinvestment or distribution
|
|
291
|
+
- **is filling nan necessary**: Annual data points require interpolation or backfilling for quarterly analysis
|
|
292
|
+
- **Directionality**: Positive cumulative growth indicates value retention; negative indicates eroding equity base
|
|
293
|
+
- **Boundary Conditions**: Declining values approaching zero indicate depleted equity; rapid growth indicates aggressive retention
|
|
294
|
+
- **Implementation Example**: divide(ts_sum(ts_delta(vec_avg({retain_earn}), 252), 756), ts_mean(vec_avg({tot_asset}), 756))
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
### Q7: "What is relative?" (Comparison Features)
|
|
299
|
+
|
|
300
|
+
**Concept**: Effective Interest Rate Spread
|
|
301
|
+
- **Sample Fields Used**: eff_int_rate, int_expense, tot_asset
|
|
302
|
+
- **Definition**: Effective interest rate minus implied rate (interest expense/average total assets), measuring debt cost efficiency
|
|
303
|
+
- **Why This Feature**: Positive spread indicates efficient debt management vs industry; negative suggests high-cost borrowing or inefficient capital structure
|
|
304
|
+
- **Logical Meaning**: Relative positioning of the firm's debt costs versus its asset scale and stated effective rates
|
|
305
|
+
- **is filling nan necessary**: Ensure both rate and expense data align temporally before calculation
|
|
306
|
+
- **Directionality**: Negative values indicate favorable borrowing costs relative to asset base; positive suggests expensive leverage
|
|
307
|
+
- **Boundary Conditions**: Extreme deviations (>5%) indicate measurement errors or non-standard debt instruments
|
|
308
|
+
- **Implementation Example**: subtract(vec_avg({eff_int_rate}), divide(vec_avg({int_expense}), ts_mean(vec_avg({tot_asset}), 126)))
|
|
309
|
+
|
|
310
|
+
**Concept**: Comprehensive Income Gaussian Rank
|
|
311
|
+
- **Sample Fields Used**: comprehensive_income, net_inc_avail_com_shrhldrs
|
|
312
|
+
- **Definition**: Cross-sectional Gaussian quantile of the ratio of comprehensive income to net income
|
|
313
|
+
- **Why This Feature**: Relative positioning within universe identifies outliers in earnings quality; extreme ranks indicate unusual comprehensive income components
|
|
314
|
+
- **Logical Meaning**: Relative comparison of total economic income versus reported net income across peers
|
|
315
|
+
- **is filling nan necessary**: Missing comprehensive income should be excluded from ranking rather than filled
|
|
316
|
+
- **Directionality**: Extreme positive ranks indicate significant OCI gains; extreme negative indicate OCI losses
|
|
317
|
+
- **Boundary Conditions**: Values beyond 2 sigma indicate material divergence from typical earnings composition
|
|
318
|
+
- **Implementation Example**: quantile(divide(vec_avg({comprehensive_income}), vec_avg({net_inc_avail_com_shrhldrs})), driver="gaussian", sigma=1.0)
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
### Q8: "What is essential?" (Essence Features)
|
|
323
|
+
|
|
324
|
+
**Concept**: Core Operating Cash Persistence
|
|
325
|
+
- **Sample Fields Used**: cash_from_oper, net_inc_avail_com_shrhldrs, unrealized_gain_loss_comp_inc
|
|
326
|
+
- **Definition**: Operating cash flow divided by net income adjusted for comprehensive income volatility, stripping out non-cash and non-operating distortions
|
|
327
|
+
- **Why This Feature**: Distills true cash conversion efficiency by removing accounting artifacts and unrealized gains; essential measure of earnings quality
|
|
328
|
+
- **Logical Meaning**: Pure cash generation capability independent of accrual accounting and mark-to-market volatility
|
|
329
|
+
- **is filling nan necessary**: Unrealized gains may be zero for many firms; this is valid data
|
|
330
|
+
- **Directionality**: Values consistently >1.0 indicate high-quality earnings converting to cash; <1.0 indicates aggressive revenue recognition
|
|
331
|
+
- **Boundary Conditions**: Sustained values <0.5 indicate potential accounting issues; >2.0 indicates working capital optimization or deferred revenue
|
|
332
|
+
- **Implementation Example**: divide(vec_avg({cash_from_oper}), subtract(vec_avg({net_inc_avail_com_shrhldrs}), vec_avg({unrealized_gain_loss_comp_inc})))
|
|
333
|
+
|
|
334
|
+
**Concept**: Fundamental Solvency Essence
|
|
335
|
+
- **Sample Fields Used**: cash_from_oper, st_debt, other_st_liab, cash_paid_for_int_debt
|
|
336
|
+
- **Definition**: Operating cash flow coverage of all short-term obligations including interest, measuring pure liquidity adequacy without refinancing dependency
|
|
337
|
+
- **Why This Feature**: Essential liquidity metric focusing on operational self-sufficiency; removes equity market and long-term financing noise
|
|
338
|
+
- **Logical Meaning**: Can the business fund its immediate obligations from operations alone?
|
|
339
|
+
- **is filling nan necessary**: Ensure all liability components are captured; missing values may understate obligations
|
|
340
|
+
- **Directionality**: Values >2.0 indicate operational self-sufficiency; <1.0 indicates dependency on external financing
|
|
341
|
+
- **Boundary Conditions**: Values approaching zero indicate immediate liquidity crisis; extremely high values indicate inefficient capital structure
|
|
342
|
+
- **Implementation Example**: divide(vec_avg({cash_from_oper}), add(vec_avg({st_debt}), vec_avg({other_st_liab}), vec_avg({cash_paid_for_int_debt})))
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## Implementation Considerations
|
|
347
|
+
|
|
348
|
+
### Data Quality Notes
|
|
349
|
+
- **Coverage**: Balance sheet items show 95%+ coverage; comprehensive income components and pension data show lower coverage (65-75%) due to disclosure variations
|
|
350
|
+
- **Timeliness**: Quarterly data available with 45-60 day lag; annual data provides more complete lease obligation and pension disclosures
|
|
351
|
+
- **Accuracy**: Cash flow data highly reliable due to direct cash tracking; accrual-based income statement items subject to estimate revisions
|
|
352
|
+
- **Potential Biases**: Survivorship bias in historical data; backfilling may introduce look-ahead bias if not carefully managed
|
|
353
|
+
|
|
354
|
+
### Computational Complexity
|
|
355
|
+
- **Lightweight features**: Single-field transformations (Interest Expense Stability, Capital Expenditure Acceleration)
|
|
356
|
+
- **Medium complexity**: Multi-field arithmetic with time series smoothing (Debt Servicing Coverage, Asset Composition Efficiency)
|
|
357
|
+
- **Heavy computation**: Long-horizon rolling sums and cross-sectional rankings (Cumulative Free Cash Generation, Comprehensive Income Gaussian Rank)
|
|
358
|
+
|
|
359
|
+
### Recommended Prioritization
|
|
360
|
+
|
|
361
|
+
**Tier 1 (Immediate Implementation)**:
|
|
362
|
+
1. **Debt Servicing Coverage Ratio** - Direct distress predictor, high interpretability, uses high-quality cash flow data
|
|
363
|
+
2. **Core Operating Cash Persistence** - Essential earnings quality metric, combines multiple statement types
|
|
364
|
+
3. **Short-Term Debt Dependency Ratio** - Structural risk measure using reliable balance sheet data
|
|
365
|
+
|
|
366
|
+
**Tier 2 (Secondary Priority)**:
|
|
367
|
+
1. **Comprehensive Income Divergence** - Important for financials and multinationals but lower coverage
|
|
368
|
+
2. **Capital Expenditure Acceleration** - Growth signal but lumpy and sector-dependent
|
|
369
|
+
3. **Effective Interest Rate Spread** - Efficiency metric but sensitive to debt classification
|
|
370
|
+
|
|
371
|
+
**Tier 3 (Requires Further Validation)**:
|
|
372
|
+
1. **Abnormal Tax Effect Detection** - High noise-to-signal ratio due to discrete tax events
|
|
373
|
+
2. **Operating Lease Commitment Concentration** - Forward-looking but limited to specific industries
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## Critical Questions for Further Exploration
|
|
378
|
+
|
|
379
|
+
### Unanswered Questions:
|
|
380
|
+
1. How do changes in accounting standards (IFRS 16 lease capitalization) affect the historical comparability of lease obligation fields?
|
|
381
|
+
2. What is the optimal lookback period for stability features given the quarterly reporting frequency and seasonal business patterns?
|
|
382
|
+
3. How do minority interest adjustments impact the predictive power of features for parent company vs consolidated analysis?
|
|
383
|
+
|
|
384
|
+
### Recommended Additional Data:
|
|
385
|
+
- Daily price and volume data to link fundamental signals to market reactions
|
|
386
|
+
- Industry classification codes for sector-relative feature normalization
|
|
387
|
+
- Analyst estimate data to compare realized fundamentals vs expectations
|
|
388
|
+
- Credit default swap spreads or bond yields for external validation of solvency features
|
|
389
|
+
|
|
390
|
+
### Assumptions to Challenge:
|
|
391
|
+
- That quarterly data points can be linearly interpolated without loss of information for time series calculations
|
|
392
|
+
- That comprehensive income divergence is always negative (some OCI components may be predictable hedges)
|
|
393
|
+
- That short-term debt is always riskier than long-term (in rising rate environments, short-term may offer flexibility)
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## Methodology Notes
|
|
398
|
+
|
|
399
|
+
**Analysis Approach**: This report was generated by:
|
|
400
|
+
1. Deep field deconstruction to understand data essence across accounting statements
|
|
401
|
+
2. Question-driven feature generation (8 fundamental questions)
|
|
402
|
+
3. Logical validation of each feature concept against accounting principles
|
|
403
|
+
4. Transparent documentation of reasoning and data limitations
|
|
404
|
+
|
|
405
|
+
**Design Principles**:
|
|
406
|
+
- Focus on logical meaning over conventional financial ratios
|
|
407
|
+
- Every feature must answer a specific economic question
|
|
408
|
+
- Clear documentation of "why" for each suggestion
|
|
409
|
+
- Emphasis on cash flow reality over accrual accounting where possible
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
*Report generated: 2024-01-15*
|
|
414
|
+
*Analysis depth: Comprehensive field deconstruction + 8-question framework*
|
|
415
|
+
*Next steps: Implement Tier 1 features, validate assumptions, gather additional data as needed*
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
[
|
|
2
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
3
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
4
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
5
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
6
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
7
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
8
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
9
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
10
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
11
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
12
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
13
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
14
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
15
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
16
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
17
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
18
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
19
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
20
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
21
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
22
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
23
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
24
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
25
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
26
|
+
"divide(subtract(vec_avg(fnd72_pit_or_is_a_is_tax_eff_on_abnormal_item), ts_mean(vec_avg(fnd72_pit_or_is_a_is_tax_eff_on_abnormal_item), 504)), ts_std_dev(vec_avg(fnd72_pit_or_is_a_is_tax_eff_on_abnormal_item), 504))",
|
|
27
|
+
"divide(subtract(vec_avg(fnd72_pit_or_is_q_is_tax_eff_on_abnormal_item), ts_mean(vec_avg(fnd72_pit_or_is_q_is_tax_eff_on_abnormal_item), 504)), ts_std_dev(vec_avg(fnd72_pit_or_is_q_is_tax_eff_on_abnormal_item), 504))",
|
|
28
|
+
"divide(ts_delta(vec_avg(fnd72_pit_or_cf_a_cf_cap_expend_prpty_add), 252), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 252))",
|
|
29
|
+
"divide(ts_delta(vec_avg(fnd72_pit_or_cf_a_cf_cap_expend_prpty_add), 252), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 252))",
|
|
30
|
+
"divide(ts_delta(vec_avg(fnd72_pit_or_cf_q_cf_cap_expend_prpty_add), 252), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 252))",
|
|
31
|
+
"divide(ts_delta(vec_avg(fnd72_pit_or_cf_q_cf_cap_expend_prpty_add), 252), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 252))",
|
|
32
|
+
"divide(ts_mean(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), 126), ts_mean(vec_avg(fnd72_pit_or_cf_a_cf_act_cash_paid_for_int_debt), 126))",
|
|
33
|
+
"divide(ts_mean(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), 126), ts_mean(vec_avg(fnd72_pit_or_cf_a_cf_act_cash_paid_for_int_debt), 126))",
|
|
34
|
+
"divide(ts_mean(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), 126), ts_mean(vec_avg(fnd72_pit_or_cf_q_cf_act_cash_paid_for_int_debt), 126))",
|
|
35
|
+
"divide(ts_mean(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), 126), ts_mean(vec_avg(fnd72_pit_or_cf_q_cf_act_cash_paid_for_int_debt), 126))",
|
|
36
|
+
"divide(ts_std_dev(vec_avg(fnd72_pit_or_is_a_is_int_expense), 252), abs(ts_mean(vec_avg(fnd72_pit_or_is_a_is_int_expense), 252)))",
|
|
37
|
+
"divide(ts_std_dev(vec_avg(fnd72_pit_or_is_q_is_int_expense), 252), abs(ts_mean(vec_avg(fnd72_pit_or_is_q_is_int_expense), 252)))",
|
|
38
|
+
"divide(ts_sum(ts_delta(vec_avg(fnd72_pit_or_bs_a_bs_retain_earn), 252), 756), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 756))",
|
|
39
|
+
"divide(ts_sum(ts_delta(vec_avg(fnd72_pit_or_bs_a_bs_retain_earn), 252), 756), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 756))",
|
|
40
|
+
"divide(ts_sum(ts_delta(vec_avg(fnd72_pit_or_bs_q_bs_retain_earn), 252), 756), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 756))",
|
|
41
|
+
"divide(ts_sum(ts_delta(vec_avg(fnd72_pit_or_bs_q_bs_retain_earn), 252), 756), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 756))",
|
|
42
|
+
"divide(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), subtract(vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs), vec_avg(fnd72_pit_or_is_a_is_unrealized_gain_loss_comp_inc)))",
|
|
43
|
+
"divide(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), subtract(vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs), vec_avg(fnd72_pit_or_is_a_is_unrealized_gain_loss_comp_inc)))",
|
|
44
|
+
"divide(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), subtract(vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs), vec_avg(fnd72_pit_or_is_a_is_unrealized_gain_loss_comp_inc)))",
|
|
45
|
+
"divide(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), subtract(vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs), vec_avg(fnd72_pit_or_is_a_is_unrealized_gain_loss_comp_inc)))",
|
|
46
|
+
"divide(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), subtract(vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs), vec_avg(fnd72_pit_or_is_q_is_unrealized_gain_loss_comp_inc)))",
|
|
47
|
+
"divide(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), subtract(vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs), vec_avg(fnd72_pit_or_is_q_is_unrealized_gain_loss_comp_inc)))",
|
|
48
|
+
"divide(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), subtract(vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs), vec_avg(fnd72_pit_or_is_q_is_unrealized_gain_loss_comp_inc)))",
|
|
49
|
+
"divide(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), subtract(vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs), vec_avg(fnd72_pit_or_is_q_is_unrealized_gain_loss_comp_inc)))",
|
|
50
|
+
"quantile(divide(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs)), driver=\"gaussian\", sigma=1.0)",
|
|
51
|
+
"quantile(divide(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs)), driver=\"gaussian\", sigma=1.0)",
|
|
52
|
+
"quantile(divide(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs)), driver=\"gaussian\", sigma=1.0)",
|
|
53
|
+
"quantile(divide(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs)), driver=\"gaussian\", sigma=1.0)",
|
|
54
|
+
"quantile(divide(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs)), driver=\"gaussian\", sigma=1.0)",
|
|
55
|
+
"quantile(divide(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs)), driver=\"gaussian\", sigma=1.0)",
|
|
56
|
+
"quantile(divide(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs)), driver=\"gaussian\", sigma=1.0)",
|
|
57
|
+
"quantile(divide(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs)), driver=\"gaussian\", sigma=1.0)",
|
|
58
|
+
"subtract(ts_delta(vec_avg(fnd72_pit_or_cf_a_cf_chng_non_cash_work_cap), 126), ts_delta(vec_avg(fnd72_pit_or_is_a_sales_rev_turn), 126))",
|
|
59
|
+
"subtract(ts_delta(vec_avg(fnd72_pit_or_cf_a_cf_chng_non_cash_work_cap), 126), ts_delta(vec_avg(fnd72_pit_or_is_q_sales_rev_turn), 126))",
|
|
60
|
+
"subtract(ts_delta(vec_avg(fnd72_pit_or_cf_q_cf_chng_non_cash_work_cap), 126), ts_delta(vec_avg(fnd72_pit_or_is_a_sales_rev_turn), 126))",
|
|
61
|
+
"subtract(ts_delta(vec_avg(fnd72_pit_or_cf_q_cf_chng_non_cash_work_cap), 126), ts_delta(vec_avg(fnd72_pit_or_is_q_sales_rev_turn), 126))",
|
|
62
|
+
"subtract(vec_avg(fnd72_pit_or_is_a_eff_int_rate), divide(vec_avg(fnd72_pit_or_is_a_is_int_expense), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 126)))",
|
|
63
|
+
"subtract(vec_avg(fnd72_pit_or_is_a_eff_int_rate), divide(vec_avg(fnd72_pit_or_is_a_is_int_expense), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 126)))",
|
|
64
|
+
"subtract(vec_avg(fnd72_pit_or_is_a_eff_int_rate), divide(vec_avg(fnd72_pit_or_is_q_is_int_expense), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 126)))",
|
|
65
|
+
"subtract(vec_avg(fnd72_pit_or_is_a_eff_int_rate), divide(vec_avg(fnd72_pit_or_is_q_is_int_expense), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 126)))",
|
|
66
|
+
"subtract(vec_avg(fnd72_pit_or_is_q_eff_int_rate), divide(vec_avg(fnd72_pit_or_is_q_is_int_expense), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 126)))",
|
|
67
|
+
"subtract(vec_avg(fnd72_pit_or_is_q_eff_int_rate), divide(vec_avg(fnd72_pit_or_is_q_is_int_expense), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 126)))",
|
|
68
|
+
"subtract(vec_avg(fnd72_pit_or_is_q_eff_int_rate), divide(vec_avg(fnd72_pit_or_is_a_is_int_expense), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 126)))",
|
|
69
|
+
"subtract(vec_avg(fnd72_pit_or_is_q_eff_int_rate), divide(vec_avg(fnd72_pit_or_is_a_is_int_expense), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 126)))",
|
|
70
|
+
"ts_corr(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), ts_delay(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), 252), 504)",
|
|
71
|
+
"ts_corr(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), ts_delay(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), 252), 504)",
|
|
72
|
+
"ts_sum(subtract(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), vec_avg(fnd72_pit_or_cf_a_cf_cap_expend_prpty_add)), 504)",
|
|
73
|
+
"ts_sum(subtract(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), vec_avg(fnd72_pit_or_cf_a_cf_cap_expend_prpty_add)), 504)",
|
|
74
|
+
"ts_sum(subtract(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), vec_avg(fnd72_pit_or_cf_q_cf_cap_expend_prpty_add)), 504)",
|
|
75
|
+
"ts_sum(subtract(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), vec_avg(fnd72_pit_or_cf_q_cf_cap_expend_prpty_add)), 504)"
|
|
76
|
+
]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "divide(abs(subtract(vec_avg({comprehensive_income}), vec_avg({net_inc_avail_com_shrhldrs}))), vec_avg({tot_asset}))",
|
|
3
|
+
"idea": "**Concept**: Comprehensive Income Divergence\n- **Sample Fields Used**: comprehensive_income, net_inc_avail_com_shrhldrs\n- **Definition**: Absolute deviation of comprehensive income from net income, normalized by total assets\n- **Why This Feature**: Large deviations indicate significant unrealized gains/losses, foreign exchange impacts, or pension adjustments not captured in net income, signaling earnings quality issues\n- **Logical Meaning**: Identifies periods where \"hidden\" volatility in other comprehensive income components materially impacts total economic performance\n- **is filling nan necessary**: Comprehensive income components may be missing for some periods; backfill only if subsequent data exists\n- **Directionality**: Higher values indicate lower earnings quality and greater off-income-statement volatility\n- **Boundary Conditions**: Values >5% of assets suggest material non-operating adjustments; persistent deviations indicate structural currency or pension exposure",
|
|
4
|
+
"expression_list": [
|
|
5
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
6
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
7
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
8
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
9
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
10
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
11
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
12
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_a_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
13
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
14
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
15
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
16
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_q_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
17
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
18
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
19
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
20
|
+
"divide(abs(subtract(vec_avg(fnd72_pit_or_is_a_is_comprehensive_income_per_shr), vec_avg(fnd72_pit_or_is_q_is_net_inc_avail_com_shrhldrs))), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "divide(add(vec_avg({rental_exp_year_4}), vec_avg({rental_exp_year_5})), vec_avg({tot_asset}))",
|
|
3
|
+
"idea": "**Concept**: Operating Lease Commitment Concentration\n- **Sample Fields Used**: rental_exp_year_4, rental_exp_year_5, tot_asset\n- **Definition**: Forward lease commitments (years 4-5) as percentage of total assets, measuring off-balance-sheet liability exposure\n- **Why This Feature**: Captures long-term lease obligations not fully reflected in debt metrics; critical for retail, airline, and real estate intensive industries\n- **Logical Meaning**: Structural exposure to long-term fixed obligations requiring future cash generation\n- **is filling nan necessary**: Missing future lease commitments may indicate no leases or disclosure gaps; verify before filling\n- **Directionality**: Higher values indicate significant off-balance-sheet leverage; low values indicate asset-light or owned-asset models\n- **Boundary Conditions**: Values >20% of assets indicate lease-dependent business model; zero indicates minimal lease exposure",
|
|
4
|
+
"expression_list": [
|
|
5
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
6
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
7
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
8
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
9
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
10
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))",
|
|
11
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_q_bs_tot_asset))",
|
|
12
|
+
"divide(add(vec_avg(fnd72_pit_or_bs_q_bs_rental_exp_year_4), vec_avg(fnd72_pit_or_bs_a_bs_rental_exp_year_5)), vec_avg(fnd72_pit_or_bs_a_bs_tot_asset))"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "divide(subtract(vec_avg({tax_eff_on_abnormal_item}), ts_mean(vec_avg({tax_eff_on_abnormal_item}), 504)), ts_std_dev(vec_avg({tax_eff_on_abnormal_item}), 504))",
|
|
3
|
+
"idea": "**Concept**: Abnormal Tax Effect Detection\n- **Sample Fields Used**: tax_eff_on_abnormal_item\n- **Definition**: Z-score of current tax effects on abnormal items relative to trailing 2-year history\n- **Why This Feature**: Unusual tax adjustments often precede restatements or indicate aggressive tax position recognition; anomalous values warrant scrutiny\n- **Logical Meaning**: Captures outlier tax adjustments that deviate from historical patterns of one-time item treatment\n- **is filling nan necessary**: Absence of abnormal items (zero/NaN) is meaningful and should not be filled\n- **Directionality**: Extreme positive or negative z-scores indicate unusual tax events; zero indicates normal operations\n- **Boundary Conditions**: |z-score| > 3 indicates statistically significant anomaly requiring investigation",
|
|
4
|
+
"expression_list": [
|
|
5
|
+
"divide(subtract(vec_avg(fnd72_pit_or_is_a_is_tax_eff_on_abnormal_item), ts_mean(vec_avg(fnd72_pit_or_is_a_is_tax_eff_on_abnormal_item), 504)), ts_std_dev(vec_avg(fnd72_pit_or_is_a_is_tax_eff_on_abnormal_item), 504))",
|
|
6
|
+
"divide(subtract(vec_avg(fnd72_pit_or_is_q_is_tax_eff_on_abnormal_item), ts_mean(vec_avg(fnd72_pit_or_is_q_is_tax_eff_on_abnormal_item), 504)), ts_std_dev(vec_avg(fnd72_pit_or_is_q_is_tax_eff_on_abnormal_item), 504))"
|
|
7
|
+
]
|
|
8
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "divide(ts_delta(vec_avg({cap_expend_prpty_add}), 252), ts_mean(vec_avg({tot_asset}), 252))",
|
|
3
|
+
"idea": "**Concept**: Capital Expenditure Acceleration\n- **Sample Fields Used**: cap_expend_prpty_add\n- **Definition**: Year-over-year change in capital expenditures normalized by trailing average total assets\n- **Why This Feature**: Accelerating capex signals management confidence in growth prospects; deceleration suggests caution or capacity saturation\n- **Logical Meaning**: Captures investment momentum relative to firm size, indicating strategic inflection points\n- **is filling nan necessary**: Zero values represent actual lack of investment and should not be filled; missing data requires backfilling\n- **Directionality**: Positive values indicate expansion; negative values indicate contraction or maintenance mode\n- **Boundary Conditions**: Extreme positive values (>50% of assets) suggest aggressive growth or acquisition activity; sustained negative values indicate asset-light transitions",
|
|
4
|
+
"expression_list": [
|
|
5
|
+
"divide(ts_delta(vec_avg(fnd72_pit_or_cf_a_cf_cap_expend_prpty_add), 252), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 252))",
|
|
6
|
+
"divide(ts_delta(vec_avg(fnd72_pit_or_cf_a_cf_cap_expend_prpty_add), 252), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 252))",
|
|
7
|
+
"divide(ts_delta(vec_avg(fnd72_pit_or_cf_q_cf_cap_expend_prpty_add), 252), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 252))",
|
|
8
|
+
"divide(ts_delta(vec_avg(fnd72_pit_or_cf_q_cf_cap_expend_prpty_add), 252), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 252))"
|
|
9
|
+
]
|
|
10
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "divide(ts_mean(vec_avg({cash_from_oper}), 126), ts_mean(vec_avg({cash_paid_for_int_debt}), 126))",
|
|
3
|
+
"idea": "**Concept**: Debt Servicing Coverage Ratio\n- **Sample Fields Used**: cash_from_oper, cash_paid_for_int_debt\n- **Definition**: Operating cash flow divided by cash interest paid, with 126-day smoothing\n- **Why This Feature**: Directly measures ability to service debt obligations from operations; critical distress predictor combining liquidity generation with financing burden\n- **Logical Meaning**: Synthesis of operational performance (numerator) and financial leverage cost (denominator)\n- **is filling nan necessary**: Missing interest payments should be treated as zero only if confirmed no debt; otherwise backfill\n- **Directionality**: Higher values indicate stronger coverage (>3 is healthy); values <1 indicate distress\n- **Boundary Conditions**: Values approaching infinity indicate no debt; negative values indicate cash burn despite interest obligations",
|
|
4
|
+
"expression_list": [
|
|
5
|
+
"divide(ts_mean(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), 126), ts_mean(vec_avg(fnd72_pit_or_cf_a_cf_act_cash_paid_for_int_debt), 126))",
|
|
6
|
+
"divide(ts_mean(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), 126), ts_mean(vec_avg(fnd72_pit_or_cf_a_cf_act_cash_paid_for_int_debt), 126))",
|
|
7
|
+
"divide(ts_mean(vec_avg(fnd72_pit_or_cf_q_cf_cash_from_oper), 126), ts_mean(vec_avg(fnd72_pit_or_cf_q_cf_act_cash_paid_for_int_debt), 126))",
|
|
8
|
+
"divide(ts_mean(vec_avg(fnd72_pit_or_cf_a_cf_cash_from_oper), 126), ts_mean(vec_avg(fnd72_pit_or_cf_q_cf_act_cash_paid_for_int_debt), 126))"
|
|
9
|
+
]
|
|
10
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "divide(ts_std_dev(vec_avg({int_expense}), 252), abs(ts_mean(vec_avg({int_expense}), 252)))",
|
|
3
|
+
"idea": "**Concept**: Interest Expense Stability Coefficient\n- **Sample Fields Used**: int_expense\n- **Definition**: Coefficient of variation (standard deviation divided by mean) of interest expense over trailing 252 days\n- **Why This Feature**: Stable interest expenses indicate predictable debt service obligations and conservative capital structure management; high volatility suggests refinancing risk or variable rate exposure\n- **Logical Meaning**: Measures the consistency of financing costs over time; invariant firms have predictable capital structures\n- **is filling nan necessary**: Backfilling may be appropriate for quarterly reporting gaps, but zero values should not be filled as they indicate no interest expense\n- **Directionality**: Lower values indicate stability (desirable); higher values indicate financial stress or variable rate exposure\n- **Boundary Conditions**: Values approaching zero indicate either no debt or perfectly fixed rates; extreme spikes indicate distressed refinancing",
|
|
4
|
+
"expression_list": [
|
|
5
|
+
"divide(ts_std_dev(vec_avg(fnd72_pit_or_is_a_is_int_expense), 252), abs(ts_mean(vec_avg(fnd72_pit_or_is_a_is_int_expense), 252)))",
|
|
6
|
+
"divide(ts_std_dev(vec_avg(fnd72_pit_or_is_q_is_int_expense), 252), abs(ts_mean(vec_avg(fnd72_pit_or_is_q_is_int_expense), 252)))"
|
|
7
|
+
]
|
|
8
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"template": "divide(ts_sum(ts_delta(vec_avg({retain_earn}), 252), 756), ts_mean(vec_avg({tot_asset}), 756))",
|
|
3
|
+
"idea": "**Concept**: Retained Earnings Growth Trajectory\n- **Sample Fields Used**: retain_earn\n- **Definition**: 3-year cumulative change in retained earnings normalized by average total assets\n- **Why This Feature**: Measures long-term profit retention and reinvestment success; declining cumulative trend indicates dividend overpayment or accumulated losses\n- **Logical Meaning**: Accumulated historical profitability available for reinvestment or distribution\n- **is filling nan necessary**: Annual data points require interpolation or backfilling for quarterly analysis\n- **Directionality**: Positive cumulative growth indicates value retention; negative indicates eroding equity base\n- **Boundary Conditions**: Declining values approaching zero indicate depleted equity; rapid growth indicates aggressive retention",
|
|
4
|
+
"expression_list": [
|
|
5
|
+
"divide(ts_sum(ts_delta(vec_avg(fnd72_pit_or_bs_a_bs_retain_earn), 252), 756), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 756))",
|
|
6
|
+
"divide(ts_sum(ts_delta(vec_avg(fnd72_pit_or_bs_a_bs_retain_earn), 252), 756), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 756))",
|
|
7
|
+
"divide(ts_sum(ts_delta(vec_avg(fnd72_pit_or_bs_q_bs_retain_earn), 252), 756), ts_mean(vec_avg(fnd72_pit_or_bs_q_bs_tot_asset), 756))",
|
|
8
|
+
"divide(ts_sum(ts_delta(vec_avg(fnd72_pit_or_bs_q_bs_retain_earn), 252), 756), ts_mean(vec_avg(fnd72_pit_or_bs_a_bs_tot_asset), 756))"
|
|
9
|
+
]
|
|
10
|
+
}
|