valuein-sdk 3.2.0__tar.gz → 3.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/PKG-INFO +3 -3
  2. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/README.md +2 -2
  3. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/pyproject.toml +1 -1
  4. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/client.py +21 -9
  5. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/SQL_CHEATSHEET.md +3 -3
  6. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/blockholders.sql +1 -1
  7. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/earnings_surprise_alpha.sql +2 -2
  8. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/factor_screen_top_quintile.sql +2 -2
  9. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/.gitignore +0 -0
  10. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/LICENSE +0 -0
  11. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/NOTICE +0 -0
  12. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/__init__.py +0 -0
  13. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/_standard_concepts.txt +0 -0
  14. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/alpha/__init__.py +0 -0
  15. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/alpha/engine.py +0 -0
  16. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/alpha/factors.py +0 -0
  17. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/exceptions.py +0 -0
  18. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/models.py +0 -0
  19. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/plans.py +0 -0
  20. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/py.typed +0 -0
  21. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/8k_event_frequency.sql +0 -0
  22. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/8k_material_event_signal.sql +0 -0
  23. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/altman_z_score_inputs.sql +0 -0
  24. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/as_filed_vs_latest_restatements.sql +0 -0
  25. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/capex_to_revenue.sql +0 -0
  26. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/comprehensive_income_volatility.sql +0 -0
  27. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/cross_exchange_arbitrage_filter.sql +0 -0
  28. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/cross_sector_dupont_roe_breakdown.sql +0 -0
  29. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/dividend_history.sql +0 -0
  30. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/dupont_analysis_inputs.sql +0 -0
  31. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/earnings_quality_accruals_anomaly.sql +0 -0
  32. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/efficiency_cash_conversion.sql +0 -0
  33. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/figi_to_fundamentals_mapping.sql +0 -0
  34. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/filing_delay_screener.sql +0 -0
  35. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/filing_text_by_ticker.sql +0 -0
  36. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/financial_ratios_by_ticker.sql +0 -0
  37. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/financial_ratios_category.sql +0 -0
  38. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/financial_ratios_comparison.sql +0 -0
  39. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/financial_ratios_screener.sql +0 -0
  40. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/free_cash_flow.sql +0 -0
  41. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/fundamentals_by_ticker.sql +0 -0
  42. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/geographic_fundamental_concentration.sql +0 -0
  43. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/ghost_company_screener.sql +0 -0
  44. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/high_confidence_data_screener.sql +0 -0
  45. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/index_constituent_aggregate_fundamentals.sql +0 -0
  46. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/industry_leader_vs_laggard_sic_ranking.sql +0 -0
  47. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/insider_buys.sql +0 -0
  48. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/interest_coverage.sql +0 -0
  49. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/late_reporter_short_signal.sql +0 -0
  50. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/liquidity_ratios.sql +0 -0
  51. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/manager_portfolio.sql +0 -0
  52. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/margin_analysis.sql +0 -0
  53. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/peer_group_comparison.sql +0 -0
  54. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/piotroski_f_score_inputs.sql +0 -0
  55. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/pit_universe_announcement.sql +0 -0
  56. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/restatement_history.sql +0 -0
  57. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/restatement_negative_revision_alpha.sql +0 -0
  58. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/revenue_yoy_growth.sql +0 -0
  59. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/rnd_intensity.sql +0 -0
  60. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/seasonal_frame_based_extraction.sql +0 -0
  61. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/sector_relative_valuation_outperformers.sql +0 -0
  62. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/shareholder_dilution.sql +0 -0
  63. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/solvency_debt_to_equity.sql +0 -0
  64. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/survivorship_bias_free_screen.sql +0 -0
  65. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/taxonomy_guide_automated_reporting.sql +0 -0
  66. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/time_series_outlier_detection_zscore.sql +0 -0
  67. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/top_institutional_holders.sql +0 -0
  68. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/trailing_twelve_months_ttm.sql +0 -0
  69. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/true_point_in_time_backtest_engine.sql +0 -0
  70. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/queries/xbrl_mapping_lineage_audit.sql +0 -0
  71. {valuein_sdk-3.2.0 → valuein_sdk-3.3.1}/valuein_sdk/transport.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: valuein-sdk
