diff --git a/decode_template/decode_result.json b/decode_template/decode_result.json new file mode 100644 index 0000000..e73eaa3 --- /dev/null +++ b/decode_template/decode_result.json @@ -0,0 +1,274 @@ +{ + "success": true, + "summary": { + "total_templates": 16, + "normalized_templates": 16, + "total_expressions": 16, + "valid_expressions": 6, + "unique_expressions": 6, + "invalid_count": 10 + }, + "templates": [ + { + "template": "divide(subtract(max_sales_guidance_value, min_sales_guidance_value), abs(sales_estimate_average_annual))", + "original_template": "divide(subtract(max_sales_guidance_value, min_sales_guidance_value), abs(sales_estimate_average_annual))", + "idea": "**Concept**: Guidance Uncertainty Width \n- **Sample Fields Used**: `min_sales_guidance_value`, `max_sales_guidance_value` \n- **Definition**: `(max_guidance - min_guidance) / abs(mean_guidance)` \n- **Why This Feature**: Narrow guidance indicates high management confidence; wide guidance signals uncertainty or volatile business outlook. \n- **Logical Meaning**: Relative size of the “cone of uncertainty” around forward guidance. \n- **Is filling nan necessary**: No – guidance fields only have values when guidance is issued. NaN indicates no guidance available. We should not fill because absence itself is informative. \n- **Directionality**: High values = more uncertainty; low values = more precision. \n- **Boundary Conditions**: May be extreme if mean guidance is near zero; use winsorization or truncation.", + "expression_count": 1, + "expressions": [ + "divide(subtract(max_sales_guidance_value, min_sales_guidance_value), abs(sales_estimate_average_annual))" + ] + }, + { + "template": "divide(anl4_qfv4_eps_std, abs(anl4_qfv4_eps_mean))", + "original_template": "divide(anl4_qfv4_eps_std, abs(anl4_qfv4_eps_mean))", + "idea": "**Concept**: Consensus Stability \n- **Sample Fields Used**: `anl4_qfv4_eps_std`, `anl4_qfv4_eps_mean` \n- **Definition**: `std / abs(mean)` – coefficient of variation of EPS estimates. \n- **Why This Feature**: Low CV indicates high analyst agreement, suggesting the stock is well‑understood and less prone to surprise. \n- **Logical Meaning**: Normalized dispersion of analyst opinions. \n- **Is filling nan necessary**: The standard deviation may be NaN when fewer than two estimates exist. Use `if_else` with `is_nan` to set a default (e.g., 0). \n- **Directionality**: High CV = high disagreement, possibly leading to volatile price reactions. \n- **Boundary Conditions**: If mean is near zero, the ratio may explode – use with caution.", + "expression_count": 1, + "expressions": [ + "divide(anl4_qfv4_eps_std, abs(anl4_qfv4_eps_mean))" + ] + }, + { + "template": "divide(ts_delta(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1), abs(ts_delay(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1)))", + "original_template": "divide(ts_delta(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1), abs(ts_delay(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1)))", + "idea": "**Concept**: Estimate Revision Momentum \n- **Sample Fields Used**: `anl4_qfv4_eps_mean` \n- **Definition**: `ts_delta(anl4_qfv4_eps_mean, 1) / abs(ts_delay(anl4_qfv4_eps_mean, 1))` – percentage change in consensus from previous update. \n- **Why This Feature**: Captures the speed and direction of consensus adjustments; large positive changes may signal under‑reaction. \n- **Logical Meaning**: Relative revision intensity. \n- **Is filling nan necessary**: The consensus field may be NaN on non‑update days. Use `ts_backfill` to carry forward the last value before applying `ts_delta`. \n- **Directionality**: Positive = upward revision (bullish); negative = downward revision (bearish). \n- **Boundary Conditions**: Zero denominator can occur if previous value is zero; use `if_else` to handle.", + "expression_count": 1, + "expressions": [ + "divide(ts_delta(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1), abs(ts_delay(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1)))" + ] + }, + { + "template": "ts_delta( subtract(ts_backfill(max_sales_guidance_value, lookback=180, k=1), ts_backfill(min_sales_guidance_value, lookback=180, k=1)), 1 )", + "original_template": "ts_delta( subtract(ts_backfill(max_sales_guidance_value, lookback=180, k=1), ts_backfill(min_sales_guidance_value, lookback=180, k=1)), 1 )", + "idea": "**Concept**: Guidance Range Narrowing \n- **Sample Fields Used**: `min_sales_guidance_value`, `max_sales_guidance_value` \n- **Definition**: `ts_delta( max_guidance - min_guidance, 1 )` – change in absolute guidance width over time. \n- **Why This Feature**: Narrowing range indicates management’s increasing confidence as the fiscal period approaches. \n- **Logical Meaning**: Temporal tightening of the forecast corridor. \n- **Is filling nan necessary**: Guidance values are event‑based; backfill to get last known range before measuring change. \n- **Directionality**: Negative change = increased precision. \n- **Boundary Conditions**: May be zero if no update.", + "expression_count": 1, + "expressions": [ + "ts_delta( subtract(ts_backfill(max_sales_guidance_value, lookback=180, k=1), ts_backfill(min_sales_guidance_value, lookback=180, k=1)), 1 )" + ] + }, + { + "template": "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(anl4_qfv4_eps_mean) )", + "original_template": "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(anl4_qfv4_eps_mean) )", + "idea": "**Concept**: Earnings Surprise \n- **Sample Fields Used**: `actual_eps_value_quarterly`, `anl4_qfv4_eps_mean` \n- **Definition**: `(actual - consensus) / abs(consensus)` – standardized surprise. \n- **Why This Feature**: Positive surprises often trigger immediate price jumps; the magnitude determines subsequent drift. \n- **Logical Meaning**: Unexpected earnings relative to market expectation. \n- **Is filling nan necessary**: The actual field is NaN most days. The feature is only meaningful on the announcement date. No filling needed. \n- **Directionality**: Positive = beat; negative = miss. \n- **Boundary Conditions**: Consensus may be zero; use `if_else` to avoid division by zero.", + "expression_count": 1, + "expressions": [ + "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(anl4_qfv4_eps_mean) )" + ] + }, + { + "template": "divide( subtract(ts_backfill(anl4_qfv4_eps_high, lookback=90, k=1), ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)), abs(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)) )", + "original_template": "divide( subtract(ts_backfill(anl4_qfv4_eps_high, lookback=90, k=1), ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)), abs(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)) )", + "idea": "**Concept**: Analyst Over‑optimism \n- **Sample Fields Used**: `anl4_qfv4_eps_high`, `anl4_qfv4_eps_mean` \n- **Definition**: `(high - mean) / abs(mean)` – relative gap between the most optimistic estimate and consensus. \n- **Why This Feature**: A persistently large gap may indicate a subset of overly optimistic analysts; their future revisions can drive price. \n- **Logical Meaning**: Skew in analyst expectations toward the upside. \n- **Is filling nan necessary**: Backfill high and mean to last known values. \n- **Directionality**: High values = optimism skew; low values = consensus closer to the top. \n- **Boundary Conditions**: May be undefined if mean is zero.", + "expression_count": 1, + "expressions": [ + "divide( subtract(ts_backfill(anl4_qfv4_eps_high, lookback=90, k=1), ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)), abs(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)) )" + ] + }, + { + "template": "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(ts_backfill(book_value_per_share_reported_value, lookback=180, k=1)) )", + "original_template": "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(ts_backfill(book_value_per_share_reported_value, lookback=180, k=1)) )", + "idea": "**Concept**: Valuation‑Adjusted Surprise \n- **Sample Fields Used**: `actual_eps_value_quarterly`, `anl4_qfv4_eps_mean`, `book_value_per_share_reported_value` \n- **Definition**: `(actual - consensus) / book_value_per_share` – surprise scaled by balance sheet anchor. \n- **Why This Feature**: Same surprise magnitude may have different impact depending on firm’s asset base. \n- **Logical Meaning**: Earnings surprise relative to the book value – a more fundamental scaling. \n- **Is filling nan necessary**: Book value is reported quarterly (event field). Backfill to latest available. \n- **Directionality**: Positive = beat relative to asset size. \n- **Boundary Conditions**: Book value may be negative; use absolute value or treat as special.", + "expression_count": 1, + "expressions": [ + "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(ts_backfill(book_value_per_share_reported_value, lookback=180, k=1)) )" + ] + }, + { + "template": "divide( subtract(actual_eps_value_quarterly, actual_cashflow_per_share_value_quarterly), abs(actual_eps_value_quarterly) )", + "original_template": "divide( subtract(actual_eps_value_quarterly, actual_cashflow_per_share_value_quarterly), abs(actual_eps_value_quarterly) )", + "idea": "**Concept**: Cash Flow Quality Adjustment \n- **Sample Fields Used**: `actual_eps_value_quarterly`, `actual_cashflow_per_share_value_quarterly` \n- **Definition**: `(eps - cashflow) / abs(eps)` – difference between earnings and cash flow per share. \n- **Why This Feature**: Large divergence may signal accounting discretion or unsustainable earnings. \n- **Logical Meaning**: Accrual component of earnings. \n- **Is filling nan necessary**: Both fields are event‑based; combine only when both have values (e.g., on earnings day). \n- **Directionality**: Negative = cash flow stronger than earnings (higher quality). \n- **Boundary Conditions**: EPS may be zero; use absolute denominator.", + "expression_count": 1, + "expressions": [ + "divide( subtract(actual_eps_value_quarterly, actual_cashflow_per_share_value_quarterly), abs(actual_eps_value_quarterly) )" + ] + }, + { + "template": "divide( ts_backfill(total_goodwill_reported_value, lookback=180, k=1), ts_backfill(total_assets_reported_value, lookback=180, k=1) )", + "original_template": "divide( ts_backfill(total_goodwill_reported_value, lookback=180, k=1), ts_backfill(total_assets_reported_value, lookback=180, k=1) )", + "idea": "**Concept**: Tangible Asset Intensity \n- **Sample Fields Used**: `total_goodwill_reported_value`, `total_assets_reported_value` \n- **Definition**: `goodwill / total_assets` – proportion of assets that is goodwill (intangible). \n- **Why This Feature**: High ratio indicates reliance on past acquisitions; such firms may be more volatile post‑earnings. \n- **Logical Meaning**: Degree of asset “intangibility”. \n- **Is filling nan necessary**: Balance sheet items are reported quarterly; backfill to last known. \n- **Directionality**: High = more goodwill‑heavy, potentially riskier. \n- **Boundary Conditions**: Total assets must be non‑zero.", + "expression_count": 1, + "expressions": [ + "divide( ts_backfill(total_goodwill_reported_value, lookback=180, k=1), ts_backfill(total_assets_reported_value, lookback=180, k=1) )" + ] + }, + { + "template": "divide( ts_backfill(net_debt_actual_value, lookback=180, k=1), ts_backfill(shareholders_equity_actual_value, lookback=180, k=1) )", + "original_template": "divide( ts_backfill(net_debt_actual_value, lookback=180, k=1), ts_backfill(shareholders_equity_actual_value, lookback=180, k=1) )", + "idea": "**Concept**: Net Debt to Equity \n- **Sample Fields Used**: `net_debt_actual_value`, `shareholders_equity_actual_value` \n- **Definition**: `net_debt / equity` – leverage measure. \n- **Why This Feature**: High leverage amplifies sensitivity to earnings surprises and interest rate changes. \n- **Logical Meaning**: Financial risk exposure. \n- **Is filling nan necessary**: Backfill both to latest reported. \n- **Directionality**: High = more leveraged. \n- **Boundary Conditions**: Equity could be negative; use absolute or treat as special.", + "expression_count": 1, + "expressions": [ + "divide( ts_backfill(net_debt_actual_value, lookback=180, k=1), ts_backfill(shareholders_equity_actual_value, lookback=180, k=1) )" + ] + }, + { + "template": "ts_sum( ts_delta( ts_backfill(anl4_qfv4_eps_mean, lookback=120, k=1), 1 ), 90 )", + "original_template": "ts_sum( ts_delta( ts_backfill(anl4_qfv4_eps_mean, lookback=120, k=1), 1 ), 90 )", + "idea": "**Concept**: Cumulative Estimate Revisions Over Quarter \n- **Sample Fields Used**: `anl4_qfv4_eps_mean` \n- **Definition**: `ts_sum( ts_delta(backfilled_eps, 1), 90 )` – sum of daily consensus changes over the last 90 days. \n- **Why This Feature**: Captures net revision pressure as the earnings date approaches. \n- **Logical Meaning**: Net momentum of analyst expectations over a quarter. \n- **Is filling nan necessary**: Backfill consensus before calculating deltas. \n- **Directionality**: Positive = net upward revisions. \n- **Boundary Conditions**: Use `ts_delta` with backfilled series to avoid noise from non‑update days.", + "expression_count": 1, + "expressions": [ + "ts_sum( ts_delta( ts_backfill(anl4_qfv4_eps_mean, lookback=120, k=1), 1 ), 90 )" + ] + }, + { + "template": "ts_sum( subtract( ts_backfill(max_sales_guidance_value, lookback=200, k=1), ts_backfill(min_sales_guidance_value, lookback=200, k=1) ), 180 )", + "original_template": "ts_sum( subtract( ts_backfill(max_sales_guidance_value, lookback=200, k=1), ts_backfill(min_sales_guidance_value, lookback=200, k=1) ), 180 )", + "idea": "**Concept**: Rolling Guidance Width Accumulation \n- **Sample Fields Used**: `min_sales_guidance_value`, `max_sales_guidance_value` \n- **Definition**: `ts_sum( max_guidance - min_guidance, 180 )` – total uncertainty “exposure” over past 180 days. \n- **Why This Feature**: Repeated wide guidance may indicate chronic uncertainty. \n- **Logical Meaning**: Integrated management ambiguity. \n- **Is filling nan necessary**: Backfill guidance ranges before summation. \n- **Directionality**: High = persistently uncertain outlook. \n- **Boundary Conditions**: Sum may become very large; consider normalization by number of non‑NaN days.", + "expression_count": 1, + "expressions": [ + "ts_sum( subtract( ts_backfill(max_sales_guidance_value, lookback=200, k=1), ts_backfill(min_sales_guidance_value, lookback=200, k=1) ), 180 )" + ] + }, + { + "template": "group_zscore( divide( ts_backfill(anl4_qfv4_eps_std, lookback=90, k=1), abs( ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1) ) ), group )", + "original_template": "group_zscore( divide( ts_backfill(anl4_qfv4_eps_std, lookback=90, k=1), abs( ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1) ) ), group )", + "idea": "**Concept**: Sector‑Relative Disagreement \n- **Sample Fields Used**: `anl4_qfv4_eps_std`, `anl4_qfv4_eps_mean`, `group` (e.g., industry) \n- **Definition**: `group_zscore( anl4_qfv4_eps_std / abs(anl4_qfv4_eps_mean), industry )` – how analyst disagreement deviates from industry norm. \n- **Why This Feature**: Abnormal disagreement may indicate stock‑specific uncertainty. \n- **Logical Meaning**: Relative uncertainty vs. peers. \n- **Is filling nan necessary**: Backfill standard deviation and mean; apply group_zscore only when group is defined. \n- **Directionality**: Positive = more disagreement than industry average. \n- **Boundary Conditions**: Group must be available; use `group_mean` to compute industry average if needed.", + "expression_count": 1, + "expressions": [ + "group_zscore( divide( ts_backfill(anl4_qfv4_eps_std, lookback=90, k=1), abs( ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1) ) ), group )" + ] + }, + { + "template": "subtract( anl4_mark, divide( anl4_buy, anl4_total_rec ) )", + "original_template": "subtract( anl4_mark, divide( anl4_buy, anl4_total_rec ) )", + "idea": "**Concept**: Consensus Score Deviation from Recommendation Counts \n- **Sample Fields Used**: `anl4_mark`, `anl4_buy`, `anl4_total_rec` \n- **Definition**: `anl4_mark - (anl4_buy / anl4_total_rec)` – residual of consensus score relative to simple buy ratio. \n- **Why This Feature**: Consensus scores often weight ratings non‑linearly; deviation captures nuanced sentiment. \n- **Logical Meaning**: Unexplained sentiment (e.g., strong “sell” recommendations dragging down score). \n- **Is filling nan necessary**: Recommendation fields are daily (continuous). Use directly. \n- **Directionality**: Positive = score higher than buy ratio suggests. \n- **Boundary Conditions**: Avoid division by zero if total_rec = 0.", + "expression_count": 1, + "expressions": [ + "subtract( anl4_mark, divide( anl4_buy, anl4_total_rec ) )" + ] + }, + { + "template": "divide( subtract( ts_delay( anl4_qfv4_eps_mean, -5 ), anl4_qfv4_eps_mean ), abs( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean) ) )", + "original_template": "divide( subtract( ts_delay( anl4_qfv4_eps_mean, -5 ), anl4_qfv4_eps_mean ), abs( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean) ) )", + "idea": "**Concept**: Surprise‑Adjusted Revision Response \n- **Sample Fields Used**: `actual_eps_value_quarterly`, `anl4_qfv4_eps_mean`, `anl4_qfv4_eps_mean` (future) \n- **Definition**: `( future_consensus - pre_actual_consensus ) / abs( surprise )` – the revision magnitude following a surprise. \n- **Why This Feature**: Measures how quickly and strongly analysts incorporate new information. \n- **Logical Meaning**: Information diffusion speed. \n- **Is filling nan necessary**: This feature requires aligning the pre‑actual consensus and the consensus after the earnings announcement (e.g., 5 days later). Use `ts_delay` to capture post‑actual consensus. \n- **Directionality**: Large response to small surprise indicates over‑reaction. \n- **Boundary Conditions**: Surprise may be zero; use conditional. \n *Note: Negative delay is not allowed; implement as `ts_delay( anl4_qfv4_eps_mean, 5 )` after aligning dates.*", + "expression_count": 1, + "expressions": [ + "divide( subtract( ts_delay( anl4_qfv4_eps_mean, -5 ), anl4_qfv4_eps_mean ), abs( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean) ) )" + ] + }, + { + "template": "ts_corr( ts_backfill(est_eps, lookback=180, k=1), ts_backfill(est_cashflow_ps, lookback=180, k=1), 12 )", + "original_template": "ts_corr( ts_backfill(est_eps, lookback=180, k=1), ts_backfill(est_cashflow_ps, lookback=180, k=1), 12 )", + "idea": "**Concept**: Fundamental Persistence Score \n- **Sample Fields Used**: `est_eps`, `est_cashflow_ps`, `est_ebitda` \n- **Definition**: `ts_corr( est_eps, est_cashflow_ps, 12 )` – rolling correlation between annual EPS and cash flow estimates. \n- **Why This Feature**: High correlation suggests earnings are driven by cash flow (higher quality); low correlation may indicate accounting distortions. \n- **Logical Meaning**: Earnings quality persistence. \n- **Is filling nan necessary**: Estimate fields are event‑based; backfill to daily before correlation. \n- **Directionality**: High = stable, high‑quality earnings. \n- **Boundary Conditions**: Need at least two non‑NaN points for correlation.", + "expression_count": 1, + "expressions": [ + "ts_corr( ts_backfill(est_eps, lookback=180, k=1), ts_backfill(est_cashflow_ps, lookback=180, k=1), 12 )" + ] + } + ], + "expressions": [ + "divide(subtract(max_sales_guidance_value, min_sales_guidance_value), abs(sales_estimate_average_annual))", + "divide(anl4_qfv4_eps_std, abs(anl4_qfv4_eps_mean))", + "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(anl4_qfv4_eps_mean) )", + "divide( subtract(actual_eps_value_quarterly, actual_cashflow_per_share_value_quarterly), abs(actual_eps_value_quarterly) )", + "subtract( anl4_mark, divide( anl4_buy, anl4_total_rec ) )", + "divide( subtract( ts_delay( anl4_qfv4_eps_mean, -5 ), anl4_qfv4_eps_mean ), abs( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean) ) )" + ], + "invalid_details": [ + { + "expression": "divide(ts_delta(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1), abs(ts_delay(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1)))", + "errors": [ + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'", + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'" + ] + }, + { + "expression": "ts_delta( subtract(ts_backfill(max_sales_guidance_value, lookback=180, k=1), ts_backfill(min_sales_guidance_value, lookback=180, k=1)), 1 )", + "errors": [ + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'", + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'" + ] + }, + { + "expression": "divide( subtract(ts_backfill(anl4_qfv4_eps_high, lookback=90, k=1), ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)), abs(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)) )", + "errors": [ + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'", + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'", + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'" + ] + }, + { + "expression": "divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(ts_backfill(book_value_per_share_reported_value, lookback=180, k=1)) )", + "errors": [ + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'" + ] + }, + { + "expression": "divide( ts_backfill(total_goodwill_reported_value, lookback=180, k=1), ts_backfill(total_assets_reported_value, lookback=180, k=1) )", + "errors": [ + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'", + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'" + ] + }, + { + "expression": "divide( ts_backfill(net_debt_actual_value, lookback=180, k=1), ts_backfill(shareholders_equity_actual_value, lookback=180, k=1) )", + "errors": [ + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'", + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'" + ] + }, + { + "expression": "ts_sum( ts_delta( ts_backfill(anl4_qfv4_eps_mean, lookback=120, k=1), 1 ), 90 )", + "errors": [ + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'" + ] + }, + { + "expression": "ts_sum( subtract( ts_backfill(max_sales_guidance_value, lookback=200, k=1), ts_backfill(min_sales_guidance_value, lookback=200, k=1) ), 180 )", + "errors": [ + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'", + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'" + ] + }, + { + "expression": "group_zscore( divide( ts_backfill(anl4_qfv4_eps_std, lookback=90, k=1), abs( ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1) ) ), group )", + "errors": [ + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'", + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'" + ] + }, + { + "expression": "ts_corr( ts_backfill(est_eps, lookback=180, k=1), ts_backfill(est_cashflow_ps, lookback=180, k=1), 12 )", + "errors": [ + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'", + "函数 ts_backfill 最多接受 2 个参数,但提供了 3", + "函数 ts_backfill 不存在参数 'lookback'", + "函数 ts_backfill 不存在参数 'k'" + ] + } + ] +} \ No newline at end of file diff --git a/decode_template/decode_template.py b/decode_template/decode_template.py new file mode 100644 index 0000000..963f101 --- /dev/null +++ b/decode_template/decode_template.py @@ -0,0 +1,1612 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +LLM 结果处理脚本 - 合并版本 +从 LLM 生成的 Markdown 结果中提取 templates,生成并验证 Alpha 表达式 + +使用方法: + 将 llm_result.md 和 dataset.csv 放在当前目录,然后运行: + python decode_template.py + +输出: + 在当前目录创建 output/ 文件夹,包含生成的表达式 +""" + +import json +import itertools +import re +import sys +from pathlib import Path +from typing import List, Dict, Any, Optional, Tuple + + +# ==================== 表达式处理工具函数 ==================== + +def detect_dataset_code(dataset_ids: List[str]) -> Optional[str]: + """从字段ID中检测数据集代码前缀""" + if not dataset_ids: + return None + counts: Dict[str, int] = {} + for fid in dataset_ids: + tok = (str(fid).split("_", 1)[0] or "").strip() + if tok: + counts[tok] = counts.get(tok, 0) + 1 + if not counts: + return None + return max(counts.items(), key=lambda kv: kv[1])[0] + + +def build_allowed_metric_suffixes(field_ids: List[str], max_suffixes: int = 300) -> List[str]: + """从数据集字段ID中提取实用的占位符候选列表""" + if not field_ids: + return [] + + # 过滤并转换字段ID + field_ids = [str(fid) for fid in field_ids if fid] + dataset_code = detect_dataset_code(field_ids) + + counts: Dict[str, int] = {} + for raw in field_ids: + parts = [p for p in str(raw).split("_") if p] + if len(parts) < 2: + continue + + for n in range(1, min(6, len(parts))): + suffix = "_".join(parts[-n:]) + if suffix.replace("_", "").isdigit(): + continue + if dataset_code and suffix.lower().startswith(dataset_code.lower() + "_"): + continue + if n == 1 and len(suffix) < 8: + continue + if len(suffix) < 6: + continue + counts[suffix] = counts.get(suffix, 0) + 1 + + ranked = sorted( + counts.items(), + key=lambda kv: (kv[1], kv[0].count("_"), len(kv[0])), + reverse=True, + ) + + suffixes: List[str] = [] + for suffix, _ in ranked: + if suffix not in suffixes: + suffixes.append(suffix) + if len(suffixes) >= max_suffixes: + break + return suffixes + + +def compress_to_known_suffix(var: str, allowed_suffixes: List[str]) -> Optional[str]: + """将变量名压缩为已知的后缀形式""" + if not allowed_suffixes: + return None + var_lower = var.lower() + for suffix in allowed_suffixes: + if var_lower.endswith(suffix.lower()): + return suffix + if suffix.lower().endswith(var_lower): + return suffix + return None + + +def placeholder_is_reasonably_matchable(placeholder: str, dataset_ids: List[str]) -> bool: + """检查占位符是否可以与数据集字段匹配""" + if not dataset_ids: + return True + v = placeholder.strip() + if not v: + return False + if len(v) <= 3: + pat = re.compile(rf"(^|_){re.escape(v)}(_|$)", flags=re.IGNORECASE) + return any(pat.search(str(fid)) for fid in dataset_ids) + return any(v in str(fid) for fid in dataset_ids) + + +def normalize_template_placeholders( + template: str, + dataset_ids: List[str], + allowed_suffixes: List[str], + dataset_code: Optional[str], +) -> Tuple[str, bool]: + """规范化模板中的占位符为后缀形式""" + vars_in_template = re.findall(r"\{([A-Za-z0-9_]+)\}", template) + if not vars_in_template: + return template, False + + mapping: Dict[str, str] = {} + for var in set(vars_in_template): + new_var = var + if dataset_code and new_var.lower().startswith(dataset_code.lower() + "_"): + new_var = new_var[len(dataset_code) + 1:] + + compressed = compress_to_known_suffix(new_var, allowed_suffixes) + if compressed: + new_var = compressed + + mapping[var] = new_var + + normalized = template + for src, dst in mapping.items(): + normalized = normalized.replace("{" + src + "}", "{" + dst + "}") + + vars_after = re.findall(r"\{([A-Za-z0-9_]+)\}", normalized) + ok = all(placeholder_is_reasonably_matchable(v, dataset_ids) for v in vars_after) + return normalized, ok + + +def extract_template_blocks(markdown_text: str) -> List[Dict[str, str]]: + """ + 从 Markdown 文本中解析 **Concept** 块并提取 {template, idea} + + 返回列表,每个元素包含: + - template: 实现示例模板(包含 {variable} 占位符) + - idea: Concept 的完整描述 + """ + concept_re = re.compile(r"^\*\*Concept\*\*\s*:\s*(.*)\s*$") + impl_re = re.compile(r"\*\*Implementation Example\*\*\s*:\s*(.*)$", flags=re.IGNORECASE) + backtick_re = re.compile(r"`([^`]*)`") + boundary_re = re.compile(r"^(?:-{3,}|#{1,6}\s+.*)\s*$") + + lines = markdown_text.splitlines() + blocks: List[List[str]] = [] + current: List[str] = [] + + def _flush(): + nonlocal current + if current: + while current and not current[0].strip(): + current.pop(0) + while current and not current[-1].strip(): + current.pop() + if current: + blocks.append(current) + current = [] + + for line in lines: + if concept_re.match(line.strip()): + _flush() + current = [line] + continue + + if current and boundary_re.match(line.strip()): + _flush() + continue + + if current: + current.append(line) + + _flush() + + out: List[Dict[str, str]] = [] + for block_lines in blocks: + template: Optional[str] = None + impl_line_idx: Optional[int] = None + + for i, raw in enumerate(block_lines): + m = impl_re.search(raw) + if not m: + continue + + impl_line_idx = i + tail = (m.group(1) or "").strip() + + bt = backtick_re.search(tail) + if bt: + template = bt.group(1).strip() + break + + if tail and ("{" in tail and "}" in tail): + template = tail.strip().strip("`") + break + + for j in range(i + 1, min(i + 4, len(block_lines))): + nxt = block_lines[j].strip() + if not nxt: + continue + bt2 = backtick_re.search(nxt) + if bt2: + template = bt2.group(1).strip() + break + if "{" in nxt and "}" in nxt: + template = nxt.strip().strip("`") + break + break + + # 注释掉跳过逻辑,允许没有 {placeholder} 的模板 + # if not template or "{" not in template or "}" not in template: + # continue + + # 如果 template 为 None,跳过 + if not template: + continue + + template = template.strip() + if template.startswith('{') and template.endswith('}'): + template = template[1:-1].strip() + + idea_lines: List[str] = [] + for i, raw in enumerate(block_lines): + if impl_line_idx is not None and i == impl_line_idx: + continue + idea_lines.append(raw) + + idea = "\n".join(idea_lines).strip() + out.append({"template": template.strip(), "idea": idea}) + + return out + + +def match_single_horizon_auto(field_ids: List[str], template: str) -> List[str]: + """ + 从模板生成表达式,将每个 {variable} 匹配到数据集字段ID + + Args: + field_ids: 数据集字段ID列表 + template: 包含 {variable} 占位符的模板字符串 + + Returns: + 生成的表达式列表 + """ + metrics = re.findall(r'\{([A-Za-z0-9_]+)\}', template) + if not metrics: + return [] + + metrics = sorted(metrics, key=len, reverse=True) + primary = metrics[0] + + if not field_ids: + return [] + + ids = [str(fid) for fid in field_ids if fid] + + def _matches_metric(field_id: str, metric: str) -> bool: + fid = str(field_id) + m = str(metric) + if len(m) <= 3: + return re.search(rf"(^|_){re.escape(m)}(_|$)", fid, flags=re.IGNORECASE) is not None + return m in fid + + def _common_prefix_len(a: str, b: str) -> int: + n = min(len(a), len(b)) + i = 0 + while i < n and a[i] == b[i]: + i += 1 + return i + + candidates_by_metric = {} + for m in metrics: + cands = [fid for fid in ids if _matches_metric(fid, m)] + seen = set() + uniq = [] + for x in cands: + if x not in seen: + seen.add(x) + uniq.append(x) + candidates_by_metric[m] = uniq + + if not candidates_by_metric.get(primary): + return [] + for m in metrics[1:]: + if not candidates_by_metric.get(m): + return [] + + MAX_PRIMARY_CANDIDATES = 30 + MAX_SECONDARY_CHOICES = 8 + MAX_EXPRESSIONS = 5000 + + results = [] + seen_expr = set() + + primary_candidates = candidates_by_metric[primary][:MAX_PRIMARY_CANDIDATES] + for primary_id in primary_candidates: + chosen_by_metric = {primary: [primary_id]} + for m in metrics[1:]: + cands = candidates_by_metric[m] + ranked = sorted(cands, key=lambda fid: _common_prefix_len(primary_id, fid), reverse=True) + chosen_by_metric[m] = ranked[:MAX_SECONDARY_CHOICES] + + metric_order = metrics + pools = [chosen_by_metric[m] for m in metric_order] + for combo in itertools.product(*pools): + field_map = dict(zip(metric_order, combo)) + try: + expr = template.format(**field_map) + except Exception: + continue + if expr in seen_expr: + continue + seen_expr.add(expr) + results.append(expr) + if len(results) >= MAX_EXPRESSIONS: + return results + + return results + + +# ==================== 表达式验证器 ==================== + +# 尝试导入PLY库,如果不存在则提供安装提示 +try: + import ply.lex as lex + import ply.yacc as yacc +except ImportError: + print("错误: 需要安装PLY库。请运行 'pip install ply' 来安装。") + sys.exit(1) + +# 1. 定义支持的操作符和函数 +supported_functions = { + # Group 类别函数 + 'group_min': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'category']}, + 'group_mean': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'category']}, + 'group_median': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'category']}, + 'group_max': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'category']}, + 'group_rank': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'category']}, + 'group_vector_proj': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'category']}, + 'group_normalize': {'min_args': 2, 'max_args': 5, 'arg_types': ['expression', 'category', 'expression', 'expression', 'expression']}, + 'group_extra': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'category']}, + 'group_backfill': {'min_args': 3, 'max_args': 4, 'arg_types': ['expression', 'expression', 'expression', 'expression'], 'param_names': ['x', 'cat', 'days', 'std']}, + 'group_scale': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'category']}, + 'group_count': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'category']}, + 'group_zscore': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'category']}, + 'group_std_dev': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'category']}, + 'group_sum': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'category']}, + 'group_neutralize': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'category']}, + 'group_multi_regression': {'min_args': 4, 'max_args': 9, 'arg_types': ['expression'] * 9}, + 'group_cartesian_product': {'min_args': 2, 'max_args': 2, 'arg_types': ['category', 'category']}, + 'combo_a': {'min_args': 1, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression']}, + + # Transformational 类别函数 + 'right_tail': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'bucket': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'tail': {'min_args': 1, 'max_args': 4, 'arg_types': ['expression', 'expression', 'expression', 'expression']}, + 'left_tail': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'trade_when': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression']}, + 'generate_stats': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + + # Cross Sectional 类别函数 + 'winsorize': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['x', 'std']}, + 'rank': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'regression_proj': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'vector_neut': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'regression_neut': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'multi_regression': {'min_args': 2, 'max_args': 100, 'arg_types': ['expression'] * 100}, + + # Time Series 类别函数 + 'ts_std_dev': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_mean': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_delay': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_corr': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'number']}, + 'ts_zscore': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_returns': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'number', 'number'], 'param_names': ['x', 'd', 'mode'], 'keyword_only': True}, + 'ts_product': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_backfill': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'd']}, + 'days_from_last_change': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'last_diff_value': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_scale': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'number', 'number'], 'param_names': ['x', 'd', 'constant'], 'keyword_only': True}, + 'ts_entropy': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'd']}, + 'ts_step': {'min_args': 1, 'max_args': 1, 'arg_types': ['number']}, + 'ts_sum': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_co_kurtosis': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'number']}, + 'inst_tvr': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_decay_exp_window': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'number', 'number'], 'param_names': ['x', 'd', 'factor'], 'keyword_only': True}, + 'ts_av_diff': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_kurtosis': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_min_max_diff': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'number', 'number'], 'param_names': ['x', 'd', 'f'], 'keyword_only': True}, + 'ts_arg_max': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_max': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_min_max_cps': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'number', 'number'], 'param_names': ['x', 'd', 'f'], 'keyword_only': True}, + 'ts_rank': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'number', 'number'], 'param_names': ['x', 'd', 'constant'], 'keyword_only': True}, + 'ts_ir': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_theilsen': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'number']}, + 'hump_decay': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'p'], 'keyword_only': True}, + 'ts_weighted_decay': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'k'], 'keyword_only': True}, + 'ts_quantile': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'number', 'string'], 'param_names': ['x', 'd', 'driver'], 'keyword_only': True}, + 'ts_min': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_count_nans': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_covariance': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'number']}, + 'ts_co_skewness': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'number']}, + 'ts_min_diff': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_decay_linear': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'number', 'boolean'], 'param_names': ['x', 'd', 'dense'], 'keyword_only': True}, + 'jump_decay': {'min_args': 2, 'max_args': 4, 'arg_types': ['expression', 'number', 'number', 'number'], 'param_names': ['x', 'd', 'sensitivity', 'force'], + 'keyword_only': True}, + 'ts_moment': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'number', 'number'], 'param_names': ['x', 'd', 'k'], 'keyword_only': True}, + 'ts_arg_min': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_regression': {'min_args': 3, 'max_args': 5, 'arg_types': ['expression', 'expression', 'number', 'number', 'number'], 'param_names': ['y', 'x', 'd', 'lag', 'rettype'], + 'keyword_only': True}, + 'ts_skewness': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_max_diff': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'kth_element': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'number', 'number']}, + 'hump': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'hump']}, + 'ts_median': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_delta': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + 'ts_poly_regression': {'min_args': 3, 'max_args': 4, 'arg_types': ['expression', 'expression', 'number', 'number'], 'param_names': ['y', 'x', 'd', 'k'], 'keyword_only': True, + 'keyword_only_from': 3}, + 'ts_target_tvr_decay': {'min_args': 1, 'max_args': 4, 'arg_types': ['expression', 'number', 'number', 'number'], 'param_names': ['x', 'lambda_min', 'lambda_max', 'target_tvr'], + 'keyword_only': True}, + 'ts_target_tvr_delta_limit': {'min_args': 2, 'max_args': 5, 'arg_types': ['expression', 'expression', 'number', 'number', 'number'], + 'param_names': ['x', 'y', 'lambda_min', 'lambda_max', 'target_tvr'], 'keyword_only': True}, + 'ts_target_tvr_hump': {'min_args': 1, 'max_args': 4, 'arg_types': ['expression', 'number', 'number', 'number'], 'param_names': ['x', 'lambda_min', 'lambda_max', 'target_tvr'], + 'keyword_only': True}, + 'ts_delta_limit': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'expression', 'number'], 'param_names': ['x', 'y', 'limit_volume'], 'keyword_only': True}, + + # Special 类别函数 + 'inst_pnl': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'self_corr': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'in': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'universe_size': {'min_args': 0, 'max_args': 0, 'arg_types': []}, + + # Missing functions from operators.py + 'quantile': {'min_args': 1, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression'], 'param_names': ['x', 'driver', 'sigma']}, + 'normalize': {'min_args': 1, 'max_args': 3, 'arg_types': ['expression', 'boolean', 'number']}, + 'zscore': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + + # Logical 类别函数 + 'or': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'and': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'not': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'is_nan': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'is_not_nan': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'less': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'equal': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'greater': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'is_finite': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'if_else': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression']}, + 'not_equal': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'less_equal': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'greater_equal': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + + # Vector 类别函数 + 'vec_kurtosis': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'vec_min': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'vec_count': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'vec_sum': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'vec_skewness': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'vec_max': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'vec_avg': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'vec_range': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'vec_choose': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'nth']}, + 'vec_powersum': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'constant']}, + 'vec_stddev': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'vec_percentage': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'percentage']}, + 'vec_ir': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'vec_norm': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'ts_percentage': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'number', 'number'], 'param_names': ['x', 'd', 'percentage']}, + 'signed_power': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number']}, + + # Additional functions from test cases + 'rank_by_side': {'min_args': 1, 'max_args': 3, 'arg_types': ['expression', 'number', 'number'], 'param_names': ['x', 'rate', 'scale']}, + 'log_diff': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'nan_mask': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'ts_partial_corr': {'min_args': 4, 'max_args': 4, 'arg_types': ['expression', 'expression', 'expression', 'number']}, + 'ts_triple_corr': {'min_args': 4, 'max_args': 4, 'arg_types': ['expression', 'expression', 'expression', 'number']}, + 'clamp': {'min_args': 1, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression'], 'param_names': ['x', 'lower', 'upper']}, + 'keep': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'expression', 'number'], 'param_names': ['x', 'condition', 'period']}, + 'replace': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression'], 'param_names': ['x', 'target', 'dest']}, + 'filter': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression'], 'param_names': ['x', 'h', 't']}, + 'one_side': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'string'], 'param_names': ['x', 'side']}, + 'scale_down': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'number'], 'param_names': ['x', 'constant']}, + + # Arithmetic 类别函数 + 'add': {'min_args': 2, 'max_args': 101, 'arg_types': ['expression'] * 101}, + 'multiply': {'min_args': 2, 'max_args': 100, 'arg_types': ['expression'] * 99 + ['boolean'], 'param_names': ['x', 'y', 'filter']}, + 'sign': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'subtract': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'expression', 'boolean']}, + 'pasteurize': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'log': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'purify': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'arc_tan': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'max': {'min_args': 2, 'max_args': 100, 'arg_types': ['expression'] * 100}, + 'to_nan': {'min_args': 1, 'max_args': 3, 'arg_types': ['expression', 'expression', 'boolean']}, + 'abs': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'sigmoid': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'divide': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'min': {'min_args': 2, 'max_args': 100, 'arg_types': ['expression'] * 100}, + 'tanh': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'nan_out': {'min_args': 1, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression'], 'param_names': ['x', 'lower', 'upper']}, + 'signed_power': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'inverse': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'round': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'sqrt': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 's_log_1p': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'reverse': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'power': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression']}, + 'densify': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'floor': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression']}, + 'arc_cos': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['x']}, + 'arc_sin': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['x']}, + 'ceiling': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['x']}, + 'exp': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['x']}, + 'fraction': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['x']}, + 'round_down': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['x', 'f']}, + 'is_not_finite': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['input']}, + 'negate': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['input']}, + 'ts_rank_gmean_amean_diff': {'min_args': 5, 'max_args': 5, 'arg_types': ['expression', 'expression', 'expression', 'expression', 'number'], + 'param_names': ['input1', 'input2', 'input3', '...', 'd']}, + 'ts_vector_neut': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'number'], 'param_names': ['x', 'y', 'd']}, + 'ts_vector_proj': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'number'], 'param_names': ['x', 'y', 'd']}, + 'scale': {'min_args': 1, 'max_args': 4, 'arg_types': ['expression', 'expression', 'expression', 'expression'], 'param_names': ['x', 'scale', 'longscale', 'shortscale']}, + 'generalized_rank': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['open', 'm']}, + 'rank_gmean_amean_diff': {'min_args': 4, 'max_args': 4, 'arg_types': ['expression', 'expression', 'expression', 'expression'], + 'param_names': ['input1', 'input2', 'input3', '...']}, + 'truncate': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['x', 'maxPercent']}, + 'vector_proj': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['x', 'y']}, + 'vec_filter': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['vec', 'value']}, + 'group_coalesce': {'min_args': 4, 'max_args': 4, 'arg_types': ['expression', 'expression', 'expression', 'expression'], + 'param_names': ['original_group', 'group2', 'group3', '…']}, + 'group_percentage': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'category', 'expression'], 'param_names': ['x', 'group', 'percentage']}, + 'group_vector_neut': {'min_args': 3, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression'], 'param_names': ['x', 'y', 'g']}, + 'convert': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['x', 'mode']}, + 'reduce_avg': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['input', 'threshold']}, + 'reduce_choose': {'min_args': 2, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression'], 'param_names': ['input', 'nth', 'ignoreNan']}, + 'reduce_count': {'min_args': 2, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['input', 'threshold']}, + 'reduce_ir': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['input']}, + 'reduce_kurtosis': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['input']}, + 'reduce_max': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['input']}, + 'reduce_min': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['input']}, + 'reduce_norm': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['input']}, + 'reduce_percentage': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['input', 'percentage']}, + 'reduce_powersum': {'min_args': 1, 'max_args': 3, 'arg_types': ['expression', 'expression', 'expression'], 'param_names': ['input', 'constant', 'precise']}, + 'reduce_range': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['input']}, + 'reduce_skewness': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['input']}, + 'reduce_stddev': {'min_args': 1, 'max_args': 2, 'arg_types': ['expression', 'expression'], 'param_names': ['input', 'threshold']}, + 'reduce_sum': {'min_args': 1, 'max_args': 1, 'arg_types': ['expression'], 'param_names': ['input']}, +} + +# 2. 定义group类型字段 +group_fields = { + 'sector', 'subindustry', 'industry', 'exchange', 'country', 'market' +} + +# 3. 有效类别集合 +valid_categories = group_fields + +# 4. 字段命名模式 - 只校验字段是不是数字字母下划线组成 +field_patterns = [ + re.compile(r'^[a-zA-Z0-9_]+$'), +] + + +# 4. 抽象语法树节点类型 +class ASTNode: + """抽象语法树节点基类""" + + def __init__(self, node_type: str, children: Optional[List['ASTNode']] = None, + value: Optional[Any] = None, line: Optional[int] = None): + self.node_type = node_type + self.children = children or [] + self.value = value + self.line = line + + def __str__(self) -> str: + return f"ASTNode({self.node_type}, {self.value}, line={self.line})" + + def __repr__(self) -> str: + return self.__str__() + + +class ExpressionValidator: + """表达式验证器类""" + + def __init__(self): + """初始化词法分析器和语法分析器""" + self.lexer = lex.lex(module=self, debug=False) + self.parser = yacc.yacc(module=self, debug=False) + self.errors = [] + self._unit_cache: Dict[int, str] = {} + self._derived_category_cache: Dict[int, bool] = {} + + # 词法分析器规则 + tokens = ('FUNCTION', 'FIELD', 'NUMBER', 'LPAREN', 'RPAREN', + 'PLUS', 'MINUS', 'TIMES', 'DIVIDE', 'COMMA', 'CATEGORY', + 'EQUAL', 'ASSIGN', 'IDENTIFIER', 'STRING', 'GREATER', 'LESS', 'GREATEREQUAL', 'LESSEQUAL', 'NOTEQUAL', 'BOOLEAN') + + t_ignore = ' \t\n' + + t_PLUS = r'\+' + t_MINUS = r'-' + t_TIMES = r'\*' + t_DIVIDE = r'/' + t_LPAREN = r'\(' + t_RPAREN = r'\)' + t_COMMA = r',' + t_EQUAL = r'==' + t_NOTEQUAL = r'!=' + t_GREATEREQUAL = r'>=' + t_LESSEQUAL = r'<=' + t_GREATER = r'>' + t_LESS = r'<' + t_ASSIGN = r'=' + + def t_NUMBER(self, t): + r'\d+\.?\d*' + if '.' in t.value: + t.value = float(t.value) + else: + t.value = int(t.value) + return t + + def t_STRING(self, t): + r"'[^']*'|\"[^\"]*\"" + t.value = t.value[1:-1] + return t + + def t_IDENTIFIER(self, t): + r'[a-zA-Z_][a-zA-Z0-9_]*' + if t.value.lower() in {'true', 'false'}: + t.type = 'BOOLEAN' + t.value = t.value.lower() + else: + lexpos = t.lexpos + next_chars = '' + if lexpos + len(t.value) < len(t.lexer.lexdata): + next_pos = lexpos + len(t.value) + while next_pos < len(t.lexer.lexdata) and t.lexer.lexdata[next_pos].isspace(): + next_pos += 1 + if next_pos < len(t.lexer.lexdata): + next_chars = t.lexer.lexdata[next_pos:next_pos + 1] + + if next_chars == '=': + t.type = 'IDENTIFIER' + elif next_chars == '(': + t.type = 'FUNCTION' + t.value = t.value.lower() + elif t.value in {'std', 'k', 'lambda_min', 'lambda_max', 'target_tvr', 'range', 'buckets', 'lag', 'rettype', 'mode', 'nth', 'constant', 'percentage', 'driver', 'sigma', + 'rate', 'scale', 'filter', 'lower', 'upper', 'target', 'dest', 'event', 'sensitivity', 'force', 'h', 't', 'period', 'stddev', 'factor', 'k', 'useStd', + 'limit', 'gaussian', 'uniform', 'cauchy'}: + t.type = 'IDENTIFIER' + elif t.value.lower() in supported_functions: + t.type = 'FUNCTION' + t.value = t.value.lower() + elif t.value in valid_categories: + t.type = 'CATEGORY' + elif self._is_valid_field(t.value): + t.type = 'FIELD' + else: + t.type = 'IDENTIFIER' + return t + + def t_newline(self, t): + r'\n+' + t.lexer.lineno += len(t.value) + + def t_error(self, t): + if t: + if not re.match(r'[a-zA-Z0-9_\+\-\*/\(\)\,\s=<>!]', t.value[0]): + self.errors.append(f"非法字符 '{t.value[0]}' (行 {t.lexer.lineno})") + else: + self.errors.append(f"非法标记 '{t.value}' (行 {t.lexer.lineno})") + t.lexer.skip(1) + else: + self.errors.append("词法分析器到达文件末尾") + + # 语法分析器规则 + def p_expression(self, p): + """expression : comparison + | expression EQUAL comparison + | expression NOTEQUAL comparison + | expression GREATER comparison + | expression LESS comparison + | expression GREATEREQUAL comparison + | expression LESSEQUAL comparison""" + if len(p) == 2: + p[0] = p[1] + else: + p[0] = ASTNode('binop', [p[1], p[3]], {'op': p[2]}) + + def p_comparison(self, p): + """comparison : term + | comparison PLUS term + | comparison MINUS term""" + if len(p) == 2: + p[0] = p[1] + else: + p[0] = ASTNode('binop', [p[1], p[3]], {'op': p[2]}) + + def p_term(self, p): + """term : factor + | term TIMES factor + | term DIVIDE factor""" + if len(p) == 2: + p[0] = p[1] + else: + p[0] = ASTNode('binop', [p[1], p[3]], {'op': p[2]}) + + def p_factor(self, p): + """factor : NUMBER + | STRING + | FIELD + | CATEGORY + | IDENTIFIER + | BOOLEAN + | MINUS factor + | LPAREN expression RPAREN + | function_call""" + if len(p) == 2: + if p.slice[1].type == 'NUMBER': + p[0] = ASTNode('number', value=p[1]) + elif p.slice[1].type == 'STRING': + p[0] = ASTNode('string', value=p[1]) + elif p.slice[1].type == 'FIELD': + p[0] = ASTNode('field', value=p[1]) + elif p.slice[1].type == 'CATEGORY': + p[0] = ASTNode('category', value=p[1]) + elif p.slice[1].type == 'BOOLEAN': + p[0] = ASTNode('boolean', value=p[1]) + elif p.slice[1].type == 'IDENTIFIER': + p[0] = ASTNode('identifier', value=p[1]) + else: + p[0] = p[1] + elif len(p) == 3: + p[0] = ASTNode('unop', [p[2]], {'op': p[1]}) + elif len(p) == 4: + p[0] = p[2] + else: + p[0] = p[1] + + def p_function_call(self, p): + '''function_call : FUNCTION LPAREN args RPAREN''' + p[0] = ASTNode('function', p[3], p[1]) + + def p_args(self, p): + '''args : arg_list + | empty''' + if len(p) == 2 and p[1] is not None: + p[0] = p[1] + else: + p[0] = [] + + def p_arg_list(self, p): + '''arg_list : arg + | arg_list COMMA arg''' + if len(p) == 2: + p[0] = [p[1]] + else: + p[0] = p[1] + [p[3]] + + def p_arg(self, p): + '''arg : expression + | IDENTIFIER ASSIGN expression''' + if len(p) == 2: + p[0] = {'type': 'positional', 'value': p[1]} + else: + p[0] = {'type': 'named', 'name': p[1], 'value': p[3]} + + def p_empty(self, p): + '''empty :''' + p[0] = None + + def p_error(self, p): + if p: + self.errors.append(f"语法错误在位置 {p.lexpos}: 非法标记 '{p.value}'") + else: + self.errors.append("语法错误: 表达式不完整") + + def _is_valid_field(self, field_name: str) -> bool: + """检查字段名是否符合模式""" + for pattern in field_patterns: + if pattern.match(field_name): + return True + return False + + def validate_function(self, node: ASTNode, is_in_group_arg: bool = False) -> List[str]: + """验证函数调用的参数数量和类型""" + function_name = node.value + args = node.children + function_info = supported_functions.get(function_name) + + if not function_info: + return [f"未知函数: {function_name}"] + + if function_name == 'add': + return self._validate_add(args, is_in_group_arg) + + errors = [] + + keyword_only_from = function_info.get('keyword_only_from') + if keyword_only_from is None and function_info.get('keyword_only'): + keyword_only_from = function_info.get('min_args', 0) + + if len(args) < function_info['min_args']: + errors.append(f"函数 {function_name} 需要至少 {function_info['min_args']} 个参数,但只提供了 {len(args)}") + elif len(args) > function_info['max_args']: + errors.append(f"函数 {function_name} 最多接受 {function_info['max_args']} 个参数,但提供了 {len(args)}") + + positional_index = 0 + + for arg in args: + if isinstance(arg, dict): + if arg['type'] == 'named': + if 'param_names' in function_info and arg['name'] in function_info['param_names']: + param_index = function_info['param_names'].index(arg['name']) + if param_index < len(function_info['arg_types']): + expected_type = function_info['arg_types'][param_index] + arg_errors = self._validate_arg_type(arg['value'], expected_type, param_index, function_name, is_in_group_arg) + errors.extend(arg_errors) + elif function_name == 'winsorize' and arg['name'] in ['std', 'clip']: + arg_errors = self._validate_arg_type(arg['value'], 'number', 0, function_name, is_in_group_arg) + errors.extend(arg_errors) + elif function_name == 'bucket' and arg['name'] in ['range', 'buckets']: + arg_errors = self._validate_arg_type(arg['value'], 'string', 1, function_name, is_in_group_arg) + errors.extend(arg_errors) + else: + errors.append(f"函数 {function_name} 不存在参数 '{arg['name']}'") + elif arg['type'] == 'positional': + if keyword_only_from is not None and positional_index >= keyword_only_from: + param_name = None + if 'param_names' in function_info and positional_index < len(function_info['param_names']): + param_name = function_info['param_names'][positional_index] + if param_name: + errors.append(f"函数 {function_name} 的第{positional_index + 1}个参数必须使用命名参数 '{param_name}='") + else: + errors.append(f"函数 {function_name} 的第{positional_index + 1}个参数必须使用命名参数") + else: + if positional_index < len(function_info['arg_types']): + expected_type = function_info['arg_types'][positional_index] + arg_errors = self._validate_arg_type(arg['value'], expected_type, positional_index, function_name, is_in_group_arg) + errors.extend(arg_errors) + positional_index += 1 + else: + errors.append(f"参数 {positional_index + 1} 格式错误") + positional_index += 1 + else: + if keyword_only_from is not None and positional_index >= keyword_only_from: + param_name = None + if 'param_names' in function_info and positional_index < len(function_info['param_names']): + param_name = function_info['param_names'][positional_index] + if param_name: + errors.append(f"函数 {function_name} 的第{positional_index + 1}个参数必须使用命名参数 '{param_name}='") + else: + errors.append(f"函数 {function_name} 的第{positional_index + 1}个参数必须使用命名参数") + else: + if positional_index < len(function_info['arg_types']): + expected_type = function_info['arg_types'][positional_index] + arg_errors = self._validate_arg_type(arg, expected_type, positional_index, function_name, is_in_group_arg) + errors.extend(arg_errors) + positional_index += 1 + + return errors + + def _validate_arg_type(self, arg: ASTNode, expected_type: str, arg_index: int, function_name: str, is_in_group_arg: bool = False) -> List[str]: + """验证参数类型是否符合预期""" + errors = [] + + def _is_number_like(node: ASTNode) -> bool: + if node is None: + return False + if node.node_type == 'number': + return True + if node.node_type == 'unop' and isinstance(node.value, dict) and node.value.get('op') in {'-', '+'}: + if node.children and hasattr(node.children[0], 'node_type'): + return _is_number_like(node.children[0]) + return False + + if self._is_derived_category(arg) and expected_type != 'category': + errors.append( + f"Incompatible unit for input of \"{function_name}\" at index {arg_index}, expected \"Unit[]\", found \"Unit[Group:1]\"" + ) + return errors + + if arg.node_type == 'category' and arg.value in group_fields: + if not (function_name.startswith('group_') or is_in_group_arg): + errors.append(f"Group类型字段 '{arg.value}' 只能用于Group类型函数的参数中") + + if expected_type == 'expression': + pass + elif expected_type == 'number': + if not _is_number_like(arg): + errors.append(f"参数 {arg_index + 1} 应该是一个数字,但得到 {arg.node_type}") + elif expected_type == 'boolean': + if arg.node_type not in {'boolean', 'number'}: + errors.append(f"参数 {arg_index + 1} 应该是一个布尔值(true/false 或 0/1),但得到 {arg.node_type}") + elif expected_type == 'field': + if arg.node_type != 'field' and arg.node_type != 'category': + errors.append(f"参数 {arg_index + 1} 应该是一个字段,但得到 {arg.node_type}") + elif arg.node_type == 'field' and not self._is_valid_field(arg.value): + errors.append(f"无效的字段名: {arg.value}") + elif expected_type == 'category': + if not function_name.startswith('group_'): + if arg.node_type != 'category': + errors.append(f"参数 {arg_index + 1} 应该是一个类别,但得到 {arg.node_type}") + elif arg.value not in valid_categories: + errors.append(f"无效的类别: {arg.value}") + + return errors + + def _infer_unit(self, node: ASTNode) -> str: + """Infer the Unit kind of an AST node.""" + if node is None: + return 'unit' + + cache_key = id(node) + cached = self._unit_cache.get(cache_key) + if cached is not None: + return cached + + unit = 'unit' + + if node.node_type in {'number', 'boolean', 'string'}: + unit = 'scalar' + elif node.node_type in {'field', 'identifier'}: + unit = 'unit' + elif node.node_type == 'category': + unit = 'category' + elif node.node_type in {'unop', 'binop'}: + child_units = [self._infer_unit(child) for child in node.children if hasattr(child, 'node_type')] + unit = 'category' if 'category' in child_units else 'unit' + elif node.node_type == 'function': + fname = node.value + if fname in {'bucket', 'group_cartesian_product'}: + unit = 'category' + else: + first_arg = None + for child in node.children: + if isinstance(child, dict): + if child.get('type') == 'positional': + first_arg = child.get('value') + break + else: + first_arg = child + break + + if hasattr(first_arg, 'node_type'): + unit = self._infer_unit(first_arg) + else: + unit = 'unit' + + self._unit_cache[cache_key] = unit + return unit + + def _is_derived_category(self, node: ASTNode) -> bool: + """Return True if node is a derived category/grouping key.""" + if node is None: + return False + + cache_key = id(node) + cached = self._derived_category_cache.get(cache_key) + if cached is not None: + return cached + + derived = False + if node.node_type == 'function': + if node.value in {'bucket', 'group_cartesian_product'}: + derived = True + else: + function_info = supported_functions.get(node.value, {}) + arg_types = function_info.get('arg_types', []) + param_names = function_info.get('param_names', []) + + positional_index = 0 + for child in node.children: + if isinstance(child, dict): + if child.get('type') == 'named': + name = child.get('name') + value = child.get('value') + + expected_type = None + if name in param_names: + param_index = param_names.index(name) + if param_index < len(arg_types): + expected_type = arg_types[param_index] + + if expected_type == 'category': + continue + + if self._is_derived_category(value): + derived = True + break + elif child.get('type') == 'positional': + value = child.get('value') + expected_type = arg_types[positional_index] if positional_index < len(arg_types) else None + + if expected_type != 'category' and self._is_derived_category(value): + derived = True + break + positional_index += 1 + else: + expected_type = arg_types[positional_index] if positional_index < len(arg_types) else None + if expected_type != 'category' and self._is_derived_category(child): + derived = True + break + positional_index += 1 + elif node.node_type in {'unop', 'binop'}: + derived = any( + self._is_derived_category(child) + for child in node.children + if hasattr(child, 'node_type') + ) + + self._derived_category_cache[cache_key] = derived + return derived + + def _validate_add(self, args: List[Any], is_in_group_arg: bool = False) -> List[str]: + """Validate add(x, y, ..., filter=false).""" + errors: List[str] = [] + + if len(args) < 2: + return [f"函数 add 需要至少 2 个参数,但只提供了 {len(args)}"] + + named_filter_nodes: List[ASTNode] = [] + positional_nodes: List[ASTNode] = [] + + for arg in args: + if isinstance(arg, dict) and arg.get('type') == 'named': + name = arg.get('name') + value = arg.get('value') + if name != 'filter': + errors.append(f"函数 add 不存在参数 '{name}'") + continue + if not hasattr(value, 'node_type'): + errors.append("函数 add 的参数 filter 格式错误") + continue + named_filter_nodes.append(value) + elif isinstance(arg, dict) and arg.get('type') == 'positional': + value = arg.get('value') + if hasattr(value, 'node_type'): + positional_nodes.append(value) + else: + errors.append("函数 add 的位置参数格式错误") + elif hasattr(arg, 'node_type'): + positional_nodes.append(arg) + else: + errors.append("函数 add 的参数格式错误") + + if len(named_filter_nodes) > 1: + errors.append("函数 add 的参数 'filter' 只能出现一次") + + positional_filter_node: Optional[ASTNode] = None + if not named_filter_nodes and len(positional_nodes) >= 3: + last = positional_nodes[-1] + if last.node_type == 'boolean' or (last.node_type == 'number' and last.value in {0, 1}): + positional_filter_node = positional_nodes.pop() + + if len(positional_nodes) < 2: + errors.append(f"函数 add 需要至少 2 个输入项(不含filter),但只提供了 {len(positional_nodes)}") + + for idx, node in enumerate(positional_nodes): + errors.extend(self._validate_arg_type(node, 'expression', idx, 'add', is_in_group_arg)) + + if positional_filter_node is not None and named_filter_nodes: + errors.append("函数 add 的 filter 不能同时用位置参数和命名参数传递") + if positional_filter_node is not None: + errors.extend(self._validate_arg_type(positional_filter_node, 'boolean', len(positional_nodes), 'add', is_in_group_arg)) + if named_filter_nodes: + errors.extend(self._validate_arg_type(named_filter_nodes[0], 'boolean', len(positional_nodes), 'add', is_in_group_arg)) + + return errors + + def validate_ast(self, ast: Optional[ASTNode], is_in_group_arg: bool = False) -> List[str]: + """递归验证抽象语法树""" + if not ast: + return ["无法解析表达式"] + + errors = [] + + if ast.node_type == 'function': + is_group_function = ast.value.startswith('group_') + current_in_group_arg = is_in_group_arg or is_group_function + function_errors = self.validate_function(ast, current_in_group_arg) + errors.extend(function_errors) + + for child in ast.children: + if isinstance(child, dict): + if 'value' in child and hasattr(child['value'], 'node_type'): + child_errors = self.validate_ast(child['value'], current_in_group_arg) + errors.extend(child_errors) + elif hasattr(child, 'node_type'): + child_errors = self.validate_ast(child, current_in_group_arg) + errors.extend(child_errors) + elif ast.node_type in ['unop', 'binop']: + for child in ast.children: + if hasattr(child, 'node_type'): + child_errors = self.validate_ast(child, is_in_group_arg) + errors.extend(child_errors) + elif ast.node_type == 'field': + if not self._is_valid_field(ast.value): + errors.append(f"无效的字段名: {ast.value}") + else: + for child in ast.children: + if isinstance(child, dict): + if 'value' in child and hasattr(child['value'], 'node_type'): + child_errors = self.validate_ast(child['value'], is_in_group_arg) + errors.extend(child_errors) + elif hasattr(child, 'node_type'): + child_errors = self.validate_ast(child, is_in_group_arg) + errors.extend(child_errors) + + return errors + + def _process_semicolon_expression(self, expression: str) -> Tuple[bool, str]: + """处理带有分号的表达式,将其转换为不带分号的简化形式""" + + def _top_level_equals_positions(stmt: str) -> List[int]: + positions: List[int] = [] + paren_depth = 0 + bracket_depth = 0 + brace_depth = 0 + in_single_quote = False + in_double_quote = False + escape = False + + for i, ch in enumerate(stmt): + if escape: + escape = False + continue + if ch == '\\': + escape = True + continue + + if in_single_quote: + if ch == "'": + in_single_quote = False + continue + if in_double_quote: + if ch == '"': + in_double_quote = False + continue + + if ch == "'": + in_single_quote = True + continue + if ch == '"': + in_double_quote = True + continue + + if ch == '(': + paren_depth += 1 + continue + if ch == ')': + paren_depth = max(0, paren_depth - 1) + continue + if ch == '[': + bracket_depth += 1 + continue + if ch == ']': + bracket_depth = max(0, bracket_depth - 1) + continue + if ch == '{': + brace_depth += 1 + continue + if ch == '}': + brace_depth = max(0, brace_depth - 1) + continue + + if paren_depth or bracket_depth or brace_depth: + continue + + if ch != '=': + continue + + prev_ch = stmt[i - 1] if i > 0 else '' + next_ch = stmt[i + 1] if i + 1 < len(stmt) else '' + if prev_ch in ['=', '!', '<', '>'] or next_ch == '=': + continue + + positions.append(i) + + return positions + + def _keyword_arg_names(stmt: str): + names = set() + paren_depth = 0 + bracket_depth = 0 + brace_depth = 0 + in_single_quote = False + in_double_quote = False + escape = False + + i = 0 + while i < len(stmt): + ch = stmt[i] + + if escape: + escape = False + i += 1 + continue + if ch == '\\': + escape = True + i += 1 + continue + + if in_single_quote: + if ch == "'": + in_single_quote = False + i += 1 + continue + if in_double_quote: + if ch == '"': + in_double_quote = False + i += 1 + continue + + if ch == "'": + in_single_quote = True + i += 1 + continue + if ch == '"': + in_double_quote = True + i += 1 + continue + + if ch == '(': + paren_depth += 1 + i += 1 + continue + if ch == ')': + paren_depth = max(0, paren_depth - 1) + i += 1 + continue + if ch == '[': + bracket_depth += 1 + i += 1 + continue + if ch == ']': + bracket_depth = max(0, bracket_depth - 1) + i += 1 + continue + if ch == '{': + brace_depth += 1 + i += 1 + continue + if ch == '}': + brace_depth = max(0, brace_depth - 1) + i += 1 + continue + + inside_container = bool(paren_depth or bracket_depth or brace_depth) + + if inside_container and (ch.isalpha() or ch == '_'): + start = i + i += 1 + while i < len(stmt) and (stmt[i].isalnum() or stmt[i] == '_'): + i += 1 + name = stmt[start:i] + + j = i + while j < len(stmt) and stmt[j].isspace(): + j += 1 + + if j < len(stmt) and stmt[j] == '=': + next_ch = stmt[j + 1] if j + 1 < len(stmt) else '' + if next_ch != '=': + names.add(name.lower()) + continue + + i += 1 + + return names + + if expression.strip().endswith(';'): + return False, "表达式不能以分号结尾" + + statements = [stmt.strip() for stmt in expression.split(';') if stmt.strip()] + if not statements: + return False, "表达式不能为空" + + variables = {} + + for i, stmt in enumerate(statements[:-1]): + eq_positions = _top_level_equals_positions(stmt) + if not eq_positions: + return False, f"第{i + 1}个语句必须是赋值语句(使用=符号)" + if len(eq_positions) > 1: + return False, f"第{i + 1}个语句只能包含一个赋值符号(=)" + + real_equals_pos = eq_positions[0] + + var_name = stmt[:real_equals_pos].strip() + var_value = stmt[real_equals_pos + 1:].strip() + + if not re.match(r'^[a-zA-Z_][a-zA-Z0-9_]*$', var_name): + return False, f"第{i + 1}个语句的变量名'{var_name}'无效,只能包含字母、数字和下划线,且不能以数字开头" + + var_name_lower = var_name.lower() + + kw_names = _keyword_arg_names(var_value) + used_vars = re.findall(r'\b[a-zA-Z_][a-zA-Z0-9_]*\b', var_value) + for used_var in used_vars: + used_var_lower = used_var.lower() + if used_var_lower in kw_names: + continue + if used_var_lower not in variables: + if used_var not in supported_functions: + if len(used_var) <= 2: + return False, f"第{i + 1}个语句中使用的变量'{used_var}'未在之前定义" + elif not self._is_valid_field(used_var): + return False, f"第{i + 1}个语句中使用的变量'{used_var}'未在之前定义" + + for existing_var, existing_val in variables.items(): + var_value = re.sub(rf'\b{existing_var}\b', existing_val, var_value) + + variables[var_name_lower] = var_value + + final_stmt = statements[-1] + + if _top_level_equals_positions(final_stmt): + return False, "最后一个语句不能是赋值语句" + + kw_names = _keyword_arg_names(final_stmt) + used_vars = re.findall(r'\b[a-zA-Z_][a-zA-Z0-9_]*\b', final_stmt) + for used_var in used_vars: + used_var_lower = used_var.lower() + if used_var_lower in kw_names: + continue + if used_var_lower not in variables: + if used_var not in supported_functions: + if len(used_var) <= 2: + return False, f"最后一个语句中使用的变量'{used_var}'未在之前定义" + + if self._is_valid_field(used_var) or used_var_lower in valid_categories or used_var_lower in group_fields: + continue + + return False, f"最后一个语句中使用的变量'{used_var}'未在之前定义" + + final_expr = final_stmt + for var_name, var_value in variables.items(): + final_expr = re.sub(rf'\b{var_name}\b', var_value, final_expr) + + return True, final_expr + + def check_expression(self, expression: str) -> Dict[str, Any]: + """检查表达式格式是否正确""" + self.errors = [] + self._unit_cache = {} + self._derived_category_cache = {} + + try: + expression = expression.strip() + if not expression: + return { + 'valid': False, + 'errors': ['表达式不能为空'], + 'tokens': [], + 'ast': None + } + + if ';' in expression: + success, result = self._process_semicolon_expression(expression) + if not success: + return { + 'valid': False, + 'errors': [result], + 'tokens': [], + 'ast': None + } + expression = result + + self.lexer.lineno = 1 + + self.lexer.input(expression) + tokens = [] + for token in self.lexer: + tokens.append(token) + + self.lexer.input(expression) + self.lexer.lineno = 1 + + ast = self.parser.parse(expression, lexer=self.lexer) + + validation_errors = self.validate_ast(ast) + + all_errors = self.errors + validation_errors + + bracket_count = 0 + for char in expression: + if char == '(': + bracket_count += 1 + elif char == ')': + bracket_count -= 1 + if bracket_count < 0: + all_errors.append("括号不匹配: 右括号过多") + break + if bracket_count > 0: + all_errors.append("括号不匹配: 左括号过多") + + return { + 'valid': len(all_errors) == 0, + 'errors': all_errors, + 'tokens': tokens, + 'ast': ast + } + except Exception as e: + return { + 'valid': False, + 'errors': [f"解析错误: {str(e)}"], + 'tokens': [], + 'ast': None + } + + def validate_expressions(self, expressions: List[str]) -> Tuple[List[str], List[Dict]]: + """批量验证表达式""" + valid_expressions = [] + invalid_details = [] + + for expr in expressions: + if not isinstance(expr, str) or not expr.strip(): + invalid_details.append({ + 'expression': expr, + 'error': '空表达式' + }) + continue + + result = self.check_expression(expr.strip()) + if result['valid']: + valid_expressions.append(expr.strip()) + else: + invalid_details.append({ + 'expression': expr, + 'errors': result['errors'] + }) + + return valid_expressions, invalid_details + + +# ==================== 主处理流程 ==================== + +def process(data_sets_list: List[Dict], llm_template: str) -> Dict: + """ + 处理 LLM 生成的模板,生成 Alpha 表达式 + + 参数: + data_sets_list: 数据集字段列表,格式 [{'id': 'field_name'}, ...] + llm_template: LLM 生成的 Markdown 文本 + + 返回: + 包含生成结果的字典 + """ + # 提取 field_ids + field_ids = [item['id'] for item in data_sets_list] + + # 提取 dataset_ids 和 allowed_suffixes + dataset_ids = field_ids + allowed_suffixes = build_allowed_metric_suffixes(field_ids) + dataset_code = detect_dataset_code(dataset_ids) + + print(f" 数据集字段数: {len(dataset_ids)}") + print(f" 提取的后缀数: {len(allowed_suffixes)}") + print(f" 数据集代码: {dataset_code}") + + # Step 1: 提取 template blocks + print("\n🔍 提取 Template Blocks...") + block_pairs = extract_template_blocks(llm_template) + print(f" 提取到 {len(block_pairs)} 个 Concept blocks") + + if not block_pairs: + print("⚠️ 没有找到有效的 Concept blocks") + return { + "success": False, + "error": "没有找到有效的 Concept blocks", + "expressions": [], + "templates": [] + } + + # Step 2: 规范化 templates + print("\n📝 规范化 Templates...") + normalized_pairs = [] + for item in block_pairs: + template = str(item.get("template") or "").strip() + idea_text = str(item.get("idea") or "").strip() + + if not template: + continue + + normalized_t, ok = normalize_template_placeholders( + template, dataset_ids, allowed_suffixes, dataset_code + ) + + # 允许没有 {placeholder} 的模板通过 + # if ok: + normalized_pairs.append({ + "template": normalized_t, + "idea": idea_text, + "original_template": template + }) + print(f" ✓ {normalized_t[:60]}...") + # else: + # print(f" ✗ 跳过: {template[:60]}...") + + print(f" 规范化成功: {len(normalized_pairs)} 个") + + # Step 3: 生成表达式 + print("\n🎯 生成 Alpha 表达式...") + all_expressions = [] + template_results = [] + + for idx, pair in enumerate(normalized_pairs, 1): + template = pair["template"] + expressions = match_single_horizon_auto(field_ids, template) + + # 如果没有生成表达式(没有{placeholder}),直接把模板当作表达式 + if not expressions and template: + expressions = [template] + + if expressions: + result_item = { + "template": template, + "original_template": pair.get("original_template", template), + "idea": pair.get("idea", ""), + "expression_count": len(expressions), + "expressions": expressions + } + template_results.append(result_item) + all_expressions.extend(expressions) + + print(f" Idea {idx}: {len(expressions):4d} 个表达式 - {template[:50]}...") + + print(f"\n 总计生成: {len(all_expressions)} 个表达式") + + # Step 4: 验证表达式 + print("\n🔍 验证表达式...") + validator = ExpressionValidator() + valid_expressions, invalid_details = validator.validate_expressions(all_expressions) + invalid_count = len(invalid_details) + + print(f" 有效: {len(valid_expressions)}") + print(f" 无效: {invalid_count}") + + if invalid_details: + print(f" 无效表达式详情:") + for detail in invalid_details[:5]: + print(f" - {detail['expression'][:50]}...: {detail.get('errors', detail.get('error', '未知错误'))}") + if len(invalid_details) > 5: + print(f" ... 还有 {len(invalid_details) - 5} 个无效表达式") + + # Step 5: 去重 + print("\n🧹 去重...") + unique_expressions = [] + seen = set() + for expr in valid_expressions: + if expr not in seen: + unique_expressions.append(expr) + seen.add(expr) + + print(f" 去重后: {len(unique_expressions)} 个") + + # Step 6: 过滤包含英文逗号的表达式和模板 过滤表达式:只保留包含英文逗号的 + print("\n🧹 过滤包含英文逗号的表达式和模板...") + filtered_expressions = [expr for expr in unique_expressions if ',' in expr] + print(f" 过滤后表达式: {len(filtered_expressions)} 个 (原 {len(unique_expressions)} 个)") + + # 过滤模板:只保留包含英文逗号的模板,且其表达式也要包含英文逗号 + filtered_template_results = [] + for template_item in template_results: + template = template_item.get("template", "") + # 检查模板是否包含英文逗号 + if ',' not in template: + continue + # 过滤表达式:只保留包含英文逗号的 + filtered_exprs = [expr for expr in template_item.get("expressions", []) if ',' in expr] + if filtered_exprs: + filtered_item = template_item.copy() + filtered_item["expressions"] = filtered_exprs + filtered_item["expression_count"] = len(filtered_exprs) + filtered_template_results.append(filtered_item) + + print(f" 过滤后模板: {len(filtered_template_results)} 个 (原 {len(template_results)} 个)") + + print("\n✅ 处理完成!") + + # 打印统计 + print("\n" + "=" * 50) + print("处理统计:") + print("=" * 50) + summary = { + "total_templates": len(block_pairs), + "normalized_templates": len(normalized_pairs), + "total_expressions": len(all_expressions), + "valid_expressions": len(valid_expressions), + "unique_expressions": len(unique_expressions), + "invalid_count": invalid_count + } + for key, value in summary.items(): + print(f" {key}: {value}") + + # 返回结果字典 + return { + "success": True, + "summary": summary, + "templates": filtered_template_results, + "expressions": filtered_expressions, + "invalid_details": invalid_details + } diff --git a/decode_template/llm_received.md b/decode_template/llm_received.md new file mode 100644 index 0000000..606544c --- /dev/null +++ b/decode_template/llm_received.md @@ -0,0 +1,380 @@ +# analyst4 Feature Engineering Analysis Report + +**Dataset**: analyst4 +**Category**: Analyst +**Region**: USA +**Analysis Date**: 2026-03-30 +**Fields Analyzed**: 653 + +--- + +## Executive Summary + +**Primary Question Answered by Dataset**: What do analysts expect for company financials (sales, EPS, cash flow, balance sheet) across quarterly and annual horizons, and how do actual results compare to these expectations? + +**Key Insights from Analysis**: +- The dataset captures the full lifecycle of analyst expectations: guidance ranges, point estimates (consensus), and actual reported numbers. +- For each financial item, multiple summary statistics (mean, median, low, high, standard deviation, count) are provided, enabling rich uncertainty and disagreement measures. +- The inclusion of both quarterly (`qfv4`) and annual (`afv4`) horizons allows for temporal gradient analysis (short‑term vs. long‑term expectations). +- Recommendation data (buy/hold/sell counts, consensus score) adds a separate dimension of market sentiment. + +**Critical Field Relationships Identified**: +- **Actual vs. Expected**: Actual values are paired with pre‑event estimates, allowing surprise calculation (e.g., `actual_eps_value_quarterly` vs. `anl4_qfv4_eps_mean`). +- **Guidance Ranges**: Min and max guidance values define an uncertainty corridor (e.g., `min_sales_guidance_value` vs. `max_sales_guidance_value`). +- **Consensus Disagreement**: The spread between high and low estimates (e.g., `anl4_qfv4_eps_high` – `anl4_qfv4_eps_low`) quantifies analyst divergence. + +**Most Promising Feature Concepts**: +1. **Guidance Uncertainty Spread** – because the width of guidance ranges captures management’s confidence (or uncertainty) about future performance. +2. **Earnings Surprise Momentum** – tracking how recent actual surprises alter subsequent estimate revisions captures slow diffusion of information. +3. **Consensus Disagreement** – high dispersion in analyst estimates often precedes stock price corrections when actuals are released. + +--- + +## Dataset Deep Understanding + +### Dataset Description +The `analyst4` dataset provides analyst forecasts and actuals for US equities. It covers a wide array of financial statement items (sales, EPS, cash flow, balance sheet metrics) for both quarterly and annual horizons. Key components include: +- **Guidance values** (min/max) – management’s forward‑looking ranges. +- **Estimate aggregations** (mean, median, low, high, standard deviation, count) – derived from individual analyst reports. +- **Actual reported values** – historical realizations against which estimates are compared. +- **Recommendation data** – broker ratings and consensus scores. +- **Broker‑level detail** – individual analyst estimates and revisions (available but not required for core features). + +### Field Inventory (Representative Sample) + +| Field ID | Description | Data Type | Update Frequency | Coverage | +|----------|-------------|-----------|------------------|----------| +| `sales_estimate_average_quarterly` | Sales – mean of quarterly estimations | Continuous | Event‑based (estimate updates) | High | +| `actual_sales_value_quarterly` | Sales – actual reported value | Continuous | Event‑based (earnings) | Moderate | +| `min_sales_guidance_value` | Sales – minimum guidance (annual) | Continuous | Event‑based (guidance) | Moderate | +| `max_sales_guidance_value` | Sales – maximum guidance (annual) | Continuous | Event‑based (guidance) | Moderate | +| `earnings_per_share_average` | EPS – mean of estimations (quarterly) | Continuous | Event‑based (estimate updates) | High | +| `actual_eps_value_quarterly` | EPS – actual reported value | Continuous | Event‑based (earnings) | High | +| `anl4_afv4_eps_mean` | EPS – mean of annual estimates | Continuous | Event‑based (estimate updates) | High | +| `anl4_buy` | Number of buy recommendations | Integer | Daily (?) | High | +| `anl4_hold` | Number of hold recommendations | Integer | Daily (?) | High | +| `anl4_sell` | Number of sell recommendations | Integer | Daily (?) | High | +| `anl4_mark` | Recommendation consensus score | Continuous | Daily (?) | High | +| `total_goodwill_reported_value` | Total Goodwill – actual reported | Continuous | Event‑based (earnings) | Moderate | +| `net_debt_actual_value` | Net debt – actual reported | Continuous | Event‑based (earnings) | Moderate | +| `est_eps` | EPS – mean of annual estimates | Continuous | Event‑based | High | +| `anl4_ebitda_mean` | EBITDA – mean of annual estimates | Continuous | Event‑based | Moderate | + +*Note: All estimate and actual fields are event‑based – they are populated only on days when new data becomes available (e.g., estimate revisions, earnings announcements).* + +### Field Deconstruction Analysis + +#### `sales_estimate_average_quarterly` +- **What is being measured?**: The average (consensus) quarterly sales forecast across contributing analysts. +- **How is it measured?**: Arithmetic mean of individual analyst forecasts; updated when new estimates are published. +- **Time dimension**: Point‑in‑time snapshot of consensus at each update. +- **Business context**: Represents the market’s expected top‑line performance for the upcoming quarter. +- **Generation logic**: Aggregated from analyst reports; may be backfilled for days without updates. +- **Reliability considerations**: Susceptible to outliers; the count of estimates provides confidence. + +#### `actual_eps_value_quarterly` +- **What is being measured?**: The actual earnings per share reported by the company for the quarter. +- **How is it measured?**: Direct from financial statements (GAAP or adjusted). +- **Time dimension**: Instantaneous on announcement date. +- **Business context**: The ultimate outcome against which forecasts are judged. +- **Generation logic**: Collected from regulatory filings or press releases. +- **Reliability considerations**: Highly reliable but may be restated later. + +#### `anl4_qfv4_eps_high` +- **What is being measured?**: The highest quarterly EPS estimate among all analysts. +- **How is it measured?**: Maximum of individual analyst forecasts. +- **Time dimension**: Point‑in‑time snapshot. +- **Business context**: Reflects the most optimistic outlook. +- **Generation logic**: Derived from the same set of estimates as the mean. +- **Reliability considerations**: May be driven by a single outlier; use in conjunction with count. + +#### `anl4_buy` +- **What is being measured?**: Number of analysts with a “buy” (or equivalent) rating. +- **How is it measured?**: Count of recommendation records. +- **Time dimension**: Updated when analysts change ratings. +- **Business context**: Proxy for bullish sentiment. +- **Generation logic**: Aggregated from broker reports. +- **Reliability considerations**: Definitions of “buy” may vary across brokers. + +### Field Relationship Mapping + +**The Story This Data Tells**: +The dataset traces the journey of market expectations from management guidance through analyst estimates to actual reported results. It reveals how consensus forms, how uncertainty evolves (via range widths and dispersion), and how actuals trigger revisions. + +**Key Relationships Identified**: +1. **Guidance → Estimates**: Min/max guidance likely anchors the distribution of analyst estimates; the consensus mean tends to fall within the guidance range. +2. **Estimates → Actuals**: The difference between actual reported values and pre‑announcement consensus (surprise) drives subsequent estimate revisions. +3. **Disagreement → Revision**: High dispersion (high‑low spread) often precedes large estimate changes when new information arrives. +4. **Recommendations ↔ Estimates**: Changes in consensus score may correlate with estimate revisions, especially for EPS. + +**Missing Pieces That Would Complete the Picture**: +- Timing of estimate revisions relative to earnings announcement dates (event windows). +- Analyst‑level identity to track individual revision momentum. +- Historical actuals for the same fiscal period to compute multi‑year trends. + +--- + +## Feature Concepts by Question Type + +### Q1: “What is stable?” (Invariance Features) + +**Concept**: Guidance Uncertainty Width +- **Sample Fields Used**: `min_sales_guidance_value`, `max_sales_guidance_value` +- **Definition**: `(max_guidance - min_guidance) / abs(mean_guidance)` +- **Why This Feature**: Narrow guidance indicates high management confidence; wide guidance signals uncertainty or volatile business outlook. +- **Logical Meaning**: Relative size of the “cone of uncertainty” around forward guidance. +- **Is filling nan necessary**: No – guidance fields only have values when guidance is issued. NaN indicates no guidance available. We should not fill because absence itself is informative. +- **Directionality**: High values = more uncertainty; low values = more precision. +- **Boundary Conditions**: May be extreme if mean guidance is near zero; use winsorization or truncation. +- **Implementation Example**: `divide(subtract(max_sales_guidance_value, min_sales_guidance_value), abs(sales_estimate_average_annual))` + +**Concept**: Consensus Stability +- **Sample Fields Used**: `anl4_qfv4_eps_std`, `anl4_qfv4_eps_mean` +- **Definition**: `std / abs(mean)` – coefficient of variation of EPS estimates. +- **Why This Feature**: Low CV indicates high analyst agreement, suggesting the stock is well‑understood and less prone to surprise. +- **Logical Meaning**: Normalized dispersion of analyst opinions. +- **Is filling nan necessary**: The standard deviation may be NaN when fewer than two estimates exist. Use `if_else` with `is_nan` to set a default (e.g., 0). +- **Directionality**: High CV = high disagreement, possibly leading to volatile price reactions. +- **Boundary Conditions**: If mean is near zero, the ratio may explode – use with caution. +- **Implementation Example**: `divide(anl4_qfv4_eps_std, abs(anl4_qfv4_eps_mean))` + +--- + +### Q2: “What is changing?” (Dynamics Features) + +**Concept**: Estimate Revision Momentum +- **Sample Fields Used**: `anl4_qfv4_eps_mean` +- **Definition**: `ts_delta(anl4_qfv4_eps_mean, 1) / abs(ts_delay(anl4_qfv4_eps_mean, 1))` – percentage change in consensus from previous update. +- **Why This Feature**: Captures the speed and direction of consensus adjustments; large positive changes may signal under‑reaction. +- **Logical Meaning**: Relative revision intensity. +- **Is filling nan necessary**: The consensus field may be NaN on non‑update days. Use `ts_backfill` to carry forward the last value before applying `ts_delta`. +- **Directionality**: Positive = upward revision (bullish); negative = downward revision (bearish). +- **Boundary Conditions**: Zero denominator can occur if previous value is zero; use `if_else` to handle. +- **Implementation Example**: `divide(ts_delta(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1), abs(ts_delay(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1), 1)))` + +**Concept**: Guidance Range Narrowing +- **Sample Fields Used**: `min_sales_guidance_value`, `max_sales_guidance_value` +- **Definition**: `ts_delta( max_guidance - min_guidance, 1 )` – change in absolute guidance width over time. +- **Why This Feature**: Narrowing range indicates management’s increasing confidence as the fiscal period approaches. +- **Logical Meaning**: Temporal tightening of the forecast corridor. +- **Is filling nan necessary**: Guidance values are event‑based; backfill to get last known range before measuring change. +- **Directionality**: Negative change = increased precision. +- **Boundary Conditions**: May be zero if no update. +- **Implementation Example**: `ts_delta( subtract(ts_backfill(max_sales_guidance_value, lookback=180, k=1), ts_backfill(min_sales_guidance_value, lookback=180, k=1)), 1 )` + +--- + +### Q3: “What is anomalous?” (Deviation Features) + +**Concept**: Earnings Surprise +- **Sample Fields Used**: `actual_eps_value_quarterly`, `anl4_qfv4_eps_mean` +- **Definition**: `(actual - consensus) / abs(consensus)` – standardized surprise. +- **Why This Feature**: Positive surprises often trigger immediate price jumps; the magnitude determines subsequent drift. +- **Logical Meaning**: Unexpected earnings relative to market expectation. +- **Is filling nan necessary**: The actual field is NaN most days. The feature is only meaningful on the announcement date. No filling needed. +- **Directionality**: Positive = beat; negative = miss. +- **Boundary Conditions**: Consensus may be zero; use `if_else` to avoid division by zero. +- **Implementation Example**: `divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(anl4_qfv4_eps_mean) )` + +**Concept**: Analyst Over‑optimism +- **Sample Fields Used**: `anl4_qfv4_eps_high`, `anl4_qfv4_eps_mean` +- **Definition**: `(high - mean) / abs(mean)` – relative gap between the most optimistic estimate and consensus. +- **Why This Feature**: A persistently large gap may indicate a subset of overly optimistic analysts; their future revisions can drive price. +- **Logical Meaning**: Skew in analyst expectations toward the upside. +- **Is filling nan necessary**: Backfill high and mean to last known values. +- **Directionality**: High values = optimism skew; low values = consensus closer to the top. +- **Boundary Conditions**: May be undefined if mean is zero. +- **Implementation Example**: `divide( subtract(ts_backfill(anl4_qfv4_eps_high, lookback=90, k=1), ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)), abs(ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1)) )` + +--- + +### Q4: “What is combined?” (Interaction Features) + +**Concept**: Valuation‑Adjusted Surprise +- **Sample Fields Used**: `actual_eps_value_quarterly`, `anl4_qfv4_eps_mean`, `book_value_per_share_reported_value` +- **Definition**: `(actual - consensus) / book_value_per_share` – surprise scaled by balance sheet anchor. +- **Why This Feature**: Same surprise magnitude may have different impact depending on firm’s asset base. +- **Logical Meaning**: Earnings surprise relative to the book value – a more fundamental scaling. +- **Is filling nan necessary**: Book value is reported quarterly (event field). Backfill to latest available. +- **Directionality**: Positive = beat relative to asset size. +- **Boundary Conditions**: Book value may be negative; use absolute value or treat as special. +- **Implementation Example**: `divide( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean), abs(ts_backfill(book_value_per_share_reported_value, lookback=180, k=1)) )` + +**Concept**: Cash Flow Quality Adjustment +- **Sample Fields Used**: `actual_eps_value_quarterly`, `actual_cashflow_per_share_value_quarterly` +- **Definition**: `(eps - cashflow) / abs(eps)` – difference between earnings and cash flow per share. +- **Why This Feature**: Large divergence may signal accounting discretion or unsustainable earnings. +- **Logical Meaning**: Accrual component of earnings. +- **Is filling nan necessary**: Both fields are event‑based; combine only when both have values (e.g., on earnings day). +- **Directionality**: Negative = cash flow stronger than earnings (higher quality). +- **Boundary Conditions**: EPS may be zero; use absolute denominator. +- **Implementation Example**: `divide( subtract(actual_eps_value_quarterly, actual_cashflow_per_share_value_quarterly), abs(actual_eps_value_quarterly) )` + +--- + +### Q5: “What is structural?” (Composition Features) + +**Concept**: Tangible Asset Intensity +- **Sample Fields Used**: `total_goodwill_reported_value`, `total_assets_reported_value` +- **Definition**: `goodwill / total_assets` – proportion of assets that is goodwill (intangible). +- **Why This Feature**: High ratio indicates reliance on past acquisitions; such firms may be more volatile post‑earnings. +- **Logical Meaning**: Degree of asset “intangibility”. +- **Is filling nan necessary**: Balance sheet items are reported quarterly; backfill to last known. +- **Directionality**: High = more goodwill‑heavy, potentially riskier. +- **Boundary Conditions**: Total assets must be non‑zero. +- **Implementation Example**: `divide( ts_backfill(total_goodwill_reported_value, lookback=180, k=1), ts_backfill(total_assets_reported_value, lookback=180, k=1) )` + +**Concept**: Net Debt to Equity +- **Sample Fields Used**: `net_debt_actual_value`, `shareholders_equity_actual_value` +- **Definition**: `net_debt / equity` – leverage measure. +- **Why This Feature**: High leverage amplifies sensitivity to earnings surprises and interest rate changes. +- **Logical Meaning**: Financial risk exposure. +- **Is filling nan necessary**: Backfill both to latest reported. +- **Directionality**: High = more leveraged. +- **Boundary Conditions**: Equity could be negative; use absolute or treat as special. +- **Implementation Example**: `divide( ts_backfill(net_debt_actual_value, lookback=180, k=1), ts_backfill(shareholders_equity_actual_value, lookback=180, k=1) )` + +--- + +### Q6: “What is cumulative?” (Accumulation Features) + +**Concept**: Cumulative Estimate Revisions Over Quarter +- **Sample Fields Used**: `anl4_qfv4_eps_mean` +- **Definition**: `ts_sum( ts_delta(backfilled_eps, 1), 90 )` – sum of daily consensus changes over the last 90 days. +- **Why This Feature**: Captures net revision pressure as the earnings date approaches. +- **Logical Meaning**: Net momentum of analyst expectations over a quarter. +- **Is filling nan necessary**: Backfill consensus before calculating deltas. +- **Directionality**: Positive = net upward revisions. +- **Boundary Conditions**: Use `ts_delta` with backfilled series to avoid noise from non‑update days. +- **Implementation Example**: `ts_sum( ts_delta( ts_backfill(anl4_qfv4_eps_mean, lookback=120, k=1), 1 ), 90 )` + +**Concept**: Rolling Guidance Width Accumulation +- **Sample Fields Used**: `min_sales_guidance_value`, `max_sales_guidance_value` +- **Definition**: `ts_sum( max_guidance - min_guidance, 180 )` – total uncertainty “exposure” over past 180 days. +- **Why This Feature**: Repeated wide guidance may indicate chronic uncertainty. +- **Logical Meaning**: Integrated management ambiguity. +- **Is filling nan necessary**: Backfill guidance ranges before summation. +- **Directionality**: High = persistently uncertain outlook. +- **Boundary Conditions**: Sum may become very large; consider normalization by number of non‑NaN days. +- **Implementation Example**: `ts_sum( subtract( ts_backfill(max_sales_guidance_value, lookback=200, k=1), ts_backfill(min_sales_guidance_value, lookback=200, k=1) ), 180 )` + +--- + +### Q7: “What is relative?” (Comparison Features) + +**Concept**: Sector‑Relative Disagreement +- **Sample Fields Used**: `anl4_qfv4_eps_std`, `anl4_qfv4_eps_mean`, `group` (e.g., industry) +- **Definition**: `group_zscore( anl4_qfv4_eps_std / abs(anl4_qfv4_eps_mean), industry )` – how analyst disagreement deviates from industry norm. +- **Why This Feature**: Abnormal disagreement may indicate stock‑specific uncertainty. +- **Logical Meaning**: Relative uncertainty vs. peers. +- **Is filling nan necessary**: Backfill standard deviation and mean; apply group_zscore only when group is defined. +- **Directionality**: Positive = more disagreement than industry average. +- **Boundary Conditions**: Group must be available; use `group_mean` to compute industry average if needed. +- **Implementation Example**: `group_zscore( divide( ts_backfill(anl4_qfv4_eps_std, lookback=90, k=1), abs( ts_backfill(anl4_qfv4_eps_mean, lookback=90, k=1) ) ), group )` + +**Concept**: Consensus Score Deviation from Recommendation Counts +- **Sample Fields Used**: `anl4_mark`, `anl4_buy`, `anl4_total_rec` +- **Definition**: `anl4_mark - (anl4_buy / anl4_total_rec)` – residual of consensus score relative to simple buy ratio. +- **Why This Feature**: Consensus scores often weight ratings non‑linearly; deviation captures nuanced sentiment. +- **Logical Meaning**: Unexplained sentiment (e.g., strong “sell” recommendations dragging down score). +- **Is filling nan necessary**: Recommendation fields are daily (continuous). Use directly. +- **Directionality**: Positive = score higher than buy ratio suggests. +- **Boundary Conditions**: Avoid division by zero if total_rec = 0. +- **Implementation Example**: `subtract( anl4_mark, divide( anl4_buy, anl4_total_rec ) )` + +--- + +### Q8: “What is essential?” (Essence Features) + +**Concept**: Surprise‑Adjusted Revision Response +- **Sample Fields Used**: `actual_eps_value_quarterly`, `anl4_qfv4_eps_mean`, `anl4_qfv4_eps_mean` (future) +- **Definition**: `( future_consensus - pre_actual_consensus ) / abs( surprise )` – the revision magnitude following a surprise. +- **Why This Feature**: Measures how quickly and strongly analysts incorporate new information. +- **Logical Meaning**: Information diffusion speed. +- **Is filling nan necessary**: This feature requires aligning the pre‑actual consensus and the consensus after the earnings announcement (e.g., 5 days later). Use `ts_delay` to capture post‑actual consensus. +- **Directionality**: Large response to small surprise indicates over‑reaction. +- **Boundary Conditions**: Surprise may be zero; use conditional. +- **Implementation Example**: `divide( subtract( ts_delay( anl4_qfv4_eps_mean, -5 ), anl4_qfv4_eps_mean ), abs( subtract(actual_eps_value_quarterly, anl4_qfv4_eps_mean) ) )` + *Note: Negative delay is not allowed; implement as `ts_delay( anl4_qfv4_eps_mean, 5 )` after aligning dates.* + +**Concept**: Fundamental Persistence Score +- **Sample Fields Used**: `est_eps`, `est_cashflow_ps`, `est_ebitda` +- **Definition**: `ts_corr( est_eps, est_cashflow_ps, 12 )` – rolling correlation between annual EPS and cash flow estimates. +- **Why This Feature**: High correlation suggests earnings are driven by cash flow (higher quality); low correlation may indicate accounting distortions. +- **Logical Meaning**: Earnings quality persistence. +- **Is filling nan necessary**: Estimate fields are event‑based; backfill to daily before correlation. +- **Directionality**: High = stable, high‑quality earnings. +- **Boundary Conditions**: Need at least two non‑NaN points for correlation. +- **Implementation Example**: `ts_corr( ts_backfill(est_eps, lookback=180, k=1), ts_backfill(est_cashflow_ps, lookback=180, k=1), 12 )` + +--- + +## Implementation Considerations + +### Data Quality Notes +- **Coverage**: Estimate fields have high coverage for large‑cap stocks, but may be sparse for smaller names. Use `anl4_qfv4_eps_number` to gauge reliability. +- **Timeliness**: Actuals and guidance are updated with a delay of 1 day (delay=1). Estimate revisions may appear with the same delay. +- **Accuracy**: Consensus aggregates are robust, but individual broker‑level fields are more volatile and may contain errors. +- **Potential Biases**: Analysts tend to be overly optimistic; the “optimism gap” feature can help neutralize this bias. + +### Computational Complexity +- **Lightweight features**: Simple ratios (e.g., guidance width, buy ratio) – minimal computation. +- **Medium complexity**: Rolling changes, backfill operations – moderate cost. +- **Heavy computation**: `ts_corr` over backfilled series, group operations across many stocks – consider caching backfilled values. + +### Recommended Prioritization + +**Tier 1 (Immediate Implementation)**: +1. **Earnings Surprise** – high predictive power for post‑earnings drift. +2. **Guidance Uncertainty Width** – captures management confidence and correlates with future volatility. +3. **Consensus Disagreement (CV)** – standard measure of information divergence. + +**Tier 2 (Secondary Priority)**: +1. **Estimate Revision Momentum** – dynamic signal that often precedes price moves. +2. **Sector‑Relative Disagreement** – improves cross‑sectional comparison by removing industry effects. +3. **Cash Flow Quality Adjustment** – adds fundamental quality dimension. + +**Tier 3 (Requires Further Validation)**: +1. **Surprise‑Adjusted Revision Response** – needs careful event‑window alignment; may be computationally intensive. +2. **Fundamental Persistence Score** – requires sufficient history; may be noisy for stocks with short estimate history. + +--- + +## Critical Questions for Further Exploration + +### Unanswered Questions: +1. How does the dataset treat estimate revisions that occur after the fiscal period end but before the earnings announcement? (Pre‑announcement windows) +2. Are there adjustments for stock splits or other corporate actions that affect per‑share metrics? +3. What is the exact mapping between quarterly (`qfv4`) and annual (`afv4`) fields – are they independent or do quarterly estimates feed into annual? + +### Recommended Additional Data: +- Daily price data to directly test feature predictive power. +- Macroeconomic variables (e.g., sector‑level growth) to contextualize guidance widths. +- Market microstructure data (volume, turnover) to measure attention around earnings events. + +### Assumptions to Challenge: +- Analysts update estimates daily – in reality, many estimates remain unchanged for weeks; backfilling may smooth too aggressively. +- “Mean” consensus is the best representation of market expectation; median might be more robust to outliers. +- Guidance ranges are uniformly distributed – in practice, ranges may be skewed (e.g., management aiming low). + +--- + +## Methodology Notes + +**Analysis Approach**: This report was generated by: +1. Deep field deconstruction to understand data essence – categorizing fields by item type, frequency, and event nature. +2. Question‑driven feature generation using 8 fundamental questions (stability, dynamics, anomalies, interactions, structure, accumulation, comparison, essence). +3. Logical validation of each feature concept – ensuring each answers a specific question and has clear economic interpretation. +4. Transparent documentation of reasoning, including data quality notes and boundary conditions. + +**Design Principles**: +- Focus on logical meaning over conventional patterns – features are grounded in information diffusion and fundamental analysis. +- Every feature must answer a specific question (e.g., “What is changing?” → revision momentum). +- Clear documentation of “why” for each suggestion, linking to the dataset’s unique strengths (guidance ranges, consensus statistics, actuals). +- Emphasis on data understanding over prediction – features are designed to reveal underlying dynamics, not merely maximize backtest performance. + +--- + +*Report generated: 2026-03-30* +*Analysis depth: Comprehensive field deconstruction + 8‑question framework* +*Next steps: Implement Tier 1 features, validate assumptions, gather additional data as needed* \ No newline at end of file diff --git a/decode_template/main.py b/decode_template/main.py new file mode 100644 index 0000000..145a1df --- /dev/null +++ b/decode_template/main.py @@ -0,0 +1,144 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +快速验证 LLM 解码模板功能 + +使用方法: + 1. 将 llm_received.md 和 prompt.md 放在当前目录 + 2. 运行: python decode_template.py + +输出: + 解码后的模板和表达式内容 +""" + +import sys +import json +import re +from pathlib import Path + +import decode_template + + +def extract_fields_from_prompt(prompt_file: Path) -> list: + """ + 从 prompt.md 文件中提取 fields 字段列表 + """ + content = prompt_file.read_text(encoding='utf-8') + + # 查找 "fields": [...] 的部分 + # 使用正则表达式匹配 fields 数组 + pattern = r'"fields":\s*(\[.*?\])\s*\n\s*\}' + match = re.search(pattern, content, re.DOTALL) + + if not match: + # 尝试另一种格式:直接查找 fields 数组 + pattern = r'"fields":\s*(\[.*?\])\s*\n\s*}' + match = re.search(pattern, content, re.DOTALL) + + if not match: + raise ValueError("无法在 prompt.md 中找到 fields 字段") + + fields_json = match.group(1) + + # 处理可能的 Python 字典格式(单引号) + # 将单引号替换为双引号,但要注意已经包含的字符串 + try: + fields = json.loads(fields_json) + except json.JSONDecodeError: + # 尝试使用 ast.literal_eval 解析 Python 字面量 + import ast + fields = ast.literal_eval(fields_json) + + # 转换为 decode_template 需要的格式 + data_sets_list = [{'id': field['id']} for field in fields] + + return data_sets_list + + +def main(): + # 检查文件是否存在 + llm_file = Path('llm_received.md') + prompt_file = Path('prompt.md') + + if not llm_file.exists(): + print(f"错误: 找不到文件 {llm_file.absolute()}") + print("请确保 llm_received.md 文件存在于当前目录") + sys.exit(1) + + if not prompt_file.exists(): + print(f"错误: 找不到文件 {prompt_file.absolute()}") + print("请确保 prompt.md 文件存在于当前目录") + sys.exit(1) + + # 读取 llm_received.md 文件 + llm_template = llm_file.read_text(encoding='utf-8') + print(f"✅ 成功读取 {llm_file.absolute()}") + print(f" 文件大小: {len(llm_template)} 字符") + print("-" * 60) + + # 从 prompt.md 提取 fields + try: + data_sets_list = extract_fields_from_prompt(prompt_file) + print(f"\n✅ 成功从 {prompt_file.absolute()} 提取字段") + print(f" 字段数量: {len(data_sets_list)}") + except Exception as e: + print(f"\n❌ 提取字段失败: {e}") + exit(1) + + print("\n📊 数据集字段 (前20个):") + for item in data_sets_list[:20]: + print(f" - {item['id']}") + if len(data_sets_list) > 20: + print(f" ... 还有 {len(data_sets_list) - 20} 个字段") + print("-" * 60) + + # 调用解码函数 + print("\n🔍 开始解码模板...") + print("=" * 60) + + result = decode_template.process(data_sets_list, llm_template) + + print("\n" + "=" * 60) + print("📋 解码结果:") + print("=" * 60) + + if result['success']: + print(f"\n✅ 解码成功!") + print(f"\n📊 统计信息:") + for key, value in result.get('summary', {}).items(): + print(f" {key}: {value}") + + print(f"\n📝 生成的模板 ({len(result.get('templates', []))} 个):") + for idx, template_item in enumerate(result.get('templates', []), 1): + print(f"\n [{idx}] 模板: {template_item.get('template', '')}") + print(f" 原始模板: {template_item.get('original_template', '')}") + print(f" 表达式数量: {template_item.get('expression_count', 0)}") + idea = template_item.get('idea', '') + print(f" Idea: {idea[:100]}..." if len( + idea) > 100 else f" Idea: {idea}") + print(f" 表达式示例:") + for expr_idx, expr in enumerate(template_item.get('expressions', [])[:3], 1): + print(f" - {expr}") + if len(template_item.get('expressions', [])) > 3: + print( + f" ... 还有 {len(template_item.get('expressions', [])) - 3} 个表达式") + + print(f"\n🎯 最终表达式列表 ({len(result.get('expressions', []))} 个):") + for idx, expr in enumerate(result.get('expressions', [])[:20], 1): + print(f" {idx}. {expr}") + if len(result.get('expressions', [])) > 20: + print(f" ... 还有 {len(result.get('expressions', [])) - 20} 个表达式") + + # 保存结果到文件 + output_file = Path('decode_result.json') + with open(output_file, 'w', encoding='utf-8') as f: + json.dump(result, f, ensure_ascii=False, indent=2) + print(f"\n💾 完整结果已保存到: {output_file.absolute()}") + + else: + print(f"\n❌ 解码失败!") + print(f"错误信息: {result.get('error', '未知错误')}") + + +if __name__ == '__main__': + main() diff --git a/decode_template/parsetab.py b/decode_template/parsetab.py new file mode 100644 index 0000000..b427356 --- /dev/null +++ b/decode_template/parsetab.py @@ -0,0 +1,60 @@ + +# parsetab.py +# This file is automatically generated. Do not edit. +# pylint: disable=W,C,R +_tabversion = '3.10' + +_lr_method = 'LALR' + +_lr_signature = 'ASSIGN BOOLEAN CATEGORY COMMA DIVIDE EQUAL FIELD FUNCTION GREATER GREATEREQUAL IDENTIFIER LESS LESSEQUAL LPAREN MINUS NOTEQUAL NUMBER PLUS RPAREN STRING TIMESexpression : comparison\n | expression EQUAL comparison\n | expression NOTEQUAL comparison\n | expression GREATER comparison\n | expression LESS comparison\n | expression GREATEREQUAL comparison\n | expression LESSEQUAL comparisoncomparison : term\n | comparison PLUS term\n | comparison MINUS termterm : factor\n | term TIMES factor\n | term DIVIDE factorfactor : NUMBER\n | STRING\n | FIELD\n | CATEGORY\n | IDENTIFIER\n | BOOLEAN\n | MINUS factor\n | LPAREN expression RPAREN\n | function_callfunction_call : FUNCTION LPAREN args RPARENargs : arg_list\n | emptyarg_list : arg\n | arg_list COMMA argarg : expression\n | IDENTIFIER ASSIGN expressionempty :' + +_lr_action_items = {'NUMBER':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,]),'STRING':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,]),'FIELD':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,]),'CATEGORY':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,]),'IDENTIFIER':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[10,10,10,10,10,10,10,10,10,10,10,10,10,44,44,10,]),'BOOLEAN':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,]),'MINUS':([0,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,44,45,46,47,],[4,22,-8,4,-11,-14,-15,-16,-17,-18,-19,4,-22,4,4,4,4,4,4,4,4,4,4,-20,4,22,22,22,22,22,22,-9,-10,-12,-13,-21,-18,-23,4,4,]),'LPAREN':([0,4,12,14,15,16,17,18,19,20,21,22,23,24,27,46,47,],[12,12,12,27,12,12,12,12,12,12,12,12,12,12,12,12,12,]),'FUNCTION':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,]),'$end':([1,2,3,5,6,7,8,9,10,11,13,25,28,29,30,31,32,33,34,35,36,37,38,45,],[0,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,-23,]),'EQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[15,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,15,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,15,-18,-23,15,]),'NOTEQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[16,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,16,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,16,-18,-23,16,]),'GREATER':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[17,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,17,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,17,-18,-23,17,]),'LESS':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[18,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,18,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,18,-18,-23,18,]),'GREATEREQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[19,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,19,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,19,-18,-23,19,]),'LESSEQUAL':([1,2,3,5,6,7,8,9,10,11,13,25,26,28,29,30,31,32,33,34,35,36,37,38,43,44,45,49,],[20,-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,20,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,20,-18,-23,20,]),'RPAREN':([2,3,5,6,7,8,9,10,11,13,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,48,49,],[-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,38,-30,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,45,-24,-25,-26,-28,-18,-23,-27,-29,]),'COMMA':([2,3,5,6,7,8,9,10,11,13,25,28,29,30,31,32,33,34,35,36,37,38,40,42,43,44,45,48,49,],[-1,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,-2,-3,-4,-5,-6,-7,-9,-10,-12,-13,-21,46,-26,-28,-18,-23,-27,-29,]),'PLUS':([2,3,5,6,7,8,9,10,11,13,25,28,29,30,31,32,33,34,35,36,37,38,44,45,],[21,-8,-11,-14,-15,-16,-17,-18,-19,-22,-20,21,21,21,21,21,21,-9,-10,-12,-13,-21,-18,-23,]),'TIMES':([3,5,6,7,8,9,10,11,13,25,34,35,36,37,38,44,45,],[23,-11,-14,-15,-16,-17,-18,-19,-22,-20,23,23,-12,-13,-21,-18,-23,]),'DIVIDE':([3,5,6,7,8,9,10,11,13,25,34,35,36,37,38,44,45,],[24,-11,-14,-15,-16,-17,-18,-19,-22,-20,24,24,-12,-13,-21,-18,-23,]),'ASSIGN':([44,],[47,]),} + +_lr_action = {} +for _k, _v in _lr_action_items.items(): + for _x,_y in zip(_v[0],_v[1]): + if not _x in _lr_action: _lr_action[_x] = {} + _lr_action[_x][_k] = _y +del _lr_action_items + +_lr_goto_items = {'expression':([0,12,27,46,47,],[1,26,43,43,49,]),'comparison':([0,12,15,16,17,18,19,20,27,46,47,],[2,2,28,29,30,31,32,33,2,2,2,]),'term':([0,12,15,16,17,18,19,20,21,22,27,46,47,],[3,3,3,3,3,3,3,3,34,35,3,3,3,]),'factor':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[5,25,5,5,5,5,5,5,5,5,5,36,37,5,5,5,]),'function_call':([0,4,12,15,16,17,18,19,20,21,22,23,24,27,46,47,],[13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,]),'args':([27,],[39,]),'arg_list':([27,],[40,]),'empty':([27,],[41,]),'arg':([27,46,],[42,48,]),} + +_lr_goto = {} +for _k, _v in _lr_goto_items.items(): + for _x, _y in zip(_v[0], _v[1]): + if not _x in _lr_goto: _lr_goto[_x] = {} + _lr_goto[_x][_k] = _y +del _lr_goto_items +_lr_productions = [ + ("S' -> expression","S'",1,None,None,None), + ('expression -> comparison','expression',1,'p_expression','decode_template.py',682), + ('expression -> expression EQUAL comparison','expression',3,'p_expression','decode_template.py',683), + ('expression -> expression NOTEQUAL comparison','expression',3,'p_expression','decode_template.py',684), + ('expression -> expression GREATER comparison','expression',3,'p_expression','decode_template.py',685), + ('expression -> expression LESS comparison','expression',3,'p_expression','decode_template.py',686), + ('expression -> expression GREATEREQUAL comparison','expression',3,'p_expression','decode_template.py',687), + ('expression -> expression LESSEQUAL comparison','expression',3,'p_expression','decode_template.py',688), + ('comparison -> term','comparison',1,'p_comparison','decode_template.py',695), + ('comparison -> comparison PLUS term','comparison',3,'p_comparison','decode_template.py',696), + ('comparison -> comparison MINUS term','comparison',3,'p_comparison','decode_template.py',697), + ('term -> factor','term',1,'p_term','decode_template.py',704), + ('term -> term TIMES factor','term',3,'p_term','decode_template.py',705), + ('term -> term DIVIDE factor','term',3,'p_term','decode_template.py',706), + ('factor -> NUMBER','factor',1,'p_factor','decode_template.py',713), + ('factor -> STRING','factor',1,'p_factor','decode_template.py',714), + ('factor -> FIELD','factor',1,'p_factor','decode_template.py',715), + ('factor -> CATEGORY','factor',1,'p_factor','decode_template.py',716), + ('factor -> IDENTIFIER','factor',1,'p_factor','decode_template.py',717), + ('factor -> BOOLEAN','factor',1,'p_factor','decode_template.py',718), + ('factor -> MINUS factor','factor',2,'p_factor','decode_template.py',719), + ('factor -> LPAREN expression RPAREN','factor',3,'p_factor','decode_template.py',720), + ('factor -> function_call','factor',1,'p_factor','decode_template.py',721), + ('function_call -> FUNCTION LPAREN args RPAREN','function_call',4,'p_function_call','decode_template.py',745), + ('args -> arg_list','args',1,'p_args','decode_template.py',749), + ('args -> empty','args',1,'p_args','decode_template.py',750), + ('arg_list -> arg','arg_list',1,'p_arg_list','decode_template.py',757), + ('arg_list -> arg_list COMMA arg','arg_list',3,'p_arg_list','decode_template.py',758), + ('arg -> expression','arg',1,'p_arg','decode_template.py',765), + ('arg -> IDENTIFIER ASSIGN expression','arg',3,'p_arg','decode_template.py',766), + ('empty -> ','empty',0,'p_empty','decode_template.py',773), +] diff --git a/decode_template/prompt.md b/decode_template/prompt.md new file mode 100644 index 0000000..4d7fa55 --- /dev/null +++ b/decode_template/prompt.md @@ -0,0 +1,608 @@ +# System Prompt + +You are executing two skills in sequence: +1) brain-data-feature-engineering +2) brain-feature-implementation +The following SKILL.md documents are authoritative; follow them exactly. + +--- SKILL.md (brain-data-feature-engineering) --- +--- +brain-data-feature-engineering methodology +--- + +# BRAIN Data Feature Engineering Workflow + +**Purpose**: Automatically transform BRAIN dataset fields into deep, meaningful feature engineering ideas. + +## Input Requirements + +### Required Parameters: +- **data_category**: Dataset category (e.g., "fundamental", "analyst", "news", "model") +- **delay**: Data delay setting (0 or 1) +- **region**: Market region (e.g., "USA", "EUR", "ASI") + +### Optional Parameters: +- **universe**: Trading universe (default: "TOP3000") +- **dataset_id**: Specific dataset ID (if known, skips discovery phase) + +## Workflow Overview + +### Step 2: Field Extraction and Deconstruction +- **Deconstruct each field's meaning**: + * What is being measured? (the entity/concept) + * How is it measured? (collection/calculation method) + * Time dimension? (instantaneous, cumulative, rate of change) + * Business context? (why does this field exist?) + * Generation logic? (reliability considerations) +- **Build field profiles**: Structured understanding of each field's essence + +### Step 3: Reasoning and Analysis +**Performs deep analysis based on collected information:** + +#### A. Field Relationship Mapping +- Analyze logical connections between fields +- Identify: independent fields, related fields, complementary fields +- Map the "story" the dataset tells +- **Key question**: What relationships are implied by these fields? + +#### B. Limited Attention Information Diffusion Framework (Internal Process) + +The skill asks itself these questions and generates feature concepts: + +1. **"What captures attention?"** → Attention proxies + - Extreme return frequency + - Volume spike intensity + +2. **"What is overlooked?"** → Information neglect + - Concurrent announcement crowding + - Complex disclosure footnotes + +3. **"What diffuses slowly?"** → Gradual learning + - Analyst coverage gaps + - Institutional holding changes + +4. **"What drives demand?"** → Attention pressure + - Retail order flow surges + - Search volume spikes + +5. **"What corrects eventually?"** → Mean reversion + - Post-attention reversal speed + - Long-horizon convergence + +6. **"What competes for focus?"** → Attention rivalry + - Cross-asset news conflicts + - Market-wide event clustering + +7. **"What is relatively ignored?"** → Cross-sectional gaps + - Industry attention deviation + - Historical percentile ranking + +8. **"What anchors true value?"** → Fundamental baseline + - Cash flow persistence + - Earnings quality adjustment + +#### C. Feature Concept Generation +For each relevant question-field combination: +- Formulate feature concept that answers the question +- Define the concept clearly +- Identify the logical meaning +- Consider directionality (what high/low values mean) +- Identify boundary conditions +- Note potential issues/limitations + +### Step 4: Feature Documentation +**For each generated feature concept, document:** +- **Concept Name**: Clear, descriptive name +- **Definition**: One-sentence definition +- **Logical Meaning**: What phenomenon/concept does it represent? +- **Why It's Meaningful**: Why does this feature make sense? +- **Directionality**: Interpretation of high vs. low values +- **Boundary Conditions**: What extremes indicate +- **Data Requirements**: What fields are used and any constraints +- **Potential Issues**: Known limitations or concerns + +### Step 5: Output Generation +**Generate structured markdown report including:** + +0. **Output the report markdown format** in the following format: + + # {dataset_name} Feature Engineering Analysis Report + + **Dataset**: {dataset_id} + **Category**: {category} + **Region**: {region} + **Analysis Date**: {analysis_date} + **Fields Analyzed**: {field_count} + + --- + + ## Executive Summary + + **Primary Question Answered by Dataset**: What does this dataset fundamentally measure? + + **Key Insights from Analysis**: + - {insight_1} + - {insight_2} + - {insight_3} + + **Critical Field Relationships Identified**: + - {relationship_1} + - {relationship_2} + + **Most Promising Feature Concepts**: + 1. {top_feature_1} - because {reason_1} + 2. {top_feature_2} - because {reason_2} + 3. {top_feature_3} - because {reason_3} + + --- + + ## Dataset Deep Understanding + + ### Dataset Description + {dataset_description} + + ### Field Inventory + | Field ID | Description | Data Type | Update Frequency | Coverage | + |----------|-------------|-----------|------------------|----------| + | {field_1_id} | {field_1_desc} | {type_1} | {freq_1} | {coverage_1}% | + | {field_2_id} | {field_2_desc} | {type_2} | {freq_2} | {coverage_2}% | + | {field_3_id} | {field_3_desc} | {type_3} | {freq_3} | {coverage_3}% | + + *(Additional fields as needed)* + + ### Field Deconstruction Analysis + + #### {field_1_id}: {field_1_name} + - **What is being measured?**: {measurement_object_1} + - **How is it measured?**: {measurement_method_1} + - **Time dimension**: {time_dimension_1} + - **Business context**: {business_context_1} + - **Generation logic**: {generation_logic_1} + - **Reliability considerations**: {reliability_1} + + #### {field_2_id}: {field_2_name} + - **What is being measured?**: {measurement_object_2} + - **How is it measured?**: {measurement_method_2} + - **Time dimension**: {time_dimension_2} + - **Business context**: {business_context_2} + - **Generation logic**: {generation_logic_2} + - **Reliability considerations**: {reliability_2} + + *(Additional fields as needed)* + + ### Field Relationship Mapping + + **The Story This Data Tells**: + {story_description} + + **Key Relationships Identified**: + 1. {relationship_1_desc} + 2. {relationship_2_desc} + 3. {relationship_3_desc} + + **Missing Pieces That Would Complete the Picture**: + - {missing_1} + - {missing_2} + + --- + + ## Feature Concepts by Question Type + + + ### Q1: "What is stable?" (Invariance Features) + + **Concept**: {stability_feature_1_name} + - **Sample Fields Used**: fields_used_1 + - **Definition**: {definition_1} + - **Why This Feature**: {why_1} + - **Logical Meaning**: {logical_meaning_1} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. + - **Directionality**: {directionality_1} + - **Boundary Conditions**: {boundaries_1} + - **Implementation Example**: `{implementation_1}` + + **Concept**: {stability_feature_2_name} + - **Sample Fields Used**: fields_used_2 + - **Definition**: {definition_2} + - **Why This Feature**: {why_2} + - **Logical Meaning**: {logical_meaning_2} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_2} + - **Boundary Conditions**: {boundaries_2} + - **Implementation Example**: `{implementation_2}` + + --- + + ### Q2: "What is changing?" (Dynamics Features) + + **Concept**: {dynamics_feature_1_name} + - **Sample Fields Used**: fields_used_3 + - **Definition**: {definition_3} + - **Why This Feature**: {why_3} + - **Logical Meaning**: {logical_meaning_3} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_3} + - **Boundary Conditions**: {boundaries_3} + - **Implementation Example**: `{implementation_3}` + + **Concept**: {dynamics_feature_2_name} + - **Sample Fields Used**: fields_used_4 + - **Definition**: {definition_4} + - **Why This Feature**: {why_4} + - **Logical Meaning**: {logical_meaning_4} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_4} + - **Boundary Conditions**: {boundaries_4} + - **Implementation Example**: `{implementation_4}` + + --- + + ### Q3: "What is anomalous?" (Deviation Features) + + **Concept**: {anomaly_feature_1_name} + - **Sample Fields Used**: fields_used_5} + - **Definition**: {definition_5} + - **Why This Feature**: {why_5} + - **Logical Meaning**: {logical_meaning_5} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_5} + - **Boundary Conditions**: {boundaries_5} + - **Implementation Example**: `{implementation_5}` + + **Concept**: {anomaly_feature_2_name} + - **Sample Fields Used**: fields_used_6} + - **Definition**: {definition_6} + - **Why This Feature**: {why_6} + - **Logical Meaning**: {logical_meaning_6} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_6} + - **Boundary Conditions**: {boundaries_6} + - **Implementation Example**: `{implementation_6}` + + --- + + ### Q4: "What is combined?" (Interaction Features) + + **Concept**: {interaction_feature_1_name} + - **Sample Fields Used**: fields_used_7} + - **Definition**: {definition_7} + - **Why This Feature**: {why_7} + - **Logical Meaning**: {logical_meaning_7} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_7} + - **Boundary Conditions**: {boundaries_7} + - **Implementation Example**: `{implementation_7}` + + **Concept**: {interaction_feature_2_name} + - **Sample Fields Used**: fields_used_8} + - **Definition**: {definition_8} + - **Why This Feature**: {why_8} + - **Logical Meaning**: {logical_meaning_8} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_8} + - **Boundary Conditions**: {boundaries_8} + - **Implementation Example**: `{implementation_8}` + + --- + + ### Q5: "What is structural?" (Composition Features) + + **Concept**: {structure_feature_1_name} + - **Sample Fields Used**: fields_used_9} + - **Definition**: {definition_9} + - **Why This Feature**: {why_9} + - **Logical Meaning**: {logical_meaning_9} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_9} + - **Boundary Conditions**: {boundaries_9} + - **Implementation Example**: `{implementation_9}` + + **Concept**: {structure_feature_2_name} + - **Sample Fields Used**: fields_used_10} + - **Definition**: {definition_10} + - **Why This Feature**: {why_10} + - **Logical Meaning**: {logical_meaning_10} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_10} + - **Boundary Conditions**: {boundaries_10} + - **Implementation Example**: `{implementation_10}` + + --- + + ### Q6: "What is cumulative?" (Accumulation Features) + + **Concept**: {accumulation_feature_1_name} + - **Sample Fields Used**: fields_used_11} + - **Definition**: {definition_11} + - **Why This Feature**: {why_11} + - **Logical Meaning**: {logical_meaning_11} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_11} + - **Boundary Conditions**: {boundaries_11} + - **Implementation Example**: `{implementation_11}` + + **Concept**: {accumulation_feature_2_name} + - **Sample Fields Used**: fields_used_12} + - **Definition**: {definition_12} + - **Why This Feature**: {why_12} + - **Logical Meaning**: {logical_meaning_12} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_12} + - **Boundary Conditions**: {boundaries_12} + - **Implementation Example**: `{implementation_12}` + + --- + + ### Q7: "What is relative?" (Comparison Features) + + **Concept**: {relative_feature_1_name} + - **Sample Fields Used**: fields_used_13} + - **Definition**: {definition_13} + - **Why This Feature**: {why_13} + - **Logical Meaning**: {logical_meaning_13} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_13} + - **Boundary Conditions**: {boundaries_13} + - **Implementation Example**: `{implementation_13}` + + **Concept**: {relative_feature_2_name} + - **Sample Fields Used**: fields_used_14} + - **Definition**: {definition_14} + - **Why This Feature**: {why_14} + - **Logical Meaning**: {logical_meaning_14} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_14} + - **Boundary Conditions**: {boundaries_14} + - **Implementation Example**: `{implementation_14}` + + --- + + ### Q8: "What is essential?" (Essence Features) + + **Concept**: {essence_feature_1_name} + - **Sample Fields Used**: fields_used_15} + - **Definition**: {definition_15} + - **Why This Feature**: {why_15} + - **Logical Meaning**: {logical_meaning_15} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_15} + - **Boundary Conditions**: {boundaries_15} + - **Implementation Example**: `{implementation_15}` + + **Concept**: {essence_feature_2_name} + - **Sample Fields Used**: fields_used_16} + - **Definition**: {definition_16} + - **Why This Feature**: {why_16} + - **Logical Meaning**: {logical_meaning_16} + - **Is filling nan necessary**: We have some operators to fill nan value like ts_backfill() or group_mean() etc. however, in some cases, if the nan value itself has some meaning, then we should not fill it blindly since it may introduce some bias. so before filling nan value, we should think about whether the nan value has some meaning in the specific scenario. If yes, do use appropriate method to fill nan value in the following implementation example. + - **Directionality**: {directionality_16} + - **Boundary Conditions**: {boundaries_16} + - **Implementation Example**: `{implementation_16}` + + --- + + ## Implementation Considerations + + ### Data Quality Notes + - **Coverage**: {coverage_note} + - **Timeliness**: {timeliness_note} + - **Accuracy**: {accuracy_note} + - **Potential Biases**: {bias_note} + + ### Computational Complexity + - **Lightweight features**: {simple_features} + - **Medium complexity**: {medium_features} + - **Heavy computation**: {complex_features} + + ### Recommended Prioritization + + **Tier 1 (Immediate Implementation)**: + 1. {priority_1_feature} - {priority_1_reason} + 2. {priority_2_feature} - {priority_2_reason} + 3. {priority_3_feature} - {priority_3_reason} + + **Tier 2 (Secondary Priority)**: + 1. {priority_4_feature} - {priority_4_reason} + 2. {priority_5_feature} - {priority_5_reason} + + **Tier 3 (Requires Further Validation)**: + 1. {priority_6_feature} - {priority_6_reason} + + --- + + ## Critical Questions for Further Exploration + + ### Unanswered Questions: + 1. {unanswered_question_1} + 2. {unanswered_question_2} + 3. {unanswered_question_3} + + ### Recommended Additional Data: + - {additional_data_1} + - {additional_data_2} + - {additional_data_3} + + ### Assumptions to Challenge: + - {assumption_1} + - {assumption_2} + - {assumption_3} + + --- + + ## Methodology Notes + + **Analysis Approach**: This report was generated by: + 1. Deep field deconstruction to understand data essence + 2. Question-driven feature generation (8 fundamental questions) + 3. Logical validation of each feature concept + 4. Transparent documentation of reasoning + + **Design Principles**: + - Focus on logical meaning over conventional patterns + - Every feature must answer a specific question + - Clear documentation of "why" for each suggestion + - Emphasis on data understanding over prediction + + --- + + *Report generated: {generation_timestamp}* + *Analysis depth: Comprehensive field deconstruction + 8-question framework* + *Next steps: Implement Tier 1 features, validate assumptions, gather additional data as needed* + + + +## Core Analysis Principles + +1. **From Data Essence**: Start with what data truly means, not what it's traditionally used for +2. **Autonomous Reasoning**: Skill performs all thinking, no user input required +3. **Question-Driven**: Internal question bank guides feature generation +4. **Meaning Over Patterns**: Prioritize logical meaning over conventional combinations +5. **Transparency**: Show reasoning process in output + +## Example Output Structure + +When analyzing dataset 'BEME' (Balance Sheet and Market Data), the output would include: + +### Dataset Understanding +**Fields Analyzed**: book_value, market_cap, book_to_market, etc. +**Key Observations**: Dataset compares accounting values with market valuations + +### Field Deconstruction +- **book_value**: Accountant's calculation of net asset value (quarterly, audited, historical cost-based) +- **market_cap**: Market participants' valuation (continuous, forward-looking, sentiment-influenced) +- **book_to_market**: Ratio comparing these two valuation perspectives + +### Feature Concepts Generated + +**From "What is stable?"** +- "Market reevaluation stability": Rolling coefficient of variation of book_to_market +- **Logic**: Measures whether market opinion is stable or volatile +- **Meaning**: Stable values suggest consensus, volatile values suggest disagreement/uncertainty + +**From "What is changing?"** +- "Value creation vs. market reevaluation decomposition": Separate book_value growth from market_cap growth +- **Logic**: Distinguish fundamental value creation from market sentiment changes +- **Meaning**: Which component drives changes in book_to_market? + +**From "What is combined?"** +- "Intangible value proportion": (market_cap - book_value) / enterprise_value +- **Logic**: Quantify proportion of value from intangibles (brand, growth, etc.) +- **Meaning**: What percentage of valuation isn't captured on the balance sheet? + +**(Additional question-based features would follow...)** + +## Implementation Notes + +### The skill should: +1. **Analyze first, then generate**: Fully understand dataset before proposing features +2. **Show reasoning**: Explain why each feature concept makes sense +3. **Be specific**: Reference actual field names and their characteristics +4. **Be critical**: Question assumptions and identify limitations +5. **Be creative**: Look beyond traditional financial metrics + +### The skill should NOT: +1. **Ask users to think**: All thinking is internal to the skill +2. **Provide generic templates**: Each analysis should be specific to the dataset +3. **Rely on conventional wisdom**: Challenge traditional approaches +4. **Output patterns without meaning**: Every suggestion must have clear logic + +## Quality Assurance + +**Self-Check Process:** +- [ ] All fields analyzed, not just skimmed +- [ ] Field meanings understood beyond descriptions +- [ ] Multiple question types explored +- [ ] Each feature has clear logical meaning +- [ ] Reasoning is explicit, not implicit +- [ ] Limitations are acknowledged +- [ ] Output is dataset-specific, not generic + +**Validation Questions:** +- Would this analysis help someone truly understand the data? +- Are feature concepts novel yet meaningful? +- Is the reasoning process transparent? +- Does it avoid conventional thinking traps? + +--- + +*This skill performs deep analysis of BRAIN datasets, generating meaningful feature engineering concepts based on data essence and logical reasoning.* + +--- SKILL.md (brain-feature-implementation) --- +--- +name: brain-feature-implementation +description: Automate conversion of Brain idea documents into actionable Alpha expressions using local CSV data. +--- + +# Brain Feature Implementation + +## Description +This skill automates the process of converting a WorldQuant Brain idea document (Markdown) into actionable Alpha expressions. + +## Instructions + +1. **Analyze the Idea Document** + * Read the provided markdown file. + * Extract the following metadata: + * **Dataset ID** (e.g., `analyst15`) + * **Region** (e.g., `GLB`) + * **Delay** (e.g., `1` or `0`) + * *If any metadata is missing, ask the user to clarify.* + +2. **Plan Implementation** + * Scan the markdown file for **Feature Definitions** or **Formulas**. + * Look for patterns like `Definition: ` or code blocks describing math. + * Use the `manage_todo_list` tool to create a plan with one entry for each unique idea/formula found. + * *Title*: The Idea Name or ID (e.g., "3.1.1 Estimate Stability Score"). + * *Description*: The specific template formula (e.g., `template: "{st_dev} / abs({mean})"`). + +3. **Execute Implementation** + * For each item in the Todo List: + * **Construct the Template**: + * Use Python format string syntax `{variable}`. + * The `{variable}` must be the **exact suffix** of the fields in the dataset as listed in the fields input. + * **CRITICAL**: Do NOT include the dataset prefix (e.g., `anl14_`) or horizon in the template. The script auto-detects these. + * **Time Window Handling**: For datasets with multiple time horizons (e.g., `_fy1`, `_fy2`, `_fp1`, `_fp2`), you MUST specify the time window in the variable. Use the full suffix as it appears in the field ID after removing the dataset prefix. + * *Correct Example*: For field `anl14_mean_roe_fy1`, use template: `{mean_roe_fy1}`. + * *Incorrect Example*: `{mean_roe}` (missing time window), `{anl14_mean_roe_fy1}` (includes prefix). + * *Note*: The script ONLY accepts `--template` and `--dataset`. Do not pass any other arguments like `--filters` or `--groupby`. + * Verify the output (number of expressions generated). + * Mark the Todo item as completed. + +------ +"allowed_operators": [{'name': 'add', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Adds two or more inputs element wise. Set filter=true to treat NaNs as 0 before summing.', 'definition': 'add(x, y, filter = false), x + y'}, {'name': 'abs', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Returns the absolute value of a number, removing any negative sign.', 'definition': 'abs(x)'}, {'name': 'log', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Calculates the natural logarithm of the input value. Commonly used to transform data that has positive values.', 'definition': 'log(x)'}, {'name': 'subtract', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Subtracts inputs left to right: x ? y ? … Supports two or more inputs. Set filter=true to treat NaNs as 0 before subtraction.', 'definition': 'subtract(x, y, filter=false), x - y'}, {'name': 'signed_power', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'x raised to the power of y such that final result preserves sign of x', 'definition': 'signed_power(x, y)'}, {'name': 'sign', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Returns the sign of a number: +1 for positive, -1 for negative, and 0 for zero. If the input is NaN, returns NaN.\r\n\r\nInput: Value of 7 instruments at day t: (2, -3, 5, 6, 3, NaN, -10)\r\nOutput: (1, -1, 1, 1, 1, NaN, -1)', 'definition': 'sign(x)'}, {'name': 'reverse', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': '\xa0- x', 'definition': 'reverse(x)'}, {'name': 'power', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'x ^ y', 'definition': 'power(x, y)'}, {'name': 'multiply', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Multiplies two or more inputs element wise. Set filter=true to treat NaNs as 0 before multiplication', 'definition': 'multiply(x ,y, ... , filter=false), x * y'}, {'name': 'min', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Minimum value of all inputs. At least 2 inputs are required', 'definition': 'min(x, y ..)'}, {'name': 'max', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Maximum value of all inputs. At least 2 inputs are required', 'definition': 'max(x, y, ..)'}, {'name': 'inverse', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': '1 / x', 'definition': 'inverse(x)'}, {'name': 'sqrt', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Returns the non negative square root of x. Equivalent to power(x, 0.5); for signed roots use signed_power(x, 0.5).', 'definition': 'sqrt(x)'}, {'name': 's_log_1p', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Confine function to a shorter range using logarithm such that higher input remains higher and negative input remains negative as an output of resulting function and -1 or 1 is an asymptotic value', 'definition': 's_log_1p(x)'}, {'name': 'densify', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'Converts a grouping field of many buckets into lesser number of only available buckets so as to make working with grouping fields computationally efficient', 'definition': 'densify(x)'}, {'name': 'divide', 'category': 'Arithmetic', 'scope': "['REGULAR']", 'description': 'x / y', 'definition': 'divide(x, y), x / y'}, {'name': 'not', 'category': 'Logical', 'scope': "['REGULAR']", 'description': 'Returns the logical negation of x. Returns 0 when x is 1 (‘true’) and 1 when x is 0 (‘false’).', 'definition': 'not(x)'}, {'name': 'and', 'category': 'Logical', 'scope': "['REGULAR']", 'description': "Returns 1 ('true') if both inputs are 1 ('true'). Otherwise, returns 0 ('false').", 'definition': 'and(input1, input2)'}, {'name': 'less', 'category': 'Logical', 'scope': "['REGULAR']", 'description': "Returns 1 ('true') if input1 is a smaller than input2. Otherwise, returns 0 ('false').", 'definition': 'input1 < input2'}, {'name': 'equal', 'category': 'Logical', 'scope': "['REGULAR']", 'description': "Returns 1 ('true') if input1 and input2 are the same. Otherwise, returns 0 ('false').", 'definition': 'input1 == input2'}, {'name': 'or', 'category': 'Logical', 'scope': "['REGULAR']", 'description': 'Returns 1 if either input is true (either input1 or input2 has a value of 1), otherwise it returns 0.', 'definition': 'or(input1, input2)'}, {'name': 'not_equal', 'category': 'Logical', 'scope': "['REGULAR']", 'description': "Returns 1 ('true') if input1 and input2 are different numbers. Otherwise, returns 0 ('false').", 'definition': 'input1!= input2'}, {'name': 'greater', 'category': 'Logical', 'scope': "['REGULAR']", 'description': "Returns 1 ('true') if input1 is a larger than input2. Otherwise, returns 0 ('false').", 'definition': 'input1 > input2'}, {'name': 'greater_equal', 'category': 'Logical', 'scope': "['REGULAR']", 'description': "Returns 1 ('true') if input1 is a larger or the same as input2. Otherwise, returns 0 ('false').", 'definition': 'input1 >= input2'}, {'name': 'less_equal', 'category': 'Logical', 'scope': "['REGULAR']", 'description': "Returns 1 ('true') if input1 is a smaller or the same as input2. Otherwise, returns 0 ('false').", 'definition': 'input1 <= input2'}, {'name': 'is_nan', 'category': 'Logical', 'scope': "['REGULAR']", 'description': 'If (input == NaN) return 1 else return 0', 'definition': 'is_nan(input)'}, {'name': 'if_else', 'category': 'Logical', 'scope': "['REGULAR']", 'description': 'The if_else operator returns one of two values based on a condition. If the condition is true, it returns the first value; if false, it returns the second value.', 'definition': 'if_else(input1, input2, input 3)'}, {'name': 'ts_sum', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Sum values of x for the past d days.', 'definition': 'ts_sum(x, d)'}, {'name': 'ts_scale', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Scales a time series to a 0–1 range based on its minimum and maximum values over a specified period, with an optional constant shift.', 'definition': 'ts_scale(x, d, constant = 0)'}, {'name': 'ts_mean', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Calculates the simple average (mean) value of a variable x over the past d days.', 'definition': 'ts_mean(x, d)'}, {'name': 'ts_zscore', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': "Calculates the Z-score of a time series, showing how far today's value is from the recent average, measured in standard deviations. Useful for standardizing and comparing values over time.", 'definition': 'ts_zscore(x, d)'}, {'name': 'ts_std_dev', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Calculates the standard deviation of a data series x over the past d days, measuring how much the values deviate from their mean during that period.', 'definition': 'ts_std_dev(x, d)'}, {'name': 'kth_element', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Returns the K-th value from a time series by looking back over a specified number of (‘d’) days, with the option to ignore certain values. Commonly used for backfilling missing data.', 'definition': 'kth_element(x, d, k, ignore=“NaN”)'}, {'name': 'inst_tvr', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Total trading value / Total holding value in the past d days\r\n\r\nInput: Value of 1 instrument in past 5 days where first element is the latest: (105, 102, 99, 101,100)\r\nOutput: 0.022 from (1+2+3+3)/(105+102+99+101)', 'definition': 'inst_tvr(x, d)'}, {'name': 'ts_corr', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Calculates the Pearson correlation between two variables, x and y, over the past d days, showing how closely they move together.', 'definition': 'ts_corr(x, y, d)'}, {'name': 'ts_count_nans', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Counts the number of missing (NaN) values in a data series over a specified number of days.', 'definition': 'ts_count_nans(x ,d)'}, {'name': 'ts_target_tvr_decay', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Tune "ts_decay" to have a turnover equal to a certain target, with optimization weight range between lambda_min, lambda_max', 'definition': 'ts_target_tvr_decay(x, lambda_min=0, lambda_max=1, target_tvr=0.1)'}, {'name': 'ts_median', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Returns median value of x for the past d days', 'definition': 'ts_median(x, d)'}, {'name': 'ts_covariance', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Calculates the covariance between two time-series variables, y and x, over the past d days. Useful for measuring how two variables move together within a specified historical window.', 'definition': 'ts_covariance(y, x, d)'}, {'name': 'ts_decay_linear', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Applies a linear decay to time-series data over a set number of days, smoothing the data by averaging recent values and reducing the impact of older or missing data.', 'definition': 'ts_decay_linear(x, d, dense = false)'}, {'name': 'ts_product', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Returns the product of the values of x over the past d days. Useful for calculating geometric means and compounding returns or growth rates.', 'definition': 'ts_product(x, d)'}, {'name': 'ts_regression', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Returns various parameters related to regression function', 'definition': 'ts_regression(y, x, d, lag = 0, rettype = 0)'}, {'name': 'ts_delta_limit', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Limit the change in the Alpha position x between dates to a specified fraction of y. The "limit_volume" can be in the range of 0 to 1. Also, please be aware of the scaling for x and y. Besides setting y as adv20 or volume related data, you can also set y as a constant.', 'definition': 'ts_delta_limit(x, y, limit_volume=0.1)'}, {'name': 'ts_step', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Returns a counter of days, incrementing by one each day.', 'definition': 'ts_step(1)'}, {'name': 'ts_decay_exp_window', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Returns exponential decay of x with smoothing factor for the past d days', 'definition': 'ts_decay_exp_window(x, d, factor = f)'}, {'name': 'ts_quantile', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Calculates the ts_rank of the input and transforms it using the inverse cumulative distribution function (quantile function) of a specified probability distribution (default: Gaussian/normal). This helps to normalize or reshape the distribution of your data over a rolling window.', 'definition': 'ts_quantile(x,d, driver="gaussian" )'}, {'name': 'days_from_last_change', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Calculates the number of days since the last change in the value of a given variable.', 'definition': 'days_from_last_change(x)'}, {'name': 'hump', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Limits amount and magnitude of changes in input (thus reducing turnover)', 'definition': 'hump(x, hump = 0.01)'}, {'name': 'last_diff_value', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Returns the most recent value of x from the past d days that is different from the current value of x.', 'definition': 'last_diff_value(x, d)'}, {'name': 'ts_arg_max', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': "Returns the number of days since the maximum value occurred in the last d days of a time series. If today's value is the maximum, returns 0; if it was yesterday, returns 1, and so on.", 'definition': 'ts_arg_max(x, d)'}, {'name': 'ts_arg_min', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': "Returns the number of days since the minimum value occurred in a time series over the past d days. If today's value is the minimum, returns 0; if it was yesterday, returns 1, and so on.", 'definition': 'ts_arg_min(x, d)'}, {'name': 'ts_av_diff', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Calculates the difference between a value and its mean over a specified period, ignoring NaN values in the mean calculation. In short, it returns x – ts_mean(x, d) with NaNs ignored.', 'definition': 'ts_av_diff(x, d)'}, {'name': 'ts_backfill', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Replaces missing (NaN) values in a time series with the most recent valid value from a specified lookback window, improving data coverage and reducing risk from missing data.', 'definition': 'ts_backfill(x,lookback = d, k=1)'}, {'name': 'ts_rank', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Ranks the value of a variable for each instrument over a specified number of past days, returning the rank of the current value (optionally adjusted by a constant). Useful for normalizing time-series data and highlighting relative performance over time.', 'definition': 'ts_rank(x, d, constant = 0)'}, {'name': 'ts_delay', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Returns the value of a variable x from d days ago. Use this operator to access historical data points by specifying the desired time lag in days.', 'definition': 'ts_delay(x, d)'}, {'name': 'ts_delta', 'category': 'Time Series', 'scope': "['REGULAR']", 'description': 'Calculates the difference between a value and its delayed version over a specified period. Useful for measuring changes or momentum in time-series data.', 'definition': 'ts_delta(x, d)'}, {'name': 'winsorize', 'category': 'Cross Sectional', 'scope': "['REGULAR']", 'description': 'Winsorizes x to make sure that all values in x are between the lower and upper limits, which are specified as multiple of std.\r\n\r\nInput: Value of 7 instruments at day t: (2, 4, 5, 6, 3, 8, 10), std: 1\r\nOutput: (2.81, 4, 5, 6, 3, 8, 8.03) from SD. = 2.61, mean = 5.42', 'definition': 'winsorize(x, std=4)'}, {'name': 'truncate', 'category': 'Cross Sectional', 'scope': "['REGULAR']", 'description': 'Operator truncates all values of x to maxPercent. Here, maxPercent is in decimal notation', 'definition': 'truncate(x,maxPercent=0.01)'}, {'name': 'regression_neut', 'category': 'Cross Sectional', 'scope': "['REGULAR']", 'description': 'Conducts the cross-sectional regression on the stocks with Y as target and X as the independent variable', 'definition': 'regression_neut(y, x)'}, {'name': 'scale', 'category': 'Cross Sectional', 'scope': "['REGULAR']", 'description': 'Scales input to booksize. We can also scale the long positions and short positions to separate scales by mentioning additional parameters to the operator', 'definition': 'scale(x, scale=1, longscale=1, shortscale=1)'}, {'name': 'rank', 'category': 'Cross Sectional', 'scope': "['REGULAR']", 'description': 'Ranks the input among all the instruments and returns an equally distributed number between 0.0 and 1.0. For precise sort, use the rate as 0', 'definition': 'rank(x, rate=2)'}, {'name': 'quantile', 'category': 'Cross Sectional', 'scope': "['REGULAR']", 'description': 'Rank the raw vector, shift the ranked Alpha vector, apply distribution (gaussian, cauchy, uniform). If driver is uniform, it simply subtract each Alpha value with the mean of all Alpha values in the Alpha vector', 'definition': 'quantile(x, driver = gaussian, sigma = 1.0)'}, {'name': 'normalize', 'category': 'Cross Sectional', 'scope': "['REGULAR']", 'description': 'Calculates the mean value of all valid alpha values for a certain date, then subtracts that mean from each element', 'definition': 'normalize(x, useStd = false, limit = 0.0)'}, {'name': 'zscore', 'category': 'Cross Sectional', 'scope': "['REGULAR']", 'description': "Z-score is a numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean", 'definition': 'zscore(x)'}, {'name': 'vec_min', 'category': 'Vector', 'scope': "['REGULAR']", 'description': 'Minimum value form vector field x', 'definition': 'vec_min(x)'}, {'name': 'vec_count', 'category': 'Vector', 'scope': "['REGULAR']", 'description': 'Number of elements in vector field x', 'definition': 'vec_count(x)'}, {'name': 'vec_stddev', 'category': 'Vector', 'scope': "['REGULAR']", 'description': 'Standard Deviation of vector field x', 'definition': 'vec_stddev(x)'}, {'name': 'vec_range', 'category': 'Vector', 'scope': "['REGULAR']", 'description': 'Difference between maximum and minimum element in vector field x', 'definition': 'vec_range(x)'}, {'name': 'vec_avg', 'category': 'Vector', 'scope': "['REGULAR']", 'description': 'Taking mean of the vector field x\r\n\r\nInput: Vector of value of 1 instrument in a day: (2, 3, 5, 6, 3, 8, 10)\r\nOutput: 37 / 7 = 5.29', 'definition': 'vec_avg(x)'}, {'name': 'vec_sum', 'category': 'Vector', 'scope': "['REGULAR']", 'description': 'Sum of vector field x\r\n\r\nInput: Vector of value of 1 instrument in a day: (2, 3, 5, 6, 3, 8, 10)\r\nOutput: 2 + 3 + 5 + 6 + 3 + 8 + 10 = 37', 'definition': 'vec_sum(x)'}, {'name': 'vec_max', 'category': 'Vector', 'scope': "['REGULAR']", 'description': 'Maximum value form vector field x', 'definition': 'vec_max(x)'}, {'name': 'left_tail', 'category': 'Transformational', 'scope': "['REGULAR']", 'description': 'NaN everything greater than maximum, maximum should be constant', 'definition': 'left_tail(x, maximum = 0)'}, {'name': 'trade_when', 'category': 'Transformational', 'scope': "['REGULAR']", 'description': 'Used in order to change Alpha values only under a specified condition and to hold Alpha values in other cases. It also allows to close Alpha positions (assign NaN values) under a specified condition', 'definition': 'trade_when(x, y, z)'}, {'name': 'right_tail', 'category': 'Transformational', 'scope': "['REGULAR']", 'description': 'NaN everything less than minimum, minimum should be constant', 'definition': 'right_tail(x, minimum = 0)'}, {'name': 'bucket', 'category': 'Transformational', 'scope': "['REGULAR']", 'description': 'Convert float values into indexes for user-specified buckets. Bucket is useful for creating group values, which can be passed to GROUP as input', 'definition': 'bucket(rank(x), range="0, 1, 0.1" or buckets = "2,5,6,7,10")'}, {'name': 'group_rank', 'category': 'Group', 'scope': "['REGULAR']", 'description': 'Each elements in a group is assigned the corresponding rank in this group', 'definition': 'group_rank(x, group)'}, {'name': 'group_cartesian_product', 'category': 'Group', 'scope': "['REGULAR']", 'description': 'Merge two groups into one group. If originally there are len_1 and len_2 group indices in g1 and g2, there will be len_1 * len_2 indices in the new group.', 'definition': 'group_cartesian_product(g1, g2)'}, {'name': 'group_backfill', 'category': 'Group', 'scope': "['REGULAR']", 'description': 'If a certain value for a certain date and instrument is NaN, from the set of same group instruments, calculate winsorized mean of all non-NaN values over last d days', 'definition': 'group_backfill(x, group, d, std = 4.0)'}, {'name': 'group_mean', 'category': 'Group', 'scope': "['REGULAR']", 'description': 'All elements in group equals to the mean', 'definition': 'group_mean(x, weight, group)'}, {'name': 'group_neutralize', 'category': 'Group', 'scope': "['REGULAR']", 'description': 'Neutralizes Alpha against groups. These groups can be subindustry, industry, sector, country or a constant', 'definition': 'group_neutralize(x, group)'}, {'name': 'group_normalize', 'category': 'Group', 'scope': "['REGULAR']", 'description': "Normalizes input such that each group's absolute sum is 1", 'definition': 'group_normalize(x, group, constantCheck=False, tolerance=0.01, scale=1)'}, {'name': 'group_median', 'category': 'Group', 'scope': "['REGULAR']", 'description': 'All elements in group equals to the median value of the group.', 'definition': 'group_median(x, group)'}, {'name': 'group_scale', 'category': 'Group', 'scope': "['REGULAR']", 'description': 'Normalizes the values in a group to be between 0 and 1. (x - groupmin) / (groupmax - groupmin)', 'definition': 'group_scale(x, group)'}, {'name': 'group_zscore', 'category': 'Group', 'scope': "['REGULAR']", 'description': "Calculates group Z-score - numerical measurement that describes a value's relationship to the mean of a group of values. Z-score is measured in terms of standard deviations from the mean. zscore = (data - mean) / stddev of x for each instrument within its group.\r\n\r\nInput: Value of 5 instruments of Group A: (100, 0, 50, 60, 25)\r\nOutput: (1.57, -1.39, 0.09, 0.39, -0.65)", 'definition': 'group_zscore(x, group)'}] + +CRITICAL OUTPUT RULES (to ensure implement_idea.py can generate expressions): +- Every Implementation Example MUST be a Python format template using `{variable}`. +- Every `{variable}` MUST be constructed from the actual field suffixes provided in the fields list. Do NOT invent variable names. +- The suffix must match exactly how it appears in the field ID after removing the dataset prefix (e.g., for `anl14_mean_roe_fy1`, use `{mean_roe_fy1}`, not `{mean_roe}` or `{roe}`). +- When you implement ideas, ONLY use operators from allowed_operators provided. +- Do NOT include dataset codes/prefixes/horizons in `{variable}` beyond the suffix itself. +- If you show raw field ids in tables, use backticks `` `like_this` ``, NOT `{braces}`. +- Include these metadata lines verbatim somewhere near the top: + **Dataset**: + **Region**: + **Delay**: + +--- + +# User Prompt + +{ + "instructions": { + "output_format": "Fill OUTPUT_TEMPLATE.md with concrete content.", + "implementation_examples": "Each Implementation Example must be a template with {variable} placeholders. Use only suffixes derived from the provided fields list. Always include time window suffixes (e.g., _fy1, _fp1) when present in the fields.", + "no_code_fences": true, + "do_not_invent_placeholders": true + }, + "dataset_context": { + "dataset_id": "analyst4", + "dataset_name": null, + "dataset_description": null, + "category": "Analyst", + "region": "USA", + "delay": 1, + "universe": "TOP3000", + "field_count": 653 + }, + "fields": [{'id': 'total_goodwill_reported_value', 'description': 'Total Goodwill - Actual Value in Millions'}, {'id': 'total_goodwill_amount', 'description': 'Total Goodwill - Value'}, {'id': 'total_goodwill_actual_value', 'description': 'Total Goodwill - announced financial value'}, {'id': 'total_assets_reported_value', 'description': 'Total Assets - actual value'}, {'id': 'total_assets_amount', 'description': 'Total Assets - actual value'}, {'id': 'tangible_book_value_per_share_max_guidance', 'description': 'Tangible Book Value per Share - Maximum guidance value'}, {'id': 'stock_option_expense_max_guidance_qtr', 'description': 'Stock option expense - maximum guidance value'}, {'id': 'shares_outstanding_max_guidance', 'description': 'Maximum guidance value for Shares'}, {'id': 'shareholders_equity_total_2', 'description': "Shareholder's Equity - Total Value"}, {'id': 'shareholders_equity_reported_value', 'description': "Shareholders' Equity - Total Value"}, {'id': 'shareholders_equity_min_guidance', 'description': 'Minimum guidance value for Share Equity'}, {'id': 'shareholders_equity_max_guidance', 'description': "The maximum guidance value for Shareholder's Equity on an annual basis."}, {'id': 'shareholders_equity_actual_value', 'description': "Shareholders' Equity - Total Value"}, {'id': 'sg_and_admin_min_guidance_value', 'description': 'Minimum guidance value for Selling, General & Administrative Expense on an annual basis.'}, {'id': 'selling_general_admin_expense_reported_value', 'description': 'Selling, General & Administrative Expense value'}, {'id': 'selling_general_admin_expense_max_guidance_qtr', 'description': 'Selling, General & Admin Expenses - Maximum guidance value'}, {'id': 'selling_general_admin_expense_actual_value', 'description': 'Selling, General & Administrative Expense - actual value'}, {'id': 'selling_general_admin_expense', 'description': 'Selling, General & Administrative Expense Value'}, {'id': 'sales_previous_estimate_value', 'description': 'The previous estimation of Sales'}, {'id': 'sales_min_guidance_value', 'description': 'Minimum sales guidance for the annual period.'}, {'id': 'sales_min_guidance_quarterly', 'description': 'Minimum guidance value for Sales'}, {'id': 'sales_max_guidance_value', 'description': 'Maximum guidance value for annual sales'}, {'id': 'sales_max_guidance_quarterly', 'description': 'The maximum guidance value for sales.'}, {'id': 'sales_guidance_value_quarterly', 'description': 'Sales - guidance value'}, {'id': 'sales_guidance_value', 'description': 'Sales - Guidance value for the annual period'}, {'id': 'sales_estimate_value', 'description': 'Sales - Estimated value'}, {'id': 'sales_estimate_stddev_quarterly', 'description': 'Standard deviation of Sales estimations'}, {'id': 'sales_estimate_standard_deviation', 'description': 'Sales - standard deviation of estimations'}, {'id': 'sales_estimate_minimum_quarterly', 'description': 'Sales - The lowest estimation'}, {'id': 'sales_estimate_minimum', 'description': 'Sales - The lowest estimation'}, {'id': 'sales_estimate_median_value', 'description': 'Sales - Median value among forecasts'}, {'id': 'sales_estimate_median_quarterly', 'description': 'Sales - median of estimations'}, {'id': 'sales_estimate_maximum_quarterly', 'description': 'Sales - The highest estimation'}, {'id': 'sales_estimate_maximum', 'description': 'Sales - The highest estimation'}, {'id': 'sales_estimate_dispersion', 'description': 'Standard deviation of Sales estimations for the annual period.'}, {'id': 'sales_estimate_count_quarterly', 'description': 'Sales - number of estimations'}, {'id': 'sales_estimate_count_2', 'description': 'Number of Sales estimates'}, {'id': 'sales_estimate_count', 'description': 'Sales - number of estimations'}, {'id': 'sales_estimate_average_quarterly', 'description': 'Sales - mean of estimations'}, {'id': 'sales_estimate_average_annual', 'description': 'Sales - mean of estimations'}, {'id': 'sales_estimate_average', 'description': 'Sales - mean of estimations with a delay of 1 quarter'}, {'id': 'research_development_max_guidance', 'description': 'The maximum guidance value for Research and Development Expense on an annual basis.'}, {'id': 'research_development_expense_reported_value', 'description': 'Research & Development (Income Statement) Value in Millions'}, {'id': 'research_development_expense_actual_value', 'description': 'Research and Development Expense- announced financial value'}, {'id': 'research_development_expense', 'description': 'Research & Development Expense - Actual Value (Annual)'}, {'id': 'reporting_currency_code_9', 'description': 'Home currency of instrument'}, {'id': 'previous_recommendation_value', 'description': 'The previous estimation of financial item for recommendation'}, {'id': 'previous_quarterly_guidance_estimate', 'description': 'The previous estimation of finanicial item'}, {'id': 'previous_guidance_value_annual', 'description': 'The previous estimation of finanicial item'}, {'id': 'previous_guidance_estimate', 'description': 'The previous estimation of financial item - annual frequency'}, {'id': 'pretax_income_total', 'description': 'Pretax Profit - Value for the annual period'}, {'id': 'pretax_income_standalone_value', 'description': 'Pretax Profit - actual value for the quarter'}, {'id': 'pretax_income_reported_value', 'description': 'Reported Pretax income - actual value for the quarter'}, {'id': 'pretax_income_reported_min_guidance_qtr', 'description': 'Reported Pretax income- minimum guidance value'}, {'id': 'pretax_income_reported_min_guidance', 'description': 'Reported Pretax income - minimum guidance value'}, {'id': 'pretax_income_reported', 'description': 'Reported Pretax income - actual value for the annual fiscal period'}, {'id': 'pretax_income_max_guidance_qtr', 'description': 'The maximum guidance value for Pretax income.'}, {'id': 'pretax_income_actual_reported_value', 'description': 'Reported Pretax income- announced financial value'}, {'id': 'operating_profit_max_guidance_qtr', 'description': 'The maximum guidance value for Earnings Before Interest and Taxes.'}, {'id': 'operating_profit_before_interest_tax', 'description': 'Earnings Before Interest and Taxes (EBIT) - Actual Value'}, {'id': 'operating_profit_before_depr_amort_min_guidance_qtr', 'description': 'Minimum guidance value for Earnings before interest, taxes, depreciation and amortization'}, {'id': 'operating_profit_before_depr_amort_max_guidance_qtr', 'description': 'Max guidance value for Earnings before interest, taxes, depreciation and amortization'}, {'id': 'operating_profit_before_depr_amort', 'description': 'EBITDA value - Annual'}, {'id': 'operating_cashflow_reported_value', 'description': 'Cash Flow from Operations - Value'}, {'id': 'net_profit_reported_value', 'description': 'Net profit- announced financial value'}, {'id': 'net_profit_adjusted_value', 'description': 'Adjusted net income- announced financial value'}, {'id': 'net_profit_adjusted_min_guidance', 'description': 'The minimum guidance value for adjusted net profit on an annual basis.'}, {'id': 'net_income_total_2', 'description': 'Net profit- announced financial value for annual data'}, {'id': 'net_income_adjusted', 'description': 'Adjusted net income- announced financial value for annual frequency'}, {'id': 'net_debt_reported_value', 'description': 'Net Debt value for the quarter'}, {'id': 'net_debt_min_guidance_qtr', 'description': 'Minimum guidance value for Net Debt'}, {'id': 'net_debt_max_guidance_qtr', 'description': 'Maximum guidance value for Net Debt'}, {'id': 'net_debt_amount', 'description': 'Net debt - actual value for the annual period'}, {'id': 'net_debt_actual_value', 'description': 'Net debt- announced financial value'}, {'id': 'minimum_guidance_value', 'description': 'Minimum guidance value for basic annual financials'}, {'id': 'min_total_goodwill_guidance', 'description': 'Total Goodwill - The lowest guidance value'}, {'id': 'min_total_assets_guidance_2', 'description': 'Minimum guidance value for Total Assets on an annual basis'}, {'id': 'min_total_assets_guidance', 'description': 'Minimum guidance value for Total Assets'}, {'id': 'min_tangible_book_value_per_share_guidance_2', 'description': 'Tangible Book Value per Share - Minimum guidance value'}, {'id': 'min_tangible_book_value_per_share_guidance', 'description': 'Tangible Book Value per Share - minimum guidance value'}, {'id': 'min_stock_option_expense_guidance_2', 'description': 'Minimum guidance value for stock option expense on an annual basis'}, {'id': 'min_stock_option_expense_guidance', 'description': 'Stock option expense - minimum guidance value'}, {'id': 'min_shares_outstanding_guidance', 'description': 'Minimum guidance value for Shares'}, {'id': 'min_shareholders_equity_guidance', 'description': "Minimum guidance value for Shareholders' Equity"}, {'id': 'min_share_count_guidance', 'description': 'Minimum guidance for shares on an annual basis'}, {'id': 'min_share_buyback_guidance', 'description': 'Shares Basic - Minimum guidance value for the annual period'}, {'id': 'min_sg_and_a_expense_guidance', 'description': 'Selling, General & Administrative Expense - Minimum guidance value'}, {'id': 'min_research_development_expense_guidance_2', 'description': 'Minimum guidance value for Research & Development Expense on an annual basis'}, {'id': 'min_research_development_expense_guidance', 'description': 'Minimum guidance value for Research & Development Expense'}, {'id': 'min_reported_eps_guidance', 'description': 'Reported Earnings Per Share - Minimum guidance value for the annual period'}, {'id': 'min_pretax_profit_guidance_2', 'description': 'The minimum guidance value for Pretax income on an annual basis.'}, {'id': 'min_pretax_profit_guidance', 'description': 'Minimum guidance value for Pretax income'}, {'id': 'min_operating_cashflow_guidance', 'description': 'Minimum guidance value for Cash Flow from Operations'}, {'id': 'min_net_profit_guidance', 'description': 'Minimum guidance value for Net Profit on an annual basis'}, {'id': 'min_net_income_guidance', 'description': 'Net profit - minimum guidance value'}, {'id': 'min_net_debt_guidance', 'description': 'The minimum guidance value for Net Debt on an annual basis.'}, {'id': 'min_investing_cashflow_guidance_2', 'description': 'Cash Flow From Investing - Minimum guidance value for the annual period'}, {'id': 'min_investing_cashflow_guidance', 'description': 'Cash Flow From Investing - Minimum guidance value'}, {'id': 'min_gross_income_guidance_2', 'description': 'The minimum guidance for Gross Income on an annual basis.'}, {'id': 'min_gross_income_guidance', 'description': 'The minimum guidance value for Gross Income.'}, {'id': 'min_funds_from_operations_guidance', 'description': 'Funds from operation - minimum guidance value for annual period'}, {'id': 'min_free_cashflow_per_share_guidance', 'description': 'Free cash flow per share - minimum guidance value'}, {'id': 'min_free_cashflow_guidance', 'description': 'Minimum guidance value for Free Cash Flow'}, {'id': 'min_free_cash_flow_per_share_guidance', 'description': 'Free cash flow per share - minimum guidance value for the annual period'}, {'id': 'min_free_cash_flow_guidance', 'description': 'The minimum guidance value for Free Cash Flow on an annual basis.'}, {'id': 'min_financing_cashflow_guidance_2', 'description': 'Minimum guidance value for Cash Flow From Financing on an annual basis'}, {'id': 'min_financing_cashflow_guidance', 'description': 'Minimum guidance value for Cash Flow From Financing'}, {'id': 'min_ebitda_guidance', 'description': 'Minimum guidance value for Earnings Before Interest, Taxes, Depreciation, and Amortization (EBITDA) - Annual'}, {'id': 'min_ebit_guidance_2', 'description': 'Minimum guidance value for Earnings Before Interest and Taxes (EBIT) on an annual basis.'}, {'id': 'min_ebit_guidance', 'description': 'Minimum guidance value for Earnings Before Interest and Taxes (EBIT)'}, {'id': 'min_customized_eps_guidance', 'description': 'Customized Earnings per share - Minimum guidance value for the annual period'}, {'id': 'min_custom_eps_guidance', 'description': 'Custom Earnings per share - Minimum guidance value'}, {'id': 'min_capital_expenditure_guidance', 'description': 'Minimum guidance value for Capital Expenditures'}, {'id': 'min_capex_guidance', 'description': 'Minimum guidance value for Capital Expenditures'}, {'id': 'min_book_value_per_share_guidance', 'description': 'Book value per share - minimum guidance value for the annual period'}, {'id': 'min_basic_shares_guidance', 'description': 'Shares Basic - Minimum guidance value'}, {'id': 'min_adjusted_net_income_guidance', 'description': 'Adjusted net income - minimum guidance value'}, {'id': 'min_adjusted_funds_from_operations_guidance_2', 'description': 'Adjusted funds from operation - minimum guidance for the annual period'}, {'id': 'min_adjusted_funds_from_operations_guidance', 'description': 'Funds from operation - minimum guidance value'}, {'id': 'min_adjusted_funds_from_operations_adj_guidance', 'description': 'Minimum guidance value for Adjusted funds from operation'}, {'id': 'median_sales_estimate', 'description': 'Sales - median of estimations'}, {'id': 'maximum_guidance_value', 'description': 'Maximum guidance value for basic annual financials'}, {'id': 'max_total_goodwill_guidance_2', 'description': 'The maximum guidance value for Total Goodwill on an annual basis.'}, {'id': 'max_total_goodwill_guidance', 'description': 'The maximum guidance value for Total Goodwill.'}, {'id': 'max_total_assets_guidance_2', 'description': 'The maximum guidance value for Total Assets'}, {'id': 'max_total_assets_guidance', 'description': 'The maximum guidance value for Total Assets.'}, {'id': 'max_tangible_book_value_per_share_guidance', 'description': 'Tangible Book Value per Share - maximum guidance value'}, {'id': 'max_stock_option_expense_guidance', 'description': 'Stock option expense - Maximum guidance value for the annual period'}, {'id': 'max_shares_outstanding_guidance', 'description': 'The maximum guidance for Shares'}, {'id': 'max_shareholders_equity_guidance', 'description': "The maximum guidance value for Total Shareholders' Equity."}, {'id': 'max_share_buyback_guidance', 'description': 'Maximum guidance value for Shares Basic - Annual'}, {'id': 'max_selling_general_admin_guidance', 'description': 'The maximum guidance value for Selling, General & Administrative Expense'}, {'id': 'max_research_development_expense_guidance', 'description': 'The maximum guidance value for Research and Development Expense.'}, {'id': 'max_reported_pretax_income_guidance_2', 'description': 'Reported Pretax income- maximum guidance value'}, {'id': 'max_reported_pretax_income_guidance', 'description': 'Reported Pretax income- maximum guidance value'}, {'id': 'max_reported_eps_guidance_2', 'description': 'Reported Earnings Per Share - Maximum guidance value for the annual period'}, {'id': 'max_reported_eps_guidance', 'description': 'Reported Earnings Per Share - Maximum guidance value'}, {'id': 'max_pretax_profit_guidance', 'description': 'The maximum guidance value for Pretax income on an annual basis.'}, {'id': 'max_operating_cashflow_guidance_2', 'description': 'The maximum guidance value for Cash Flow from Operations on an annual basis.'}, {'id': 'max_operating_cashflow_guidance', 'description': 'The maximum guidance value for Cash Flow from Operations.'}, {'id': 'max_net_profit_guidance', 'description': 'The maximum guidance value for net profit on an annual basis.'}, {'id': 'max_net_income_guidance', 'description': 'The maximum guidance value for net profit.'}, {'id': 'max_net_debt_guidance', 'description': 'The maximum guidance value for Net Debt on an annual basis.'}, {'id': 'max_investing_cashflow_guidance_2', 'description': 'The maximum guidance value for Cash Flow from Investing activities on an annual basis.'}, {'id': 'max_investing_cashflow_guidance', 'description': 'The maximum guidance value for Cash Flow from Investing.'}, {'id': 'max_gross_income_guidance_2', 'description': 'The maximum guidance for Gross Income on an annual basis.'}, {'id': 'max_gross_income_guidance', 'description': 'The maximum guidance value for Gross Income.'}, {'id': 'max_free_cashflow_per_share_guidance', 'description': 'The maximum guidance value for free cash flow per share.'}, {'id': 'max_free_cashflow_guidance', 'description': 'The maximum guidance value for Free Cash Flow.'}, {'id': 'max_free_cash_flow_guidance', 'description': 'The maximum guidance value for Free Cash Flow on an annual basis.'}, {'id': 'max_financing_cashflow_guidance', 'description': 'Cash Flow From Financing - Maximum guidance value'}, {'id': 'max_ebitda_guidance', 'description': 'The maximum guidance value for Earnings Before Interest, Taxes, Depreciation, and Amortization (EBITDA) on an annual basis.'}, {'id': 'max_ebit_guidance', 'description': 'The maximum guidance value for Earnings Before Interest and Taxes (EBIT) on an annual basis.'}, {'id': 'max_customized_eps_guidance', 'description': 'The maximum guidance value for custom earnings per share on an annual basis.'}, {'id': 'max_custom_eps_guidance', 'description': 'Custom Earnings per share - The highest guidance value'}, {'id': 'max_capital_expenditure_guidance', 'description': 'The maximum guidance value for Capital Expenditures on an annual basis.'}, {'id': 'max_book_value_per_share_guidance_2', 'description': 'Book value per share - Maximum guidance value for the annual period'}, {'id': 'max_book_value_per_share_guidance', 'description': 'Book value per share - Maximum value among forecasts'}, {'id': 'max_adjusted_net_profit_guidance', 'description': 'The maximum guidance value for adjusted net profit on an annual basis.'}, {'id': 'max_adjusted_net_income_guidance', 'description': 'The maximum guidance value for Adjusted net income.'}, {'id': 'max_adjusted_funds_from_operations_guidance_2', 'description': 'Adjusted funds from operation - maximum guidance value for the annual period'}, {'id': 'max_adjusted_funds_from_operations_guidance', 'description': 'Max guidance value for Funds from operation'}, {'id': 'max_adjusted_funds_from_operations_adj_guidance', 'description': 'Adjusted funds from operation - Maximum guidance value'}, {'id': 'max_adjusted_eps_guidance_2', 'description': 'The maximum guidance value for adjusted earnings per share on an annual basis.'}, {'id': 'max_adjusted_eps_guidance', 'description': 'The maximum guidance value for adjusted earnings per share.'}, {'id': 'lowest_sales_estimate', 'description': 'Sales - The lowest estimation for the annual period'}, {'id': 'investing_cashflow_reported_value', 'description': 'Cash Flow from Investing - Value'}, {'id': 'highest_sales_estimate', 'description': 'Sales - The highest estimation for the annual period'}, {'id': 'guidance_value_currency_code_qtr', 'description': 'Home currency of instrument'}, {'id': 'guidance_reporting_currency', 'description': 'Pricing Currency where the security trades - Annual'}, {'id': 'guidance_previous_estimate_value_qtr', 'description': 'The previous estimation of finanicial item'}, {'id': 'guidance_estimate_value', 'description': 'Estimated value for basic annual financial guidance'}, {'id': 'gross_income_total', 'description': 'Gross Income value on an annual basis'}, {'id': 'gross_income_reported_value', 'description': 'Gross Income value for the quarter'}, {'id': 'goodwill_min_guidance_qtr', 'description': 'Minimum guidance value for Total Goodwill'}, {'id': 'funds_from_operations_max_guidance', 'description': 'The maximum guidance value for Funds from operation - annual'}, {'id': 'free_cash_flow_total', 'description': 'Free Cash Flow value - Annual'}, {'id': 'free_cash_flow_reported_value', 'description': 'Free cash flow value for the quarter.'}, {'id': 'free_cash_flow_per_share_reported_value', 'description': 'Free cash flow per share- announced financial value'}, {'id': 'free_cash_flow_per_share_max_guidance', 'description': 'The maximum guidance value for Free Cash Flow Per Share on an annual basis.'}, {'id': 'free_cash_flow_per_share_actual_value', 'description': 'Free cash flow per share- announced financial value'}, {'id': 'free_cash_flow_per_share', 'description': 'Free cash flow per share - actual financial value for the annual period'}, {'id': 'financing_cashflow_reported_value', 'description': 'Cash Flow From Financing - Value'}, {'id': 'estimate_value_currency_code_qtr', 'description': 'Home currency of instrument'}, {'id': 'estimate_value_currency_code_detail_qtr', 'description': 'Home currency of instrument'}, {'id': 'estimate_value_currency_code', 'description': 'Home currency of instrument'}, {'id': 'est_tot_goodwill', 'description': 'Total Goodwill - mean of estimations'}, {'id': 'est_tot_assets', 'description': 'Total Assets - mean of estimations'}, {'id': 'est_tbv_ps', 'description': 'Tangible Book Value per Share - mean of estimations'}, {'id': 'est_shequity', 'description': 'Mean of SH Equity segment - mean of estimations'}, {'id': 'est_sga', 'description': 'SGA - mean of estimations'}, {'id': 'est_sales', 'description': 'Sales - mean of estimations'}, {'id': 'est_rd_expense', 'description': 'Research and Development Expense - mean of estimations'}, {'id': 'est_ptpr', 'description': 'Reported pretax income - mean of estimations'}, {'id': 'est_ptp', 'description': 'Pretax income - mean of estimations'}, {'id': 'est_netprofit_adj', 'description': 'Adjusted net income - Mean of estimations'}, {'id': 'est_netprofit', 'description': 'Net profit - mean of estimations'}, {'id': 'est_netdebt', 'description': 'Net debt - mean of estimations'}, {'id': 'est_grossincome', 'description': 'Gross income - Mean of estimations'}, {'id': 'est_ffo', 'description': 'Funds From Operation - Summary on Estimations, Mean'}, {'id': 'est_fcf_ps', 'description': 'Free Cash Flow Per Share - Mean of Estimations'}, {'id': 'est_fcf', 'description': 'Free Cash Flow - Mean of Estimations'}, {'id': 'est_epsr', 'description': 'GAAP Earnings per share - mean of estimations'}, {'id': 'est_epsa', 'description': 'Earnings per share adjusted by excluding extraordinary items and stock option expenses - average of estimations'}, {'id': 'est_eps', 'description': 'Earnings per share - mean of estimations'}, {'id': 'est_ebitda', 'description': 'Earnings before interest, taxes, depreciation, and amortization - mean of estimations'}, {'id': 'est_ebit', 'description': 'Earnings before interest and taxes - mean of estimations'}, {'id': 'est_dividend_ps', 'description': 'Dividend per share - average of estimations'}, {'id': 'est_cashflow_ps', 'description': 'Cash Flow Per Share - average of estimations'}, {'id': 'est_cashflow_op', 'description': 'Cash Flow From Operations - mean of estimations'}, {'id': 'est_cashflow_invst', 'description': 'Cash Flow From Investing - mean of estimations'}, {'id': 'est_cashflow_fin', 'description': 'Cash Flow From Financing - mean of estimations'}, {'id': 'est_capex', 'description': 'Capital Expenditures - mean of estimations'}, {'id': 'est_bookvalue_ps', 'description': 'Book value per share - average of estimations'}, {'id': 'eps_reported_min_guidance_qtr', 'description': 'Reported Earnings Per Share - Minimum guidance value'}, {'id': 'eps_previous_estimate_value', 'description': 'The previous estimation of Earnings Per Share'}, {'id': 'eps_min_guidance_quarterly', 'description': 'Minimum guidance value for Earnings per Share'}, {'id': 'eps_max_guidance_quarterly', 'description': 'The maximum guidance value for Earnings Per Share.'}, {'id': 'eps_guidance_value_quarterly', 'description': 'Earnings Per Share - Basic value'}, {'id': 'eps_estimate_value', 'description': 'Earnings per share - estimation value'}, {'id': 'eps_adjusted_min_guidance_value', 'description': 'The minimum guidance value for adjusted earnings per share excluding extraordinary items and stock option expenses on an annual basis.'}, {'id': 'eps_adjusted_min_guidance_qtr', 'description': 'Minimum guidance value for adjusted Earnings per share excluding extraordinary items and stock option expenses.'}, {'id': 'ebitda_reported_value', 'description': 'EBITDA value for the quarter.'}, {'id': 'ebit_reported_value', 'description': 'Earnings Before Interest & Taxes - actual value for the quarter'}, {'id': 'earnings_per_share_standard_deviation', 'description': 'Earnings per share - standard deviation of estimations'}, {'id': 'earnings_per_share_reported_value', 'description': 'Reported Earnings Per Share - Actual Value'}, {'id': 'earnings_per_share_reported', 'description': 'Reported Earnings Per Share - Actual Value'}, {'id': 'earnings_per_share_nongaap_value', 'description': 'Non-GAAP Earnings Per Share - Actual Value'}, {'id': 'earnings_per_share_minimum', 'description': 'Earnings per share - The lowest estimation'}, {'id': 'earnings_per_share_min_guidance', 'description': 'Minimum guidance value for Earnings Per Share on an annual basis.'}, {'id': 'earnings_per_share_median_value', 'description': 'Earnings per share - median of estimations'}, {'id': 'earnings_per_share_maximum', 'description': 'Earnings per share - The highest estimation'}, {'id': 'earnings_per_share_max_guidance', 'description': 'The maximum guidance value for Earnings Per Share on an annual basis.'}, {'id': 'earnings_per_share_guidance_value', 'description': 'Earnings Per Share - guidance value for annual frequency'}, {'id': 'earnings_per_share_estimate_count', 'description': 'Earnings per share - number of estimations'}, {'id': 'earnings_per_share_average', 'description': 'Earnings per share - mean of estimations'}, {'id': 'dividend_previous_estimate_value', 'description': 'The previous estimation of dividend'}, {'id': 'dividend_min_guidance_value', 'description': 'Minimum guidance value for Dividend per share on an annual basis'}, {'id': 'dividend_min_guidance_quarterly', 'description': 'Minimum guidance value for Dividend per share'}, {'id': 'dividend_max_guidance_value', 'description': 'The maximum guidance value for Dividend per share on an annual basis.'}, {'id': 'dividend_max_guidance_quarterly', 'description': 'Maximum guidance value for Dividend per share'}, {'id': 'dividend_estimate_value', 'description': 'Dividend per share - estimated value'}, {'id': 'dividend_estimate_stddev_quarterly', 'description': 'Dividend per share - standard deviation of estimations'}, {'id': 'dividend_estimate_standard_deviation', 'description': 'Dividend per share - standard deviation of estimations'}, {'id': 'dividend_estimate_minimum', 'description': 'Dividend per share - The lowest value among forecasts - D1'}, {'id': 'dividend_estimate_median_value', 'description': 'Dividend per share - median of estimations'}, {'id': 'dividend_estimate_maximum', 'description': 'Dividend per share - The highest value among forecasts with a delay of 1 quarter'}, {'id': 'dividend_estimate_count', 'description': 'Dividend per share - number of estimations with a delay of 1 quarter'}, {'id': 'dividend_estimate_average', 'description': 'Dividend per share - average of estimations - delay 1'}, {'id': 'cashflow_per_share_minimum', 'description': 'Cash Flow Per Share - The lowest estimation, delay 1 quarter'}, {'id': 'cashflow_per_share_min_guidance_quarterly', 'description': 'Minimum guidance value for Cash Flow Per Share'}, {'id': 'cashflow_per_share_min_guidance', 'description': 'Cash Flow Per Share - Minimum guidance value for the annual period'}, {'id': 'cashflow_per_share_median_value', 'description': 'Cash Flow Per Share - Median value among forecasts'}, {'id': 'cashflow_per_share_maximum', 'description': 'Cash Flow - The highest estimation, per share, with a delay of 1 quarter'}, {'id': 'cashflow_per_share_max_guidance_quarterly', 'description': 'The maximum guidance value for Cash Flow Per Share.'}, {'id': 'cashflow_per_share_max_guidance', 'description': 'The maximum guidance value for Cash Flow Per Share on an annual basis.'}, {'id': 'cashflow_per_share_estimate_count', 'description': 'Cash Flow Per Share - number of estimations - delay1'}, {'id': 'cashflow_per_share_average', 'description': 'Cash Flow Per Share - average of estimations with a delay of 1 quarter'}, {'id': 'cash_flow_operations_min_guidance', 'description': 'Minimum guidance value for Cash Flow from Operations on an annual basis.'}, {'id': 'cash_flow_from_operations', 'description': 'Cash Flow from Operations - Value for the annual period'}, {'id': 'cash_flow_from_investing', 'description': 'Cash Flow from Investing - Value'}, {'id': 'cash_flow_from_financing', 'description': 'Cash Flow From Financing - Value'}, {'id': 'cash_flow_financing_max_guidance', 'description': 'Cash Flow From Financing - Maximum guidance value provided annually'}, {'id': 'capital_expenditure_reported_value', 'description': 'Capital Expenditures - Total (Cash Flow/Investing) (Millions)'}, {'id': 'capital_expenditure_max_guidance_qtr', 'description': 'The maximum guidance value for Capital Expenditures'}, {'id': 'capital_expenditure_guidance_value', 'description': 'Capital Expenditures - Total value for the annual guidance'}, {'id': 'capital_expenditure_amount', 'description': 'Capital Expenditures - Total value'}, {'id': 'book_value_per_share_reported_value', 'description': 'Book Value Per Share - Actual Value'}, {'id': 'book_value_per_share_min_guidance_qtr', 'description': 'Book value per share - minimum guidance value'}, {'id': 'book_value_per_share_2', 'description': 'Book Value Per Share - Actual Value'}, {'id': 'basic_shares_max_guidance_qtr', 'description': 'The maximum guidance value for Basic Shares.'}, {'id': 'anl4_under', 'description': 'The number of Underweight recommendations'}, {'id': 'anl4_totgw_number', 'description': 'Total Goodwill - number of estimations'}, {'id': 'anl4_totgw_median', 'description': 'Total Goodwill - median of estimations'}, {'id': 'anl4_totgw_mean', 'description': 'Total Goodwill - mean of estimations'}, {'id': 'anl4_totgw_low', 'description': 'Total Goodwill - The lowest estimation'}, {'id': 'anl4_totgw_high', 'description': 'Total Goodwill - The highest estimation'}, {'id': 'anl4_totassets_value', 'description': 'Total Assets - actual value'}, {'id': 'anl4_totassets_std', 'description': 'Total Assets - standard deviation of estimations'}, {'id': 'anl4_totassets_number', 'description': 'Total Assets - number of estimations'}, {'id': 'anl4_totassets_median', 'description': 'Total Assets - median of estimations'}, {'id': 'anl4_totassets_mean', 'description': 'Total Assets - mean of estimations'}, {'id': 'anl4_totassets_low', 'description': 'Total Assets - The lowest estimation'}, {'id': 'anl4_totassets_high', 'description': 'Total Assets - The highest estimation'}, {'id': 'anl4_totassets_flag', 'description': 'Total Assets - forecast type (revision/new/...)'}, {'id': 'anl4_total_rec', 'description': 'The total number of recommendations'}, {'id': 'anl4_tot_gw_ft', 'description': 'Total Goodwill - forecast type (revision/new/...)'}, {'id': 'anl4_tbvps_number', 'description': 'Tangible Book Value per Share - number of estimations'}, {'id': 'anl4_tbvps_median', 'description': 'Tangible Book Value per Share - median of estimations'}, {'id': 'anl4_tbvps_mean', 'description': 'Tangible Book Value per Share - mean of estimations'}, {'id': 'anl4_tbvps_low', 'description': 'Tangible Book Value per Share - The lowest estimation'}, {'id': 'anl4_tbvps_high', 'description': 'Tangible Book Value per Share - The highest estimation'}, {'id': 'anl4_tbve_ft', 'description': 'Tangible Book Value per Share - forecast type (revision/new/...)'}, {'id': 'anl4_rd_exp_number', 'description': 'Research and Development Expense - Number of Estimations'}, {'id': 'anl4_rd_exp_median', 'description': 'Research and Development Expense - Median of estimations'}, {'id': 'anl4_rd_exp_mean', 'description': 'Research and Development Expense - mean of estimations'}, {'id': 'anl4_rd_exp_low', 'description': 'Research and Development Expense - the lowest estimation'}, {'id': 'anl4_rd_exp_high', 'description': 'Research and Development Expense - the highest estimation'}, {'id': 'anl4_rd_exp_flag', 'description': 'Research and Development Expense - forecast type (revision/new/...)'}, {'id': 'anl4_qfv4_minguidance', 'description': 'Min guidance value'}, {'id': 'anl4_qfv4_median_eps', 'description': 'Earnings per share - median of estimations'}, {'id': 'anl4_qfv4_maxguidance', 'description': 'Max guidance value'}, {'id': 'anl4_qfv4_eps_number', 'description': 'Earnings per share - number of estimations'}, {'id': 'anl4_qfv4_eps_mean', 'description': 'Earnings per share - mean of estimations'}, {'id': 'anl4_qfv4_eps_low', 'description': 'Earnings per share - The lowest estimation'}, {'id': 'anl4_qfv4_eps_high', 'description': 'Earnings per share - The highest estimation'}, {'id': 'anl4_qfv4_dts_spe', 'description': 'Earnings per share - standard deviation of estimations'}, {'id': 'anl4_qfv4_div_number', 'description': 'Dividend - number of estimations'}, {'id': 'anl4_qfv4_div_median', 'description': 'Dividend per share - median of estimations'}, {'id': 'anl4_qfv4_div_mean', 'description': 'Dividend per share - mean of estimations'}, {'id': 'anl4_qfv4_div_low', 'description': 'Dividend per share - The lowest estimation'}, {'id': 'anl4_qfv4_div_high', 'description': 'Dividend per share - The highest estimation'}, {'id': 'anl4_qfv4_cfps_number', 'description': 'Cash Flow Per Share - number of estimations'}, {'id': 'anl4_qfv4_cfps_median', 'description': 'Cash Flow Per Share - Median value among forecasts'}, {'id': 'anl4_qfv4_cfps_mean', 'description': 'Cash Flow Per Share - average of estimations'}, {'id': 'anl4_qfv4_cfps_low', 'description': 'Cash Flow Per Share - The lowest estimation'}, {'id': 'anl4_qfv4_cfps_high', 'description': 'Cash Flow Per Share - The highest estimation for the quarter'}, {'id': 'anl4_qfv4_actual', 'description': 'Announced financial data'}, {'id': 'anl4_qfd1_azeps', 'description': 'EPS - aggregation on estimations, 50th percentile'}, {'id': 'anl4_qfd1_az_wol_vid', 'description': 'Dividend per share - The lowest value among forecasts'}, {'id': 'anl4_qfd1_az_wol_spfc', 'description': 'Cash Flow Per Share - The lowest estimation'}, {'id': 'anl4_qfd1_az_wol_spe', 'description': 'Earnings per share - The lowest estimation'}, {'id': 'anl4_qfd1_az_hgih_vid', 'description': 'Dividend per share - The highest estimation'}, {'id': 'anl4_qfd1_az_hgih_spfc', 'description': 'Cash Flow - The highest estimation, per share'}, {'id': 'anl4_qfd1_az_hgih_spe', 'description': 'Earnings per share - The highest estimation'}, {'id': 'anl4_qfd1_az_eps_number', 'description': 'Earnings per share - number of estimations'}, {'id': 'anl4_qfd1_az_dts_spe', 'description': 'Earnings per share - std of estimations'}, {'id': 'anl4_qfd1_az_div_number', 'description': 'Dividend per share - number of estimations'}, {'id': 'anl4_qfd1_az_div_median', 'description': 'Dividend per share - median of estimations'}, {'id': 'anl4_qfd1_az_cfps_number', 'description': 'Cash Flow Per Share - number of estimations'}, {'id': 'anl4_qfd1_az_cfps_median', 'description': 'Cash Flow Per Share - Median value among forecasts'}, {'id': 'anl4_qf_az_wol_vid', 'description': 'Dividend per share - The lowest value among forecasts'}, {'id': 'anl4_qf_az_wol_spfc', 'description': 'Cash Flow Per Share - The lowest estimation'}, {'id': 'anl4_qf_az_wol_spe', 'description': 'Earnings per share - The lowest estimation'}, {'id': 'anl4_qf_az_hgih_vid', 'description': 'Dividend per share - The highest estimation'}, {'id': 'anl4_qf_az_hgih_spfc', 'description': 'Cash Flow - The highest estimation, per share'}, {'id': 'anl4_qf_az_hgih_spe', 'description': 'Earnings per share - The highest estimation'}, {'id': 'anl4_qf_az_eps_number', 'description': 'Earnings per share - number of estimations'}, {'id': 'anl4_qf_az_eps_mean', 'description': 'Earnings per share - mean of estimations'}, {'id': 'anl4_qf_az_eps', 'description': 'EPS - aggregation on estimations, 50th percentile'}, {'id': 'anl4_qf_az_dts_spe', 'description': 'Earnings per share - std of estimations'}, {'id': 'anl4_qf_az_div_number', 'description': 'Dividend per share - number of estimations'}, {'id': 'anl4_qf_az_div_median', 'description': 'Dividend per share - median of estimations'}, {'id': 'anl4_qf_az_div_mean', 'description': 'Dividend per share - average of estimations'}, {'id': 'anl4_qf_az_cfps_number', 'description': 'Cash Flow Per Share - number of estimations'}, {'id': 'anl4_qf_az_cfps_median', 'description': 'Cash Flow Per Share - Median value among forecasts'}, {'id': 'anl4_qf_az_cfps_mean', 'description': 'Cash Flow Per Share - average of estimations'}, {'id': 'anl4_ptpr_number', 'description': 'Reported Pretax Income - number of estimations'}, {'id': 'anl4_ptpr_median', 'description': 'Reported pretax income - Median of estimations'}, {'id': 'anl4_ptpr_mean', 'description': 'Reported Pretax income - mean of estimations'}, {'id': 'anl4_ptpr_low', 'description': 'Reported Pretax Income - The Lowest Estimation'}, {'id': 'anl4_ptpr_high', 'description': 'Reported pretax income - the highest estimation'}, {'id': 'anl4_ptpr_flag', 'description': 'Reported Pretax income - forecast type (revision/new/...)'}, {'id': 'anl4_ptp_value', 'description': 'Pretax income- announced financial value'}, {'id': 'anl4_ptp_number', 'description': 'Pretax Income - number of estimations'}, {'id': 'anl4_ptp_median', 'description': 'Pretax income - median of estimations'}, {'id': 'anl4_ptp_mean', 'description': 'Pretax income - mean of estimations'}, {'id': 'anl4_ptp_low', 'description': 'Pretax income - the lowest estimation'}, {'id': 'anl4_ptp_high', 'description': 'Pretax income - the highest estimation'}, {'id': 'anl4_ptp_flag', 'description': 'Pretax income - forecast type (revision/new/...)'}, {'id': 'anl4_norec', 'description': 'The number of brokers with no recommendation'}, {'id': 'anl4_netprofita_value', 'description': 'Adjusted net income- announced financial value'}, {'id': 'anl4_netprofita_std', 'description': 'Adjusted net income - std of estimations'}, {'id': 'anl4_netprofita_number', 'description': 'Adjusted net income - number of estimations'}, {'id': 'anl4_netprofita_median', 'description': 'Adjusted net income - median of estimations'}, {'id': 'anl4_netprofita_mean', 'description': 'Adjusted net income - mean of estimations'}, {'id': 'anl4_netprofita_low', 'description': 'Adjusted net income - the lowest estimation'}, {'id': 'anl4_netprofita_high', 'description': 'Adjusted Net Income - the highest estimation'}, {'id': 'anl4_netprofit_value', 'description': 'Net profit- announced financial value'}, {'id': 'anl4_netprofit_std', 'description': 'Net profit - standard deviation of estimations'}, {'id': 'anl4_netprofit_number', 'description': 'Net profit - number of estimations'}, {'id': 'anl4_netprofit_median', 'description': 'Net profit - Median of estimations'}, {'id': 'anl4_netprofit_mean', 'description': 'Net profit - mean of estimations'}, {'id': 'anl4_netprofit_low', 'description': 'Net Profit - The Lowest Estimation'}, {'id': 'anl4_netprofit_high', 'description': 'Net Profit - The highest estimation'}, {'id': 'anl4_netprofit_flag', 'description': 'Net profit - forecast type (revision/new/...)'}, {'id': 'anl4_netdebt_number', 'description': 'Net debt - Number of estimations'}, {'id': 'anl4_netdebt_median', 'description': 'Net Debt - median of estimations'}, {'id': 'anl4_netdebt_mean', 'description': 'Net debt - mean of estimations'}, {'id': 'anl4_netdebt_low', 'description': 'Net debt - the lowest estimation'}, {'id': 'anl4_netdebt_high', 'description': 'Net debt - the highest estimation'}, {'id': 'anl4_netdebt_flag', 'description': 'Net debt - forecast type (revision/new/...)'}, {'id': 'anl4_medianepsbfam', 'description': 'Earnings before interest, taxes, depreciation and amortization - median of estimations'}, {'id': 'anl4_median_epsreported', 'description': 'GAAP Earnings per share - median of estimations'}, {'id': 'anl4_median_capexp', 'description': 'Capital Expenditures - median of estimations'}, {'id': 'anl4_mark', 'description': 'Recommendation consensus score'}, {'id': 'anl4_hold', 'description': 'The number of recommendations not clear about short or long the instrument'}, {'id': 'anl4_guiqfv4_est', 'description': 'Estimation value'}, {'id': 'anl4_guibasicqfv4_est', 'description': 'Estimation value'}, {'id': 'anl4_guiafv4_est', 'description': 'Estimation value'}, {'id': 'anl4_gric_value', 'description': 'Gross income- announced financial value'}, {'id': 'anl4_gric_std', 'description': 'Gross income - std of estimations'}, {'id': 'anl4_gric_number', 'description': 'Gross income - number of estimations'}, {'id': 'anl4_gric_median', 'description': 'Gross income - median of estimations'}, {'id': 'anl4_gric_mean', 'description': 'Gross income - mean of estimations'}, {'id': 'anl4_gric_low', 'description': 'Gross income - The lowest estimation'}, {'id': 'anl4_gric_high', 'description': 'Gross income - The highest estimation'}, {'id': 'anl4_gric_flag', 'description': 'Gross income - forecast type (revision/new/...)'}, {'id': 'anl4_fsguidanceqfv4_minguidance', 'description': 'Min guidance value'}, {'id': 'anl4_fsguidanceqfv4_maxguidance', 'description': 'Max guidance value'}, {'id': 'anl4_fsguidanceqfv4_item', 'description': 'Financial item'}, {'id': 'anl4_fsguidancebasicqfv4_item', 'description': 'Financial item'}, {'id': 'anl4_fsguidanceafv4_minguidance', 'description': 'Min guidance value'}, {'id': 'anl4_fsguidanceafv4_maxguidance', 'description': 'Maximum guidance value'}, {'id': 'anl4_fsguidanceafv4_item', 'description': 'Financial item'}, {'id': 'anl4_fsgdncbscv4_minguidance', 'description': 'Minimum guidance value'}, {'id': 'anl4_fsgdncbscv4_maxguidance', 'description': 'Max guidance value'}, {'id': 'anl4_fsdtlestmtsafv4_item', 'description': 'Financial item'}, {'id': 'anl4_fsdtlestmtqfv4_item', 'description': 'Financial item'}, {'id': 'anl4_fsdtlestmtbscv104_item', 'description': 'Financial item'}, {'id': 'anl4_fsdtlestmtbscqv104_item', 'description': 'Financial item'}, {'id': 'anl4_fsdtlestmtafv4_item', 'description': 'Financial item'}, {'id': 'anl4_fsdetailrecv4v104_item', 'description': 'Financial item'}, {'id': 'anl4_fsdetailltv4v104_item', 'description': 'Financial item'}, {'id': 'anl4_fsactualqfv4_item', 'description': 'Financial item'}, {'id': 'anl4_fsactualqfv4_actual', 'description': 'Announced financial data'}, {'id': 'anl4_fsactualafv4_item', 'description': 'Financial item'}, {'id': 'anl4_fsactualafv4_actual', 'description': 'Announced financial data'}, {'id': 'anl4_flag_erbfintax', 'description': 'Earnings before interest and taxes - forecast type (revision/new/...)'}, {'id': 'anl4_ffo_flag', 'description': 'Funds from Operation - forecast type (revision/new/...)'}, {'id': 'anl4_fcfps_number', 'description': 'Free Cash Flow per Share - number of estimations'}, {'id': 'anl4_fcfps_median', 'description': 'Free cash flow - summary on estimations, 50th-percentile, per share'}, {'id': 'anl4_fcfps_mean', 'description': 'Free cash flow per share - mean of estimations'}, {'id': 'anl4_fcfps_low', 'description': 'Free Cash Flow Per Share - the lowest estimation'}, {'id': 'anl4_fcfps_high', 'description': 'Free Cash Flow Per Share - the highest estimation'}, {'id': 'anl4_fcfps_flag', 'description': 'Free cash flow per share - forecast type (revision/new/...)'}, {'id': 'anl4_fcf_value', 'description': 'Free cash flow- announced financial value'}, {'id': 'anl4_fcf_number', 'description': 'Free Cash Flow - number of estimations'}, {'id': 'anl4_fcf_median', 'description': 'Free cash flow - aggregation on estimations, 50th percentile'}, {'id': 'anl4_fcf_mean', 'description': 'Free Cash Flow - mean of estimations'}, {'id': 'anl4_fcf_low', 'description': 'Free Cash Flow - The lowest estimation'}, {'id': 'anl4_fcf_high', 'description': 'Free cash flow - aggregation on estimations, max'}, {'id': 'anl4_fcf_flag', 'description': 'Free cash flow - forecast type (revision/new/...)'}, {'id': 'anl4_epsr_value', 'description': 'GAAP Earnings per share - announced financial value'}, {'id': 'anl4_epsr_number', 'description': 'GAAP Earnings per share - number of estimations'}, {'id': 'anl4_epsr_mean', 'description': 'GAAP Earnings per share - mean of estimations'}, {'id': 'anl4_epsr_low', 'description': 'GAAP Earnings per share - The lowest estimation'}, {'id': 'anl4_epsr_high', 'description': 'GAAP Earnings per share - The highest estimation'}, {'id': 'anl4_epsr_flag', 'description': 'GAAP Earnings - estimation type (revision/new/...), per share'}, {'id': 'anl4_epsa_flag', 'description': 'Earnings per share adjusted by excluding extraordinary items and stock option expenses - forecast type (revision/new/...)'}, {'id': 'anl4_ebitda_value', 'description': 'Earnings before interest, taxes, depreciation and amortization - announced financial value'}, {'id': 'anl4_ebitda_std', 'description': 'Earnings before interest, taxes, depreciation, and amortization - standard deviation of estimations'}, {'id': 'anl4_ebitda_number', 'description': 'Earnings before interest, taxes, depreciation and amortization - number of estimations'}, {'id': 'anl4_ebitda_mean', 'description': 'Earnings before interest, taxes, depreciation and amortization - mean of estimations'}, {'id': 'anl4_ebitda_low', 'description': 'Earnings before interest, taxes, depreciation and amortization - The lowest estimation'}, {'id': 'anl4_ebitda_high', 'description': 'Earnings before interest, taxes, depreciation, and amortization - the highest estimation'}, {'id': 'anl4_ebitda_flag', 'description': 'Earnings before interest, taxes, depreciation and amortization - forecast type (revision/new/...)'}, {'id': 'anl4_ebit_value', 'description': 'Earnings before interest and taxes - announced financial value'}, {'id': 'anl4_ebit_std', 'description': 'Earnings before interest and taxes - standard deviation of estimations'}, {'id': 'anl4_ebit_number', 'description': 'Earnings before interest and taxes - number of estimations'}, {'id': 'anl4_ebit_median', 'description': 'Earnings before interest and taxes - median of estimations'}, {'id': 'anl4_ebit_mean', 'description': 'Earnings before interest and taxes - mean of estimations'}, {'id': 'anl4_ebit_low', 'description': 'Earnings before interest and taxes - The lowest estimation'}, {'id': 'anl4_ebit_high', 'description': 'Earnings before interest and taxes - The highest estimation'}, {'id': 'anl4_eaz2lrec_ratingvalue', 'description': 'Score on the given instrument'}, {'id': 'anl4_eaz2lrec_person', 'description': 'Broker Id'}, {'id': 'anl4_eaz2lrec_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_eaz2lqfv110_prevval', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_eaz2lqfv110_person', 'description': 'Broker Id'}, {'id': 'anl4_eaz2lqfv110_estvalue', 'description': 'Estimation value'}, {'id': 'anl4_eaz2lqfv110_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_eaz2lltv110_prevval', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_eaz2lltv110_person', 'description': 'Broker Id'}, {'id': 'anl4_eaz2lltv110_estvalue', 'description': 'Estimation value'}, {'id': 'anl4_eaz2lltv110_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_eaz2lafv110_prevval', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_eaz2lafv110_person', 'description': 'Broker Id'}, {'id': 'anl4_eaz2lafv110_estvalue', 'description': 'Estimation value'}, {'id': 'anl4_eaz2lafv110_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_eaz1lqfv110_prevval', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_eaz1lqfv110_person', 'description': 'Broker Id'}, {'id': 'anl4_eaz1lqfv110_estvalue', 'description': 'Estimation value'}, {'id': 'anl4_eaz1lqfv110_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_eaz1laf_prevval', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_eaz1laf_person', 'description': 'Broker Id'}, {'id': 'anl4_eaz1laf_estvalue', 'description': 'Estimation value'}, {'id': 'anl4_eaz1laf_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_dts_rspe', 'description': 'Reported Earnings per share - standard deviation of estimations'}, {'id': 'anl4_dts_ptp', 'description': 'Pretax income - std of estimations'}, {'id': 'anl4_dez1safv4_preest', 'description': 'The previous estimation of finanicial item'}, {'id': 'anl4_dez1safv4_est', 'description': 'Estimation value'}, {'id': 'anl4_dez1qfv4_preest', 'description': 'The previous estimation of finanicial item'}, {'id': 'anl4_dez1qfv4_est', 'description': 'Estimation value'}, {'id': 'anl4_dez1basicqfv4v104_preest', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_dez1basicqfv4v104_est', 'description': 'Estimation value'}, {'id': 'anl4_dez1basicqfv4_preest', 'description': 'The previous estimation of finanicial item'}, {'id': 'anl4_dez1basicqfv4_est', 'description': 'Estimation value'}, {'id': 'anl4_dez1basicafv4v104_preest', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_dez1basicafv4v104_est', 'description': 'Estimation value'}, {'id': 'anl4_dez1basicafv4_preest', 'description': 'The previous estimation of finanicial item'}, {'id': 'anl4_dez1basicafv4_est', 'description': 'Estimation value'}, {'id': 'anl4_dez1afv4_preest', 'description': 'The previous estimation of finanicial item'}, {'id': 'anl4_dez1afv4_est', 'description': 'Estimation value'}, {'id': 'anl4_detailrecv4v104_est', 'description': 'Estimation value'}, {'id': 'anl4_detailrecv4_est', 'description': 'Estimation value for recommendation detail'}, {'id': 'anl4_detailltv4v104_preest', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_detailltv4v104_est', 'description': 'Estimation value'}, {'id': 'anl4_detailltv4_preest', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_detailltv4_est', 'description': 'Long term estimation value'}, {'id': 'anl4_dei3lrec_item', 'description': 'Financial item'}, {'id': 'anl4_dei3lqfv110_item', 'description': 'Financial item'}, {'id': 'anl4_dei3lltv110_item', 'description': 'Financial item'}, {'id': 'anl4_dei3lafv110_item', 'description': 'Financial item'}, {'id': 'anl4_dei2lqfv110_item', 'description': 'Financial item'}, {'id': 'anl4_dei2laf_item', 'description': 'Financial item'}, {'id': 'anl4_cuo1guidaf_minguidance', 'description': 'Minimum guidance value'}, {'id': 'anl4_cuo1guidaf_maxguidance', 'description': 'Max guidance value'}, {'id': 'anl4_cuo1guidaf_item', 'description': 'Financial item'}, {'id': 'anl4_cuo1detailqfv110_item', 'description': 'Financial item'}, {'id': 'anl4_cuo1detailafv110_item', 'description': 'Financial item'}, {'id': 'anl4_cuo1conqfv110_item', 'description': 'Financial item'}, {'id': 'anl4_cuo1conafv110_item', 'description': 'Financial item'}, {'id': 'anl4_cuo1actualqfv110_item', 'description': 'Financial item'}, {'id': 'anl4_cuo1actualqfv110_actual', 'description': 'Announced financial data'}, {'id': 'anl4_cfo_value', 'description': 'Cash Flow From Operations - announced financial value'}, {'id': 'anl4_cfo_number', 'description': 'Cash Flow From Operations - number of estimations'}, {'id': 'anl4_cfo_median', 'description': 'Cash Flow From Operations - median of estimations'}, {'id': 'anl4_cfo_mean', 'description': 'Cash Flow From Operations - mean of estimations'}, {'id': 'anl4_cfo_low', 'description': 'Cash Flow From Operations - The lowest estimation'}, {'id': 'anl4_cfo_high', 'description': 'Cash Flow From Operations - The highest value among forecasts'}, {'id': 'anl4_cfo_flag', 'description': 'Cash Flow From Operations - forecast type (revision/new/...)'}, {'id': 'anl4_cfi_value', 'description': 'Cash Flow From Investing - announced financial value'}, {'id': 'anl4_cfi_number', 'description': 'Cash Flow From Investing - number of estimations'}, {'id': 'anl4_cfi_median', 'description': 'Cash Flow From Investing - median of estimations'}, {'id': 'anl4_cfi_mean', 'description': 'Cash Flow From Investing - mean of estimations'}, {'id': 'anl4_cfi_low', 'description': 'Cash Flow From Investing - The lowest estimation'}, {'id': 'anl4_cfi_high', 'description': 'Cash Flow From Investing - The highest estimation'}, {'id': 'anl4_cfi_flag', 'description': 'Cash Flow From Investing - forecast type (revision/new/...)'}, {'id': 'anl4_cff_value', 'description': 'Cash Flow From Financing - announced financial value'}, {'id': 'anl4_cff_number', 'description': 'Cash Flow From Financing - number of estimations'}, {'id': 'anl4_cff_median', 'description': 'Cash Flow From Financing Activities - Median value among forecasts'}, {'id': 'anl4_cff_mean', 'description': 'Cash Flow From Financing - mean of estimations'}, {'id': 'anl4_cff_low', 'description': 'Cash Flow From Financing - The lowest estimation'}, {'id': 'anl4_cff_high', 'description': 'Cash Flow From Financing - The highest of forecasted values'}, {'id': 'anl4_cff_flag', 'description': 'Cash Flow From Financing Activities - forecast type (revision/new/...)'}, {'id': 'anl4_capex_value', 'description': 'Capital Expenditures - announced financial value'}, {'id': 'anl4_capex_std', 'description': 'Capital Expenditures - standard deviation of estimations'}, {'id': 'anl4_capex_number', 'description': 'Capital Expenditures - number of estimations'}, {'id': 'anl4_capex_mean', 'description': 'Capital Expenditures - mean of estimations'}, {'id': 'anl4_capex_low', 'description': 'Capital Expenditures - The lowest estimation'}, {'id': 'anl4_capex_high', 'description': 'Capital Expenditures - The highest estimation'}, {'id': 'anl4_capex_flag', 'description': 'Capital Expenditures - forecast type (revision/new/...)'}, {'id': 'anl4_bvps_value', 'description': 'Book value per share - announced financial value'}, {'id': 'anl4_bvps_number', 'description': 'Book value per share - number of estimations'}, {'id': 'anl4_bvps_median', 'description': 'Book value per share - Median value among forecasts'}, {'id': 'anl4_bvps_mean', 'description': 'Book value per share - average of estimations'}, {'id': 'anl4_bvps_low', 'description': 'Book value - the lowest estimation, per share'}, {'id': 'anl4_bvps_high', 'description': 'Book value - the highest estimation, per share'}, {'id': 'anl4_bvps_flag', 'description': 'Book value per share - forecast type (revision/new/...)'}, {'id': 'anl4_buy', 'description': 'The number of recommendations to long the instrument'}, {'id': 'anl4_baz1v110_prevval', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_baz1v110_person', 'description': 'Broker Id'}, {'id': 'anl4_baz1v110_estvalue', 'description': 'Estimation value'}, {'id': 'anl4_baz1v110_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_basicqfv4_minguidance', 'description': 'Min guidance value'}, {'id': 'anl4_basicqfv4_maxguidance', 'description': 'Max guidance value'}, {'id': 'anl4_basicqfv4_actual', 'description': 'Announced financial data'}, {'id': 'anl4_basicdetailrec_ratingvalue', 'description': 'Score on the given instrument'}, {'id': 'anl4_basicdetailrec_person', 'description': 'Broker Id'}, {'id': 'anl4_basicdetailrec_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_basicdetailqfv110_prevval', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_basicdetailqfv110_person', 'description': 'Broker Id'}, {'id': 'anl4_basicdetailqfv110_estvalue', 'description': 'Estimation value'}, {'id': 'anl4_basicdetailqfv110_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_basicdetaillt_prevval', 'description': 'The Previous Estimation of Financial Item'}, {'id': 'anl4_basicdetaillt_person', 'description': 'Broker Id'}, {'id': 'anl4_basicdetaillt_estvalue', 'description': 'Estimation value'}, {'id': 'anl4_basicdetaillt_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_basicconqfv110_pu', 'description': 'The number of upper estimations'}, {'id': 'anl4_basicconqfv110_numest', 'description': 'The number of forecasts counted in aggregation'}, {'id': 'anl4_basicconqfv110_median', 'description': 'Median of estimations'}, {'id': 'anl4_basicconqfv110_mean', 'description': 'Mean of estimations'}, {'id': 'anl4_basicconqfv110_low', 'description': 'The lowest estimation'}, {'id': 'anl4_basicconqfv110_high', 'description': 'The highest estimation'}, {'id': 'anl4_basicconqfv110_down', 'description': 'Number of lower estimations'}, {'id': 'anl4_basicconltv110_pu', 'description': 'The number of upper estimations'}, {'id': 'anl4_basicconltv110_numest', 'description': 'The number of forecasts counted in aggregation'}, {'id': 'anl4_basicconltv110_median', 'description': 'Median of estimations'}, {'id': 'anl4_basicconltv110_mean', 'description': 'Mean of estimations'}, {'id': 'anl4_basicconltv110_low', 'description': 'The lowest estimation'}, {'id': 'anl4_basicconltv110_high', 'description': 'The highest estimation'}, {'id': 'anl4_basicconltv110_down', 'description': 'Number of lower estimations'}, {'id': 'anl4_basicconafv110_pu', 'description': 'The number of upper estimations'}, {'id': 'anl4_basicconafv110_numest', 'description': 'The number of forecasts counted in aggregation'}, {'id': 'anl4_basicconafv110_median', 'description': 'Median of estimations'}, {'id': 'anl4_basicconafv110_mean', 'description': 'Mean of estimations'}, {'id': 'anl4_basicconafv110_low', 'description': 'The lowest estimation'}, {'id': 'anl4_basicconafv110_high', 'description': 'The highest estimation'}, {'id': 'anl4_basicconafv110_down', 'description': 'Number of lower estimations'}, {'id': 'anl4_basicafv4_actual', 'description': 'Announced financial data for the annual period.'}, {'id': 'anl4_bac1detailrec_item', 'description': 'Financial item'}, {'id': 'anl4_bac1detailqfv110_item', 'description': 'Financial item'}, {'id': 'anl4_bac1detaillt_item', 'description': 'Financial item'}, {'id': 'anl4_bac1detailafv110_item', 'description': 'Financial item'}, {'id': 'anl4_bac1conrecv110_item', 'description': 'Financial item'}, {'id': 'anl4_bac1conqfv110_item', 'description': 'Financial item'}, {'id': 'anl4_bac1conltv110_item', 'description': 'Financial item'}, {'id': 'anl4_bac1conafv110_item', 'description': 'Financial item'}, {'id': 'anl4_bac1actualqfv110_item', 'description': 'Financial item'}, {'id': 'anl4_bac1actualqfv110_actual', 'description': 'Announced financial data'}, {'id': 'anl4_afv4_minguidance', 'description': 'Min guidance value'}, {'id': 'anl4_afv4_median_eps', 'description': 'Earnings per share - median of estimations'}, {'id': 'anl4_afv4_maxguidance', 'description': 'Max guidance value'}, {'id': 'anl4_afv4_eps_number', 'description': 'Earnings per share - number of estimations for annual frequency'}, {'id': 'anl4_afv4_eps_mean', 'description': 'Earnings per share - mean of estimations for annual frequency'}, {'id': 'anl4_afv4_eps_low', 'description': 'Earnings per share - The lowest estimation for annual frequency'}, {'id': 'anl4_afv4_eps_high', 'description': 'Earnings per share - The highest estimation'}, {'id': 'anl4_afv4_dts_spe', 'description': 'Earnings per share - standard deviation of estimations'}, {'id': 'anl4_afv4_div_std', 'description': 'Dividend per share - standard deviation of estimations'}, {'id': 'anl4_afv4_div_number', 'description': 'Number of estimations for Dividend per share - annually'}, {'id': 'anl4_afv4_div_median', 'description': 'Dividend per share - Median value among forecasts'}, {'id': 'anl4_afv4_div_mean', 'description': 'Dividend per share - average of estimations for annual frequency'}, {'id': 'anl4_afv4_div_low', 'description': 'Dividend - The lowest estimation for the annual forecast'}, {'id': 'anl4_afv4_div_high', 'description': 'Dividend per share - The highest estimation for the annual forecast.'}, {'id': 'anl4_afv4_cfps_number', 'description': 'Cash Flow Per Share - number of estimations for annual frequency'}, {'id': 'anl4_afv4_cfps_median', 'description': 'Cash Flow Per Share - Median value among forecasts for the annual frequency'}, {'id': 'anl4_afv4_cfps_mean', 'description': 'Cash Flow Per Share - average of estimations for the annual frequency'}, {'id': 'anl4_afv4_cfps_low', 'description': 'Cash Flow Per Share - The lowest estimation for the upcoming fiscal year'}, {'id': 'anl4_afv4_cfps_high', 'description': 'Cash Flow Per Share - The highest estimation for the annual forecast'}, {'id': 'anl4_afv4_actual', 'description': 'Announced financial data'}, {'id': 'anl4_af_eps_value', 'description': 'Earnings Per Share - Actual Value'}, {'id': 'anl4_af_div_value', 'description': 'Dividend - Actual value'}, {'id': 'anl4_af_cfps_value', 'description': 'Cash Flow Per Share - Actual Value'}, {'id': 'anl4_ady_pu', 'description': 'The number of upper estimations'}, {'id': 'anl4_ady_numest', 'description': 'The number of forecasts counted in aggregation'}, {'id': 'anl4_ady_median', 'description': 'Median of estimations'}, {'id': 'anl4_ady_mean', 'description': 'Mean of estimations'}, {'id': 'anl4_ady_low', 'description': 'The lowest estimation'}, {'id': 'anl4_ady_high', 'description': 'The highest estimation'}, {'id': 'anl4_ady_down', 'description': 'Number of lower estimations'}, {'id': 'anl4_adxqfv110_pu', 'description': 'The number of upper estimations'}, {'id': 'anl4_adxqfv110_numest', 'description': 'The number of forecasts counted in aggregation'}, {'id': 'anl4_adxqfv110_median', 'description': 'Median of estimations'}, {'id': 'anl4_adxqfv110_mean', 'description': 'Mean of estimations'}, {'id': 'anl4_adxqfv110_low', 'description': 'The lowest estimation'}, {'id': 'anl4_adxqfv110_high', 'description': 'The highest estimation'}, {'id': 'anl4_adxqfv110_down', 'description': 'Number of lower estimations'}, {'id': 'anl4_ads1detailqfv110_prevval', 'description': 'The previous estimation of financial item'}, {'id': 'anl4_ads1detailqfv110_person', 'description': 'Broker Id'}, {'id': 'anl4_ads1detailqfv110_estvalue', 'description': 'Estimation value'}, {'id': 'anl4_ads1detailqfv110_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_ads1detailafv110_prevval', 'description': 'The Previous Estimation of Financial Item'}, {'id': 'anl4_ads1detailafv110_person', 'description': 'Broker Id'}, {'id': 'anl4_ads1detailafv110_estvalue', 'description': 'Estimation value'}, {'id': 'anl4_ads1detailafv110_bk', 'description': 'Broker name (int)'}, {'id': 'anl4_adjusted_netincome_ft', 'description': 'Adjusted net income - forecast type (revision/new/...)'}, {'id': 'actuals_value_currency_code', 'description': 'Pricing Currency where the security trades'}, {'id': 'actuals_reporting_currency', 'description': 'Home currency of instrument'}, {'id': 'actual_sales_value_quarterly', 'description': 'Sales - Value in financial services income statement (in millions)'}, {'id': 'actual_sales_value_annual', 'description': 'Sales - Actual Value'}, {'id': 'actual_eps_value_quarterly', 'description': 'Earnings Per Share (Income Statement/Per Share) (Actual)'}, {'id': 'actual_dividend_value_quarterly', 'description': 'Dividend - Actual value for the quarter'}, {'id': 'actual_cashflow_per_share_value_quarterly', 'description': 'Cash Flow Per Share - actual value for the quarter'}] +} \ No newline at end of file diff --git a/fetch-alphas/alpha_one_week_all.csv b/fetch-alphas/alpha_one_week_all.csv new file mode 100644 index 0000000..95dc658 --- /dev/null +++ b/fetch-alphas/alpha_one_week_all.csv @@ -0,0 +1,101 @@ +id,type,author,settings,regular,dateCreated,dateSubmitted,dateModified,name,favorite,hidden,color,category,tags,classifications,grade,stage,status,is,os,train,test,prod,competitions,themes,pyramids,pyramidThemes,team,osmosisPoints +P06LOpwL,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(research_development_expense_reported_value, anl4_fcfps_mean), anl4_totassets_std)', 'description': None, 'operatorCount': 2}",2026-03-23T15:30:23-04:00,,2026-03-23T15:30:24-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -3105489, 'bookSize': 20000000, 'longCount': 1864, 'shortCount': 1265, 'turnover': 0.1696, 'returns': -0.0311, 'drawdown': 0.4068, 'margin': -0.000367, 'sharpe': -0.42, 'fitness': -0.18, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.42}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.18}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1696}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1696}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.18, 'value': -0.37}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.11, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +npoG87Jl,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(earnings_per_share_reported_value, anl4_fcfps_mean), anl4_ebit_std)', 'description': None, 'operatorCount': 2}",2026-03-23T15:31:34-04:00,,2026-03-23T15:31:35-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 5842818, 'bookSize': 20000000, 'longCount': 1637, 'shortCount': 1491, 'turnover': 0.1584, 'returns': 0.0585, 'drawdown': 0.19, 'margin': 0.000739, 'sharpe': 0.57, 'fitness': 0.35, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.57}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.35}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1584}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1584}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2021-10-15', 'limit': 0.1, 'value': 0.193524}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.25, 'value': 0.85}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.58, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +O0kdxzYd,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(operating_cashflow_reported_value, anl4_fcfps_mean), anl4_netprofita_std)', 'description': None, 'operatorCount': 2}",2026-03-23T15:34:52-04:00,,2026-03-23T15:34:53-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 379569, 'bookSize': 20000000, 'longCount': 1558, 'shortCount': 1571, 'turnover': 0.1231, 'returns': 0.0038, 'drawdown': 0.13, 'margin': 6.2e-05, 'sharpe': 0.1, 'fitness': 0.02, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.1}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1231}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1231}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.04, 'value': 0.3}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.17, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +le2wNwgx,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(total_goodwill_reported_value, anl4_fcfps_mean), anl4_gric_std)', 'description': None, 'operatorCount': 2}",2026-03-23T20:55:53-04:00,,2026-03-23T20:55:53-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -625448, 'bookSize': 20000000, 'longCount': 1635, 'shortCount': 1494, 'turnover': 0.1133, 'returns': -0.0063, 'drawdown': 0.1826, 'margin': -0.000111, 'sharpe': -0.16, 'fitness': -0.04, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.16}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.04}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1133}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1133}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.07, 'value': -0.17}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.03, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +QPjRowww,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(anl4_qfv4_cfps_high, anl4_qfv4_cfps_low), abs(anl4_qfd1_az_cfps_median))', 'description': None, 'operatorCount': 3}",2026-03-23T20:57:42-04:00,,2026-03-23T20:57:42-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -1155329, 'bookSize': 20000000, 'longCount': 1600, 'shortCount': 1529, 'turnover': 0.0959, 'returns': -0.0116, 'drawdown': 0.234, 'margin': -0.000241, 'sharpe': -0.24, 'fitness': -0.07, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.24}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.07}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0959}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0959}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.1, 'value': -0.3}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.88, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +QPjRAP3Q,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(selling_general_admin_expense_reported_value, anl4_fcfps_mean), anl4_netprofita_std)', 'description': None, 'operatorCount': 2}",2026-03-23T20:58:39-04:00,,2026-03-23T20:58:40-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 10165, 'bookSize': 20000000, 'longCount': 1753, 'shortCount': 1375, 'turnover': 0.1121, 'returns': 0.0001, 'drawdown': 0.1275, 'margin': 2e-06, 'sharpe': 0.0, 'fitness': 0.0, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.0}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.0}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1121}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1121}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': 0.0, 'value': -0.18}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.19, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +88rWZ5Kv,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(stock_option_expense_max_guidance_qtr, stock_option_expense_max_guidance_qtr)', 'description': None, 'operatorCount': 1}",2026-03-23T20:59:01-04:00,,2026-03-23T20:59:01-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 0, 'bookSize': 0, 'longCount': 0, 'shortCount': 0, 'turnover': 0.0, 'returns': 0.0, 'drawdown': 0.0, 'margin': 0.0, 'sharpe': 0.0, 'fitness': None, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.0}, {'name': 'LOW_FITNESS', 'result': 'ERROR', 'limit': 1.0}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'ERROR'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'IS_LADDER_SHARPE', 'result': 'PENDING'}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +3qxmOLPg,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(free_cash_flow_reported_value, anl4_afv4_cfps_mean), anl4_ebit_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:01:46-04:00,,2026-03-23T21:01:47-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 4049521, 'bookSize': 20000000, 'longCount': 1542, 'shortCount': 1587, 'turnover': 0.1378, 'returns': 0.0406, 'drawdown': 0.258, 'margin': 0.000589, 'sharpe': 0.39, 'fitness': 0.21, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.39}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.21}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1378}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1378}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2022-03-04', 'limit': 0.1, 'value': 0.197955}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.17, 'value': 0.69}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.48, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +0mdZLvZk,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'ts_delta(add(min_total_assets_guidance_2, min_total_assets_guidance_2), 20)', 'description': None, 'operatorCount': 2}",2026-03-23T21:01:49-04:00,,2026-03-23T21:01:50-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 512659, 'bookSize': 20000000, 'longCount': 1953, 'shortCount': 1175, 'turnover': 0.1607, 'returns': 0.0051, 'drawdown': 0.119, 'margin': 6.4e-05, 'sharpe': 0.14, 'fitness': 0.02, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.14}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1607}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1607}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.06, 'value': 0.12}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.26, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +1YL3RvG6,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(net_debt_reported_value, anl4_fcfps_mean), anl4_capex_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:02:47-04:00,,2026-03-23T21:02:48-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -2803477, 'bookSize': 20000000, 'longCount': 1554, 'shortCount': 1575, 'turnover': 0.1186, 'returns': -0.0281, 'drawdown': 0.3423, 'margin': -0.000474, 'sharpe': -0.6, 'fitness': -0.28, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.6}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.28}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1186}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1186}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.26, 'value': -0.36}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.34, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +88rWZ6qo,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(gross_income_reported_value, anl4_afv4_cfps_mean), anl4_gric_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:05:00-04:00,,2026-03-23T21:05:00-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1281767, 'bookSize': 20000000, 'longCount': 1598, 'shortCount': 1531, 'turnover': 0.1407, 'returns': 0.0128, 'drawdown': 0.1589, 'margin': 0.000183, 'sharpe': 0.27, 'fitness': 0.08, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.27}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.08}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1407}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1407}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': 0.12, 'value': -0.2}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 1.08, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +pwEbkzag,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(net_profit_reported_value, anl4_afv4_cfps_mean), anl4_ebitda_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:05:16-04:00,,2026-03-23T21:05:16-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -809330, 'bookSize': 20000000, 'longCount': 1481, 'shortCount': 1648, 'turnover': 0.1695, 'returns': -0.0081, 'drawdown': 0.3261, 'margin': -9.6e-05, 'sharpe': -0.13, 'fitness': -0.03, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.13}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.03}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1695}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1695}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2022-05-03', 'limit': 0.1, 'value': 0.174387}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.06, 'value': -0.01}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.21, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +RRYxo8Y1,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(net_debt_min_guidance_qtr, net_debt_min_guidance_qtr)', 'description': None, 'operatorCount': 1}",2026-03-23T21:09:08-04:00,,2026-03-23T21:09:09-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 0, 'bookSize': 0, 'longCount': 0, 'shortCount': 0, 'turnover': 0.0, 'returns': 0.0, 'drawdown': 0.0, 'margin': 0.0, 'sharpe': 0.0, 'fitness': None, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.0}, {'name': 'LOW_FITNESS', 'result': 'ERROR', 'limit': 1.0}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'ERROR'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'IS_LADDER_SHARPE', 'result': 'PENDING'}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +LL6ow1KM,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(shareholders_equity_reported_value, anl4_fcfps_mean), anl4_netprofit_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:09:21-04:00,,2026-03-23T21:09:22-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 698160, 'bookSize': 20000000, 'longCount': 1564, 'shortCount': 1565, 'turnover': 0.1206, 'returns': 0.007, 'drawdown': 0.1523, 'margin': 0.000116, 'sharpe': 0.18, 'fitness': 0.04, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.18}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.04}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1206}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1206}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.08, 'value': 0.35}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.63, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +9qK53VWo,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'multiply(anl4_afv4_cfps_mean, log(add(anl4_afv4_cfps_number, 1)))', 'description': None, 'operatorCount': 3}",2026-03-23T21:11:28-04:00,,2026-03-23T21:11:28-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -4355234, 'bookSize': 20000000, 'longCount': 1274, 'shortCount': 1855, 'turnover': 0.1261, 'returns': -0.0436, 'drawdown': 0.5487, 'margin': -0.000692, 'sharpe': -0.74, 'fitness': -0.44, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.74}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.44}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1261}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1261}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.32, 'value': -0.32}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.32, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +A1bX50vR,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(pretax_income_max_guidance_qtr, pretax_income_max_guidance_qtr)', 'description': None, 'operatorCount': 1}",2026-03-23T21:11:28-04:00,,2026-03-23T21:11:28-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 0, 'bookSize': 0, 'longCount': 0, 'shortCount': 0, 'turnover': 0.0, 'returns': 0.0, 'drawdown': 0.0, 'margin': 0.0, 'sharpe': 0.0, 'fitness': None, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.0}, {'name': 'LOW_FITNESS', 'result': 'ERROR', 'limit': 1.0}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'ERROR'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'IS_LADDER_SHARPE', 'result': 'PENDING'}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +0mdZLX12,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(gross_income_reported_value, anl4_fcfps_mean), anl4_netprofita_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:12:15-04:00,,2026-03-23T21:12:16-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -511489, 'bookSize': 20000000, 'longCount': 1653, 'shortCount': 1476, 'turnover': 0.1172, 'returns': -0.0051, 'drawdown': 0.1855, 'margin': -8.7e-05, 'sharpe': -0.13, 'fitness': -0.03, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.13}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.03}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1172}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1172}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.06, 'value': -0.0}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.1, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +RRYxo5Oe,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(total_assets_reported_value, anl4_afv4_cfps_mean), anl4_ebit_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:14:54-04:00,,2026-03-23T21:14:54-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -4660994, 'bookSize': 20000000, 'longCount': 1579, 'shortCount': 1549, 'turnover': 0.1299, 'returns': -0.0467, 'drawdown': 0.5601, 'margin': -0.000719, 'sharpe': -0.47, 'fitness': -0.28, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.47}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.28}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1299}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1299}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2022-03-04', 'limit': 0.1, 'value': 0.191873}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.2, 'value': -0.73}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.51, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +MPXvndlz,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'ts_delta(add(sales_max_guidance_value, sales_max_guidance_value), 20)', 'description': None, 'operatorCount': 2}",2026-03-23T21:15:03-04:00,,2026-03-23T21:15:04-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -2213600, 'bookSize': 20000000, 'longCount': 1634, 'shortCount': 1494, 'turnover': 0.2011, 'returns': -0.0222, 'drawdown': 0.2943, 'margin': -0.000221, 'sharpe': -0.48, 'fitness': -0.16, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.48}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.16}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.2011}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.2011}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.21, 'value': -0.21}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.32, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +npoGlQ5x,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(ebit_reported_value, anl4_afv4_cfps_mean), anl4_totassets_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:17:05-04:00,,2026-03-23T21:17:06-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 343227, 'bookSize': 20000000, 'longCount': 1494, 'shortCount': 1634, 'turnover': 0.1732, 'returns': 0.0034, 'drawdown': 0.266, 'margin': 4e-05, 'sharpe': 0.04, 'fitness': 0.01, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.04}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.01}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1732}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1732}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2023-07-10', 'limit': 0.1, 'value': 0.129216}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': 0.02, 'value': -0.11}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.18, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +O0kdj2lJ,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(net_debt_reported_value, anl4_fcfps_mean), anl4_gric_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:18:20-04:00,,2026-03-23T21:18:20-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 948662, 'bookSize': 20000000, 'longCount': 1550, 'shortCount': 1578, 'turnover': 0.1319, 'returns': 0.0095, 'drawdown': 0.1228, 'margin': 0.000144, 'sharpe': 0.2, 'fitness': 0.05, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.2}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.05}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1319}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1319}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2021-01-25', 'limit': 0.1, 'value': 0.100093}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.09, 'value': 0.13}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.24, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +aklm80KR,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(research_development_expense_reported_value, anl4_afv4_cfps_mean), anl4_totassets_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:20:21-04:00,,2026-03-23T21:20:22-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 291208, 'bookSize': 20000000, 'longCount': 1883, 'shortCount': 1246, 'turnover': 0.1642, 'returns': 0.0029, 'drawdown': 0.2036, 'margin': 3.6e-05, 'sharpe': 0.04, 'fitness': 0.01, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.04}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.01}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1642}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1642}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2023-07-07', 'limit': 0.1, 'value': 0.126473}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.02, 'value': 0.11}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.45, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +MPXvnrXr,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(net_debt_reported_value, anl4_fcfps_mean), anl4_ebit_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:20:40-04:00,,2026-03-23T21:20:41-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1297480, 'bookSize': 20000000, 'longCount': 1602, 'shortCount': 1526, 'turnover': 0.1175, 'returns': 0.013, 'drawdown': 0.2458, 'margin': 0.000221, 'sharpe': 0.16, 'fitness': 0.05, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.16}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.05}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1175}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1175}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2021-09-29', 'limit': 0.1, 'value': 0.185952}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.07, 'value': 0.48}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.3, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +E5bnMdqm,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(earnings_per_share_reported_value, anl4_fcfps_mean), anl4_netprofita_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:20:43-04:00,,2026-03-23T21:20:43-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1922695, 'bookSize': 20000000, 'longCount': 1587, 'shortCount': 1541, 'turnover': 0.1482, 'returns': 0.0193, 'drawdown': 0.1019, 'margin': 0.00026, 'sharpe': 0.37, 'fitness': 0.13, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.37}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.13}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1482}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1482}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.16, 'value': 0.22}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.22, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +6X16QkzY,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(ebit_reported_value, anl4_fcfps_mean), anl4_ebit_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:20:44-04:00,,2026-03-23T21:20:44-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 5869544, 'bookSize': 20000000, 'longCount': 1512, 'shortCount': 1616, 'turnover': 0.1372, 'returns': 0.0588, 'drawdown': 0.222, 'margin': 0.000857, 'sharpe': 0.56, 'fitness': 0.37, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.56}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.37}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1372}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1372}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2022-05-17', 'limit': 0.1, 'value': 0.199701}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.24, 'value': 0.74}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.57, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +E5bnP5w1,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(shareholders_equity_reported_value, anl4_afv4_cfps_mean), anl4_netprofita_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:22:26-04:00,,2026-03-23T21:22:27-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -2025381, 'bookSize': 20000000, 'longCount': 1555, 'shortCount': 1573, 'turnover': 0.1138, 'returns': -0.0203, 'drawdown': 0.2804, 'margin': -0.000357, 'sharpe': -0.53, 'fitness': -0.21, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.53}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.21}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1138}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1138}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.23, 'value': -0.05}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.9, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +wp17kKa6,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(book_value_per_share_reported_value, anl4_fcfps_mean), anl4_totassets_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:23:02-04:00,,2026-03-23T21:23:03-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -1547480, 'bookSize': 20000000, 'longCount': 1793, 'shortCount': 1336, 'turnover': 0.1342, 'returns': -0.0155, 'drawdown': 0.3329, 'margin': -0.000231, 'sharpe': -0.3, 'fitness': -0.1, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.3}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.1}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1342}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1342}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2020-12-17', 'limit': 0.1, 'value': 0.127807}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.13, 'value': -0.25}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 1.0, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +2rRVo8NZ,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(anl4_afv4_cfps_high, anl4_qfv4_cfps_low), abs(anl4_qf_az_cfps_median))', 'description': None, 'operatorCount': 3}",2026-03-23T21:23:02-04:00,,2026-03-23T21:23:03-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 206282, 'bookSize': 20000000, 'longCount': 1411, 'shortCount': 1717, 'turnover': 0.0966, 'returns': 0.0021, 'drawdown': 0.2217, 'margin': 4.3e-05, 'sharpe': 0.04, 'fitness': 0.01, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.04}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.01}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0966}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0966}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.02, 'value': 0.25}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.56, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +mLAnWRz9,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(earnings_per_share_reported_value, anl4_fcfps_mean), anl4_totassets_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:24:33-04:00,,2026-03-23T21:24:33-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -1143352, 'bookSize': 20000000, 'longCount': 1534, 'shortCount': 1594, 'turnover': 0.1937, 'returns': -0.0115, 'drawdown': 0.2637, 'margin': -0.000118, 'sharpe': -0.14, 'fitness': -0.03, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.14}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.03}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1937}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1937}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2017-06-28', 'limit': 0.1, 'value': 0.113845}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.06, 'value': -0.03}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.2, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +N16ElvML,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(pretax_income_actual_reported_value, anl4_afv4_cfps_mean), anl4_netprofita_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:25:04-04:00,,2026-03-23T21:25:05-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 3052760, 'bookSize': 20000000, 'longCount': 1482, 'shortCount': 1646, 'turnover': 0.1203, 'returns': 0.0306, 'drawdown': 0.0897, 'margin': 0.000509, 'sharpe': 0.65, 'fitness': 0.32, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.65}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.32}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1203}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1203}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.28, 'value': 0.57}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.27, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +gJKNVE3Q,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(research_development_expense_reported_value, anl4_afv4_cfps_mean), anl4_capex_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:25:11-04:00,,2026-03-23T21:25:12-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 2117901, 'bookSize': 20000000, 'longCount': 1784, 'shortCount': 1345, 'turnover': 0.137, 'returns': 0.0212, 'drawdown': 0.2292, 'margin': 0.00031, 'sharpe': 0.26, 'fitness': 0.1, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.26}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.1}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.137}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.137}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2021-09-27', 'limit': 0.1, 'value': 0.157604}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.11, 'value': 0.41}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.1, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +E5bnPYvm,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(anl4_ebitda_std, abs(anl4_afv4_cfps_mean))', 'description': None, 'operatorCount': 2}",2026-03-23T21:28:35-04:00,,2026-03-23T21:28:36-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -3166295, 'bookSize': 20000000, 'longCount': 1459, 'shortCount': 1670, 'turnover': 0.1163, 'returns': -0.0317, 'drawdown': 0.3635, 'margin': -0.000546, 'sharpe': -0.54, 'fitness': -0.27, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.54}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.27}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1163}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1163}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2021-01-25', 'limit': 0.1, 'value': 0.128441}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.23, 'value': -0.37}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.39, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +88rWxQzW,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'ts_delta(add(operating_profit_before_depr_amort_max_guidance_qtr, operating_profit_before_depr_amort_max_guidance_qtr), 20)', 'description': None, 'operatorCount': 2}",2026-03-23T21:33:00-04:00,,2026-03-23T21:33:01-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -1986959, 'bookSize': 20000000, 'longCount': 1669, 'shortCount': 1460, 'turnover': 0.2141, 'returns': -0.0199, 'drawdown': 0.3155, 'margin': -0.000186, 'sharpe': -0.26, 'fitness': -0.08, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.26}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.08}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.2141}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.2141}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.11, 'value': -0.38}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.14, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +9qK5Oj7r,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(anl4_qfv4_cfps_high, anl4_fcfps_low), abs(anl4_qfd1_az_cfps_median))', 'description': None, 'operatorCount': 3}",2026-03-23T21:35:36-04:00,,2026-03-23T21:35:37-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -1571931, 'bookSize': 20000000, 'longCount': 1786, 'shortCount': 1342, 'turnover': 0.0957, 'returns': -0.0158, 'drawdown': 0.2238, 'margin': -0.000329, 'sharpe': -0.32, 'fitness': -0.11, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.32}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.11}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0957}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0957}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.14, 'value': -0.29}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.79, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +ZYxVvQQZ,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'ts_mean(subtract(sales_guidance_value_quarterly, sales_guidance_value_quarterly), 60)', 'description': None, 'operatorCount': 2}",2026-03-23T21:37:13-04:00,,2026-03-23T21:37:13-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 0, 'bookSize': 0, 'longCount': 0, 'shortCount': 0, 'turnover': 0.0, 'returns': 0.0, 'drawdown': 0.0, 'margin': 0.0, 'sharpe': 0.0, 'fitness': None, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.0}, {'name': 'LOW_FITNESS', 'result': 'ERROR', 'limit': 1.0}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'ERROR'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'IS_LADDER_SHARPE', 'result': 'PENDING'}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +rKLaM95o,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(shareholders_equity_reported_value, anl4_afv4_cfps_mean), anl4_ebitda_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:38:39-04:00,,2026-03-23T21:38:40-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 851299, 'bookSize': 20000000, 'longCount': 1632, 'shortCount': 1497, 'turnover': 0.1343, 'returns': 0.0085, 'drawdown': 0.1169, 'margin': 0.000127, 'sharpe': 0.16, 'fitness': 0.04, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.16}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.04}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1343}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1343}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2022-05-03', 'limit': 0.1, 'value': 0.168198}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.07, 'value': 0.11}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.12, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +YPm3o87J,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(selling_general_admin_expense_reported_value, anl4_fcfps_mean), anl4_gric_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:38:39-04:00,,2026-03-23T21:38:39-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 930101, 'bookSize': 20000000, 'longCount': 1740, 'shortCount': 1389, 'turnover': 0.1328, 'returns': 0.0093, 'drawdown': 0.1272, 'margin': 0.00014, 'sharpe': 0.21, 'fitness': 0.06, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.21}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.06}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1328}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1328}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.09, 'value': 0.21}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.11, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +e7KMMgmE,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.06, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(subtract(net_profit_reported_value, anl4_afv4_cfps_mean), anl4_capex_std)', 'description': None, 'operatorCount': 2}",2026-03-23T21:50:09-04:00,,2026-03-23T21:50:10-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 6376618, 'bookSize': 20000000, 'longCount': 1454, 'shortCount': 1675, 'turnover': 0.1576, 'returns': 0.0639, 'drawdown': 0.1177, 'margin': 0.000811, 'sharpe': 1.03, 'fitness': 0.66, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'WARNING', 'limit': 1.58, 'value': 1.03}, {'name': 'LOW_FITNESS', 'result': 'WARNING', 'limit': 1.0, 'value': 0.66}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1576}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1576}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.45, 'value': 0.64}, {'name': 'UNITS', 'result': 'WARNING', 'message': 'Incompatible unit for input of ""subtract"" at index 1, expected ""Unit[CSPrice:1,CSShare:1]"", found ""Unit[]""'}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'WARNING', 'value': 1.13, 'limit': 1.58}, {'name': 'POWER_POOL_CORRELATION', 'result': 'PENDING'}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +pwE28MAg,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_mean_eps_fp1, anl14_mean_eps_fp2, anl14_stddev_eps_fp3, anl14_numofests_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:40:15-04:00,,2026-03-24T02:40:15-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 2060222, 'bookSize': 20000000, 'longCount': 1256, 'shortCount': 1872, 'turnover': 0.0912, 'returns': 0.0206, 'drawdown': 0.2573, 'margin': 0.000453, 'sharpe': 0.35, 'fitness': 0.14, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.35}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.14}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0912}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0912}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.15, 'value': 0.36}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.42, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +qMdagYaO,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_stddev_eps_fp1, anl14_high_eps_fp2, anl14_stddev_eps_fp3, anl14_mean_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:40:24-04:00,,2026-03-24T02:40:25-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1375553, 'bookSize': 20000000, 'longCount': 1140, 'shortCount': 1989, 'turnover': 0.1088, 'returns': 0.0138, 'drawdown': 0.2519, 'margin': 0.000253, 'sharpe': 0.24, 'fitness': 0.08, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.24}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.08}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1088}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1088}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-05-28', 'limit': 0.1, 'value': 0.109211}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.1, 'value': 0.26}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.57, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +qMdagYRO,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'divide(anl14_numofests_eps_fy3, abs(anl14_mean_eps_fy1) + 0.01)', 'description': None, 'operatorCount': 3}",2026-03-24T02:40:25-04:00,,2026-03-24T02:40:25-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -1332555, 'bookSize': 20000000, 'longCount': 1872, 'shortCount': 631, 'turnover': 0.0181, 'returns': -0.0134, 'drawdown': 0.3964, 'margin': -0.001476, 'sharpe': -0.1, 'fitness': -0.03, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 869911, 'bookSize': 20000000, 'longCount': 1872, 'shortCount': 631, 'turnover': 0.0181, 'returns': 0.0087, 'drawdown': 0.101, 'margin': 0.000963, 'fitness': 0.06, 'sharpe': 0.22}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.1}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.03}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0181}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0181}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.04, 'value': -0.09}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.09, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +mLAGZ736,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_median_eps_fy2, abs(anl14_mean_eps_fy1) + 0.01), divide(anl14_low_revenue_fy2, abs(anl14_low_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:40:26-04:00,,2026-03-24T02:40:27-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1168404, 'bookSize': 20000000, 'longCount': 1417, 'shortCount': 1711, 'turnover': 0.1918, 'returns': 0.0117, 'drawdown': 0.2083, 'margin': 0.000122, 'sharpe': 0.1, 'fitness': 0.02, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.1}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1918}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1918}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': 0.04, 'value': -0.07}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.22, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +N16dA8ee,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_numofests_eps_fy2, abs(anl14_stddev_eps_fy1) + 0.01), divide(anl14_high_revenue_fy2, abs(anl14_high_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:40:55-04:00,,2026-03-24T02:40:55-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -670453, 'bookSize': 20000000, 'longCount': 1312, 'shortCount': 1817, 'turnover': 0.1154, 'returns': -0.0067, 'drawdown': 0.2804, 'margin': -0.000116, 'sharpe': -0.09, 'fitness': -0.02, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.09}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.02}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1154}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1154}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.04, 'value': 0.28}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.91, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +ZYx8r1XY,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(anl14_median_eps_fy2, anl14_stddev_eps_fy1)', 'description': None, 'operatorCount': 1}",2026-03-24T02:41:09-04:00,,2026-03-24T02:41:09-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 880758, 'bookSize': 20000000, 'longCount': 1139, 'shortCount': 1990, 'turnover': 0.1094, 'returns': 0.0088, 'drawdown': 0.2944, 'margin': 0.000161, 'sharpe': 0.15, 'fitness': 0.04, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.15}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.04}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1094}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1094}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-08-04', 'limit': 0.1, 'value': 0.103604}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.06, 'value': 0.2}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.36, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +MPXExjMn,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_low_eps_fy2, abs(anl14_mean_eps_fy1) + 0.01), divide(anl14_low_revenue_fy2, abs(anl14_high_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:42:34-04:00,,2026-03-24T02:42:34-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -3756920, 'bookSize': 20000000, 'longCount': 1814, 'shortCount': 898, 'turnover': 0.0313, 'returns': -0.0376, 'drawdown': 1.1606, 'margin': -0.002408, 'sharpe': -0.15, 'fitness': -0.08, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -8181385, 'bookSize': 20000000, 'longCount': 1814, 'shortCount': 898, 'turnover': 0.0313, 'returns': -0.082, 'drawdown': 0.9318, 'margin': -0.005244, 'fitness': -0.4, 'sharpe': -0.49}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.15}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.08}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0313}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0313}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2014-01-15', 'limit': 0.1, 'value': 0.301604}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.06, 'value': -0.21}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.42, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +9qKeRzld,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_mean_eps_fp1, anl14_stddev_eps_fp2, anl14_mean_eps_fp3, anl14_median_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:42:42-04:00,,2026-03-24T02:42:43-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 812078, 'bookSize': 20000000, 'longCount': 1773, 'shortCount': 824, 'turnover': 0.0091, 'returns': 0.0081, 'drawdown': 0.2672, 'margin': 0.001779, 'sharpe': 0.08, 'fitness': 0.02, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 879736, 'bookSize': 20000000, 'longCount': 1773, 'shortCount': 824, 'turnover': 0.0091, 'returns': 0.0088, 'drawdown': 0.0585, 'margin': 0.001927, 'fitness': 0.07, 'sharpe': 0.28}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.08}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0091}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0091}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.03, 'value': 0.11}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.5, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +P06R1JRw,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_median_eps_fy2, abs(anl14_high_eps_fy1) + 0.01), divide(anl14_mean_revenue_fy2, abs(anl14_numofests_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:42:45-04:00,,2026-03-24T02:42:46-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 3728438, 'bookSize': 20000000, 'longCount': 1926, 'shortCount': 1203, 'turnover': 0.129, 'returns': 0.0374, 'drawdown': 0.0818, 'margin': 0.000579, 'sharpe': 0.72, 'fitness': 0.39, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.72}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.39}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.129}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.129}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.31, 'value': 0.59}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.58, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +e7KYrk8g,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_low_eps_fy2, abs(anl14_low_eps_fy1) + 0.01), divide(anl14_numofests_revenue_fy2, abs(anl14_high_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:43:03-04:00,,2026-03-24T02:43:03-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -1432368, 'bookSize': 20000000, 'longCount': 1544, 'shortCount': 1584, 'turnover': 0.1546, 'returns': -0.0144, 'drawdown': 0.5922, 'margin': -0.000186, 'sharpe': -0.13, 'fitness': -0.04, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.13}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.04}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1546}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1546}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.06, 'value': 0.12}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.16, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +d5mMQkNJ,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_low_eps_fy2, abs(anl14_high_eps_fy1) + 0.01), divide(anl14_mean_revenue_fy2, abs(anl14_mean_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:43:12-04:00,,2026-03-24T02:43:12-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -4898493, 'bookSize': 20000000, 'longCount': 1461, 'shortCount': 1668, 'turnover': 0.1924, 'returns': -0.0491, 'drawdown': 0.7725, 'margin': -0.00051, 'sharpe': -0.36, 'fitness': -0.18, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.36}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.18}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1924}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1924}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.16, 'value': -0.06}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.69, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +MPXExWA6,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_mean_eps_fp1, anl14_low_eps_fp2, anl14_low_eps_fp3, anl14_numofests_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:43:27-04:00,,2026-03-24T02:43:28-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 2038750, 'bookSize': 20000000, 'longCount': 1241, 'shortCount': 1888, 'turnover': 0.0941, 'returns': 0.0204, 'drawdown': 0.275, 'margin': 0.000434, 'sharpe': 0.34, 'fitness': 0.14, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.34}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.14}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0941}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0941}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.15, 'value': 0.32}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.41, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +xAQLnmkJ,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_numofests_eps_fp1, anl14_median_eps_fp2, anl14_stddev_eps_fp3, anl14_low_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:45:50-04:00,,2026-03-24T02:45:51-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 404755, 'bookSize': 20000000, 'longCount': 2068, 'shortCount': 527, 'turnover': 0.0091, 'returns': 0.0041, 'drawdown': 0.2497, 'margin': 0.000892, 'sharpe': 0.05, 'fitness': 0.01, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 448539, 'bookSize': 20000000, 'longCount': 2068, 'shortCount': 527, 'turnover': 0.0091, 'returns': 0.0045, 'drawdown': 0.0455, 'margin': 0.000988, 'fitness': 0.03, 'sharpe': 0.17}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.05}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.01}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0091}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0091}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.02, 'value': 0.22}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.27, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +LL6vRgae,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_mean_eps_fy2, abs(anl14_numofests_eps_fy1) + 0.01), divide(anl14_mean_revenue_fy2, abs(anl14_stddev_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:45:58-04:00,,2026-03-24T02:45:59-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 3338896, 'bookSize': 20000000, 'longCount': 1736, 'shortCount': 1392, 'turnover': 0.1388, 'returns': 0.0335, 'drawdown': 0.0995, 'margin': 0.000482, 'sharpe': 0.71, 'fitness': 0.35, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.71}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.35}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1388}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1388}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.31, 'value': 0.37}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.57, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +Gr62oMaO,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_high_eps_fp1, anl14_median_eps_fp2, anl14_stddev_eps_fp3, anl14_median_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:45:58-04:00,,2026-03-24T02:45:58-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1803245, 'bookSize': 20000000, 'longCount': 1151, 'shortCount': 1977, 'turnover': 0.1091, 'returns': 0.0181, 'drawdown': 0.2542, 'margin': 0.000331, 'sharpe': 0.31, 'fitness': 0.12, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.31}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.12}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1091}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1091}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-05-28', 'limit': 0.1, 'value': 0.110759}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.13, 'value': 0.25}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.66, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +JjmAdg3e,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_stddev_eps_fy2, abs(anl14_numofests_eps_fy1) + 0.01), divide(anl14_mean_revenue_fy2, abs(anl14_median_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:46:05-04:00,,2026-03-24T02:46:06-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -11415971, 'bookSize': 20000000, 'longCount': 964, 'shortCount': 1748, 'turnover': 0.017, 'returns': -0.1144, 'drawdown': 1.7178, 'margin': -0.013497, 'sharpe': -0.3, 'fitness': -0.29, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -17814203, 'bookSize': 20000000, 'longCount': 964, 'shortCount': 1748, 'turnover': 0.017, 'returns': -0.1785, 'drawdown': 1.882, 'margin': -0.021061, 'fitness': -0.85, 'sharpe': -0.71}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.3}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.29}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.017}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.017}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2014-01-15', 'limit': 0.1, 'value': 0.359961}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.13, 'value': -0.13}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.14, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +blMm9v06,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_high_eps_fp1, anl14_high_eps_fp2, anl14_stddev_eps_fp3, anl14_low_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:46:32-04:00,,2026-03-24T02:46:33-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 751906, 'bookSize': 20000000, 'longCount': 1788, 'shortCount': 809, 'turnover': 0.0095, 'returns': 0.0075, 'drawdown': 0.2673, 'margin': 0.001584, 'sharpe': 0.08, 'fitness': 0.02, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 777891, 'bookSize': 20000000, 'longCount': 1788, 'shortCount': 809, 'turnover': 0.0095, 'returns': 0.0078, 'drawdown': 0.0584, 'margin': 0.001639, 'fitness': 0.06, 'sharpe': 0.25}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.08}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0095}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0095}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.03, 'value': 0.1}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.5, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +gJKl33pQ,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_stddev_eps_fy2, abs(anl14_mean_eps_fy1) + 0.01), divide(anl14_median_revenue_fy2, abs(anl14_stddev_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:46:36-04:00,,2026-03-24T02:46:36-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 3344770, 'bookSize': 20000000, 'longCount': 2595, 'shortCount': 122, 'turnover': 0.015, 'returns': 0.0335, 'drawdown': 0.2493, 'margin': 0.004463, 'sharpe': 0.27, 'fitness': 0.14, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 1542234, 'bookSize': 20000000, 'longCount': 2595, 'shortCount': 122, 'turnover': 0.015, 'returns': 0.0155, 'drawdown': 0.1586, 'margin': 0.002058, 'fitness': 0.09, 'sharpe': 0.25}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.27}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.14}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.015}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.015}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-03-17', 'limit': 0.1, 'value': 0.100257}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.12, 'value': 0.12}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.51, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +ZYx8o0On,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_stddev_eps_fp1, anl14_median_eps_fp2, anl14_median_eps_fp3, anl14_high_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:47:59-04:00,,2026-03-24T02:47:59-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1504651, 'bookSize': 20000000, 'longCount': 1149, 'shortCount': 1980, 'turnover': 0.1087, 'returns': 0.0151, 'drawdown': 0.2659, 'margin': 0.000277, 'sharpe': 0.26, 'fitness': 0.09, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.26}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.09}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1087}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1087}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-05-05', 'limit': 0.1, 'value': 0.107269}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.11, 'value': 0.25}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.59, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +kqXwKgJg,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_median_eps_fp1, anl14_mean_eps_fp2, anl14_low_eps_fp3, anl14_low_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:48:20-04:00,,2026-03-24T02:48:20-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1747522, 'bookSize': 20000000, 'longCount': 1173, 'shortCount': 1956, 'turnover': 0.1092, 'returns': 0.0175, 'drawdown': 0.2653, 'margin': 0.000321, 'sharpe': 0.3, 'fitness': 0.11, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.3}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.11}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1092}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1092}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-05-28', 'limit': 0.1, 'value': 0.110135}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.13, 'value': 0.22}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.59, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +N16dOVe7,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_low_eps_fp1, anl14_low_eps_fp2, anl14_numofests_eps_fp3, anl14_stddev_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:48:20-04:00,,2026-03-24T02:48:20-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 759339, 'bookSize': 20000000, 'longCount': 2048, 'shortCount': 547, 'turnover': 0.0102, 'returns': 0.0076, 'drawdown': 0.2342, 'margin': 0.001497, 'sharpe': 0.09, 'fitness': 0.02, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 599437, 'bookSize': 20000000, 'longCount': 2048, 'shortCount': 547, 'turnover': 0.0102, 'returns': 0.006, 'drawdown': 0.0473, 'margin': 0.001182, 'fitness': 0.05, 'sharpe': 0.22}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.09}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0102}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0102}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.04, 'value': 0.26}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.32, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +pwE27vY3,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_mean_eps_fp1, anl14_low_eps_fp2, anl14_stddev_eps_fp3, anl14_low_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:48:25-04:00,,2026-03-24T02:48:26-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1934226, 'bookSize': 20000000, 'longCount': 1173, 'shortCount': 1956, 'turnover': 0.11, 'returns': 0.0194, 'drawdown': 0.2521, 'margin': 0.000352, 'sharpe': 0.33, 'fitness': 0.13, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.33}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.13}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.11}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.11}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-05-28', 'limit': 0.1, 'value': 0.111937}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.14, 'value': 0.23}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.64, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +YPmVA8eM,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_high_eps_fp1, anl14_high_eps_fp2, anl14_numofests_eps_fp3, anl14_stddev_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:49:25-04:00,,2026-03-24T02:49:25-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 2236084, 'bookSize': 20000000, 'longCount': 1263, 'shortCount': 1866, 'turnover': 0.0904, 'returns': 0.0224, 'drawdown': 0.2381, 'margin': 0.000496, 'sharpe': 0.38, 'fitness': 0.16, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.38}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.16}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0904}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0904}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.16, 'value': 0.46}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.29, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +vR9EmGQA,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_stddev_eps_fp1, anl14_low_eps_fp2, anl14_mean_eps_fp3, anl14_low_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:49:50-04:00,,2026-03-24T02:49:50-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 528025, 'bookSize': 20000000, 'longCount': 1741, 'shortCount': 856, 'turnover': 0.0094, 'returns': 0.0053, 'drawdown': 0.3056, 'margin': 0.00112, 'sharpe': 0.05, 'fitness': 0.01, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 721597, 'bookSize': 20000000, 'longCount': 1741, 'shortCount': 856, 'turnover': 0.0094, 'returns': 0.0072, 'drawdown': 0.0618, 'margin': 0.00153, 'fitness': 0.05, 'sharpe': 0.22}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.05}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.01}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0094}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0094}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.02, 'value': 0.06}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.44, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +1YL8gM9z,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_high_eps_fp1, anl14_stddev_eps_fp2, anl14_median_eps_fp3, anl14_low_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:51:16-04:00,,2026-03-24T02:51:16-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1818612, 'bookSize': 20000000, 'longCount': 1157, 'shortCount': 1972, 'turnover': 0.1095, 'returns': 0.0182, 'drawdown': 0.2587, 'margin': 0.000333, 'sharpe': 0.31, 'fitness': 0.12, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.31}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.12}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1095}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1095}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-06-03', 'limit': 0.1, 'value': 0.110047}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.13, 'value': 0.27}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.65, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +78Q5dp31,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_stddev_eps_fp1, anl14_low_eps_fp2, anl14_numofests_eps_fp3, anl14_median_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:51:23-04:00,,2026-03-24T02:51:24-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 2149905, 'bookSize': 20000000, 'longCount': 1262, 'shortCount': 1867, 'turnover': 0.0904, 'returns': 0.0215, 'drawdown': 0.2405, 'margin': 0.000477, 'sharpe': 0.36, 'fitness': 0.15, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.36}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.15}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0904}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0904}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.16, 'value': 0.43}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.27, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +6X1WwnYE,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_median_eps_fy2, abs(anl14_stddev_eps_fy1) + 0.01), divide(anl14_high_revenue_fy2, abs(anl14_stddev_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:51:42-04:00,,2026-03-24T02:51:43-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 3300281, 'bookSize': 20000000, 'longCount': 1736, 'shortCount': 1392, 'turnover': 0.139, 'returns': 0.0331, 'drawdown': 0.1, 'margin': 0.000476, 'sharpe': 0.7, 'fitness': 0.34, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.7}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.34}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.139}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.139}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.3, 'value': 0.36}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.57, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +P06Rp0mM,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_high_eps_fp1, anl14_low_eps_fp2, anl14_stddev_eps_fp3, anl14_median_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:52:01-04:00,,2026-03-24T02:52:01-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 763504, 'bookSize': 20000000, 'longCount': 1766, 'shortCount': 832, 'turnover': 0.0095, 'returns': 0.0077, 'drawdown': 0.2796, 'margin': 0.001611, 'sharpe': 0.08, 'fitness': 0.02, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 912538, 'bookSize': 20000000, 'longCount': 1766, 'shortCount': 832, 'turnover': 0.0095, 'returns': 0.0091, 'drawdown': 0.0536, 'margin': 0.001926, 'fitness': 0.08, 'sharpe': 0.29}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.08}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0095}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0095}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.03, 'value': 0.09}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.51, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +j2XpZv7k,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_numofests_eps_fp1, anl14_median_eps_fp2, anl14_numofests_eps_fp3, anl14_low_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:52:25-04:00,,2026-03-24T02:52:26-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 495615, 'bookSize': 20000000, 'longCount': 2073, 'shortCount': 522, 'turnover': 0.0094, 'returns': 0.005, 'drawdown': 0.2472, 'margin': 0.001061, 'sharpe': 0.06, 'fitness': 0.01, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 451315, 'bookSize': 20000000, 'longCount': 2073, 'shortCount': 522, 'turnover': 0.0094, 'returns': 0.0045, 'drawdown': 0.0454, 'margin': 0.000966, 'fitness': 0.03, 'sharpe': 0.17}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.06}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.01}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0094}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0094}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.03, 'value': 0.28}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.25, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +A1bpwaxE,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_numofests_eps_fy2, abs(anl14_high_eps_fy1) + 0.01), divide(anl14_numofests_revenue_fy2, abs(anl14_low_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:54:42-04:00,,2026-03-24T02:54:43-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -2245301, 'bookSize': 20000000, 'longCount': 1320, 'shortCount': 1809, 'turnover': 0.1161, 'returns': -0.0225, 'drawdown': 0.4417, 'margin': -0.000388, 'sharpe': -0.28, 'fitness': -0.12, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.28}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.12}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1161}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1161}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.12, 'value': -0.29}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.91, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +LL6vpXEe,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_median_eps_fp1, anl14_high_eps_fp2, anl14_mean_eps_fp3, anl14_stddev_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:54:43-04:00,,2026-03-24T02:54:43-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1653472, 'bookSize': 20000000, 'longCount': 1151, 'shortCount': 1978, 'turnover': 0.1084, 'returns': 0.0166, 'drawdown': 0.2609, 'margin': 0.000306, 'sharpe': 0.28, 'fitness': 0.1, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.28}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.1}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1084}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1084}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-05-28', 'limit': 0.1, 'value': 0.110135}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.12, 'value': 0.23}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.6, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +LL6vplbv,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_median_eps_fp1, anl14_stddev_eps_fp2, anl14_low_eps_fp3, anl14_numofests_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:54:50-04:00,,2026-03-24T02:54:50-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 2065114, 'bookSize': 20000000, 'longCount': 1256, 'shortCount': 1873, 'turnover': 0.0912, 'returns': 0.0207, 'drawdown': 0.2623, 'margin': 0.000454, 'sharpe': 0.35, 'fitness': 0.14, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.35}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.14}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0912}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0912}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.15, 'value': 0.37}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.4, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +vR9ELJZz,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_high_eps_fy2, abs(anl14_mean_eps_fy1) + 0.01), divide(anl14_high_revenue_fy2, abs(anl14_low_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:54:56-04:00,,2026-03-24T02:54:57-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -13589568, 'bookSize': 20000000, 'longCount': 2601, 'shortCount': 111, 'turnover': 0.0159, 'returns': -0.1362, 'drawdown': 1.6785, 'margin': -0.017087, 'sharpe': -0.38, 'fitness': -0.4, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -16413173, 'bookSize': 20000000, 'longCount': 2601, 'shortCount': 111, 'turnover': 0.0159, 'returns': -0.1645, 'drawdown': 1.7262, 'margin': -0.020637, 'fitness': -0.94, 'sharpe': -0.82}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.38}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.4}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0159}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0159}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2014-01-15', 'limit': 0.1, 'value': 0.338256}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.16, 'value': -0.35}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.29, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +ZYx8pW8Q,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_stddev_eps_fy2, abs(anl14_stddev_eps_fy1) + 0.01), divide(anl14_high_revenue_fy2, abs(anl14_mean_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:54:59-04:00,,2026-03-24T02:55:00-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -15408511, 'bookSize': 20000000, 'longCount': 2471, 'shortCount': 239, 'turnover': 0.0234, 'returns': -0.1544, 'drawdown': 2.1929, 'margin': -0.013204, 'sharpe': -0.35, 'fitness': -0.39, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -20936823, 'bookSize': 20000000, 'longCount': 2471, 'shortCount': 239, 'turnover': 0.0234, 'returns': -0.2098, 'drawdown': 2.2529, 'margin': -0.017941, 'fitness': -0.84, 'sharpe': -0.65}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.35}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.39}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0234}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0234}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2014-03-14', 'limit': 0.1, 'value': 0.331025}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.15, 'value': -0.16}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.07, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +Gr62wMnO,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_high_eps_fy2, abs(anl14_median_eps_fy1) + 0.01), divide(anl14_numofests_revenue_fy2, abs(anl14_high_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:55:05-04:00,,2026-03-24T02:55:06-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -9396617, 'bookSize': 20000000, 'longCount': 2499, 'shortCount': 211, 'turnover': 0.019, 'returns': -0.0942, 'drawdown': 1.8279, 'margin': -0.009915, 'sharpe': -0.27, 'fitness': -0.23, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -12615392, 'bookSize': 20000000, 'longCount': 2499, 'shortCount': 211, 'turnover': 0.019, 'returns': -0.1264, 'drawdown': 1.6108, 'margin': -0.013311, 'fitness': -0.63, 'sharpe': -0.63}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.27}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.23}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.019}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.019}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.12, 'value': -0.06}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.08, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +2rRg7NKw,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_mean_eps_fp1, anl14_median_eps_fp2, anl14_numofests_eps_fp3, anl14_median_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:56:18-04:00,,2026-03-24T02:56:18-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 2319666, 'bookSize': 20000000, 'longCount': 1244, 'shortCount': 1884, 'turnover': 0.093, 'returns': 0.0232, 'drawdown': 0.2515, 'margin': 0.0005, 'sharpe': 0.38, 'fitness': 0.16, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.38}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.16}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.093}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.093}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.16, 'value': 0.42}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.35, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +xAQLx1Lw,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_median_eps_fp1, anl14_numofests_eps_fp2, anl14_median_eps_fp3, anl14_stddev_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:57:37-04:00,,2026-03-24T02:57:38-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 412502, 'bookSize': 20000000, 'longCount': 2063, 'shortCount': 532, 'turnover': 0.0096, 'returns': 0.0041, 'drawdown': 0.2471, 'margin': 0.000858, 'sharpe': 0.05, 'fitness': 0.01, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 453533, 'bookSize': 20000000, 'longCount': 2063, 'shortCount': 532, 'turnover': 0.0096, 'returns': 0.0045, 'drawdown': 0.0483, 'margin': 0.000944, 'fitness': 0.03, 'sharpe': 0.17}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.05}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.01}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0096}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0096}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.02, 'value': 0.22}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.28, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +rKLqoRzE,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_numofests_eps_fy2, abs(anl14_stddev_eps_fy1) + 0.01), divide(anl14_stddev_revenue_fy2, abs(anl14_low_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:57:42-04:00,,2026-03-24T02:57:43-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 2241010, 'bookSize': 20000000, 'longCount': 2107, 'shortCount': 608, 'turnover': 0.0201, 'returns': 0.0225, 'drawdown': 0.4115, 'margin': 0.002232, 'sharpe': 0.16, 'fitness': 0.07, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -3337297, 'bookSize': 20000000, 'longCount': 2107, 'shortCount': 608, 'turnover': 0.0201, 'returns': -0.0334, 'drawdown': 0.3723, 'margin': -0.003324, 'fitness': -0.32, 'sharpe': -0.62}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.16}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.07}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0201}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0201}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.07, 'value': 0.08}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.2, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +kqXw3N1z,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_high_eps_fy2, abs(anl14_high_eps_fy1) + 0.01), divide(anl14_stddev_revenue_fy2, abs(anl14_low_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:57:43-04:00,,2026-03-24T02:57:44-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -13332829, 'bookSize': 20000000, 'longCount': 2597, 'shortCount': 115, 'turnover': 0.0159, 'returns': -0.1336, 'drawdown': 1.7964, 'margin': -0.01678, 'sharpe': -0.38, 'fitness': -0.39, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -16647038, 'bookSize': 20000000, 'longCount': 2597, 'shortCount': 115, 'turnover': 0.0159, 'returns': -0.1668, 'drawdown': 1.7836, 'margin': -0.020951, 'fitness': -1.0, 'sharpe': -0.87}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.38}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.39}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0159}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0159}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2014-04-02', 'limit': 0.1, 'value': 0.143012}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.16, 'value': -0.36}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.3, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +npojgaJl,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_stddev_eps_fp1, anl14_high_eps_fp2, anl14_low_eps_fp3, anl14_median_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:57:54-04:00,,2026-03-24T02:57:54-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1319031, 'bookSize': 20000000, 'longCount': 1155, 'shortCount': 1974, 'turnover': 0.1091, 'returns': 0.0132, 'drawdown': 0.2716, 'margin': 0.000242, 'sharpe': 0.23, 'fitness': 0.07, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.23}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.07}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1091}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1091}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-08-10', 'limit': 0.1, 'value': 0.108332}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.1, 'value': 0.22}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.55, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +RRYOpeqj,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_numofests_eps_fy2, abs(anl14_stddev_eps_fy1) + 0.01), divide(anl14_numofests_revenue_fy2, abs(anl14_stddev_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:57:56-04:00,,2026-03-24T02:57:56-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1658641, 'bookSize': 20000000, 'longCount': 2015, 'shortCount': 701, 'turnover': 0.0182, 'returns': 0.0166, 'drawdown': 0.1713, 'margin': 0.001823, 'sharpe': 0.19, 'fitness': 0.07, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -218668, 'bookSize': 20000000, 'longCount': 2015, 'shortCount': 701, 'turnover': 0.0182, 'returns': -0.0022, 'drawdown': 0.0651, 'margin': -0.00024, 'fitness': -0.01, 'sharpe': -0.08}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.19}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.07}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0182}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0182}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.08, 'value': 0.34}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.02, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +VkErpZ15,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_stddev_eps_fy2, abs(anl14_numofests_eps_fy1) + 0.01), divide(anl14_high_revenue_fy2, abs(anl14_high_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:58:18-04:00,,2026-03-24T02:58:18-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -5297072, 'bookSize': 20000000, 'longCount': 1447, 'shortCount': 1682, 'turnover': 0.1903, 'returns': -0.0531, 'drawdown': 0.7979, 'margin': -0.000558, 'sharpe': -0.37, 'fitness': -0.2, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.37}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.2}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1903}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1903}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.16, 'value': -0.02}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.68, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +A1bpw55w,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_low_eps_fp1, anl14_stddev_eps_fp2, anl14_low_eps_fp3, anl14_stddev_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:59:40-04:00,,2026-03-24T02:59:40-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 564765, 'bookSize': 20000000, 'longCount': 1724, 'shortCount': 873, 'turnover': 0.0102, 'returns': 0.0057, 'drawdown': 0.3265, 'margin': 0.00111, 'sharpe': 0.06, 'fitness': 0.01, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 927208, 'bookSize': 20000000, 'longCount': 1724, 'shortCount': 873, 'turnover': 0.0102, 'returns': 0.0093, 'drawdown': 0.0568, 'margin': 0.001822, 'fitness': 0.08, 'sharpe': 0.29}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.06}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.01}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0102}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0102}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.03, 'value': 0.07}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.5, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +O0kLpXP1,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_numofests_eps_fp1, anl14_high_eps_fp2, anl14_mean_eps_fp3, anl14_low_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T02:59:43-04:00,,2026-03-24T02:59:44-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 2007072, 'bookSize': 20000000, 'longCount': 1258, 'shortCount': 1871, 'turnover': 0.0921, 'returns': 0.0201, 'drawdown': 0.2559, 'margin': 0.000437, 'sharpe': 0.32, 'fitness': 0.13, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.32}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.13}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0921}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0921}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.14, 'value': 0.39}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.35, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +1YL87A8Q,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_stddev_eps_fy2, abs(anl14_high_eps_fy1) + 0.01), divide(anl14_low_revenue_fy2, abs(anl14_stddev_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:59:53-04:00,,2026-03-24T02:59:54-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 3372849, 'bookSize': 20000000, 'longCount': 2600, 'shortCount': 116, 'turnover': 0.015, 'returns': 0.0338, 'drawdown': 0.2493, 'margin': 0.004514, 'sharpe': 0.27, 'fitness': 0.14, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 1555701, 'bookSize': 20000000, 'longCount': 2600, 'shortCount': 116, 'turnover': 0.015, 'returns': 0.0156, 'drawdown': 0.1587, 'margin': 0.002082, 'fitness': 0.09, 'sharpe': 0.25}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.27}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.14}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.015}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.015}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.12, 'value': 0.12}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.5, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +MPXEpvlk,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_high_eps_fy2, abs(anl14_mean_eps_fy1) + 0.01), divide(anl14_mean_revenue_fy2, abs(anl14_low_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T02:59:57-04:00,,2026-03-24T02:59:57-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -13827549, 'bookSize': 20000000, 'longCount': 2528, 'shortCount': 184, 'turnover': 0.0178, 'returns': -0.1386, 'drawdown': 1.716, 'margin': -0.015571, 'sharpe': -0.38, 'fitness': -0.4, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -17076038, 'bookSize': 20000000, 'longCount': 2528, 'shortCount': 184, 'turnover': 0.0178, 'returns': -0.1711, 'drawdown': 1.7866, 'margin': -0.019229, 'fitness': -0.94, 'sharpe': -0.8}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.38}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.4}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0178}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0178}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2014-01-15', 'limit': 0.1, 'value': 0.337045}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.16, 'value': -0.32}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.27, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +O0kLpdlg,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_high_eps_fp1, anl14_mean_eps_fp2, anl14_mean_eps_fp3, anl14_high_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:00:06-04:00,,2026-03-24T03:00:06-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 767601, 'bookSize': 20000000, 'longCount': 1791, 'shortCount': 807, 'turnover': 0.0089, 'returns': 0.0077, 'drawdown': 0.2667, 'margin': 0.001723, 'sharpe': 0.08, 'fitness': 0.02, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 824419, 'bookSize': 20000000, 'longCount': 1791, 'shortCount': 807, 'turnover': 0.0089, 'returns': 0.0083, 'drawdown': 0.0574, 'margin': 0.001851, 'fitness': 0.07, 'sharpe': 0.26}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.08}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0089}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0089}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.03, 'value': 0.1}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.5, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +88r0QoYq,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_low_eps_fp1, anl14_high_eps_fp2, anl14_high_eps_fp3, anl14_high_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:01:39-04:00,,2026-03-24T03:01:39-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1783885, 'bookSize': 20000000, 'longCount': 1149, 'shortCount': 1980, 'turnover': 0.1082, 'returns': 0.0179, 'drawdown': 0.2595, 'margin': 0.00033, 'sharpe': 0.3, 'fitness': 0.11, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.3}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.11}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1082}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1082}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-05-28', 'limit': 0.1, 'value': 0.109104}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.13, 'value': 0.26}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.6, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +WjdZGwbd,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_stddev_eps_fy2, abs(anl14_mean_eps_fy1) + 0.01), divide(anl14_mean_revenue_fy2, abs(anl14_low_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T03:03:01-04:00,,2026-03-24T03:03:02-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -4477527, 'bookSize': 20000000, 'longCount': 1539, 'shortCount': 1590, 'turnover': 0.1611, 'returns': -0.0449, 'drawdown': 0.6263, 'margin': -0.000557, 'sharpe': -0.38, 'fitness': -0.2, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.38}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.2}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1611}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1611}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.16, 'value': -0.19}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -1.2, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +1YL8dVWm,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_mean_eps_fp1, anl14_high_eps_fp2, anl14_high_eps_fp3, anl14_high_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:03:02-04:00,,2026-03-24T03:03:03-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 772914, 'bookSize': 20000000, 'longCount': 1805, 'shortCount': 792, 'turnover': 0.0089, 'returns': 0.0077, 'drawdown': 0.2606, 'margin': 0.001737, 'sharpe': 0.08, 'fitness': 0.02, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 800413, 'bookSize': 20000000, 'longCount': 1805, 'shortCount': 792, 'turnover': 0.0089, 'returns': 0.008, 'drawdown': 0.0582, 'margin': 0.001799, 'fitness': 0.06, 'sharpe': 0.25}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.08}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0089}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0089}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.03, 'value': 0.11}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.5, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +blMmqVNr,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_mean_eps_fp1, anl14_low_eps_fp2, anl14_numofests_eps_fp3, anl14_mean_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:03:11-04:00,,2026-03-24T03:03:12-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 787105, 'bookSize': 20000000, 'longCount': 2039, 'shortCount': 557, 'turnover': 0.0099, 'returns': 0.0079, 'drawdown': 0.2314, 'margin': 0.001599, 'sharpe': 0.09, 'fitness': 0.02, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 640338, 'bookSize': 20000000, 'longCount': 2039, 'shortCount': 557, 'turnover': 0.0099, 'returns': 0.0064, 'drawdown': 0.0488, 'margin': 0.001301, 'fitness': 0.05, 'sharpe': 0.23}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.09}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0099}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0099}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.04, 'value': 0.25}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.35, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +e7KY0dkE,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_low_eps_fp1, anl14_high_eps_fp2, anl14_median_eps_fp3, anl14_numofests_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:03:55-04:00,,2026-03-24T03:03:56-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 606935, 'bookSize': 20000000, 'longCount': 2025, 'shortCount': 570, 'turnover': 0.0106, 'returns': 0.0061, 'drawdown': 0.2364, 'margin': 0.001149, 'sharpe': 0.07, 'fitness': 0.02, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 582877, 'bookSize': 20000000, 'longCount': 2025, 'shortCount': 570, 'turnover': 0.0106, 'returns': 0.0058, 'drawdown': 0.049, 'margin': 0.001104, 'fitness': 0.05, 'sharpe': 0.21}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.07}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0106}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0106}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.03, 'value': 0.18}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.36, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +1YL8doJR,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_median_eps_fy2, abs(anl14_numofests_eps_fy1) + 0.01), divide(anl14_stddev_revenue_fy2, abs(anl14_low_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T03:04:14-04:00,,2026-03-24T03:04:15-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -4601746, 'bookSize': 20000000, 'longCount': 1461, 'shortCount': 1668, 'turnover': 0.1539, 'returns': -0.0461, 'drawdown': 0.7178, 'margin': -0.000599, 'sharpe': -0.4, 'fitness': -0.22, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.4}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.22}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1539}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1539}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.17, 'value': -0.15}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -1.16, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +YPmV00Xq,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_stddev_eps_fp1, anl14_mean_eps_fp2, anl14_mean_eps_fp3, anl14_stddev_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:05:02-04:00,,2026-03-24T03:05:03-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 584538, 'bookSize': 20000000, 'longCount': 1795, 'shortCount': 802, 'turnover': 0.0096, 'returns': 0.0059, 'drawdown': 0.2718, 'margin': 0.001223, 'sharpe': 0.06, 'fitness': 0.01, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 605610, 'bookSize': 20000000, 'longCount': 1795, 'shortCount': 802, 'turnover': 0.0096, 'returns': 0.0061, 'drawdown': 0.0622, 'margin': 0.001267, 'fitness': 0.04, 'sharpe': 0.19}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.06}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.01}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0096}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0096}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.03, 'value': 0.07}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.47, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +Gr62LWQP,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_high_eps_fp1, anl14_stddev_eps_fp2, anl14_mean_eps_fp3, anl14_mean_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:06:50-04:00,,2026-03-24T03:06:51-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 856061, 'bookSize': 20000000, 'longCount': 1794, 'shortCount': 803, 'turnover': 0.0092, 'returns': 0.0086, 'drawdown': 0.2578, 'margin': 0.001855, 'sharpe': 0.09, 'fitness': 0.02, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 849347, 'bookSize': 20000000, 'longCount': 1794, 'shortCount': 803, 'turnover': 0.0092, 'returns': 0.0085, 'drawdown': 0.0586, 'margin': 0.001841, 'fitness': 0.07, 'sharpe': 0.27}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.09}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0092}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0092}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.04, 'value': 0.12}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.51, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +kqXw0NGP,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_low_eps_fy2, abs(anl14_stddev_eps_fy1) + 0.01), divide(anl14_mean_revenue_fy2, abs(anl14_numofests_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T03:06:51-04:00,,2026-03-24T03:06:52-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 3690760, 'bookSize': 20000000, 'longCount': 1139, 'shortCount': 1579, 'turnover': 0.0126, 'returns': 0.037, 'drawdown': 0.2876, 'margin': 0.005857, 'sharpe': 0.32, 'fitness': 0.17, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 937774, 'bookSize': 20000000, 'longCount': 1139, 'shortCount': 1579, 'turnover': 0.0126, 'returns': 0.0094, 'drawdown': 0.0835, 'margin': 0.001488, 'fitness': 0.07, 'sharpe': 0.26}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.32}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.17}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0126}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0126}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.14, 'value': 0.39}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.54, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +E5bjEQem,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_low_eps_fp1, anl14_stddev_eps_fp2, anl14_low_eps_fp3, anl14_median_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:07:00-04:00,,2026-03-24T03:07:01-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1938571, 'bookSize': 20000000, 'longCount': 1171, 'shortCount': 1958, 'turnover': 0.1093, 'returns': 0.0194, 'drawdown': 0.2618, 'margin': 0.000355, 'sharpe': 0.33, 'fitness': 0.13, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.33}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.13}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1093}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1093}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-05-26', 'limit': 0.1, 'value': 0.108936}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.14, 'value': 0.25}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.63, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +E5bjENmJ,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_median_eps_fy2, abs(anl14_mean_eps_fy1) + 0.01), divide(anl14_median_revenue_fy2, abs(anl14_mean_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T03:07:28-04:00,,2026-03-24T03:07:29-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -11801232, 'bookSize': 20000000, 'longCount': 2208, 'shortCount': 502, 'turnover': 0.0287, 'returns': -0.1182, 'drawdown': 2.205, 'margin': -0.008227, 'sharpe': -0.29, 'fitness': -0.28, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -17924974, 'bookSize': 20000000, 'longCount': 2208, 'shortCount': 502, 'turnover': 0.0287, 'returns': -0.1796, 'drawdown': 2.182, 'margin': -0.012497, 'fitness': -0.68, 'sharpe': -0.57}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.29}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.28}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0287}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0287}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2014-03-14', 'limit': 0.1, 'value': 0.343086}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'FAIL', 'limit': -0.13, 'value': -0.21}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.43, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +A1bpPemQ,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_numofests_eps_fp1, anl14_low_eps_fp2, anl14_stddev_eps_fp3, anl14_mean_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:07:30-04:00,,2026-03-24T03:07:30-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 412531, 'bookSize': 20000000, 'longCount': 2068, 'shortCount': 528, 'turnover': 0.0091, 'returns': 0.0041, 'drawdown': 0.2492, 'margin': 0.00091, 'sharpe': 0.05, 'fitness': 0.01, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 462577, 'bookSize': 20000000, 'longCount': 2068, 'shortCount': 528, 'turnover': 0.0091, 'returns': 0.0046, 'drawdown': 0.0453, 'margin': 0.00102, 'fitness': 0.03, 'sharpe': 0.17}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.05}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.01}, {'name': 'LOW_TURNOVER', 'result': 'FAIL', 'limit': 0.01, 'value': 0.0091}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0091}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.02, 'value': 0.22}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.27, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +Gr62LzP0,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'FAST', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_high_eps_fp1, anl14_high_eps_fp2, anl14_low_eps_fp3, anl14_low_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:07:46-04:00,,2026-03-24T03:07:47-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 1632284, 'bookSize': 20000000, 'longCount': 1162, 'shortCount': 1967, 'turnover': 0.1093, 'returns': 0.0164, 'drawdown': 0.2669, 'margin': 0.000299, 'sharpe': 0.28, 'fitness': 0.1, 'startDate': '2014-01-01', 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.28}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.1}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.1093}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.1093}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2015-05-28', 'limit': 0.1, 'value': 0.110574}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.12, 'value': 0.23}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.58, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +omvblbY2,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'add(anl14_low_eps_fp1, anl14_mean_eps_fp2, anl14_median_eps_fp3, anl14_numofests_eps_fp4)', 'description': None, 'operatorCount': 1}",2026-03-24T03:09:13-04:00,,2026-03-24T03:09:14-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': 601456, 'bookSize': 20000000, 'longCount': 2021, 'shortCount': 575, 'turnover': 0.0106, 'returns': 0.006, 'drawdown': 0.2357, 'margin': 0.001136, 'sharpe': 0.07, 'fitness': 0.02, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': 589499, 'bookSize': 20000000, 'longCount': 2021, 'shortCount': 575, 'turnover': 0.0106, 'returns': 0.0059, 'drawdown': 0.0493, 'margin': 0.001114, 'fitness': 0.05, 'sharpe': 0.21}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': 0.07}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': 0.02}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0106}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0106}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'PASS'}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': 0.03, 'value': 0.18}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': 0.36, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, +3qxKRKkz,REGULAR,YC93384,"{'instrumentType': 'EQUITY', 'region': 'USA', 'universe': 'TOP3000', 'delay': 1, 'decay': 8, 'neutralization': 'NONE', 'truncation': 0.05, 'pasteurization': 'ON', 'unitHandling': 'VERIFY', 'nanHandling': 'ON', 'maxTrade': 'ON', 'maxPosition': 'OFF', 'language': 'FASTEXPR', 'visualization': False, 'startDate': '2014-01-01', 'endDate': '2023-12-31'}","{'code': 'subtract(divide(anl14_mean_eps_fy2, abs(anl14_numofests_eps_fy1) + 0.01), divide(anl14_stddev_revenue_fy2, abs(anl14_median_revenue_fy1) + 0.01))', 'description': None, 'operatorCount': 7}",2026-03-24T03:09:17-04:00,,2026-03-24T03:09:18-04:00,,False,False,,,[],"[{'id': 'DATA_USAGE:SINGLE_DATA_SET', 'name': 'Single Data Set Alpha'}]",,IS,UNSUBMITTED,"{'pnl': -15077829, 'bookSize': 20000000, 'longCount': 2586, 'shortCount': 126, 'turnover': 0.0167, 'returns': -0.1511, 'drawdown': 1.7907, 'margin': -0.018089, 'sharpe': -0.37, 'fitness': -0.41, 'startDate': '2014-01-01', 'riskNeutralized': {'pnl': -19539951, 'bookSize': 20000000, 'longCount': 2586, 'shortCount': 126, 'turnover': 0.0167, 'returns': -0.1958, 'drawdown': 2.0687, 'margin': -0.023442, 'fitness': -0.93, 'sharpe': -0.74}, 'checks': [{'name': 'LOW_SHARPE', 'result': 'FAIL', 'limit': 1.58, 'value': -0.37}, {'name': 'LOW_FITNESS', 'result': 'FAIL', 'limit': 1.0, 'value': -0.41}, {'name': 'LOW_TURNOVER', 'result': 'PASS', 'limit': 0.01, 'value': 0.0167}, {'name': 'HIGH_TURNOVER', 'result': 'PASS', 'limit': 0.7, 'value': 0.0167}, {'name': 'CONCENTRATED_WEIGHT', 'result': 'FAIL', 'date': '2014-01-21', 'limit': 0.1, 'value': 0.288146}, {'name': 'LOW_SUB_UNIVERSE_SHARPE', 'result': 'PASS', 'limit': -0.16, 'value': -0.14}, {'name': 'SELF_CORRELATION', 'result': 'PENDING'}, {'name': 'DATA_DIVERSITY', 'result': 'PENDING'}, {'name': 'PROD_CORRELATION', 'result': 'PENDING'}, {'name': 'REGULAR_SUBMISSION', 'result': 'PENDING'}, {'name': 'LOW_2Y_SHARPE', 'result': 'FAIL', 'value': -0.21, 'limit': 1.58}, {'name': 'MATCHES_COMPETITION', 'result': 'WARNING', 'competitions': [{'id': 'DCC2026', 'name': 'Data Creation Challenge 2026'}]}, {'result': 'PASS', 'name': 'MATCHES_PYRAMID', 'effective': 1, 'multiplier': 1.2, 'pyramids': [{'name': 'USA/D1/ANALYST', 'multiplier': 1.2}]}, {'result': 'WARNING', 'name': 'MATCHES_THEMES', 'themes': [{'id': 'v4MP8kD', 'multiplier': 1.0, 'name': 'All regions/D1 Power Pool Apr`26'}, {'id': 'w40mQKy', 'multiplier': 2.0, 'name': 'Liquid HTVR Theme'}]}, {'name': 'OSMOSIS_ALLOCATION', 'result': 'WARNING'}]}",,,,,,,,,, diff --git a/fetch-alphas/wqb-get-alphas-one-week.py b/fetch-alphas/wqb-get-alphas-one-week.py index ccebb58..96150d1 100644 --- a/fetch-alphas/wqb-get-alphas-one-week.py +++ b/fetch-alphas/wqb-get-alphas-one-week.py @@ -132,7 +132,7 @@ class AlphaManager: def get_alphas( self, - total_alphas: int = 5, + total_alphas: Optional[int] = None, limit: int = 100, delay: int = 1, days_back: int = 7, @@ -226,7 +226,7 @@ class AlphaManager: pbar = tqdm(total=min(total_available, 10000), desc="扫描Alpha", unit="条") - while len(fetched_alphas) < total_alphas and offset < total_available: + while (total_alphas is None or len(fetched_alphas) < total_alphas) and offset < total_available: # 构建请求URL(使用时间范围,移除 region 和 universe) url = ( f"https://api.worldquantbrain.com/users/self/alphas?stage=IS&limit={limit}"