3
- Version: 3.2.0
3
+ Version: 3.3.1
4
4
  Summary: Official Python SDK for the Valuein US Core Fundamentals dataset — SEC EDGAR financials via API.
5
5
  Project-URL: Homepage, https://valuein.biz
6
6
  Project-URL: Documentation, https://valuein.biz/docs
@@ -85,7 +85,7 @@ Powered by survivorship-bias-free data containing 12M+ filings and 108M+ facts f
85
85
  |---------------------------------------|-----------------------------------------------------------|
86
86
  | 🕒 **<span title="Provides historical snapshots for accurate backtesting">Point‑in‑Time Data</span>** | Eliminate look‑ahead bias in backtests |
87
87
  | ⚖️ **<span title="Includes companies that went bankrupt, delisted, or were acquired">Survivorship‑Bias Free</span>** | Includes bankrupt, delisted, and acquired firms |
88
- | 📊 **<span title="Maps 15k+ raw XBRL tags to ~150 standard financial concepts">Standardized Concepts</span>** | 15k+ XBRL tags mapped to ~150 canonical financial concepts |
88
+ | 📊 **<span title="Maps 15k+ raw XBRL tags to 292 standard financial concepts">Standardized Concepts</span>** | 15k+ XBRL tags mapped to 292 canonical financial concepts |
89
89
  | 🚀 **<span title="High-speed in-memory SQL engine using DuckDB">DuckDB SQL Engine</span>** | Millisecond analytics directly in Python |
90
90
  | ☁️ **<span title="Stream Parquet data from cloud storage without downloading locally">Cloud Parquet Streaming</span>** | No local data downloads required |
91
91
  | 🧩 **<span title="Ready-to-use financial templates for backtesting and signals">Financial Templates</span>** | Production‑ready investment signals |
@@ -210,7 +210,7 @@ except Exception as e:
210
210
  | **filing** | Filing metadata since 1994. `is_xbrl_numeric` flags filings whose XBRL exhibit carries numeric facts; `superseded_by` chains the amendment lineage; `core_type` strips `/A` for form-family filtering. | 12M+ |
211
211
  | **fact** | Financial statement facts with Bloomberg-style restatement columns (`value_current`, `value_as_filed`, `first_filed_at`, `restated`) and PIT semantics via `accepted_at`. | 105M+ |
212
212
  | **valuation** | Pre-computed intrinsic values per (entity_id, valuation_date, model_type). Multiple `model_type` rows coexist: `dcf` / `dcf_fcf` / `ddm`. | ~500K |
213
- | **taxonomy_guide** | Definitions for every `standard_concept` in `fact`. | ~150 |
213
+ | **taxonomy_guide** | Definitions for every `standard_concept` in `fact`. | 292 |
214
214
  | **index_membership** | Historical index constituents (SP500, NASDAQ100, RUSSELL3000, WILSHIRE5000). Keyed on **`cik`** (since pipeline migration 0015 — same column name as `references.cik`). `effective_date` / `removal_date` use `[)` interval semantics; carries `announcement_date`, `removal_reason`, `successor_cik`, `source`, `confidence`. Survivorship-free backtests. | ~50K |
215
215
  | **filing_text** 🆕 | 10-K / 10-Q / 20-F narrative chunks (Risk Factors, MD&A, …) extracted from iXBRL TextBlocks. Source of the Vectorize index powering `search_filing_text` on MCP. PIT-correct via `accepted_at`. See [Semantic Search](#semantic-search-table-filing_text). | growing |
216
216
  | **factor_scores** | Cross-sectional factor scores + percentile ranks (10 factors + composite_rank) from latest two 10-Ks | 16K+ |
@@ -33,7 +33,7 @@ Powered by survivorship-bias-free data containing 12M+ filings and 108M+ facts f
33
33
  |---------------------------------------|-----------------------------------------------------------|
34
34
  | 🕒 **<span title="Provides historical snapshots for accurate backtesting">Point‑in‑Time Data</span>** | Eliminate look‑ahead bias in backtests |
35
35
  | ⚖️ **<span title="Includes companies that went bankrupt, delisted, or were acquired">Survivorship‑Bias Free</span>** | Includes bankrupt, delisted, and acquired firms |
36
- | 📊 **<span title="Maps 15k+ raw XBRL tags to ~150 standard financial concepts">Standardized Concepts</span>** | 15k+ XBRL tags mapped to ~150 canonical financial concepts |
36
+ | 📊 **<span title="Maps 15k+ raw XBRL tags to 292 standard financial concepts">Standardized Concepts</span>** | 15k+ XBRL tags mapped to 292 canonical financial concepts |
37
37
  | 🚀 **<span title="High-speed in-memory SQL engine using DuckDB">DuckDB SQL Engine</span>** | Millisecond analytics directly in Python |
38
38
  | ☁️ **<span title="Stream Parquet data from cloud storage without downloading locally">Cloud Parquet Streaming</span>** | No local data downloads required |
39
39
  | 🧩 **<span title="Ready-to-use financial templates for backtesting and signals">Financial Templates</span>** | Production‑ready investment signals |
@@ -158,7 +158,7 @@ except Exception as e:
158
158
  | **filing** | Filing metadata since 1994. `is_xbrl_numeric` flags filings whose XBRL exhibit carries numeric facts; `superseded_by` chains the amendment lineage; `core_type` strips `/A` for form-family filtering. | 12M+ |
159
159
  | **fact** | Financial statement facts with Bloomberg-style restatement columns (`value_current`, `value_as_filed`, `first_filed_at`, `restated`) and PIT semantics via `accepted_at`. | 105M+ |
160
160
  | **valuation** | Pre-computed intrinsic values per (entity_id, valuation_date, model_type). Multiple `model_type` rows coexist: `dcf` / `dcf_fcf` / `ddm`. | ~500K |
161
- | **taxonomy_guide** | Definitions for every `standard_concept` in `fact`. | ~150 |
161
+ | **taxonomy_guide** | Definitions for every `standard_concept` in `fact`. | 292 |
162
162
  | **index_membership** | Historical index constituents (SP500, NASDAQ100, RUSSELL3000, WILSHIRE5000). Keyed on **`cik`** (since pipeline migration 0015 — same column name as `references.cik`). `effective_date` / `removal_date` use `[)` interval semantics; carries `announcement_date`, `removal_reason`, `successor_cik`, `source`, `confidence`. Survivorship-free backtests. | ~50K |
163
163
  | **filing_text** 🆕 | 10-K / 10-Q / 20-F narrative chunks (Risk Factors, MD&A, …) extracted from iXBRL TextBlocks. Source of the Vectorize index powering `search_filing_text` on MCP. PIT-correct via `accepted_at`. See [Semantic Search](#semantic-search-table-filing_text). | growing |
164
164
  | **factor_scores** | Cross-sectional factor scores + percentile ranks (10 factors + composite_rank) from latest two 10-Ks | 16K+ |
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "valuein-sdk"
3
- version = "3.2.0"
3
+ version = "3.3.1"
4
4
  description = "Official Python SDK for the Valuein US Core Fundamentals dataset — SEC EDGAR financials via API."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -196,6 +196,13 @@ _KNOWN_TABLES = frozenset(
196
196
  "filing",
197
197
  "fact",
198
198
  "taxonomy_guide",
199
+ # Curated gold-standard concept catalog (~292 rows) — the dictionary for
200
+ # fact.standard_concept (level, statement_type, definition, Bloomberg/
201
+ # FactSet equivalents). Distinct from taxonomy_guide, which is the raw
202
+ # SEC us-gaap tag reference for fact.concept. Exported as of pipeline
203
+ # schema 2.10.0; resolved from the manifest at runtime, listed here so
204
+ # the offline fallback (manifest fetch failed) still admits it.
205
+ "standard_concept",
199
206
  "index_membership",
200
207
  "ratio",
201
208
  "factor_scores",
@@ -214,7 +221,7 @@ _KNOWN_TABLES = frozenset(
214
221
  "insider_party",
215
222
  "insider_transaction",
216
223
  "institutional_holding",
217
- "beneficial_ownership",
224
+ "insider_ownership",
218
225
  # Wide-format financial statement tables (v2.5.0). Denormalized pivots
219
226
  # of `fact` keyed by (cik, period_end, fiscal_period) with one column
220
227
  # per canonical concept — let DuckDB skip the CASE-WHEN pivot pattern
@@ -247,7 +254,7 @@ _PIT_TABLES = frozenset(
247
254
  "filing_text",
248
255
  "insider_transaction",
249
256
  "institutional_holding",
250
- "beneficial_ownership",
257
+ "insider_ownership",
251
258
  }
252
259
  )
253
260
 
@@ -468,8 +475,14 @@ class ValueinClient:
468
475
  # available (authenticated plans only). Falls back to _BUNDLED_CONCEPTS
469
476
  # for sample/offline mode via the _concept_set property.
470
477
  concepts_from_manifest = self._manifest_data.get("standard_concepts")
478
+ # manifest standard_concepts may be a list of names (legacy) or a list of
479
+ # concept-metadata dicts (current). Normalise to a name set either way.
471
480
  self._valid_concepts: frozenset[str] | None = (
472
- frozenset(concepts_from_manifest) if concepts_from_manifest else None
481
+ frozenset(
482
+ c["standard_concept"] if isinstance(c, dict) else c for c in concepts_from_manifest
483
+ )
484
+ if concepts_from_manifest
485
+ else None
473
486
  )
474
487
 
475
488
  if self._tables:
@@ -1343,10 +1356,10 @@ class ValueinClient:
1343
1356
  """Return rows from the ``factor_scores`` table.
1344
1357
 
1345
1358
  ``factor_scores`` ships in parquet schema 2.3.0+ and pre-computes
1346
- 10 cross-sectional factors (roe, gross_margin, operating_margin,
1359
+ cross-sectional factor columns (roe, gross_margin, operating_margin,
1347
1360
  net_profit_margin, revenue_growth_yoy, fcf_to_assets, debt_to_equity,
1348
1361
  asset_turnover, current_ratio, piotroski_f_score) plus a percentile
1349
- ``*_rank`` for each (0.0–1.0 where 1.0 = best) and an equal-weight
1362
+ ``*_rank`` for each (0.0–1.0 where 1.0 = best) and a proprietary
1350
1363
  ``composite_rank``.
1351
1364
 
1352
1365
  Args:
@@ -1396,10 +1409,9 @@ class ValueinClient:
1396
1409
  """Return rows from the ``earnings_signals`` table.
1397
1410
 
1398
1411
  ``earnings_signals`` ships in parquet schema 2.3.0+ and pre-computes
1399
- TTM EPS trend (``eps_trend_est`` = trailing 4-quarter average of
1400
- EPSDiluted), the most recent ``eps_actual``, the surprise pct
1401
- ``eps_surprise_pct = (actual - trend_est) / |trend_est|``, and
1402
- ``revenue_yoy_pct``.
1412
+ a proprietary TTM EPS trend estimate (``eps_trend_est``), the most
1413
+ recent ``eps_actual``, the surprise pct ``eps_surprise_pct`` (actual
1414
+ EPS measured against the trend estimate), and ``revenue_yoy_pct``.
1403
1415
 
1404
1416
  Args:
1405
1417
  ticker: Filter to a single symbol.
@@ -14,11 +14,11 @@ Common patterns for querying the Valuein data lake. The SDK executes these again
14
14
  | `entity` | 16K+ | Company master (use for fields not in `references` — `business_address`, `former_names`, `is_foreign`, `flags`, …). |
15
15
  | `security` | 18K+ | Ticker history — SCD Type 2 with `valid_from` / `valid_to`. Filter `is_primary_ticker = TRUE` for one row per CIK on multi-share-class issuers. |
16
16
  | `index_membership` | 50K+ | Historical index membership keyed on `cik` (since migration 0015). `effective_date` / `removal_date` half-open `[)` window. SP500 / NASDAQ100 / RUSSELL3000 / WILSHIRE5000. |
17
- | `taxonomy_guide` | ~150 | Definitions for every `standard_concept` value used in `fact`. |
17
+ | `taxonomy_guide` | 292 | Definitions for every `standard_concept` value used in `fact`. |
18
18
  | `valuation` | ~500K | Pre-computed intrinsic values per (entity_id, valuation_date, model_type): `dcf` / `dcf_fcf` / `ddm`. |
19
19
  | `ratio` | ~1.2M | Pipeline-computed financial ratios (recomputed each pipeline run). Filter by `category`. |
20
- | `factor_scores` | ~16K | Cross-sectional factor scores + percentile ranks (10 factors + composite_rank). |
21
- | `earnings_signals` | ~250K | Trailing 4-quarter EPS trend + surprise %; YoY revenue growth. |
20
+ | `factor_scores` | ~16K | Cross-sectional factor scores + percentile ranks + a proprietary composite_rank. |
21
+ | `earnings_signals` | ~250K | Proprietary TTM EPS trend estimate + surprise %; YoY revenue growth. |
22
22
 
23
23
  ---
24
24
 
@@ -40,7 +40,7 @@ all_filings AS (
40
40
  ELSE 'OTHER'
41
41
  END AS schedule_prefix,
42
42
  COALESCE(b.filer_cik, b.filer_name) AS filer_key
43
- FROM beneficial_ownership b
43
+ FROM insider_ownership b
44
44
  WHERE b.subject_entity_id = (SELECT cik FROM target_entity)
45
45
  ),
46
46
  going_active_filers AS (
@@ -2,9 +2,9 @@
2
2
  --
3
3
  -- Parquet schema 2.3.0+ ships an `earnings_signals` table that pre-computes:
4
4
  --
5
- -- eps_trend_est — trailing 4-quarter average of EPSDiluted
5
+ -- eps_trend_est — proprietary trailing EPS trend estimate
6
6
  -- eps_actual — most recent reported EPSDiluted
7
- -- eps_surprise_pct — (actual - trend_est) / |trend_est|
7
+ -- eps_surprise_pct — actual EPS vs. the trend estimate
8
8
  -- revenue_yoy_pct — quarterly revenue YoY change
9
9
  --
10
10
  -- Use to surface companies where the most recent quarter materially beat or
@@ -1,8 +1,8 @@
1
1
  -- Top-quintile cross-sectional factor screen using pre-computed factor_scores.
2
2
  --
3
- -- Parquet schema 2.3.0+ ships a `factor_scores` table with 10 raw factor
3
+ -- Parquet schema 2.3.0+ ships a `factor_scores` table with raw factor
4
4
  -- values plus a percentile-rank column for each (`*_rank`, range 0.0–1.0
5
- -- where 1.0 is best) and an equal-weight `composite_rank`. The ranks are
5
+ -- where 1.0 is best) and a proprietary `composite_rank`. The ranks are
6
6
  -- stable cross-sectional within the latest pipeline run — so this query is
7
7
  -- a single scan, no join-and-rank gymnastics.
8
8
  --
File without changes
File without changes
File without changes