MODA Catalog

The 27 annual product modules as built, one row per firm-year on the PANEL_SPINE_A spine, every variable with its unit, fill rate and source. PressReleaseAnalytics: the press release is the product; formal-filing values ship as labeled companions, never blended.

Spine rows106,151
Modules27
Columns2,789
Non-sparse2,746
Folded sparse43

Consolidation proposal: 27 → 13 commercial modules

Grouped by the literature a referee would recognize. Each proposed module concatenates its physical modules on the same key; nothing is rebuilt.

#Proposed moduleFolds inColumnsWhat a buyer gets
01DISCLOSURE & LINKS01 DISCLOSURE61what exists and where
02GAAP02 GAAP + 03 CASH_FLOW154the GAAP income statement and cash-flow lines from the release
03NON-GAAP HEADLINE04 NG + 05 GAAP_TO_NG + 23 AS_IF_NG217the headline non-GAAP EPS, the bridge from GAAP, and the standardized as-if number
04NON-GAAP ADJUSTMENTS06 NG_ADJUSTMENTS + 07 NG_PERSISTENCE + 11 NG_COMPLEXITY + 08 NG_RATIONALE823the itemized exclusions, their persistence, count/order, and the stated reasons
05NON-GAAP PRESENTATION10 NG_PROMINENCE + 09 NG_COMPLIANCE140how prominently, and how compliantly, non-GAAP is presented
06MEASURES12 NG_FAMILY + 14 FREE_CF + 13 UNEXCLUDED_GAINS169EBITDA / FFO / FCF families, and the gains left unexcluded
07EXPECTATIONS15 GUIDANCE + 16 FWD_RECON + 17 CONSENSUS_BEAT450guidance given, its forward reconciliation, and the consensus comparison
08PRELIMINARY20 PRELIMINARY150pre-announcements and their gap to the actual
09VOICE18 QUOTES + 19 NARRATIVE109who speaks, what they attribute, superlatives, tone
10CONTENT21 KPI + 22 TOPICS314KPIs and topics the release covers
11FORMAL FILINGS24 FILING_10Q38the 10-Q/10-K XBRL companions
12TIMING25 TIMING27dates and lags
13KEYS & INTEGRITY27 IDENTIFIERS + 26 INTEGRITY85identifiers, crosswalk flags, quality diagnostics

How a satellite with several rows per firm-year becomes one row

The rule. Every module has exactly one row per firm-year. A satellite that holds several rows per release (quotes, KPIs, guidance items, adjustment line items, unexcluded gains, forward-reconciliation items) is summarized by a named transform into fixed slots; the long detail stays in the physical satellite for buyers who want every row.

Example: five quotes in one release (3 CEO, 1 CFO, 1 analyst). The QUOTES row carries:

q_total_n = 5  ·  q_n_distinct_speakers = 3  ·  q_any_nonmgmt = 1  ·  q_sentiment_positive_share = 0.8
q_ceo_n = 3  ·  q_ceo_first_text = "This was our biggest June quarter ever…"  ·  q_ceo_first_sentiment = positive  ·  q_ceo_first_topic = revenue  ·  q_ceo_first_fwd_looking = 0
q_cfo_n = 1  ·  q_cfo_first_text = "…"  ·  q_cfo_first_sentiment = neutral
q_analyst_n = 1  ·  q_chair_board_n = 0  ·  q_other_exec_n = 0  ·  q_other_n = 0

The second and third CEO quotes are counted but their text is not in the module; they sit in SAT_QUOTES (exhibit × seq) with speaker, topic, sentiment, direction and the forward-looking flag. The slot count is one parameter: KPIs ship ten slots (kpi_01 … kpi_10).

Other long satellites, same idea: adjustment line items → count, largest item, all labels joined; unexcluded gains → count, total, largest, concepts; guidance items → per metric family the nearest-horizon point / low / high / basis / action; forward-reconciliation items → count + first item; measures → per family total, per share, start label, adjustment count.

The spine: PANEL_SPINE_A

106,151 firm-years, key cik × datadate, one row per Compustat-style firm-year whether or not a release exists. Every module starts from it and must return exactly its rows.

Are these all press releases? No. The 106,151 rows are firm-years. 96,801 (91.2%) carry a press release (the row's winning Exhibit 99.1); 9,350 (8.8%) have none. The rows without a release exist so that DISCLOSURE can say the firm was silent that period and so that the 10-Q / 10-K can fill GAAP EPS for them (FILING_10Q gaap_eps_filled). The corpus itself holds 525,272 extracted press releases, more than the 96,801 on the spine, because a release can be a losing duplicate, a preliminary release, an annual-only release, or belong to a firm outside the spine's window; those live in the satellites keyed by exhibit_url. Every module row carries has_release and the release URL, so restricting to press-release rows is one filter.

Its 20 columns:

cikfyexhibit_urlnongaap_eps
gaap_epsgaap_eps_dilutedgaap_eps_sourcehas_release
has_nongaap_epsgaap_eps_anyhas_gaap_epsfilled_as_missing
source_documentdatadatedatadate_basispress_release
from_10qfrom_10kfrom_other_filingformal_filing

Coverage by year

Firm-quarters on the quarterly spine by fiscal-quarter year (2003 onward, the earnings-release 8-K era): how many carry a press release, a GAAP diluted EPS from any source (release, else the 10-Q/10-K), and an explicit non-GAAP diluted EPS (any label: adjusted, non-GAAP, pro forma; imputed values not counted). 416,530 firm-quarters, 375,915 with a release: 169,050 of them are non-GAAP reporters with an explicit non-GAAP EPS (45%; 55-57% from 2015 on) and 206,865 are GAAP-only (55%).

firm-quarters on the spinewith a press releasewith an explicit non-GAAP EPSnon-GAAP EPS as % of releases (right axis)
05,00010,00015,00020,0000%25%50%75%100%2003: 20,197 firm-quarters (5,595 firms)2003: 18,165 with a press release2003: 4,435 with an explicit non-GAAP EPS (24.4% of releases)20032004: 20,994 firm-quarters (5,674 firms)2004: 18,416 with a press release2004: 4,587 with an explicit non-GAAP EPS (24.9% of releases)2005: 21,255 firm-quarters (5,615 firms)2005: 18,678 with a press release2005: 5,194 with an explicit non-GAAP EPS (27.8% of releases)20052006: 20,930 firm-quarters (5,516 firms)2006: 18,376 with a press release2006: 6,006 with an explicit non-GAAP EPS (32.7% of releases)2007: 20,412 firm-quarters (5,464 firms)2007: 18,061 with a press release2007: 5,700 with an explicit non-GAAP EPS (31.6% of releases)20072008: 19,599 firm-quarters (5,157 firms)2008: 17,475 with a press release2008: 6,200 with an explicit non-GAAP EPS (35.5% of releases)2009: 18,683 firm-quarters (4,896 firms)2009: 16,530 with a press release2009: 6,303 with an explicit non-GAAP EPS (38.1% of releases)20092010: 18,281 firm-quarters (4,806 firms)2010: 16,221 with a press release2010: 6,593 with an explicit non-GAAP EPS (40.6% of releases)2011: 17,728 firm-quarters (4,622 firms)2011: 15,841 with a press release2011: 6,811 with an explicit non-GAAP EPS (43.0% of releases)20112012: 17,207 firm-quarters (4,508 firms)2012: 15,462 with a press release2012: 7,064 with an explicit non-GAAP EPS (45.7% of releases)2013: 16,993 firm-quarters (4,468 firms)2013: 15,325 with a press release2013: 7,482 with an explicit non-GAAP EPS (48.8% of releases)20132014: 17,317 firm-quarters (4,558 firms)2014: 15,649 with a press release2014: 8,137 with an explicit non-GAAP EPS (52.0% of releases)2015: 17,258 firm-quarters (4,539 firms)2015: 15,782 with a press release2015: 8,577 with an explicit non-GAAP EPS (54.3% of releases)20152016: 16,907 firm-quarters (4,395 firms)2016: 15,414 with a press release2016: 8,315 with an explicit non-GAAP EPS (53.9% of releases)2017: 16,434 firm-quarters (4,301 firms)2017: 15,092 with a press release2017: 8,272 with an explicit non-GAAP EPS (54.8% of releases)20172018: 16,189 firm-quarters (4,233 firms)2018: 14,862 with a press release2018: 8,277 with an explicit non-GAAP EPS (55.7% of releases)2019: 15,930 firm-quarters (4,152 firms)2019: 14,473 with a press release2019: 8,035 with an explicit non-GAAP EPS (55.5% of releases)20192020: 15,808 firm-quarters (4,183 firms)2020: 14,522 with a press release2020: 8,024 with an explicit non-GAAP EPS (55.3% of releases)2021: 16,927 firm-quarters (4,498 firms)2021: 15,559 with a press release2021: 8,445 with an explicit non-GAAP EPS (54.3% of releases)20212022: 17,190 firm-quarters (4,445 firms)2022: 15,730 with a press release2022: 8,462 with an explicit non-GAAP EPS (53.8% of releases)2023: 16,437 firm-quarters (4,298 firms)2023: 15,097 with a press release2023: 8,196 with an explicit non-GAAP EPS (54.3% of releases)20232024: 15,690 firm-quarters (4,095 firms)2024: 14,204 with a press release2024: 7,957 with an explicit non-GAAP EPS (56.0% of releases)2025: 14,919 firm-quarters (3,933 firms)2025: 13,914 with a press release2025: 7,958 with an explicit non-GAAP EPS (57.2% of releases)20252026: 7,245 firm-quarters (3,703 firms)2026: 7,067 with a press release2026: 4,020 with an explicit non-GAAP EPS (56.9% of releases)2003: 24.4% of releases state an explicit non-GAAP EPS2004: 24.9% of releases state an explicit non-GAAP EPS2005: 27.8% of releases state an explicit non-GAAP EPS2006: 32.7% of releases state an explicit non-GAAP EPS2007: 31.6% of releases state an explicit non-GAAP EPS2008: 35.5% of releases state an explicit non-GAAP EPS2009: 38.1% of releases state an explicit non-GAAP EPS2010: 40.6% of releases state an explicit non-GAAP EPS2011: 43.0% of releases state an explicit non-GAAP EPS2012: 45.7% of releases state an explicit non-GAAP EPS2013: 48.8% of releases state an explicit non-GAAP EPS2014: 52.0% of releases state an explicit non-GAAP EPS2015: 54.3% of releases state an explicit non-GAAP EPS2016: 53.9% of releases state an explicit non-GAAP EPS2017: 54.8% of releases state an explicit non-GAAP EPS2018: 55.7% of releases state an explicit non-GAAP EPS2019: 55.5% of releases state an explicit non-GAAP EPS2020: 55.3% of releases state an explicit non-GAAP EPS2021: 54.3% of releases state an explicit non-GAAP EPS2022: 53.8% of releases state an explicit non-GAAP EPS2023: 54.3% of releases state an explicit non-GAAP EPS2024: 56.0% of releases state an explicit non-GAAP EPS2025: 57.2% of releases state an explicit non-GAAP EPS2026: 56.9% of releases state an explicit non-GAAP EPSby fiscal-quarter year; 2026 to August
table 

Coverage by year, the numbers

yearfirm-quartersfirmswith releaseGAAP EPS (any source)explicit non-GAAP EPS% of releases
200320,1975,59518,16519,1124,43524.4
200420,9945,67418,41619,3604,58724.9
200521,2555,61518,67819,2705,19427.8
200620,9305,51618,37619,2576,00632.7
200720,4125,46418,06118,8915,70031.6
200819,5995,15717,47518,6106,20035.5
200918,6834,89616,53017,4246,30338.1
201018,2814,80616,22116,8736,59340.6
201117,7284,62215,84116,4756,81143.0
201217,2074,50815,46216,6627,06445.7
201316,9934,46815,32516,3437,48248.8
201417,3174,55815,64916,6278,13752.0
201517,2584,53915,78216,3948,57754.3
201616,9074,39515,41415,9488,31553.9
201716,4344,30115,09215,6908,27254.8
201816,1894,23314,86215,5348,27755.7
201915,9304,15214,47315,4198,03555.5
202015,8084,18314,52215,2868,02455.3
202116,9274,49815,55916,0548,44554.3
202217,1904,44515,73016,3818,46253.8
202316,4374,29815,09715,8068,19654.3
202415,6904,09514,20415,3217,95756.0
202514,9193,93313,91414,4737,95857.2
2026 (to Aug)7,2453,7037,0676,8624,02056.9

Reconciliations and their basis, by year

Firm-quarters with an explicit non-GAAP EPS: how many carry a GAAP-to-non-GAAP reconciliation, and whether it is stated in dollars only (a net-income bridge in $M), per share only, or both. Over the whole period 159,139 reconciliations on 160,252 reporters (99.3%): 56% dollars only, 37% both, 8% per share only. A reconciliation counts when any of three independent readings finds it: a reconciliation heading phrase in the text (has_recon_table: “reconciliation of”, “GAAP to non-GAAP”, 84% of reporters), the Pass-3 compliance reading (p3_p10_reconciliation_present), or at least one extracted reconciling item. Extracted items imply a bridge was read, whatever its form; the heading phrase says only how the firm labels it. Two further forms are flagged separately below: the columnar, income-statement-style bridge (ng_income_stmt: a dollar bridge of at least eight printed lines beside an income statement, 26% of reporters), which is a reconciliation, and the full non-GAAP income statement (p3_p10_sep_nongaap_income_statement, 3.6%), which the SEC staff treats as undue prominence (C&DI 102.10(c)) even though it reconciles. The GAAP and non-GAAP EPS figures are always the numbers printed in the release, whatever the basis. Only the per-share amounts of the individual reconciliation items are converted, and only when the reconciliation is in dollars: $M line divided by the release's diluted share count (flagged by recon_dollar_only; the $M line itself is kept as printed).

reconciliations in dollars onlyreconciliations in dollars and per sharereconciliations per share onlyall non-GAAP reporters% of reporters with a reconciliation (right axis)
02,0004,0006,0008,0000%25%50%75%100%2003: 2,350 reconciliations dollars only (56% of 4,174 reconciliations; 4,276 non-GAAP reporters)2003: 1,192 reconciliations both bases (29% of 4,174 reconciliations; 4,276 non-GAAP reporters)2003: 632 reconciliations per share only (15% of 4,174 reconciliations; 4,276 non-GAAP reporters)2003: 4,276 non-GAAP reporters (outline)20032004: 2,407 reconciliations dollars only (57% of 4,250 reconciliations; 4,332 non-GAAP reporters)2004: 1,177 reconciliations both bases (28% of 4,250 reconciliations; 4,332 non-GAAP reporters)2004: 666 reconciliations per share only (16% of 4,250 reconciliations; 4,332 non-GAAP reporters)2004: 4,332 non-GAAP reporters (outline)2005: 2,658 reconciliations dollars only (56% of 4,751 reconciliations; 4,837 non-GAAP reporters)2005: 1,499 reconciliations both bases (32% of 4,751 reconciliations; 4,837 non-GAAP reporters)2005: 594 reconciliations per share only (13% of 4,751 reconciliations; 4,837 non-GAAP reporters)2005: 4,837 non-GAAP reporters (outline)20052006: 3,026 reconciliations dollars only (54% of 5,579 reconciliations; 5,637 non-GAAP reporters)2006: 1,935 reconciliations both bases (35% of 5,579 reconciliations; 5,637 non-GAAP reporters)2006: 618 reconciliations per share only (11% of 5,579 reconciliations; 5,637 non-GAAP reporters)2006: 5,637 non-GAAP reporters (outline)2007: 2,943 reconciliations dollars only (55% of 5,382 reconciliations; 5,451 non-GAAP reporters)2007: 1,865 reconciliations both bases (35% of 5,382 reconciliations; 5,451 non-GAAP reporters)2007: 574 reconciliations per share only (11% of 5,382 reconciliations; 5,451 non-GAAP reporters)2007: 5,451 non-GAAP reporters (outline)20072008: 3,359 reconciliations dollars only (57% of 5,943 reconciliations; 5,995 non-GAAP reporters)2008: 2,122 reconciliations both bases (36% of 5,943 reconciliations; 5,995 non-GAAP reporters)2008: 462 reconciliations per share only (8% of 5,943 reconciliations; 5,995 non-GAAP reporters)2008: 5,995 non-GAAP reporters (outline)2009: 3,227 reconciliations dollars only (55% of 5,848 reconciliations; 5,892 non-GAAP reporters)2009: 2,164 reconciliations both bases (37% of 5,848 reconciliations; 5,892 non-GAAP reporters)2009: 457 reconciliations per share only (8% of 5,848 reconciliations; 5,892 non-GAAP reporters)2009: 5,892 non-GAAP reporters (outline)20092010: 3,303 reconciliations dollars only (55% of 6,002 reconciliations; 6,043 non-GAAP reporters)2010: 2,185 reconciliations both bases (36% of 6,002 reconciliations; 6,043 non-GAAP reporters)2010: 514 reconciliations per share only (9% of 6,002 reconciliations; 6,043 non-GAAP reporters)2010: 6,043 non-GAAP reporters (outline)2011: 3,513 reconciliations dollars only (56% of 6,238 reconciliations; 6,272 non-GAAP reporters)2011: 2,230 reconciliations both bases (36% of 6,238 reconciliations; 6,272 non-GAAP reporters)2011: 495 reconciliations per share only (8% of 6,238 reconciliations; 6,272 non-GAAP reporters)2011: 6,272 non-GAAP reporters (outline)20112012: 3,785 reconciliations dollars only (56% of 6,815 reconciliations; 6,851 non-GAAP reporters)2012: 2,509 reconciliations both bases (37% of 6,815 reconciliations; 6,851 non-GAAP reporters)2012: 521 reconciliations per share only (8% of 6,815 reconciliations; 6,851 non-GAAP reporters)2012: 6,851 non-GAAP reporters (outline)2013: 4,042 reconciliations dollars only (56% of 7,200 reconciliations; 7,235 non-GAAP reporters)2013: 2,618 reconciliations both bases (36% of 7,200 reconciliations; 7,235 non-GAAP reporters)2013: 540 reconciliations per share only (8% of 7,200 reconciliations; 7,235 non-GAAP reporters)2013: 7,235 non-GAAP reporters (outline)20132014: 4,496 reconciliations dollars only (58% of 7,782 reconciliations; 7,823 non-GAAP reporters)2014: 2,708 reconciliations both bases (35% of 7,782 reconciliations; 7,823 non-GAAP reporters)2014: 578 reconciliations per share only (7% of 7,782 reconciliations; 7,823 non-GAAP reporters)2014: 7,823 non-GAAP reporters (outline)2015: 4,638 reconciliations dollars only (58% of 8,039 reconciliations; 8,089 non-GAAP reporters)2015: 2,788 reconciliations both bases (35% of 8,039 reconciliations; 8,089 non-GAAP reporters)2015: 613 reconciliations per share only (8% of 8,039 reconciliations; 8,089 non-GAAP reporters)2015: 8,089 non-GAAP reporters (outline)20152016: 4,415 reconciliations dollars only (57% of 7,699 reconciliations; 7,728 non-GAAP reporters)2016: 2,764 reconciliations both bases (36% of 7,699 reconciliations; 7,728 non-GAAP reporters)2016: 520 reconciliations per share only (7% of 7,699 reconciliations; 7,728 non-GAAP reporters)2016: 7,728 non-GAAP reporters (outline)2017: 4,309 reconciliations dollars only (55% of 7,795 reconciliations; 7,821 non-GAAP reporters)2017: 3,018 reconciliations both bases (39% of 7,795 reconciliations; 7,821 non-GAAP reporters)2017: 468 reconciliations per share only (6% of 7,795 reconciliations; 7,821 non-GAAP reporters)2017: 7,821 non-GAAP reporters (outline)20172018: 4,295 reconciliations dollars only (55% of 7,868 reconciliations; 7,903 non-GAAP reporters)2018: 3,077 reconciliations both bases (39% of 7,868 reconciliations; 7,903 non-GAAP reporters)2018: 496 reconciliations per share only (6% of 7,868 reconciliations; 7,903 non-GAAP reporters)2018: 7,903 non-GAAP reporters (outline)2019: 4,270 reconciliations dollars only (55% of 7,726 reconciliations; 7,754 non-GAAP reporters)2019: 2,933 reconciliations both bases (38% of 7,726 reconciliations; 7,754 non-GAAP reporters)2019: 523 reconciliations per share only (7% of 7,726 reconciliations; 7,754 non-GAAP reporters)2019: 7,754 non-GAAP reporters (outline)20192020: 4,298 reconciliations dollars only (56% of 7,659 reconciliations; 7,691 non-GAAP reporters)2020: 2,977 reconciliations both bases (39% of 7,659 reconciliations; 7,691 non-GAAP reporters)2020: 384 reconciliations per share only (5% of 7,659 reconciliations; 7,691 non-GAAP reporters)2020: 7,691 non-GAAP reporters (outline)2021: 4,417 reconciliations dollars only (57% of 7,783 reconciliations; 7,833 non-GAAP reporters)2021: 2,855 reconciliations both bases (37% of 7,783 reconciliations; 7,833 non-GAAP reporters)2021: 511 reconciliations per share only (7% of 7,783 reconciliations; 7,833 non-GAAP reporters)2021: 7,833 non-GAAP reporters (outline)20212022: 4,473 reconciliations dollars only (57% of 7,871 reconciliations; 7,906 non-GAAP reporters)2022: 2,881 reconciliations both bases (37% of 7,871 reconciliations; 7,906 non-GAAP reporters)2022: 517 reconciliations per share only (7% of 7,871 reconciliations; 7,906 non-GAAP reporters)2022: 7,906 non-GAAP reporters (outline)2023: 4,265 reconciliations dollars only (55% of 7,728 reconciliations; 7,774 non-GAAP reporters)2023: 2,964 reconciliations both bases (38% of 7,728 reconciliations; 7,774 non-GAAP reporters)2023: 499 reconciliations per share only (6% of 7,728 reconciliations; 7,774 non-GAAP reporters)2023: 7,774 non-GAAP reporters (outline)20232024: 4,122 reconciliations dollars only (54% of 7,680 reconciliations; 7,727 non-GAAP reporters)2024: 3,091 reconciliations both bases (40% of 7,680 reconciliations; 7,727 non-GAAP reporters)2024: 467 reconciliations per share only (6% of 7,680 reconciliations; 7,727 non-GAAP reporters)2024: 7,727 non-GAAP reporters (outline)2025: 4,064 reconciliations dollars only (53% of 7,619 reconciliations; 7,660 non-GAAP reporters)2025: 3,068 reconciliations both bases (40% of 7,619 reconciliations; 7,660 non-GAAP reporters)2025: 487 reconciliations per share only (6% of 7,619 reconciliations; 7,660 non-GAAP reporters)2025: 7,660 non-GAAP reporters (outline)20252026: 2,003 reconciliations dollars only (54% of 3,708 reconciliations; 3,722 non-GAAP reporters)2026: 1,489 reconciliations both bases (40% of 3,708 reconciliations; 3,722 non-GAAP reporters)2026: 216 reconciliations per share only (6% of 3,708 reconciliations; 3,722 non-GAAP reporters)2026: 3,722 non-GAAP reporters (outline)2003: 97.6% of non-GAAP reporters reconcile (57% under a reconciliation heading, 8% columnar)2004: 98.1% of non-GAAP reporters reconcile (67% under a reconciliation heading, 9% columnar)2005: 98.2% of non-GAAP reporters reconcile (70% under a reconciliation heading, 11% columnar)2006: 99.0% of non-GAAP reporters reconcile (73% under a reconciliation heading, 13% columnar)2007: 98.7% of non-GAAP reporters reconcile (77% under a reconciliation heading, 15% columnar)2008: 99.1% of non-GAAP reporters reconcile (77% under a reconciliation heading, 16% columnar)2009: 99.3% of non-GAAP reporters reconcile (80% under a reconciliation heading, 17% columnar)2010: 99.3% of non-GAAP reporters reconcile (82% under a reconciliation heading, 17% columnar)2011: 99.5% of non-GAAP reporters reconcile (83% under a reconciliation heading, 20% columnar)2012: 99.5% of non-GAAP reporters reconcile (83% under a reconciliation heading, 21% columnar)2013: 99.5% of non-GAAP reporters reconcile (84% under a reconciliation heading, 23% columnar)2014: 99.5% of non-GAAP reporters reconcile (85% under a reconciliation heading, 25% columnar)2015: 99.4% of non-GAAP reporters reconcile (84% under a reconciliation heading, 26% columnar)2016: 99.6% of non-GAAP reporters reconcile (87% under a reconciliation heading, 28% columnar)2017: 99.7% of non-GAAP reporters reconcile (87% under a reconciliation heading, 30% columnar)2018: 99.6% of non-GAAP reporters reconcile (88% under a reconciliation heading, 31% columnar)2019: 99.6% of non-GAAP reporters reconcile (89% under a reconciliation heading, 32% columnar)2020: 99.6% of non-GAAP reporters reconcile (89% under a reconciliation heading, 35% columnar)2021: 99.4% of non-GAAP reporters reconcile (90% under a reconciliation heading, 33% columnar)2022: 99.6% of non-GAAP reporters reconcile (90% under a reconciliation heading, 33% columnar)2023: 99.4% of non-GAAP reporters reconcile (90% under a reconciliation heading, 34% columnar)2024: 99.4% of non-GAAP reporters reconcile (91% under a reconciliation heading, 35% columnar)2025: 99.5% of non-GAAP reporters reconcile (91% under a reconciliation heading, 36% columnar)2026: 99.6% of non-GAAP reporters reconcile (91% under a reconciliation heading, 36% columnar)firm-quarters with an explicit non-GAAP EPS, by fiscal-quarter year

How the reconciliation is presented, share of non-GAAP reporters: labelled with a reconciliation heading; laid out as a columnar income-statement-style bridge; presented as a full non-GAAP income statement.

% with a reconciliation heading phrase% columnar, income-statement style (8+ lines)% full non-GAAP income statement (C&DI 102.10(c))
0%20%40%60%80%100%2003: % with a reconciliation heading phrase 57.2%2004: % with a reconciliation heading phrase 66.6%2005: % with a reconciliation heading phrase 70.0%2006: % with a reconciliation heading phrase 73.2%2007: % with a reconciliation heading phrase 77.4%2008: % with a reconciliation heading phrase 77.3%2009: % with a reconciliation heading phrase 80.0%2010: % with a reconciliation heading phrase 81.8%2011: % with a reconciliation heading phrase 82.8%2012: % with a reconciliation heading phrase 83.2%2013: % with a reconciliation heading phrase 84.2%2014: % with a reconciliation heading phrase 84.6%2015: % with a reconciliation heading phrase 84.4%2016: % with a reconciliation heading phrase 87.0%2017: % with a reconciliation heading phrase 87.1%2018: % with a reconciliation heading phrase 88.1%2019: % with a reconciliation heading phrase 89.1%2020: % with a reconciliation heading phrase 88.8%2021: % with a reconciliation heading phrase 89.6%2022: % with a reconciliation heading phrase 89.7%2023: % with a reconciliation heading phrase 90.0%2024: % with a reconciliation heading phrase 90.7%2025: % with a reconciliation heading phrase 91.1%2026: % with a reconciliation heading phrase 90.7%2003: % columnar, income-statement style (8+ lines) 8.4%2004: % columnar, income-statement style (8+ lines) 9.0%2005: % columnar, income-statement style (8+ lines) 11.1%2006: % columnar, income-statement style (8+ lines) 13.3%2007: % columnar, income-statement style (8+ lines) 14.8%2008: % columnar, income-statement style (8+ lines) 16.0%2009: % columnar, income-statement style (8+ lines) 17.2%2010: % columnar, income-statement style (8+ lines) 17.4%2011: % columnar, income-statement style (8+ lines) 19.5%2012: % columnar, income-statement style (8+ lines) 21.0%2013: % columnar, income-statement style (8+ lines) 22.8%2014: % columnar, income-statement style (8+ lines) 24.5%2015: % columnar, income-statement style (8+ lines) 26.2%2016: % columnar, income-statement style (8+ lines) 27.6%2017: % columnar, income-statement style (8+ lines) 29.9%2018: % columnar, income-statement style (8+ lines) 31.5%2019: % columnar, income-statement style (8+ lines) 32.5%2020: % columnar, income-statement style (8+ lines) 34.6%2021: % columnar, income-statement style (8+ lines) 33.1%2022: % columnar, income-statement style (8+ lines) 33.5%2023: % columnar, income-statement style (8+ lines) 34.2%2024: % columnar, income-statement style (8+ lines) 35.2%2025: % columnar, income-statement style (8+ lines) 36.2%2026: % columnar, income-statement style (8+ lines) 36.5%2003: % full non-GAAP income statement (C&DI 102.10(c)) 16.1%2004: % full non-GAAP income statement (C&DI 102.10(c)) 15.7%2005: % full non-GAAP income statement (C&DI 102.10(c)) 12.9%2006: % full non-GAAP income statement (C&DI 102.10(c)) 11.3%2007: % full non-GAAP income statement (C&DI 102.10(c)) 7.0%2008: % full non-GAAP income statement (C&DI 102.10(c)) 5.4%2009: % full non-GAAP income statement (C&DI 102.10(c)) 4.6%2010: % full non-GAAP income statement (C&DI 102.10(c)) 3.8%2011: % full non-GAAP income statement (C&DI 102.10(c)) 3.7%2012: % full non-GAAP income statement (C&DI 102.10(c)) 3.6%2013: % full non-GAAP income statement (C&DI 102.10(c)) 2.9%2014: % full non-GAAP income statement (C&DI 102.10(c)) 3.0%2015: % full non-GAAP income statement (C&DI 102.10(c)) 3.0%2016: % full non-GAAP income statement (C&DI 102.10(c)) 1.8%2017: % full non-GAAP income statement (C&DI 102.10(c)) 1.0%2018: % full non-GAAP income statement (C&DI 102.10(c)) 1.0%2019: % full non-GAAP income statement (C&DI 102.10(c)) 1.1%2020: % full non-GAAP income statement (C&DI 102.10(c)) 1.0%2021: % full non-GAAP income statement (C&DI 102.10(c)) 1.0%2022: % full non-GAAP income statement (C&DI 102.10(c)) 0.8%2023: % full non-GAAP income statement (C&DI 102.10(c)) 0.6%2024: % full non-GAAP income statement (C&DI 102.10(c)) 0.5%2025: % full non-GAAP income statement (C&DI 102.10(c)) 0.6%2026: % full non-GAAP income statement (C&DI 102.10(c)) 1.7%200320052007200920112013201520172019202120232025
table 

Reconciliations by basis and form, the numbers

yearnon-GAAP reporterswith a reconciliation%dollars only%both%per share only%% heading% columnar% full NG stmt
20034,2764,174982,350561,192296321557816.1
20044,3324,250982,407571,177286661667915.7
20054,8374,751982,658561,4993259413701112.9
20065,6375,579993,026541,9353561811731311.3
20075,4515,382992,943551,865355741177157.0
20085,9955,943993,359572,12236462877165.4
20095,8925,848993,227552,16437457880174.6
20106,0436,002993,303552,18536514982173.8
20116,2726,238993,513562,23036495883203.7
20126,8516,815993,785562,50937521883213.6
20137,2357,2001004,042562,61836540884232.9
20147,8237,782994,496582,70835578785253.0
20158,0898,039994,638582,78835613884263.0
20167,7287,6991004,415572,76436520787281.8
20177,8217,7951004,309553,01839468687301.0
20187,9037,8681004,295553,07739496688311.0
20197,7547,7261004,270552,93338523789321.1
20207,6917,6591004,298562,97739384589351.0
20217,8337,783994,417572,85537511790331.0
20227,9067,8711004,473572,88137517790330.8
20237,7747,728994,265552,96438499690340.6
20247,7277,680994,122543,09140467691350.5
20257,6607,619994,064533,06840487691360.6
2026 (to Aug)3,7223,7081002,003541,48940216691361.7

Gross or net of tax: how the adjustments are presented

Among reconciliations: the GROSS method shows each adjustment pre-tax with a separate tax-effect line; the NET method shows the adjustments after tax with no tax line. Over the whole period 86% of reconciliations are gross and 14% net of tax (flag adjustments_net_of_tax; the modules carry both views of every item, observed where printed and imputed with the firm's rate otherwise, marked as such).

% of reconciliations gross of tax (separate tax line)% of reconciliations net of tax (no tax line)
0%20%40%60%80%100%2003: % of reconciliations gross of tax (separate tax line) 78.3%2004: % of reconciliations gross of tax (separate tax line) 79.4%2005: % of reconciliations gross of tax (separate tax line) 79.3%2006: % of reconciliations gross of tax (separate tax line) 80.4%2007: % of reconciliations gross of tax (separate tax line) 80.3%2008: % of reconciliations gross of tax (separate tax line) 78.5%2009: % of reconciliations gross of tax (separate tax line) 79.6%2010: % of reconciliations gross of tax (separate tax line) 80.7%2011: % of reconciliations gross of tax (separate tax line) 81.2%2012: % of reconciliations gross of tax (separate tax line) 80.1%2013: % of reconciliations gross of tax (separate tax line) 80.9%2014: % of reconciliations gross of tax (separate tax line) 81.6%2015: % of reconciliations gross of tax (separate tax line) 81.7%2016: % of reconciliations gross of tax (separate tax line) 87.8%2017: % of reconciliations gross of tax (separate tax line) 90.7%2018: % of reconciliations gross of tax (separate tax line) 90.7%2019: % of reconciliations gross of tax (separate tax line) 91.3%2020: % of reconciliations gross of tax (separate tax line) 91.7%2021: % of reconciliations gross of tax (separate tax line) 93.2%2022: % of reconciliations gross of tax (separate tax line) 92.9%2023: % of reconciliations gross of tax (separate tax line) 93.2%2024: % of reconciliations gross of tax (separate tax line) 93.2%2025: % of reconciliations gross of tax (separate tax line) 93.8%2026: % of reconciliations gross of tax (separate tax line) 93.7%2003: % of reconciliations net of tax (no tax line) 21.7%2004: % of reconciliations net of tax (no tax line) 20.6%2005: % of reconciliations net of tax (no tax line) 20.7%2006: % of reconciliations net of tax (no tax line) 19.6%2007: % of reconciliations net of tax (no tax line) 19.7%2008: % of reconciliations net of tax (no tax line) 21.5%2009: % of reconciliations net of tax (no tax line) 20.4%2010: % of reconciliations net of tax (no tax line) 19.3%2011: % of reconciliations net of tax (no tax line) 18.8%2012: % of reconciliations net of tax (no tax line) 19.9%2013: % of reconciliations net of tax (no tax line) 19.1%2014: % of reconciliations net of tax (no tax line) 18.4%2015: % of reconciliations net of tax (no tax line) 18.3%2016: % of reconciliations net of tax (no tax line) 12.2%2017: % of reconciliations net of tax (no tax line) 9.3%2018: % of reconciliations net of tax (no tax line) 9.3%2019: % of reconciliations net of tax (no tax line) 8.7%2020: % of reconciliations net of tax (no tax line) 8.3%2021: % of reconciliations net of tax (no tax line) 6.8%2022: % of reconciliations net of tax (no tax line) 7.1%2023: % of reconciliations net of tax (no tax line) 6.8%2024: % of reconciliations net of tax (no tax line) 6.8%2025: % of reconciliations net of tax (no tax line) 6.2%2026: % of reconciliations net of tax (no tax line) 6.3%200320052007200920112013201520172019202120232025
table 

Gross versus net of tax by year, the numbers

yeartablesgross%net of tax%
20034,1743,2687890622
20044,2503,3757987521
20054,7513,7687998321
20065,5794,486801,09320
20075,3824,322801,06020
20085,9434,668791,27521
20095,8484,655801,19320
20106,0024,843811,15919
20116,2385,064811,17419
20126,8155,460801,35520
20137,2005,822811,37819
20147,7826,354821,42818
20158,0396,570821,46918
20167,6996,7588894112
20177,7957,072917239
20187,8687,138917309
20197,7267,052916749
20207,6597,021926388
20217,7837,256935277
20227,8717,314935577
20237,7287,205935237
20247,6807,161935197
20257,6197,145944746
2026 (to Aug)3,7083,473942356

What non-GAAP reporters exclude, by year

Among firm-quarters with an explicit non-GAAP EPS: the share whose reconciliation carries each of the ten most frequently excluded categories (ranked on 2025; the tax-effect line and the residual "other" bucket are left out). Click a category to hide or show its line. Stock-based compensation exclusion jumps in 2006 with FAS 123R expensing; amortization of acquired intangibles and acquisition costs rise steadily.

0%10%20%30%40%50%2003: 9.5% of non-GAAP reporters exclude stock-based compensation (4,276 reporters)2004: 11.4% of non-GAAP reporters exclude stock-based compensation (4,332 reporters)2005: 15.0% of non-GAAP reporters exclude stock-based compensation (4,837 reporters)2006: 40.1% of non-GAAP reporters exclude stock-based compensation (5,637 reporters)2007: 32.8% of non-GAAP reporters exclude stock-based compensation (5,451 reporters)2008: 30.3% of non-GAAP reporters exclude stock-based compensation (5,995 reporters)2009: 28.1% of non-GAAP reporters exclude stock-based compensation (5,892 reporters)2010: 27.9% of non-GAAP reporters exclude stock-based compensation (6,043 reporters)2011: 28.7% of non-GAAP reporters exclude stock-based compensation (6,272 reporters)2012: 29.6% of non-GAAP reporters exclude stock-based compensation (6,851 reporters)2013: 30.4% of non-GAAP reporters exclude stock-based compensation (7,235 reporters)2014: 31.4% of non-GAAP reporters exclude stock-based compensation (7,823 reporters)2015: 30.3% of non-GAAP reporters exclude stock-based compensation (8,089 reporters)2016: 29.7% of non-GAAP reporters exclude stock-based compensation (7,728 reporters)2017: 28.7% of non-GAAP reporters exclude stock-based compensation (7,821 reporters)2018: 29.8% of non-GAAP reporters exclude stock-based compensation (7,903 reporters)2019: 31.0% of non-GAAP reporters exclude stock-based compensation (7,754 reporters)2020: 31.7% of non-GAAP reporters exclude stock-based compensation (7,691 reporters)2021: 34.6% of non-GAAP reporters exclude stock-based compensation (7,833 reporters)2022: 36.5% of non-GAAP reporters exclude stock-based compensation (7,906 reporters)2023: 35.2% of non-GAAP reporters exclude stock-based compensation (7,774 reporters)2024: 35.9% of non-GAAP reporters exclude stock-based compensation (7,727 reporters)2025: 36.7% of non-GAAP reporters exclude stock-based compensation (7,660 reporters)2026: 37.5% of non-GAAP reporters exclude stock-based compensation (3,722 reporters)2003: 13.4% of non-GAAP reporters exclude amortization of acquired intangibles (4,276 reporters)2004: 15.1% of non-GAAP reporters exclude amortization of acquired intangibles (4,332 reporters)2005: 15.8% of non-GAAP reporters exclude amortization of acquired intangibles (4,837 reporters)2006: 15.9% of non-GAAP reporters exclude amortization of acquired intangibles (5,637 reporters)2007: 19.0% of non-GAAP reporters exclude amortization of acquired intangibles (5,451 reporters)2008: 19.3% of non-GAAP reporters exclude amortization of acquired intangibles (5,995 reporters)2009: 18.1% of non-GAAP reporters exclude amortization of acquired intangibles (5,892 reporters)2010: 19.6% of non-GAAP reporters exclude amortization of acquired intangibles (6,043 reporters)2011: 21.4% of non-GAAP reporters exclude amortization of acquired intangibles (6,272 reporters)2012: 22.8% of non-GAAP reporters exclude amortization of acquired intangibles (6,851 reporters)2013: 23.7% of non-GAAP reporters exclude amortization of acquired intangibles (7,235 reporters)2014: 24.6% of non-GAAP reporters exclude amortization of acquired intangibles (7,823 reporters)2015: 25.2% of non-GAAP reporters exclude amortization of acquired intangibles (8,089 reporters)2016: 27.2% of non-GAAP reporters exclude amortization of acquired intangibles (7,728 reporters)2017: 26.8% of non-GAAP reporters exclude amortization of acquired intangibles (7,821 reporters)2018: 28.7% of non-GAAP reporters exclude amortization of acquired intangibles (7,903 reporters)2019: 31.0% of non-GAAP reporters exclude amortization of acquired intangibles (7,754 reporters)2020: 31.3% of non-GAAP reporters exclude amortization of acquired intangibles (7,691 reporters)2021: 31.9% of non-GAAP reporters exclude amortization of acquired intangibles (7,833 reporters)2022: 34.1% of non-GAAP reporters exclude amortization of acquired intangibles (7,906 reporters)2023: 35.1% of non-GAAP reporters exclude amortization of acquired intangibles (7,774 reporters)2024: 36.5% of non-GAAP reporters exclude amortization of acquired intangibles (7,727 reporters)2025: 35.9% of non-GAAP reporters exclude amortization of acquired intangibles (7,660 reporters)2026: 36.7% of non-GAAP reporters exclude amortization of acquired intangibles (3,722 reporters)2003: 20.0% of non-GAAP reporters exclude restructuring (4,276 reporters)2004: 17.3% of non-GAAP reporters exclude restructuring (4,332 reporters)2005: 16.5% of non-GAAP reporters exclude restructuring (4,837 reporters)2006: 16.2% of non-GAAP reporters exclude restructuring (5,637 reporters)2007: 17.8% of non-GAAP reporters exclude restructuring (5,451 reporters)2008: 21.2% of non-GAAP reporters exclude restructuring (5,995 reporters)2009: 24.7% of non-GAAP reporters exclude restructuring (5,892 reporters)2010: 19.4% of non-GAAP reporters exclude restructuring (6,043 reporters)2011: 18.8% of non-GAAP reporters exclude restructuring (6,272 reporters)2012: 21.8% of non-GAAP reporters exclude restructuring (6,851 reporters)2013: 23.3% of non-GAAP reporters exclude restructuring (7,235 reporters)2014: 22.4% of non-GAAP reporters exclude restructuring (7,823 reporters)2015: 23.1% of non-GAAP reporters exclude restructuring (8,089 reporters)2016: 24.3% of non-GAAP reporters exclude restructuring (7,728 reporters)2017: 25.1% of non-GAAP reporters exclude restructuring (7,821 reporters)2018: 26.3% of non-GAAP reporters exclude restructuring (7,903 reporters)2019: 28.8% of non-GAAP reporters exclude restructuring (7,754 reporters)2020: 30.2% of non-GAAP reporters exclude restructuring (7,691 reporters)2021: 23.3% of non-GAAP reporters exclude restructuring (7,833 reporters)2022: 23.1% of non-GAAP reporters exclude restructuring (7,906 reporters)2023: 28.5% of non-GAAP reporters exclude restructuring (7,774 reporters)2024: 30.7% of non-GAAP reporters exclude restructuring (7,727 reporters)2025: 31.4% of non-GAAP reporters exclude restructuring (7,660 reporters)2026: 30.7% of non-GAAP reporters exclude restructuring (3,722 reporters)2003: 3.3% of non-GAAP reporters exclude acquisition costs (4,276 reporters)2004: 3.5% of non-GAAP reporters exclude acquisition costs (4,332 reporters)2005: 4.3% of non-GAAP reporters exclude acquisition costs (4,837 reporters)2006: 4.4% of non-GAAP reporters exclude acquisition costs (5,637 reporters)2007: 5.1% of non-GAAP reporters exclude acquisition costs (5,451 reporters)2008: 5.3% of non-GAAP reporters exclude acquisition costs (5,995 reporters)2009: 7.4% of non-GAAP reporters exclude acquisition costs (5,892 reporters)2010: 13.6% of non-GAAP reporters exclude acquisition costs (6,043 reporters)2011: 16.9% of non-GAAP reporters exclude acquisition costs (6,272 reporters)2012: 18.5% of non-GAAP reporters exclude acquisition costs (6,851 reporters)2013: 19.5% of non-GAAP reporters exclude acquisition costs (7,235 reporters)2014: 22.1% of non-GAAP reporters exclude acquisition costs (7,823 reporters)2015: 23.3% of non-GAAP reporters exclude acquisition costs (8,089 reporters)2016: 24.5% of non-GAAP reporters exclude acquisition costs (7,728 reporters)2017: 24.5% of non-GAAP reporters exclude acquisition costs (7,821 reporters)2018: 26.0% of non-GAAP reporters exclude acquisition costs (7,903 reporters)2019: 26.4% of non-GAAP reporters exclude acquisition costs (7,754 reporters)2020: 23.5% of non-GAAP reporters exclude acquisition costs (7,691 reporters)2021: 26.0% of non-GAAP reporters exclude acquisition costs (7,833 reporters)2022: 25.5% of non-GAAP reporters exclude acquisition costs (7,906 reporters)2023: 23.4% of non-GAAP reporters exclude acquisition costs (7,774 reporters)2024: 25.6% of non-GAAP reporters exclude acquisition costs (7,727 reporters)2025: 26.8% of non-GAAP reporters exclude acquisition costs (7,660 reporters)2026: 28.0% of non-GAAP reporters exclude acquisition costs (3,722 reporters)2003: 3.5% of non-GAAP reporters exclude fair-value remeasurements (4,276 reporters)2004: 4.9% of non-GAAP reporters exclude fair-value remeasurements (4,332 reporters)2005: 6.3% of non-GAAP reporters exclude fair-value remeasurements (4,837 reporters)2006: 5.9% of non-GAAP reporters exclude fair-value remeasurements (5,637 reporters)2007: 8.1% of non-GAAP reporters exclude fair-value remeasurements (5,451 reporters)2008: 14.5% of non-GAAP reporters exclude fair-value remeasurements (5,995 reporters)2009: 12.7% of non-GAAP reporters exclude fair-value remeasurements (5,892 reporters)2010: 11.6% of non-GAAP reporters exclude fair-value remeasurements (6,043 reporters)2011: 12.0% of non-GAAP reporters exclude fair-value remeasurements (6,272 reporters)2012: 11.6% of non-GAAP reporters exclude fair-value remeasurements (6,851 reporters)2013: 11.3% of non-GAAP reporters exclude fair-value remeasurements (7,235 reporters)2014: 11.7% of non-GAAP reporters exclude fair-value remeasurements (7,823 reporters)2015: 11.9% of non-GAAP reporters exclude fair-value remeasurements (8,089 reporters)2016: 11.9% of non-GAAP reporters exclude fair-value remeasurements (7,728 reporters)2017: 11.1% of non-GAAP reporters exclude fair-value remeasurements (7,821 reporters)2018: 11.7% of non-GAAP reporters exclude fair-value remeasurements (7,903 reporters)2019: 11.8% of non-GAAP reporters exclude fair-value remeasurements (7,754 reporters)2020: 13.0% of non-GAAP reporters exclude fair-value remeasurements (7,691 reporters)2021: 12.8% of non-GAAP reporters exclude fair-value remeasurements (7,833 reporters)2022: 13.3% of non-GAAP reporters exclude fair-value remeasurements (7,906 reporters)2023: 14.0% of non-GAAP reporters exclude fair-value remeasurements (7,774 reporters)2024: 13.0% of non-GAAP reporters exclude fair-value remeasurements (7,727 reporters)2025: 12.4% of non-GAAP reporters exclude fair-value remeasurements (7,660 reporters)2026: 12.8% of non-GAAP reporters exclude fair-value remeasurements (3,722 reporters)2003: 6.0% of non-GAAP reporters exclude litigation (4,276 reporters)2004: 6.0% of non-GAAP reporters exclude litigation (4,332 reporters)2005: 5.8% of non-GAAP reporters exclude litigation (4,837 reporters)2006: 5.1% of non-GAAP reporters exclude litigation (5,637 reporters)2007: 6.1% of non-GAAP reporters exclude litigation (5,451 reporters)2008: 6.2% of non-GAAP reporters exclude litigation (5,995 reporters)2009: 6.8% of non-GAAP reporters exclude litigation (5,892 reporters)2010: 6.4% of non-GAAP reporters exclude litigation (6,043 reporters)2011: 6.8% of non-GAAP reporters exclude litigation (6,272 reporters)2012: 6.9% of non-GAAP reporters exclude litigation (6,851 reporters)2013: 7.3% of non-GAAP reporters exclude litigation (7,235 reporters)2014: 8.0% of non-GAAP reporters exclude litigation (7,823 reporters)2015: 7.6% of non-GAAP reporters exclude litigation (8,089 reporters)2016: 7.8% of non-GAAP reporters exclude litigation (7,728 reporters)2017: 7.6% of non-GAAP reporters exclude litigation (7,821 reporters)2018: 7.9% of non-GAAP reporters exclude litigation (7,903 reporters)2019: 8.5% of non-GAAP reporters exclude litigation (7,754 reporters)2020: 7.5% of non-GAAP reporters exclude litigation (7,691 reporters)2021: 8.0% of non-GAAP reporters exclude litigation (7,833 reporters)2022: 8.1% of non-GAAP reporters exclude litigation (7,906 reporters)2023: 8.5% of non-GAAP reporters exclude litigation (7,774 reporters)2024: 9.6% of non-GAAP reporters exclude litigation (7,727 reporters)2025: 9.3% of non-GAAP reporters exclude litigation (7,660 reporters)2026: 10.1% of non-GAAP reporters exclude litigation (3,722 reporters)2003: 6.1% of non-GAAP reporters exclude impairments (4,276 reporters)2004: 4.8% of non-GAAP reporters exclude impairments (4,332 reporters)2005: 4.9% of non-GAAP reporters exclude impairments (4,837 reporters)2006: 3.4% of non-GAAP reporters exclude impairments (5,637 reporters)2007: 3.9% of non-GAAP reporters exclude impairments (5,451 reporters)2008: 6.5% of non-GAAP reporters exclude impairments (5,995 reporters)2009: 8.5% of non-GAAP reporters exclude impairments (5,892 reporters)2010: 6.8% of non-GAAP reporters exclude impairments (6,043 reporters)2011: 7.3% of non-GAAP reporters exclude impairments (6,272 reporters)2012: 8.5% of non-GAAP reporters exclude impairments (6,851 reporters)2013: 7.9% of non-GAAP reporters exclude impairments (7,235 reporters)2014: 8.4% of non-GAAP reporters exclude impairments (7,823 reporters)2015: 10.2% of non-GAAP reporters exclude impairments (8,089 reporters)2016: 9.5% of non-GAAP reporters exclude impairments (7,728 reporters)2017: 8.2% of non-GAAP reporters exclude impairments (7,821 reporters)2018: 8.3% of non-GAAP reporters exclude impairments (7,903 reporters)2019: 9.0% of non-GAAP reporters exclude impairments (7,754 reporters)2020: 12.0% of non-GAAP reporters exclude impairments (7,691 reporters)2021: 7.4% of non-GAAP reporters exclude impairments (7,833 reporters)2022: 8.0% of non-GAAP reporters exclude impairments (7,906 reporters)2023: 8.2% of non-GAAP reporters exclude impairments (7,774 reporters)2024: 7.9% of non-GAAP reporters exclude impairments (7,727 reporters)2025: 9.1% of non-GAAP reporters exclude impairments (7,660 reporters)2026: 6.9% of non-GAAP reporters exclude impairments (3,722 reporters)2003: 3.3% of non-GAAP reporters exclude depreciation and amortization (4,276 reporters)2004: 3.6% of non-GAAP reporters exclude depreciation and amortization (4,332 reporters)2005: 3.3% of non-GAAP reporters exclude depreciation and amortization (4,837 reporters)2006: 3.6% of non-GAAP reporters exclude depreciation and amortization (5,637 reporters)2007: 4.3% of non-GAAP reporters exclude depreciation and amortization (5,451 reporters)2008: 4.6% of non-GAAP reporters exclude depreciation and amortization (5,995 reporters)2009: 4.5% of non-GAAP reporters exclude depreciation and amortization (5,892 reporters)2010: 4.8% of non-GAAP reporters exclude depreciation and amortization (6,043 reporters)2011: 5.3% of non-GAAP reporters exclude depreciation and amortization (6,272 reporters)2012: 5.3% of non-GAAP reporters exclude depreciation and amortization (6,851 reporters)2013: 6.2% of non-GAAP reporters exclude depreciation and amortization (7,235 reporters)2014: 5.8% of non-GAAP reporters exclude depreciation and amortization (7,823 reporters)2015: 6.3% of non-GAAP reporters exclude depreciation and amortization (8,089 reporters)2016: 6.3% of non-GAAP reporters exclude depreciation and amortization (7,728 reporters)2017: 6.5% of non-GAAP reporters exclude depreciation and amortization (7,821 reporters)2018: 6.5% of non-GAAP reporters exclude depreciation and amortization (7,903 reporters)2019: 7.7% of non-GAAP reporters exclude depreciation and amortization (7,754 reporters)2020: 8.3% of non-GAAP reporters exclude depreciation and amortization (7,691 reporters)2021: 7.7% of non-GAAP reporters exclude depreciation and amortization (7,833 reporters)2022: 7.5% of non-GAAP reporters exclude depreciation and amortization (7,906 reporters)2023: 7.2% of non-GAAP reporters exclude depreciation and amortization (7,774 reporters)2024: 7.5% of non-GAAP reporters exclude depreciation and amortization (7,727 reporters)2025: 8.3% of non-GAAP reporters exclude depreciation and amortization (7,660 reporters)2026: 7.8% of non-GAAP reporters exclude depreciation and amortization (3,722 reporters)2003: 9.9% of non-GAAP reporters exclude realized investment gains (4,276 reporters)2004: 9.7% of non-GAAP reporters exclude realized investment gains (4,332 reporters)2005: 9.3% of non-GAAP reporters exclude realized investment gains (4,837 reporters)2006: 8.0% of non-GAAP reporters exclude realized investment gains (5,637 reporters)2007: 8.2% of non-GAAP reporters exclude realized investment gains (5,451 reporters)2008: 10.1% of non-GAAP reporters exclude realized investment gains (5,995 reporters)2009: 9.1% of non-GAAP reporters exclude realized investment gains (5,892 reporters)2010: 8.5% of non-GAAP reporters exclude realized investment gains (6,043 reporters)2011: 7.8% of non-GAAP reporters exclude realized investment gains (6,272 reporters)2012: 7.4% of non-GAAP reporters exclude realized investment gains (6,851 reporters)2013: 7.5% of non-GAAP reporters exclude realized investment gains (7,235 reporters)2014: 7.4% of non-GAAP reporters exclude realized investment gains (7,823 reporters)2015: 7.2% of non-GAAP reporters exclude realized investment gains (8,089 reporters)2016: 7.4% of non-GAAP reporters exclude realized investment gains (7,728 reporters)2017: 6.9% of non-GAAP reporters exclude realized investment gains (7,821 reporters)2018: 6.8% of non-GAAP reporters exclude realized investment gains (7,903 reporters)2019: 7.2% of non-GAAP reporters exclude realized investment gains (7,754 reporters)2020: 7.4% of non-GAAP reporters exclude realized investment gains (7,691 reporters)2021: 7.0% of non-GAAP reporters exclude realized investment gains (7,833 reporters)2022: 6.5% of non-GAAP reporters exclude realized investment gains (7,906 reporters)2023: 7.7% of non-GAAP reporters exclude realized investment gains (7,774 reporters)2024: 7.9% of non-GAAP reporters exclude realized investment gains (7,727 reporters)2025: 7.7% of non-GAAP reporters exclude realized investment gains (7,660 reporters)2026: 8.1% of non-GAAP reporters exclude realized investment gains (3,722 reporters)2003: 4.5% of non-GAAP reporters exclude divestiture gains (4,276 reporters)2004: 5.0% of non-GAAP reporters exclude divestiture gains (4,332 reporters)2005: 5.3% of non-GAAP reporters exclude divestiture gains (4,837 reporters)2006: 4.4% of non-GAAP reporters exclude divestiture gains (5,637 reporters)2007: 4.8% of non-GAAP reporters exclude divestiture gains (5,451 reporters)2008: 4.1% of non-GAAP reporters exclude divestiture gains (5,995 reporters)2009: 3.8% of non-GAAP reporters exclude divestiture gains (5,892 reporters)2010: 3.7% of non-GAAP reporters exclude divestiture gains (6,043 reporters)2011: 4.0% of non-GAAP reporters exclude divestiture gains (6,272 reporters)2012: 4.2% of non-GAAP reporters exclude divestiture gains (6,851 reporters)2013: 3.9% of non-GAAP reporters exclude divestiture gains (7,235 reporters)2014: 4.8% of non-GAAP reporters exclude divestiture gains (7,823 reporters)2015: 5.3% of non-GAAP reporters exclude divestiture gains (8,089 reporters)2016: 6.2% of non-GAAP reporters exclude divestiture gains (7,728 reporters)2017: 5.8% of non-GAAP reporters exclude divestiture gains (7,821 reporters)2018: 6.7% of non-GAAP reporters exclude divestiture gains (7,903 reporters)2019: 6.7% of non-GAAP reporters exclude divestiture gains (7,754 reporters)2020: 6.3% of non-GAAP reporters exclude divestiture gains (7,691 reporters)2021: 6.2% of non-GAAP reporters exclude divestiture gains (7,833 reporters)2022: 6.6% of non-GAAP reporters exclude divestiture gains (7,906 reporters)2023: 6.2% of non-GAAP reporters exclude divestiture gains (7,774 reporters)2024: 7.0% of non-GAAP reporters exclude divestiture gains (7,727 reporters)2025: 7.1% of non-GAAP reporters exclude divestiture gains (7,660 reporters)2026: 7.8% of non-GAAP reporters exclude divestiture gains (3,722 reporters)200320052007200920112013201520172019202120232025% of firm-quarters with an explicit non-GAAP EPS whose reconciliation carries the category · click a category above to hide / show its line
table 

Exclusion frequency by year, the numbers (% of non-GAAP reporters)

yearreportersstock-based compensationamortization of acquired intangiblesrestructuringacquisition costsfair-value remeasurementslitigationimpairmentsdepreciation and amortizationrealized investment gainsdivestiture gains
20034,2769.513.420.03.33.56.06.13.39.94.5
20044,33211.415.117.33.54.96.04.83.69.75.0
20054,83715.015.816.54.36.35.84.93.39.35.3
20065,63740.115.916.24.45.95.13.43.68.04.4
20075,45132.819.017.85.18.16.13.94.38.24.8
20085,99530.319.321.25.314.56.26.54.610.14.1
20095,89228.118.124.77.412.76.88.54.59.13.8
20106,04327.919.619.413.611.66.46.84.88.53.7
20116,27228.721.418.816.912.06.87.35.37.84.0
20126,85129.622.821.818.511.66.98.55.37.44.2
20137,23530.423.723.319.511.37.37.96.27.53.9
20147,82331.424.622.422.111.78.08.45.87.44.8
20158,08930.325.223.123.311.97.610.26.37.25.3
20167,72829.727.224.324.511.97.89.56.37.46.2
20177,82128.726.825.124.511.17.68.26.56.95.8
20187,90329.828.726.326.011.77.98.36.56.86.7
20197,75431.031.028.826.411.88.59.07.77.26.7
20207,69131.731.330.223.513.07.512.08.37.46.3
20217,83334.631.923.326.012.88.07.47.77.06.2
20227,90636.534.123.125.513.38.18.07.56.56.6
20237,77435.235.128.523.414.08.58.27.27.76.2
20247,72735.936.530.725.613.09.67.97.57.97.0
20257,66036.735.931.426.812.49.39.18.37.77.1
2026 (to Aug)3,72237.536.730.728.012.810.16.97.88.17.8

GAAP versus non-GAAP EPS, by year

Firm-quarters that state both a GAAP and a non-GAAP diluted EPS, excluding the 953 firm-quarters (0.6% of 160k, 415 firms) with an absolute EPS above $10 (Berkshire class A alone reports about $7,000 a quarter on a $700,000 share: genuine, meaningless in a cross-section): the MEAN of each as solid lines, so that the bar is exactly the gap between the two lines (mean exclusion = mean non-GAAP minus mean GAAP); medians as thin dashed lines (the mean sits above the median because 14% of quarters are large caps with $2-9 of quarterly EPS: in 2025 the mean non-GAAP EPS is $0.94 and the median $0.54). The table has both statistics and the share of quarters where non-GAAP exceeds GAAP.

mean GAAP diluted EPSmean non-GAAP diluted EPSmean exclusion = gap between the linesmedian GAAP EPSmedian non-GAAP EPS
$-0.1$0.0$0.1$0.2$0.3$0.4$0.5$0.6$0.7$0.8$0.9$1.0$1.1$1.22003: mean exclusion = mean non-GAAP minus mean GAAP = $0.134/share (median $0.04); non-GAAP above GAAP on 70% (4,269 firm-quarters)20032004: mean exclusion = mean non-GAAP minus mean GAAP = $0.104/share (median $0.04); non-GAAP above GAAP on 68% (4,325 firm-quarters)2005: mean exclusion = mean non-GAAP minus mean GAAP = $0.120/share (median $0.04); non-GAAP above GAAP on 70% (4,823 firm-quarters)20052006: mean exclusion = mean non-GAAP minus mean GAAP = $0.098/share (median $0.04); non-GAAP above GAAP on 74% (5,630 firm-quarters)2007: mean exclusion = mean non-GAAP minus mean GAAP = $0.152/share (median $0.05); non-GAAP above GAAP on 74% (5,432 firm-quarters)20072008: mean exclusion = mean non-GAAP minus mean GAAP = $0.378/share (median $0.08); non-GAAP above GAAP on 81% (5,937 firm-quarters)2009: mean exclusion = mean non-GAAP minus mean GAAP = $0.241/share (median $0.07); non-GAAP above GAAP on 78% (5,878 firm-quarters)20092010: mean exclusion = mean non-GAAP minus mean GAAP = $0.122/share (median $0.06); non-GAAP above GAAP on 73% (6,034 firm-quarters)2011: mean exclusion = mean non-GAAP minus mean GAAP = $0.143/share (median $0.06); non-GAAP above GAAP on 74% (6,257 firm-quarters)20112012: mean exclusion = mean non-GAAP minus mean GAAP = $0.169/share (median $0.07); non-GAAP above GAAP on 77% (6,833 firm-quarters)2013: mean exclusion = mean non-GAAP minus mean GAAP = $0.152/share (median $0.07); non-GAAP above GAAP on 77% (7,217 firm-quarters)20132014: mean exclusion = mean non-GAAP minus mean GAAP = $0.171/share (median $0.09); non-GAAP above GAAP on 79% (7,796 firm-quarters)2015: mean exclusion = mean non-GAAP minus mean GAAP = $0.287/share (median $0.10); non-GAAP above GAAP on 79% (8,047 firm-quarters)20152016: mean exclusion = mean non-GAAP minus mean GAAP = $0.216/share (median $0.09); non-GAAP above GAAP on 79% (7,701 firm-quarters)2017: mean exclusion = mean non-GAAP minus mean GAAP = $0.202/share (median $0.09); non-GAAP above GAAP on 75% (7,787 firm-quarters)20172018: mean exclusion = mean non-GAAP minus mean GAAP = $0.240/share (median $0.11); non-GAAP above GAAP on 77% (7,864 firm-quarters)2019: mean exclusion = mean non-GAAP minus mean GAAP = $0.266/share (median $0.11); non-GAAP above GAAP on 78% (7,713 firm-quarters)20192020: mean exclusion = mean non-GAAP minus mean GAAP = $0.368/share (median $0.15); non-GAAP above GAAP on 80% (7,610 firm-quarters)2021: mean exclusion = mean non-GAAP minus mean GAAP = $0.204/share (median $0.11); non-GAAP above GAAP on 74% (7,778 firm-quarters)20212022: mean exclusion = mean non-GAAP minus mean GAAP = $0.307/share (median $0.13); non-GAAP above GAAP on 80% (7,810 firm-quarters)2023: mean exclusion = mean non-GAAP minus mean GAAP = $0.306/share (median $0.14); non-GAAP above GAAP on 81% (7,688 firm-quarters)20232024: mean exclusion = mean non-GAAP minus mean GAAP = $0.323/share (median $0.14); non-GAAP above GAAP on 81% (7,639 firm-quarters)2025: mean exclusion = mean non-GAAP minus mean GAAP = $0.362/share (median $0.15); non-GAAP above GAAP on 82% (7,564 firm-quarters)20252026: mean exclusion = mean non-GAAP minus mean GAAP = $0.317/share (median $0.16); non-GAAP above GAAP on 81% (3,667 firm-quarters)2003: mean GAAP EPS $0.157; median $0.152004: mean GAAP EPS $0.247; median $0.192005: mean GAAP EPS $0.243; median $0.212006: mean GAAP EPS $0.315; median $0.232007: mean GAAP EPS $0.275; median $0.222008: mean GAAP EPS $-0.037; median $0.112009: mean GAAP EPS $0.075; median $0.112010: mean GAAP EPS $0.281; median $0.192011: mean GAAP EPS $0.280; median $0.212012: mean GAAP EPS $0.285; median $0.212013: mean GAAP EPS $0.329; median $0.222014: mean GAAP EPS $0.320; median $0.222015: mean GAAP EPS $0.200; median $0.192016: mean GAAP EPS $0.290; median $0.212017: mean GAAP EPS $0.355; median $0.232018: mean GAAP EPS $0.424; median $0.312019: mean GAAP EPS $0.401; median $0.302020: mean GAAP EPS $0.191; median $0.172021: mean GAAP EPS $0.561; median $0.332022: mean GAAP EPS $0.511; median $0.272023: mean GAAP EPS $0.506; median $0.282024: mean GAAP EPS $0.541; median $0.302025: mean GAAP EPS $0.576; median $0.342026: mean GAAP EPS $0.719; median $0.382003: mean non-GAAP EPS $0.291; median $0.232004: mean non-GAAP EPS $0.351; median $0.272005: mean non-GAAP EPS $0.363; median $0.302006: mean non-GAAP EPS $0.412; median $0.312007: mean non-GAAP EPS $0.427; median $0.332008: mean non-GAAP EPS $0.340; median $0.262009: mean non-GAAP EPS $0.316; median $0.242010: mean non-GAAP EPS $0.403; median $0.292011: mean non-GAAP EPS $0.423; median $0.312012: mean non-GAAP EPS $0.454; median $0.332013: mean non-GAAP EPS $0.480; median $0.342014: mean non-GAAP EPS $0.490; median $0.352015: mean non-GAAP EPS $0.487; median $0.352016: mean non-GAAP EPS $0.506; median $0.362017: mean non-GAAP EPS $0.557; median $0.392018: mean non-GAAP EPS $0.664; median $0.472019: mean non-GAAP EPS $0.667; median $0.462020: mean non-GAAP EPS $0.559; median $0.382021: mean non-GAAP EPS $0.766; median $0.482022: mean non-GAAP EPS $0.818; median $0.472023: mean non-GAAP EPS $0.812; median $0.482024: mean non-GAAP EPS $0.864; median $0.512025: mean non-GAAP EPS $0.938; median $0.542026: mean non-GAAP EPS $1.036; median $0.60firm-quarters with both figures, |EPS| > $10 excluded; $ per diluted share
table 

GAAP versus non-GAAP EPS by year, the numbers

yearfirm-quartersGAAP meanGAAP mediannon-GAAP meannon-GAAP medianexclusion meanexclusion median% non-GAAP > GAAP
20034,2690.1570.150.2910.230.1340.0470
20044,3250.2470.190.3510.270.1040.0468
20054,8230.2430.210.3630.300.1200.0470
20065,6300.3150.230.4120.310.0980.0474
20075,4320.2750.220.4270.330.1520.0574
20085,937-0.0370.110.3400.260.3780.0881
20095,8780.0750.110.3160.240.2410.0778
20106,0340.2810.190.4030.290.1220.0673
20116,2570.2800.210.4230.310.1430.0674
20126,8330.2850.210.4540.330.1690.0777
20137,2170.3290.220.4800.340.1520.0777
20147,7960.3200.220.4900.350.1710.0979
20158,0470.2000.190.4870.350.2870.1079
20167,7010.2900.210.5060.360.2160.0979
20177,7870.3550.230.5570.390.2020.0975
20187,8640.4240.310.6640.470.2400.1177
20197,7130.4010.300.6670.460.2660.1178
20207,6100.1910.170.5590.380.3680.1580
20217,7780.5610.330.7660.480.2040.1174
20227,8100.5110.270.8180.470.3070.1380
20237,6880.5060.280.8120.480.3060.1481
20247,6390.5410.300.8640.510.3230.1481
20257,5640.5760.340.9380.540.3620.1582
2026 (to Aug)3,6670.7190.381.0360.600.3170.1681

The non-GAAP premium, comparable to FactSet and Calcbench

FactSet reports the MEDIAN percentage gap between non-GAAP and GAAP EPS for the Dow 30 / S&P 500 (typically 8-14%, above 30% in restructuring-heavy quarters); Calcbench reports that 60-70% of companies show a non-GAAP figure above GAAP and fewer than 8% below. The same statistics here, for all filers and for the large-firm slice (absolute GAAP net income of $100M or more, the closest public-filings proxy to an index universe; no market data is used). The whole universe runs higher than the index figures because half of it is small firms with tiny GAAP denominators and losses; the large-firm slice lands inside the published bands. Quarters with an absolute EPS above $10 excluded; the percentage gap is computed on GAAP-positive quarters only.

median % gap, all filersmedian % gap, |GAAP net income| >= $100M% with non-GAAP above GAAP, all filers% above, large firmsFactSet 8-14% median gapCalcbench 60-70% above
FactSet: typical median gap 8-14% (Dow 30 / S&P 500)Calcbench: 60-70% of companies report a non-GAAP figure above GAAP0%20%40%60%80%100%2003: median % gap, all filers = 8%2004: median % gap, all filers = 7%2005: median % gap, all filers = 9%2006: median % gap, all filers = 12%2007: median % gap, all filers = 12%2008: median % gap, all filers = 19%2009: median % gap, all filers = 18%2010: median % gap, all filers = 13%2011: median % gap, all filers = 12%2012: median % gap, all filers = 15%2013: median % gap, all filers = 14%2014: median % gap, all filers = 16%2015: median % gap, all filers = 17%2016: median % gap, all filers = 17%2017: median % gap, all filers = 13%2018: median % gap, all filers = 14%2019: median % gap, all filers = 16%2020: median % gap, all filers = 16%2021: median % gap, all filers = 11%2022: median % gap, all filers = 16%2023: median % gap, all filers = 16%2024: median % gap, all filers = 17%2025: median % gap, all filers = 19%2026: median % gap, all filers = 19%2003: median % gap, |GAAP net income| >= $100M = 0%2004: median % gap, |GAAP net income| >= $100M = 0%2005: median % gap, |GAAP net income| >= $100M = 1%2006: median % gap, |GAAP net income| >= $100M = 1%2007: median % gap, |GAAP net income| >= $100M = 2%2008: median % gap, |GAAP net income| >= $100M = 4%2009: median % gap, |GAAP net income| >= $100M = 3%2010: median % gap, |GAAP net income| >= $100M = 3%2011: median % gap, |GAAP net income| >= $100M = 3%2012: median % gap, |GAAP net income| >= $100M = 5%2013: median % gap, |GAAP net income| >= $100M = 4%2014: median % gap, |GAAP net income| >= $100M = 4%2015: median % gap, |GAAP net income| >= $100M = 5%2016: median % gap, |GAAP net income| >= $100M = 6%2017: median % gap, |GAAP net income| >= $100M = 2%2018: median % gap, |GAAP net income| >= $100M = 5%2019: median % gap, |GAAP net income| >= $100M = 6%2020: median % gap, |GAAP net income| >= $100M = 8%2021: median % gap, |GAAP net income| >= $100M = 4%2022: median % gap, |GAAP net income| >= $100M = 7%2023: median % gap, |GAAP net income| >= $100M = 9%2024: median % gap, |GAAP net income| >= $100M = 9%2025: median % gap, |GAAP net income| >= $100M = 10%2026: median % gap, |GAAP net income| >= $100M = 10%2003: % with non-GAAP above GAAP, all filers = 70%2004: % with non-GAAP above GAAP, all filers = 68%2005: % with non-GAAP above GAAP, all filers = 70%2006: % with non-GAAP above GAAP, all filers = 74%2007: % with non-GAAP above GAAP, all filers = 74%2008: % with non-GAAP above GAAP, all filers = 81%2009: % with non-GAAP above GAAP, all filers = 78%2010: % with non-GAAP above GAAP, all filers = 73%2011: % with non-GAAP above GAAP, all filers = 74%2012: % with non-GAAP above GAAP, all filers = 77%2013: % with non-GAAP above GAAP, all filers = 77%2014: % with non-GAAP above GAAP, all filers = 79%2015: % with non-GAAP above GAAP, all filers = 79%2016: % with non-GAAP above GAAP, all filers = 79%2017: % with non-GAAP above GAAP, all filers = 75%2018: % with non-GAAP above GAAP, all filers = 77%2019: % with non-GAAP above GAAP, all filers = 78%2020: % with non-GAAP above GAAP, all filers = 80%2021: % with non-GAAP above GAAP, all filers = 74%2022: % with non-GAAP above GAAP, all filers = 80%2023: % with non-GAAP above GAAP, all filers = 81%2024: % with non-GAAP above GAAP, all filers = 81%2025: % with non-GAAP above GAAP, all filers = 82%2026: % with non-GAAP above GAAP, all filers = 81%2003: % above, large firms = 56%2004: % above, large firms = 53%2005: % above, large firms = 56%2006: % above, large firms = 54%2007: % above, large firms = 58%2008: % above, large firms = 72%2009: % above, large firms = 67%2010: % above, large firms = 61%2011: % above, large firms = 63%2012: % above, large firms = 67%2013: % above, large firms = 64%2014: % above, large firms = 66%2015: % above, large firms = 72%2016: % above, large firms = 72%2017: % above, large firms = 62%2018: % above, large firms = 68%2019: % above, large firms = 71%2020: % above, large firms = 75%2021: % above, large firms = 66%2022: % above, large firms = 74%2023: % above, large firms = 75%2024: % above, large firms = 76%2025: % above, large firms = 76%2026: % above, large firms = 75%200320052007200920112013201520172019202120232025median % gap on GAAP-positive quarters; shares among all reporters
table 

The premium by year, the numbers

yearall: nmedian % gap% above% below% GAAP losslarge: nmedian % gap% above% below
20034,269870183355605634
20044,325768202563205336
20054,823970192478615635
20065,6301274182290215437
20075,4321274162495925831
20085,937198113351,16247221
20095,8781878153597436725
20106,034137318251,04136130
20116,257127418251,15536328
20126,833157716271,27856727
20137,217147716271,36046429
20147,796167915281,51746628
20158,047177913311,64457222
20167,701177914301,60267222
20177,787137519301,74226233
20187,864147717271,88256827
20197,713167815281,88467124
20207,610168015382,00987522
20217,778117418302,23046627
20227,810168014322,23277421
20237,688168113322,22597520
20247,639178113302,31497619
20257,564198212282,397107619
2026 (to Aug)3,667198113271,247107519

Non-GAAP mentioned first, by year

Among firm-quarters with an explicit non-GAAP EPS: the share where the non-GAAP figure comes BEFORE the GAAP figure in the text, where the headline names only the non-GAAP figure, where the first table leads with the non-GAAP measure, and where only the non-GAAP figure is in bold (four of the eleven C&DI 102.10 prominence indicators). The 2016 C&DIs are visible: headline-only non-GAAP fell from 40% to 17%, non-GAAP-before-GAAP from 24% to 6%.

non-GAAP mentioned before GAAP in the textheadline names only the non-GAAP figurefirst table leads with non-GAAPonly non-GAAP in bold
0%12%24%36%48%60%2003: non-GAAP mentioned before GAAP in the text 24.2%2004: non-GAAP mentioned before GAAP in the text 20.7%2005: non-GAAP mentioned before GAAP in the text 22.4%2006: non-GAAP mentioned before GAAP in the text 21.4%2007: non-GAAP mentioned before GAAP in the text 22.0%2008: non-GAAP mentioned before GAAP in the text 24.9%2009: non-GAAP mentioned before GAAP in the text 26.6%2010: non-GAAP mentioned before GAAP in the text 28.9%2011: non-GAAP mentioned before GAAP in the text 31.1%2012: non-GAAP mentioned before GAAP in the text 33.1%2013: non-GAAP mentioned before GAAP in the text 35.0%2014: non-GAAP mentioned before GAAP in the text 37.2%2015: non-GAAP mentioned before GAAP in the text 40.3%2016: non-GAAP mentioned before GAAP in the text 14.6%2017: non-GAAP mentioned before GAAP in the text 4.5%2018: non-GAAP mentioned before GAAP in the text 5.1%2019: non-GAAP mentioned before GAAP in the text 4.7%2020: non-GAAP mentioned before GAAP in the text 4.4%2021: non-GAAP mentioned before GAAP in the text 4.8%2022: non-GAAP mentioned before GAAP in the text 5.4%2023: non-GAAP mentioned before GAAP in the text 5.0%2024: non-GAAP mentioned before GAAP in the text 5.4%2025: non-GAAP mentioned before GAAP in the text 6.0%2026: non-GAAP mentioned before GAAP in the text 6.3%2003: headline names only the non-GAAP figure 39.9%2004: headline names only the non-GAAP figure 38.7%2005: headline names only the non-GAAP figure 37.9%2006: headline names only the non-GAAP figure 39.7%2007: headline names only the non-GAAP figure 38.7%2008: headline names only the non-GAAP figure 39.2%2009: headline names only the non-GAAP figure 39.1%2010: headline names only the non-GAAP figure 37.7%2011: headline names only the non-GAAP figure 38.5%2012: headline names only the non-GAAP figure 38.1%2013: headline names only the non-GAAP figure 33.9%2014: headline names only the non-GAAP figure 31.2%2015: headline names only the non-GAAP figure 31.3%2016: headline names only the non-GAAP figure 23.7%2017: headline names only the non-GAAP figure 21.2%2018: headline names only the non-GAAP figure 19.8%2019: headline names only the non-GAAP figure 16.8%2020: headline names only the non-GAAP figure 16.8%2021: headline names only the non-GAAP figure 17.2%2022: headline names only the non-GAAP figure 17.8%2023: headline names only the non-GAAP figure 17.7%2024: headline names only the non-GAAP figure 17.2%2025: headline names only the non-GAAP figure 17.3%2026: headline names only the non-GAAP figure 16.5%2003: first table leads with non-GAAP 14.4%2004: first table leads with non-GAAP 11.4%2005: first table leads with non-GAAP 11.4%2006: first table leads with non-GAAP 9.2%2007: first table leads with non-GAAP 8.1%2008: first table leads with non-GAAP 8.1%2009: first table leads with non-GAAP 8.3%2010: first table leads with non-GAAP 8.1%2011: first table leads with non-GAAP 8.1%2012: first table leads with non-GAAP 7.0%2013: first table leads with non-GAAP 6.3%2014: first table leads with non-GAAP 6.0%2015: first table leads with non-GAAP 5.8%2016: first table leads with non-GAAP 3.9%2017: first table leads with non-GAAP 1.5%2018: first table leads with non-GAAP 1.2%2019: first table leads with non-GAAP 1.1%2020: first table leads with non-GAAP 0.9%2021: first table leads with non-GAAP 0.8%2022: first table leads with non-GAAP 0.7%2023: first table leads with non-GAAP 0.7%2024: first table leads with non-GAAP 0.6%2025: first table leads with non-GAAP 0.5%2026: first table leads with non-GAAP 0.6%2003: only non-GAAP in bold 0.5%2004: only non-GAAP in bold 1.3%2005: only non-GAAP in bold 2.0%2006: only non-GAAP in bold 1.8%2007: only non-GAAP in bold 2.5%2008: only non-GAAP in bold 3.4%2009: only non-GAAP in bold 3.5%2010: only non-GAAP in bold 5.1%2011: only non-GAAP in bold 5.0%2012: only non-GAAP in bold 5.0%2013: only non-GAAP in bold 5.1%2014: only non-GAAP in bold 4.9%2015: only non-GAAP in bold 4.9%2016: only non-GAAP in bold 3.5%2017: only non-GAAP in bold 3.1%2018: only non-GAAP in bold 2.9%2019: only non-GAAP in bold 3.2%2020: only non-GAAP in bold 5.6%2021: only non-GAAP in bold 6.1%2022: only non-GAAP in bold 6.1%2023: only non-GAAP in bold 6.0%2024: only non-GAAP in bold 6.0%2025: only non-GAAP in bold 6.0%2026: only non-GAAP in bold 5.5%200320052007200920112013201520172019202120232025
table 

Non-GAAP first by year, the numbers (% of reporters)

yearreportersbefore GAAP in textheadline non-GAAP onlytable leads non-GAAPonly non-GAAP bold
20034,27624.239.914.40.5
20044,33220.738.711.41.3
20054,83722.437.911.42.0
20065,63721.439.79.21.8
20075,45122.038.78.12.5
20085,99524.939.28.13.4
20095,89226.639.18.33.5
20106,04328.937.78.15.1
20116,27231.138.58.15.0
20126,85133.138.17.05.0
20137,23535.033.96.35.1
20147,82337.231.26.04.9
20158,08940.331.35.84.9
20167,72814.623.73.93.5
20177,8214.521.21.53.1
20187,9035.119.81.22.9
20197,7544.716.81.13.2
20207,6914.416.80.95.6
20217,8334.817.20.86.1
20227,9065.417.80.76.1
20237,7745.017.70.76.0
20247,7275.417.20.66.0
20257,6606.017.30.56.0
2026 (to Aug)3,7226.316.50.65.5

The 27 modules, every variable

Fill = share of the 106,151 firm-years with a value (the spine includes periods with no release, so 100% is not expected). Sparse variants (N < 100) are folded into sparse_extras and listed at the end of each module.

bold = the variables a buyer looks at first (key / most critical)red = built but holds no value on this spine (empty in its source too, or not applicable)
01 

MODA_01_DISCLOSURE

What exists for the firm-period, with a link per item
61 columns

What it is about. Whether and how the firm communicated for this period: is there a press release at all, does it carry non-GAAP EPS, guidance, quotes, a preliminary release, a formal-filing fallback; plus the link indicators that tell you which other modules have content. Start here to define any sample.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Which firms stop or start issuing earnings press releases, and does non-GAAP reporting drive that choice?
    provided has_press_release, has_ng_explicit, has_ng_imputed, formal_filing, gap_type
    needs Compustat fundamentals (size, book-to-market, leverage, industry; from IDENTIFIERS.gvkey); Compustat firm-quarter universe to define the population without a release
  2. How has the share of releases with non-GAAP EPS evolved by industry and size since 1994?
    provided has_press_release, has_gaap_eps, has_ng_explicit, has_ng_imputed
    needs industry codes and size from Compustat fundamentals (size, book-to-market, leverage, industry; from IDENTIFIERS.gvkey)
  3. Do firms that skip a release for a quarter show worse news in the subsequent 10-Q?
    provided has_press_release, formal_filing, formal_filing_form, gap_type, FILING_10Q.gaap_eps_filled
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno); I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)

Sources: NONGAAP_A, PANEL_FILL_A, PANEL_SPINE_A, tenq_exist_grid_v2

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
n_10kcount94%tenq_exist_grid_v2.n_tenk · copyNumber of 10-K filings matched to this firm-period
n_10qcount94%tenq_exist_grid_v2.n_tenq · copyNumber of 10-Q filings matched to this firm-quarter in the sec-api filing list
accession_10ktext90%tenq_exist_grid_v2.tenk_accession · copySEC accession number of the 10-K for this firm-period
filing_date_10kdate90%tenq_exist_grid_v2.tenk_filing_date · copyFiling date of the 10-K for this firm-period (fiscal Q4 / firm-year)
form_10ktext90%tenq_exist_grid_v2.tenk_form · copyForm type of the 10-K (10-K, 10-K/A, 10-KT)
accession_10qtext1%tenq_exist_grid_v2.tenq_accession · copySEC accession number of the 10-Q for this firm-quarter
filing_date_10qdate1%tenq_exist_grid_v2.tenq_filing_date · copyFiling date of the 10-Q for this firm-quarter (not the press-release date)
form_10qtext1%tenq_exist_grid_v2.tenq_form · copyForm type of the 10-Q (10-Q, 10-Q/A, 10-QT)
has_subpenny_adjustmentflag89%NONGAAP_A.has_subpenny_adjustment · copy1 = at least one reconciling item is smaller than one cent per share (rounding-level adjustments present)
in_item202_sampletext89%NONGAAP_A.in_item202_sample · copy1 = the release is in the Item 2.02 benchmark sample (the paper sample filter chain)
item_2_02text89%NONGAAP_A.item_2_02 · copy1 = the 8-K carrying the release was filed under Item 2.02 (Results of Operations and Financial Condition)
item_2_02_sourcetext89%NONGAAP_A.item_2_02_source · copyWhere the Item 2.02 flag was read: run1_flags / metadata_items (cached submission metadata)
press_pre_periodtext89%NONGAAP_A.press_pre_period · copy1 = the release also reports the prior-year period on a non-GAAP basis
filled_as_missingtext100%PANEL_SPINE_A.filled_as_missing · copy1 = this row's value did NOT come from an earnings press release but from an indirect route. Coarser than gaap_eps_tier; kept because it is the single filter that reprodu
formal_filingtext6%PANEL_SPINE_A.formal_filing · copyThe document type when the value did NOT come from a release: '10-Q', '10-K', 'filing_unspecified', or empty. String.
from_10ktext100%PANEL_SPINE_A.from_10k · copy1 if the GAAP EPS was read from a 10-K. Every Q4 routes here — no Q4 10-Q exists. Binary.
from_10qtext100%PANEL_SPINE_A.from_10q · copy1 if the GAAP EPS was read from a 10-Q. Binary.
from_other_filingtext100%PANEL_SPINE_A.from_other_filing · copy1 if the GAAP EPS was read from a formal filing whose form type was never recorded (294 quarterly rows). A filing, just not an identifiable one — not an absence. Binary.
has_gaap_eps$/share100%PANEL_SPINE_A.has_gaap_eps · copy1 = a GAAP diluted EPS is available from ANY source (release, 10-Q, 10-K).
gaap_eps_from_releasetext100%PANEL_SPINE_A.press_release · copy1 = the GAAP EPS of this firm-quarter was read from the earnings press release (0 = filled from a 10-Q/10-K or missing)
source_documenttext100%PANEL_SPINE_A.source_document · copyWHICH DOCUMENT the GAAP EPS was read out of: 'press_release' / '10-Q' / '10-K' / 'none'. A fourth quarter resolves to 10-K because no Q4 10-Q exists -- US filers report Q
is_panel_fill_rowflag7%PANEL_FILL_A.addon · copy1 = this firm-quarter row was added by the panel-fill layer (no press release for the quarter; values recovered from 10-Q/10-K or a later release); 54,762 rows. Not a top
has_press_releaseflag100%derived · link_indicator1 = an earnings press release (8-K Exhibit 99.1) exists for this firm-quarter; the row's release is exhibit_url
link_press_releasetext91%derived · link_indicatorURL of the document carrying an earnings press release (8-K Ex. 99.1) for the quarter
has_10qflag100%derived · link_indicator1 if the firm-quarter has a 10-Q for the quarter
link_10qtext1%derived · link_indicatorURL of the document carrying a 10-Q for the quarter
has_10kflag100%derived · link_indicator1 if the firm-quarter has a 10-K for the quarter (fiscal Q4)
link_10ktext90%derived · link_indicatorURL of the document carrying a 10-K for the quarter (fiscal Q4)
has_ng_explicitflag100%derived · link_indicator1 if the firm-quarter has an explicitly disclosed non-GAAP EPS
link_ng_explicittext42%derived · link_indicatorURL of the document carrying an explicitly disclosed non-GAAP EPS
has_ng_imputedflag100%derived · link_indicator1 = no non-GAAP EPS is PRINTED but one is imputed from the release's dollar figures (non-GAAP net income / shares); the printed case is has_ng_explicit
link_ng_imputedtext0%derived · link_indicatorURL of the release from which the non-GAAP EPS was imputed
has_guidanceflag100%derived · link_indicator1 if the firm-quarter has forward-looking guidance (EPS guidance or any guidance item)
link_guidancetext49%derived · link_indicatorURL of the document carrying forward-looking guidance (EPS guidance or any guidance item)
has_quoteflag100%derived · link_indicator1 if the firm-quarter has at least one management quote
link_quotetext80%derived · link_indicatorURL of the document carrying at least one management quote
has_q4_separateflag100%derived · link_indicator1 if the firm-quarter has an explicit fourth-quarter disclosure (not derived)
link_q4_separatetext91%derived · link_indicatorURL of the document carrying an explicit fourth-quarter disclosure (not derived)
has_fcfflag100%derived · link_indicator1 if the firm-quarter has a free-cash-flow measure
link_fcftext12%derived · link_indicatorURL of the document carrying a free-cash-flow measure
has_kpiflag100%derived · link_indicator1 if the firm-quarter has operational KPIs
link_kpitext29%derived · link_indicatorURL of the document carrying operational KPIs
has_topicsflag100%derived · link_indicator1 if the firm-quarter has at least one canonical topic
link_topicstext8%derived · link_indicatorURL of the document carrying at least one canonical topic
has_preliminaryflag100%derived · link_indicator1 if the firm-quarter has a preliminary release
link_preliminarytext4%derived · link_indicatorURL of the document carrying a preliminary release
has_fwd_reconflag100%derived · link_indicator1 if the firm-quarter has a forward-looking reconciliation
link_fwd_recontext9%derived · link_indicatorURL of the document carrying a forward-looking reconciliation
has_unexcluded_gainsflag100%derived · link_indicator1 if the firm-quarter has gains left unexcluded
link_unexcluded_gainstext11%derived · link_indicatorURL of the document carrying gains left unexcluded
has_epsless_releaseflag100%derived · link_indicator1 if the firm-quarter has an EPS-less earnings release (net income reported, no per-share figure; SAT_EPSLESS_FILINGS) -- the period tables do not carry it
link_epsless_releasetext2%derived · link_indicatorURL of the document carrying an EPS-less earnings release (net income reported, no per-share figure; SAT_EPSLESS_FILINGS) -- the period tables do not carry it
has_consensus_mentionflag100%derived · link_indicator1 = the release itself compares results to analyst consensus (explicit mention; rare in US releases, ~0.6% of releases)
link_consensus_mentiontext0%derived · link_indicatorURL of the document carrying an explicit comparison to analyst consensus
02 

MODA_02_GAAP

Press-release GAAP lines; per-share derivations
115 columns

What it is about. The GAAP anchor as printed in the release: diluted and basic EPS, net income, revenue, gross profit, operating income, share counts, with source flags and the derived-Q4 companions. The benchmark every non-GAAP figure is compared with.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. How often does the release's GAAP EPS differ from the later 10-Q, and what explains the gaps?
    provided gaap_eps, gaap_eps_basic, gaap_eps_source, gaap_eps_tier, FILING_10Q.gaap_eps_diluted_xbrl, FILING_10Q.xbrl_period_gap_days
    needs none beyond the database; Compustat epspxq as a third reading is optional
  2. Does revenue headline placement predict the size of GAAP-to-non-GAAP exclusions?
    provided revenue_m, revenue_label, revenue_growth_pct, GAAP_TO_NG.total_exclusions, NG_PROMINENCE.html_bold_revenue
    needs nothing external
  3. Are GAAP losses more likely to be accompanied by a non-GAAP profit in some industries?
    provided gaap_eps, gaap_net_income, NG.nongaap_eps, NG.nongaap_net_income
    needs industry codes from Compustat fundamentals (size, book-to-market, leverage, industry; from IDENTIFIERS.gvkey)

Sources: MODULE_GAAP_Q, NONGAAP_A, PANEL_SPINE_A, SAT_FY_RELEASE, SAT_OPEX, SAT_RECOVERED_PERIOD

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
basic_shares_kthousands65%NONGAAP_A.basic_shares_k · copyBasic weighted-average shares used in computing basic EPS, in thousands; null if not reported
diluted_shares_kthousands73%NONGAAP_A.diluted_shares_k · copyDiluted weighted-average shares used in computing diluted EPS, in thousands
dual_class_sharesflag89%NONGAAP_A.dual_class_shares · copy1=filing has dual-class A/B shares
eps_from_calcflag89%NONGAAP_A.eps_from_calc · copy1=gaap_eps/nongaap_eps derived from net income/shares (table EPS was missing)
eps_mentions_gaapcount89%NONGAAP_A.eps_mentions_gaap · copyCount of GAAP-EPS mentions in the filing text
eps_mentions_nongaapcount89%NONGAAP_A.eps_mentions_nongaap · copyCount of non-GAAP-EPS mentions in the filing text
eps_text_table_conflictflag89%NONGAAP_A.eps_text_table_conflict · copy1=a stated text EPS anchor exists but the final reported GAAP or non-GAAP EPS disagrees with it by >$0.01 (text/table mismatch -> likely wrong-column read; flagged for re
eps_year_ago$/share75%NONGAAP_A.eps_year_ago · copyPrior-year EPS value the release compares against (not a consensus)
gaap_eps$/share89%NONGAAP_A.gaap_eps · copyGAAP diluted EPS, rounded to 2 decimals (reporting convention); derived from net income/shares and flagged by gaap_eps_from_calc when the line item is not found
gaap_eps_basic$/share70%NONGAAP_A.gaap_eps_basic · copyGAAP basic EPS as reported
gaap_eps_classb$/share1%NONGAAP_A.gaap_eps_classb · copyGAAP diluted EPS Class B shares
gaap_eps_corrected$/share89%NONGAAP_A.gaap_eps_corrected · copyGAAP EPS after the deterministic correction rules (scale, basic-vs-diluted, column) -- the printed value is kept separately
gaap_eps_from_calcflag89%NONGAAP_A.gaap_eps_from_calc · copy1=GAAP EPS was NOT found as a line item in the filing and was derived from net income/shares (last-resort fallback; value may have >2 decimals)
gaap_eps_incl_imputed$/share89%NONGAAP_A.gaap_eps_incl_imputed · copyGAAP EPS including the imputed value where no printed EPS exists
gaap_eps_labeltext87%NONGAAP_A.gaap_eps_label · copyVerbatim GAAP EPS row label from filing
gaap_eps_precise$/share74%NONGAAP_A.gaap_eps_precise · copyPRECISE GAAP EPS = gaap_net_income($M)*1000 / diluted (else basic) shares, unrounded (6 dp)
gaap_eps_text$/share72%NONGAAP_A.gaap_eps_text · copyGAAP EPS figure found in the opening text of the release (the text anchor), $/share
gaap_eps_x1000_suspectflag89%NONGAAP_A.gaap_eps_x1000_suspect · copy1 if the GAAP EPS looks scaled by 1,000 (suspect; flagged, never fixed)
gaap_net_income$M88%NONGAAP_A.gaap_net_income · copyGAAP net income ($M)
gaap_net_marginratio81%NONGAAP_A.gaap_net_margin · copyGAAP net profit margin = gaap_net_income / revenue_m (ratio; e.g. 0.152 = 15.2%)
gaap_tax_rate_pct_q4_releaseratio10%NONGAAP_A.gaap_tax_rate_pct · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] GAAP effective tax rate, percent; null if not stated
gross_margin_q4_releaseratio33%NONGAAP_A.gross_margin · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] GAAP gross margin = gross_profit_m / revenue_m (ratio; e.g. 0.62 = 62%)
gross_profit_labeltext33%NONGAAP_A.gross_profit_label · copyVerbatim gross-profit label from filing (e.g. Gross profit, Gross margin); null if not reported
gross_profit_m_q4_release$M33%NONGAAP_A.gross_profit_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Gross profit for most recent period ($M; revenue minus cost of revenue); null if no gross-prof
implied_shares_suspectflag89%NONGAAP_A.implied_shares_suspect · copy1 if shares implied by GAAP NI / GAAP EPS diverge from the reported count.
ni_dollars_onlyflag89%NONGAAP_A.ni_dollars_only · copy1 if the release reconciled in DOLLARS only and printed no per-share figure.
operating_eps_q4_release$/share56%NONGAAP_A.operating_eps · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Operating earnings per diluted share = operating_income_m*1000/diluted_shares_k (derived in po
operating_income_labeltext60%NONGAAP_A.operating_income_label · copyVerbatim operating-income label from filing (e.g. Operating income, Income from operations); null if not reported
operating_income_m_q4_release$M60%NONGAAP_A.operating_income_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] GAAP operating income / operating earnings for most recent period ($M; revenue minus operating
operating_margin_q4_releaseratio58%NONGAAP_A.operating_margin · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Operating margin = operating_income_m / revenue_m (ratio)
precise_shares_basistext74%NONGAAP_A.precise_shares_basis · copyBasis of precise_shares_k: "diluted" (preferred) or "basic" (fallback when diluted missing); blank if neither share count available
precise_shares_kthousands74%NONGAAP_A.precise_shares_k · copyShare count (thousands) used as the denominator for ALL *_precise columns (= diluted_shares_k, or basic_shares_k when diluted is unavailable)
revenue_growth_pct_q4_releaseratio48%NONGAAP_A.revenue_growth_pct · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] As-reported (GAAP) total revenue YoY growth, percent (e.g. 8.5 = +8.5%); null if not stated
revenue_labeltext82%NONGAAP_A.revenue_label · copyVerbatim revenue label from filing (e.g. Net revenues, Net sales)
revenue_m_q4_release$M83%NONGAAP_A.revenue_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Total revenue/net sales for most recent period ($M)
revenue_per_share_q4_release$/share70%NONGAAP_A.revenue_per_share · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Revenue per diluted share derived from revenue_m*1000/diluted_shares_k
shares_mmillions88%NONGAAP_A.shares_m · copyDiluted share count used for per-share conversion, in millions.
shares_sourcetext89%NONGAAP_A.shares_source · copySource of the share count (press_release / imputed / filing)
gaap_eps_any$/share97%PANEL_SPINE_A.gaap_eps_any · copyGAAP diluted EPS from whichever route succeeded (release, 10-Q, 10-K); routes in gaap_eps_src, provenance tier in gaap_eps_tier
gaap_eps_sourcetext6%PANEL_SPINE_A.gaap_eps_source · copySource of GAAP EPS value: LLM filing text, XBRL 10-K/Q, or sum of four quarters. Unit: free text.
cogs_labeltext43%SAT_OPEX.cogs_label · copyVerbatim label the filing used for cogs.
cogs_m_q4_release$M43%SAT_OPEX.cogs_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Cogs, US$ millions.
ga_m_q4_release$M24%SAT_OPEX.ga_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Ga, US$ millions.
nongaap_opex_labeltext6%SAT_OPEX.nongaap_opex_label · copyVerbatim label the filing used for nongaap opex.
nongaap_opex_m_q4_release$M6%SAT_OPEX.nongaap_opex_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Nongaap opex, US$ millions.
opex_total_labeltext46%SAT_OPEX.opex_total_label · copyVerbatim label the filing used for opex total.
opex_total_m_q4_release$M47%SAT_OPEX.opex_total_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Opex total, US$ millions.
other_opex_labeltext41%SAT_OPEX.other_opex_label · copyVerbatim label the filing used for other opex.
other_opex_m_q4_release$M41%SAT_OPEX.other_opex_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Other opex, US$ millions.
rd_expense_m_q4_release$M25%SAT_OPEX.rd_expense_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Rd expense, US$ millions.
sga_m_q4_release$M32%SAT_OPEX.sga_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Sga, US$ millions.
sm_m_q4_release$M14%SAT_OPEX.sm_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Sm, US$ millions.
discontinued_ops_eps$/share77%SAT_RECOVERED_PERIOD.discontinued_ops_eps · copyEarnings per share from discontinued operations, per diluted share, in US$.
gaap_eps_column_correctedflag42%SAT_RECOVERED_PERIOD.gaap_eps_column_corrected · copy1 = the GAAP EPS was taken from a different column of the release's EPS table than first read (column-correction rule applied)
gaap_eps_continuing$/share77%SAT_RECOVERED_PERIOD.gaap_eps_continuing · copyGAAP earnings per share from continuing operations, per diluted share, in US$.
gaap_eps_imputedflag42%SAT_RECOVERED_PERIOD.gaap_eps_imputed · copy1 = the GAAP EPS was imputed from net income and shares because no EPS line was printed
gaap_eps_no_totalflag42%SAT_RECOVERED_PERIOD.gaap_eps_no_total · copy1 = the release's EPS table has no total line (EPS assembled from continuing and discontinued components)
gaap_net_income_ps_derived$/share69%MODULE_GAAP_Q.gaap_net_income_m · per_share_from_mgaap_net_income per diluted share, DERIVED = gaap_net_income_m x 1000 / diluted_shares_k (basic if diluted missing)
gaap_net_income_ps_derived_sourcetext69%MODULE_GAAP_Q.gaap_net_income_m · per_share_from_mdiluted / basic share count used for the derivation
gross_profit_m$M27%derived · annual_flow_fyFULL-YEAR gross_profit_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see gross_prof
gross_profit_m_fy_sourcetext27%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
operating_income_m$M48%derived · annual_flow_fyFULL-YEAR operating_income_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see operat
operating_income_m_fy_sourcetext48%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
revenue_m$M68%derived · annual_flow_fyFULL-YEAR revenue_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see revenue_m_fy_so
revenue_m_fy_sourcetext68%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
cogs_m$M29%derived · annual_flow_fyFULL-YEAR cogs_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see cogs_m_fy_source
cogs_m_fy_sourcetext29%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
ga_m$M13%derived · annual_flow_fyFULL-YEAR ga_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see ga_m_fy_source
ga_m_fy_sourcetext13%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
nongaap_opex_m$M3%derived · annual_flow_fyFULL-YEAR nongaap_opex_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see nongaap_op
nongaap_opex_m_fy_sourcetext3%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
opex_total_m$M29%derived · annual_flow_fyFULL-YEAR opex_total_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see opex_total_m
opex_total_m_fy_sourcetext29%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
other_opex_m$M19%derived · annual_flow_fyFULL-YEAR other_opex_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see other_opex_m
other_opex_m_fy_sourcetext19%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
rd_expense_m$M17%derived · annual_flow_fyFULL-YEAR rd_expense_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see rd_expense_m
rd_expense_m_fy_sourcetext17%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
sga_m$M20%derived · annual_flow_fyFULL-YEAR sga_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see sga_m_fy_source
sga_m_fy_sourcetext20%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
sm_m$M9%derived · annual_flow_fyFULL-YEAR sm_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see sm_m_fy_source
sm_m_fy_sourcetext9%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
revenue_m_fy_release$M78%SAT_FY_RELEASE.revenue_m_fy_release · copyRevenue for the FISCAL YEAR as printed in the Q4 press release's full-year column ($M; focused FY pass, revenue within 1% of the 10-K on 97%). Null where the column is no
gross_profit_m_fy_release$M38%SAT_FY_RELEASE.gross_profit_m_fy_release · copyGross profit for the FISCAL YEAR as printed in the Q4 press release's full-year column ($M; focused FY pass, revenue within 1% of the 10-K on 97%). Null where the column
operating_income_m_fy_release$M67%SAT_FY_RELEASE.operating_income_m_fy_release · copyOperating income for the FISCAL YEAR as printed in the Q4 press release's full-year column ($M; focused FY pass, revenue within 1% of the 10-K on 97%). Null where the col
gaap_net_income_fy_release$M89%SAT_FY_RELEASE.gaap_net_income_fy_release · copyGAAP net income for the FISCAL YEAR as printed in the Q4 press release's full-year column ($M; focused FY pass, revenue within 1% of the 10-K on 97%). Null where the colu
cogs_m_fy_release$M47%SAT_FY_RELEASE.cogs_m_fy_release · copyCost of sales for the FISCAL YEAR as printed in the Q4 press release's full-year column ($M; focused FY pass, revenue within 1% of the 10-K on 97%). Null where the column
sga_m_fy_release$M50%SAT_FY_RELEASE.sga_m_fy_release · copySG&A for the FISCAL YEAR as printed in the Q4 press release's full-year column ($M; focused FY pass, revenue within 1% of the 10-K on 97%). Null where the column is not a
rd_expense_m_fy_release$M28%SAT_FY_RELEASE.rd_expense_m_fy_release · copyR&D expense for the FISCAL YEAR as printed in the Q4 press release's full-year column ($M; focused FY pass, revenue within 1% of the 10-K on 97%). Null where the column i
fy_column_headertext87%SAT_FY_RELEASE.fy_column_header · copyVerbatim header of the full-year column used ('Year Ended December 31, 2021')
fy_monthscount90%SAT_FY_RELEASE.fy_months · copyMonths covered by the FY column as printed (52/53 = weeks, a full year)
fy_release_is_full_yearflag90%SAT_FY_RELEASE.fy_release_is_full_year · copy1 = the release's FY column covers 12 months or a 52/53-week year; 0 = a 9-/6-month stub (1,688 firm-years), in which case the *_fy_release lines are nulled in the module
fy_units_as_printedtext91%SAT_FY_RELEASE.fy_units_as_printed · copyUnits the release printed (thousands / millions / dollars / billions); values are converted to $M
revenue_fy_labeltext79%SAT_FY_RELEASE.revenue_fy_label · copyVerbatim revenue label in the FY column
fy_release_confidencetext91%SAT_FY_RELEASE.fy_release_confidence · copyExtractor confidence for the FY column: high (revenue matches the 10-K on 98%) / medium (94%) / low (81%)
fy_release_notestext57%SAT_FY_RELEASE.fy_release_notes · copyExtractor notes on the FY column (free text)
fy_best_sourcetext85%derived · annual_fy_ratios[FY, deterministic] release_fy_column (SAT_FY_RELEASE, fy_months=12) / sum_of_4_quarters / missing
revenue_m_fy_best$M85%derived · annual_fy_ratios[FY, deterministic] Best full-year revenue: release FY column, else sum of the 4 quarters
gross_profit_m_fy_best$M39%derived · annual_fy_ratios[FY, deterministic] Best full-year gross profit
operating_income_m_fy_best$M68%derived · annual_fy_ratios[FY, deterministic] Best full-year operating income
cogs_m_fy_best$M49%derived · annual_fy_ratios[FY, deterministic] Best full-year cost of sales
sga_m_fy_best$M51%derived · annual_fy_ratios[FY, deterministic] Best full-year SG&A
rd_expense_m_fy_best$M29%derived · annual_fy_ratios[FY, deterministic] Best full-year R&D
gross_margin_fyratio39%derived · annual_fy_ratios[FY, deterministic] gross_profit_fy_best / revenue_fy_best
operating_margin_fyratio66%derived · annual_fy_ratios[FY, deterministic] operating_income_fy_best / revenue_fy_best
net_margin_fyratio81%derived · annual_fy_ratios[FY, deterministic] FY GAAP net income / revenue_fy_best
revenue_growth_fy_pctratio70%derived · annual_fy_ratios[FY, deterministic] revenue_fy_best vs the same firm's prior firm-year, percent
revenue_per_share_fy$/share70%derived · annual_fy_ratios[FY, deterministic] revenue_fy_best x 1000 / FY diluted shares (basic fallback)
operating_eps_fy$/share58%derived · annual_fy_ratios[FY, deterministic] operating_income_fy_best x 1000 / FY diluted shares
03 

MODA_03_CASH_FLOW

Operating / investing / financing / net cash
39 columns

What it is about. Cash-flow lines as stated in the release: operating, investing and financing cash flow, year-to-date versus quarterly, and per-share versions derived from share counts.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Do non-GAAP earnings track operating cash flow better than GAAP earnings do?
    provided cfo_m, cfo_quarterly_m, cfo_period_months, NG.nongaap_net_income, GAAP.gaap_net_income
    needs Compustat oancfy as a check on the release's cash-flow line
  2. Is a large gap between non-GAAP earnings and operating cash flow a predictor of later restatements?
    provided cfo_quarterly_m, NG.nongaap_net_income, TOPICS.p3_any_restatement_flag
    needs Audit Analytics restatements / auditor changes
  3. How often do releases print cash-flow figures at all, and does that depend on the non-GAAP story?
    provided cfo_m, cfi_m, cff_m, net_cash_m, NG.has_nongaap_eps, GAAP_TO_NG.total_exclusions
    needs nothing external

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_FY_RELEASE

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
cff_m_q4_release$M32%NONGAAP_A.cff_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Cash flow from financing activities as printed ($M); period length in cfo_period_months -- use
cff_per_share_q4_release$/share30%NONGAAP_A.cff_per_share · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Financing CF per diluted share: cff_m*1000/diluted_shares_k
cff_per_share_quarterly$/share0%NONGAAP_A.cff_per_share_quarterly · copyFinancing cash flow for the discrete quarter per diluted share
cff_quarterly_m$M0%NONGAAP_A.cff_quarterly_m · copyCash from financing for the discrete quarter ($M); as printed or decumulated from year-to-date (cfo_quarterly_basis)
cfi_m_q4_release$M32%NONGAAP_A.cfi_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Cash flow from investing activities as printed ($M; typically negative); period length in cfo_
cfi_per_share_q4_release$/share30%NONGAAP_A.cfi_per_share · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Investing CF per diluted share: cfi_m*1000/diluted_shares_k
cfi_per_share_quarterly$/share0%NONGAAP_A.cfi_per_share_quarterly · copyInvesting cash flow for the discrete quarter per diluted share
cfi_quarterly_m$M0%NONGAAP_A.cfi_quarterly_m · copyCash from investing for the discrete quarter ($M); as printed or decumulated from year-to-date (cfo_quarterly_basis)
cfo_m_q4_release$M40%NONGAAP_A.cfo_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Cash flow from operating activities AS PRINTED in the release's cash-flow statement ($M); cove
cfo_per_share_q4_release$/share36%NONGAAP_A.cfo_per_share · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Operating cash flow per diluted share for the as-printed period: cfo_m x 1000 / diluted_shares
cfo_per_share_quarterly$/share0%NONGAAP_A.cfo_per_share_quarterly · copyOperating cash flow for the discrete quarter per diluted share
cfo_period_monthsmonths40%NONGAAP_A.cfo_period_months · copyLength in months of the period the as-printed cash-flow figures cover (3 = quarter, 6/9 = year-to-date, 12 = fiscal year), read from the statement header
cfo_quarterly_basistext89%NONGAAP_A.cfo_quarterly_basis · copyHow the discrete-quarter cash flows were obtained: reported (the release printed the quarter) / decumulated (year-to-date minus prior year-to-date) / none
cfo_quarterly_m$M0%NONGAAP_A.cfo_quarterly_m · copyCash from operations for the DISCRETE quarter ($M): as printed when the release gives the quarter, else decumulated from year-to-date figures (cfo_quarterly_basis says wh
net_cash_m_q4_release$M31%NONGAAP_A.net_cash_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Net change in cash and cash equivalents as printed ($M); period length in cfo_period_months --
net_cash_per_share_q4_release$/share29%NONGAAP_A.net_cash_per_share · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Net cash change per diluted share: net_cash_m*1000/diluted_shares_k
net_cash_per_share_quarterly$/share0%NONGAAP_A.net_cash_per_share_quarterly · copyNet change in cash for the discrete quarter per diluted share
net_cash_quarterly_m$M0%NONGAAP_A.net_cash_quarterly_m · copyNet change in cash for the discrete quarter ($M); as printed or decumulated from year-to-date (cfo_quarterly_basis)
cff_m$M32%derived · annual_flow_fyFULL-YEAR cff_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see cff_m_fy_source
cff_m_fy_sourcetext32%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
cfi_m$M32%derived · annual_flow_fyFULL-YEAR cfi_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see cfi_m_fy_source
cfi_m_fy_sourcetext32%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
cfo_m$M39%derived · annual_flow_fyFULL-YEAR cfo_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see cfo_m_fy_source
cfo_m_fy_sourcetext39%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
net_cash_m$M31%derived · annual_flow_fyFULL-YEAR net_cash_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see net_cash_m_fy_
net_cash_m_fy_sourcetext31%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
cfo_m_fy_release$M40%SAT_FY_RELEASE.cfo_m_fy_release · copyCash from operations for the FISCAL YEAR as printed in the Q4 press release's full-year column ($M; focused FY pass, revenue within 1% of the 10-K on 97%). Null where the
capex_m_fy_release$M37%SAT_FY_RELEASE.capex_m_fy_release · copyCapital expenditures for the FISCAL YEAR as printed in the Q4 press release's full-year column ($M; focused FY pass, revenue within 1% of the 10-K on 97%). Null where the
cfo_m_fy_best$M42%derived · annual_fy_ratios[FY, deterministic] Best full-year operating cash flow (release FY column, else 12-month YTD / sum of discrete quarters)
capex_m_fy_best$M37%derived · annual_fy_ratios[FY, deterministic] Full-year capex from the release FY column
cfo_per_share_fy$/share36%derived · annual_fy_ratios[FY, deterministic] cfo_fy_best x 1000 / FY diluted shares
capex_per_share_fy$/share33%derived · annual_fy_ratios[FY, deterministic] capex_fy_best x 1000 / FY diluted shares
04 

MODA_04_NG

Headline non-GAAP EPS and net income as disclosed
43 columns

What it is about. The headline non-GAAP EPS: whether one exists, its value, basis, label, type, disclaimer language, whether it appears in a full non-GAAP income statement, and the imputed value where only dollars are given.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. What fraction of firm-quarters report a non-GAAP EPS, and how did it change after Regulation G and the 2016 C&DIs?
    provided has_nongaap_eps, nongaap_explicit, nongaap_eps
    needs nothing external; event dates are 2003-03 and 2016-05
  2. Do firms with GAAP losses disproportionately present a non-GAAP profit?
    provided nongaap_eps, nongaap_net_income, GAAP.gaap_eps, GAAP.gaap_net_income
    needs nothing external
  3. Does labelling ('adjusted', 'core', 'pro forma') relate to the size or persistence of exclusions?
    provided nongaap_eps_label, nongaap_eps_type, first_nongaap_basis, GAAP_TO_NG.total_exclusions, NG_PERSISTENCE.recurring_excl_share
    needs nothing external

Sources: NONGAAP_A, PANEL_SPINE_A

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
gaap_onlyflag89%NONGAAP_A.gaap_only · copy1 = GAAP-only reporter: the release presents no non-GAAP earnings measure of any kind
first_nongaap_basistext49%NONGAAP_A.first_nongaap_basis · copyBasis of the FIRST non-GAAP measure in the headline/text: per_share / dollar / both (blank if none)
ng_income_stmtflag89%NONGAAP_A.ng_income_stmt · copy1 = the release's income statement carries non-GAAP figures (a non-GAAP column or non-GAAP subtotals inside the statement)
ng_income_stmt_strictflag89%NONGAAP_A.ng_income_stmt_strict · copy1 = the release presents a FULL non-GAAP income statement (a non-GAAP column running down the P&L), the strict form of ng_income_stmt
nongaap_disclaimerflag89%NONGAAP_A.nongaap_disclaimer · copy1=release includes Reg-G cautionary language (non-GAAP supplemental, not a substitute for GAAP)
nongaap_eps$/share41%NONGAAP_A.nongaap_eps · copyNon-GAAP diluted EPS, rounded to 2 decimals (reporting convention); adjustments sum exactly to nongaap_eps - gaap_eps
nongaap_eps_basic$/share10%NONGAAP_A.nongaap_eps_basic · copyNon-GAAP basic EPS as reported
nongaap_eps_corrected$/share41%NONGAAP_A.nongaap_eps_corrected · copyNon-GAAP EPS after the deterministic correction rules -- the printed value is kept separately
nongaap_eps_from_calcflag89%NONGAAP_A.nongaap_eps_from_calc · copy1=non-GAAP EPS was NOT found as a line item and was derived from non-GAAP net income/shares
nongaap_eps_gaap_equivalentflag89%NONGAAP_A.nongaap_eps_gaap_equivalent · copy1=the non-GAAP EPS EQUALS GAAP EPS (within a cent) with NO named adjustment — i.e. it is not a distinct non-GAAP measure even if a benchmark (Bentley MGR_NG) flagged it.
nongaap_eps_incl_imputed$/share41%NONGAAP_A.nongaap_eps_incl_imputed · copyNon-GAAP EPS including the rare imputed cases (no printed figure, derived from non-GAAP net income and shares; 0.2%); nongaap_eps holds the printed value only
nongaap_eps_is_earningsflag41%NONGAAP_A.nongaap_eps_is_earnings · copy1=the headline non-GAAP EPS is an EARNINGS measure (non_gaap/adjusted_earnings/adjusted_ebitda/unlabeled/other); 0=a non-earnings per-share metric wrongly carried as an E
nongaap_eps_labeltext39%NONGAAP_A.nongaap_eps_label · copyVerbatim non-GAAP EPS row label from filing
nongaap_eps_label_explicit_nongaapflag89%NONGAAP_A.nongaap_eps_label_explicit_nongaap · copy1=the non-GAAP EPS label literally contains "non-GAAP". 0 otherwise.
nongaap_eps_low_confidenceflag89%NONGAAP_A.nongaap_eps_low_confidence · copy1=flag-only guard: the headline non-GAAP EPS is probably NOT a genuine adjusted-earnings figure — it is a non-earnings measure (is_earnings=0), OR differs from GAAP by on
nongaap_eps_precise$/share34%NONGAAP_A.nongaap_eps_precise · copyPRECISE non-GAAP EPS = nongaap_net_income($M)*1000 / diluted (else basic) shares, unrounded (6 dp)
nongaap_eps_text$/share32%NONGAAP_A.nongaap_eps_text · copyNon-GAAP EPS anchor found in opening text (Step 1)
nongaap_eps_typetext41%NONGAAP_A.nongaap_eps_type · copyType of the headline non-GAAP EPS, from its verbatim label (deterministic; classifies the value, never changes it): non_gaap (label says "non-GAAP"), adjusted_earnings (a
nongaap_eps_x1000_suspectflag89%NONGAAP_A.nongaap_eps_x1000_suspect · copy1 if the non-GAAP EPS looks scaled by 1,000 (suspect; flagged, never fixed)
nongaap_explicitflag89%NONGAAP_A.nongaap_explicit · copy1 = the release explicitly presents at least one non-GAAP financial measure (any measure, not only EPS; LLM judgement)
nongaap_gross_margin_q4_releaseratio5%NONGAAP_A.nongaap_gross_margin · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Non-GAAP gross margin = nongaap_gross_profit_m / revenue_m (ratio)
nongaap_gross_profit_m_q4_release$M5%NONGAAP_A.nongaap_gross_profit_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Non-GAAP / adjusted gross profit ($M); null if only GAAP gross profit
nongaap_justification_providedflag89%NONGAAP_A.nongaap_justification_provided · copy1=release gives a reason/benefit for using non-GAAP or excluding items
nongaap_justification_texttext45%NONGAAP_A.nongaap_justification_text · copyVerbatim justification sentence/phrase (null if none)
nongaap_justification_typetext88%NONGAAP_A.nongaap_justification_type · copyPrimary rationale: investor_usefulness/management_use/comparability/core_operations/non_recurring/other/none
nongaap_net_income$M37%NONGAAP_A.nongaap_net_income · copyNon-GAAP / adjusted net income ($M) as reported in the release (verbatim label in nongaap_net_income_label)
nongaap_net_income_labeltext37%NONGAAP_A.nongaap_net_income_label · copyVerbatim label of the non-GAAP/adjusted NET INCOME (total-dollar earnings) line from filing — dollar analogue of nongaap_eps_label (e.g. "Non-GAAP net loss")
nongaap_net_marginratio35%NONGAAP_A.nongaap_net_margin · copyNon-GAAP net profit margin = nongaap_net_income / revenue_m (ratio)
nongaap_roe_pct_q4_releaseratio1%NONGAAP_A.nongaap_roe_pct · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Adjusted / non-GAAP return on equity, percent; null if not stated
nongaap_roic_pct_q4_releaseratio1%NONGAAP_A.nongaap_roic_pct · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Adjusted / non-GAAP return on invested capital, percent; null if not stated
nongaap_tax_rate_pct_q4_releaseratio6%NONGAAP_A.nongaap_tax_rate_pct · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Non-GAAP / adjusted effective tax rate, percent (e.g. 21.5); null if not stated
term_nongaap_in_filingflag41%NONGAAP_A.term_nongaap_in_filing · copy1 if the phrase 'non-GAAP' appears anywhere in the filing.
text_confirmed_nongaapflag89%NONGAAP_A.text_confirmed_nongaap · copy1=non-GAAP EPS confirmed in press release text (LLM judgment)
has_nongaap_epsflag100%PANEL_SPINE_A.has_nongaap_eps · copy1 = the release discloses a non-GAAP diluted EPS (the printed value is nongaap_eps)
nongaap_gross_profit_m$M3%derived · annual_flow_fyFULL-YEAR nongaap_gross_profit_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see no
nongaap_gross_profit_m_fy_sourcetext3%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
05 

MODA_05_GAAP_TO_NG

The bridge: totals, tax line, identity, plug
49 columns

What it is about. The bridge in one place: GAAP EPS, non-GAAP EPS, total exclusions per share and in dollars, net income on both bases, and the identity checks that prove the reconciliation adds up.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. How large are total exclusions relative to GAAP EPS, and how has that ratio trended?
    provided gaap_eps, nongaap_eps, total_exclusions, total_exclusions_m_sum
    needs nothing external
  2. Are exclusions concentrated in a few firms or spread across the market?
    provided total_exclusions_m_sum, nongaap_net_income, gaap_net_income
    needs market capitalisation from CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno)
  3. Do reconciliations that fail to foot signal lower reporting quality later?
    provided bridge_identity_ok_m, total_exclusions_ps_diff, total_exclusions_m_diff, INTEGRITY.nongaap_eps_calc_consistent
    needs Audit Analytics restatements / auditor changes; SEC comment letters (EDGAR CORRESP / UPLOAD filings)

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_COMPLIANCE, SAT_RECOVERED_PERIOD

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
gaap_eps$/share89%NONGAAP_A.gaap_eps · copyTHE BRIDGE, per share: GAAP diluted EPS as reported (same value as in GAAP); GAAP + total_exclusions_ps_sum = nongaap_eps
nongaap_eps$/share41%NONGAAP_A.nongaap_eps · copyTHE BRIDGE, per share: non-GAAP diluted EPS as disclosed (same value as in NG)
gaap_net_income$M88%NONGAAP_A.gaap_net_income · copyTHE BRIDGE, dollars: GAAP net income, $M (same value as in GAAP); + total_exclusions_m_sum = nongaap_net_income
nongaap_net_income$M37%NONGAAP_A.nongaap_net_income · copyTHE BRIDGE, dollars: non-GAAP net income, $M (same value as in NG)
has_recon_tableflag91%SAT_COMPLIANCE.has_recon_table_regex · copy1 = the release contains a GAAP-to-non-GAAP reconciliation table (deterministic HTML detection, P8); the same column appears in NG_COMPLIANCE as has_recon_table_regex
bridge_identity_ok_psflag89%NONGAAP_A._check_ok · copy1 = the per-share reconciliation identity closes: gaap_eps + sum of adjustments + rounding plug = nongaap_eps
adjust_rounding_differencenumeric89%NONGAAP_A.adjust_rounding_difference · copyPer-share rounding plug so the rounded adjustments sum exactly to nongaap_eps - gaap_eps (cents-level; undefined residuals — unidentified reconciling items, not rounding
adjustments_gross_m$M37%NONGAAP_A.adjustments_gross_m · copyTotal adjustments on a GROSS (pre-tax) basis, $M
adjustments_gross_ps$/share89%NONGAAP_A.adjustments_gross_ps · copyTotal adjustments on a GROSS (pre-tax) basis, per share = sum of adj_*_gross (excludes the tax line)
adjustments_net_m$M37%NONGAAP_A.adjustments_net_m · copyTotal adjustments on a NET (after-tax) basis, $M
adjustments_net_of_taxflag89%NONGAAP_A.adjustments_net_of_tax · copy1 = adjustments are shown net of income taxes (after-tax) with no separate tax line
adjustments_net_ps$/share89%NONGAAP_A.adjustments_net_ps · copyTotal adjustments on a NET (after-tax) basis, per share = sum of adj_*_net
bridge_identity_ok_mflag37%NONGAAP_A.check_ok_m · copy1 = the dollar identity closes: gaap_net_income + sum of $M adjustments = nongaap_net_income
plug_causetext2%NONGAAP_A.plug_cause · copyReferee verdict on a large unexplained residual (adj_06_plug): missed_line / label_merge / tax_line / rounding / scale_error / filing_does_not_foot / other (LLM adjudicat
plug_evidencetext2%NONGAAP_A.plug_evidence · copyVerbatim evidence the referee cited for plug_cause
plug_filing_footsflag2%NONGAAP_A.plug_filing_foots · copy1 = the release's own reconciliation table foots (adds up); 0 = the filing itself does not foot, so the residual is the firm's, not ours
plug_missed_item_labeltext0%NONGAAP_A.plug_missed_item_label · copyVerbatim label of the reconciliation line the extraction missed, when plug_cause = missed_line (a candidate repair, NOT applied: flag, never fix)
plug_scale_suspectflag89%NONGAAP_A.plug_scale_suspect · copy1 = the residual plug is implausibly large (> $1/share or > 10x the EPS gap): likely a scale or parse error, flagged never fixed
plug_shareratio3%NONGAAP_A.plug_share · copyResidual plug as a share of the EPS gap: |adj_06_plug| / |nongaap_eps - gaap_eps| (0 = fully itemized bridge)
recon_bothflag89%NONGAAP_A.recon_both · copy1 = adjustments are presented both per share and in total dollars
recon_dollar_onlyflag89%NONGAAP_A.recon_dollar_only · copy1 = adjustments are presented in total dollars only
recon_merge_maptext16%NONGAAP_A.recon_merge_map · copyFor each merged category: reconstructed printed line numbers + the verbatim labels accumulated into that single taxonomy position (e.g. "adj_04_sbc@L2-4: SBC in COGS / SB
recon_pershare_onlyflag89%NONGAAP_A.recon_pershare_only · copy1 = adjustments are presented per share only
recon_qualitytext89%NONGAAP_A.recon_quality · copyPer-share reconciliation quality class from the identity screen: clean (plug zero) / small_plug / large_plug / no_bridge
recon_quality_mtext89%NONGAAP_A.recon_quality_m · copyDollar reconciliation quality class (same scheme as recon_quality, on the $M bridge)
recon_sequencetext39%NONGAAP_A.recon_sequence · copyReconciliation lines in printed top-to-bottom order (category keys, " / "-joined; gaap_eps … nongaap_eps) — the PER-SHARE / primary table order
recon_sequence_dollartext2%NONGAAP_A.recon_sequence_dollar · copyTotal-dollar table's printed line order (category keys, ' / '-joined); empty when one combined table or the order matches the per-share table
recon_starts_nongaapflag89%NONGAAP_A.recon_starts_nongaap · copy1 = the reconciliation table runs in reverse, from non-GAAP down to GAAP
recon_table_decilecount41%NONGAAP_A.recon_table_decile · copyDecile (1 = start, 10 = end) of the reconciliation table's position within the release text
recon_table_word_positioncount41%NONGAAP_A.recon_table_word_position · copyWord offset of the reconciliation table within the release text
reconciliation_per_shareflag89%NONGAAP_A.reconciliation_per_share · copy1 = the adjustment line items themselves are stated per share (not only the EPS totals)
tax_impact_gross_m$M25%NONGAAP_A.tax_impact_gross_m · copySeparate tax line in the GROSS view, $M (negative deduction)
tax_impact_gross_ps$/share88%NONGAAP_A.tax_impact_gross_ps · copySeparate tax line in the GROSS view, per share (negative = a deduction): observed adj_11_tax_impact if firm reported gross, else imputed = -wedge*t/(1-t). The NET view em
total_exclusions_m_diff$M37%NONGAAP_A.total_exclusions_m_diff · copyTotal USD exclusions ($M), DIFFERENCE version = nongaap_net_income_m - gaap_net_income_m (null if a net-income total is missing)
total_exclusions_m_sum$M40%NONGAAP_A.total_exclusions_m_sum · copyTotal USD exclusions ($M), SUM version = sum of the itemized adj_*_m dollar adjustments as extracted (before any residual plug)
total_exclusions_ps_diff$/share89%NONGAAP_A.total_exclusions_ps_diff · copyTotal per-share exclusions, DIFFERENCE version = nongaap_eps - gaap_eps
total_exclusions_ps_sum$/share89%NONGAAP_A.total_exclusions_ps_sum · copyTotal per-share exclusions, SUM version = sum of the itemized per-share adjustments as extracted (before any residual plug)
recon_anchortext41%SAT_RECOVERED_PERIOD.recon_anchor · copyThe GAAP measure the reconciliation table STARTS from: total (bottom-line GAAP) / continuing_ops (GAAP from continuing operations) / other / nongaap (reverse table)
recon_start_valuemixed40%SAT_RECOVERED_PERIOD.recon_start_value · copyNumeric value on the first line of the reconciliation table (per share if the bridge is per share, $M if in dollars)
recon_starts_gaapflag41%SAT_RECOVERED_PERIOD.recon_starts_gaap · copy1 = the first line of the reconciliation table is a GAAP figure (a genuine GAAP-to-non-GAAP bridge); 0 = the table starts elsewhere or runs in reverse
recon_table_nongaaptext30%SAT_RECOVERED_PERIOD.recon_table_nongaap · copyWhich non-GAAP measure the reconciliation table bridges to: headline (the headline non-GAAP EPS) / deeper (a second, more adjusted measure) / both / other
total_exclusionsmixed3%SAT_RECOVERED_PERIOD.total_exclusions · copyRAW stated total of exclusions as the model read it (present on 3% of rows; units as printed, per share or $M) -- use total_exclusions_ps_sum / total_exclusions_m_sum for
06 

MODA_06_NG_ADJUSTMENTS

50 exclusion categories x per-share / $M / gross / net / labels / recurrence
598 columns + 20 sparse

What it is about. Every reconciling item by category: 54 named adjustment categories with dollar, per-share, gross and net-of-tax versions, verbatim labels, counts and the residual plug. The core of any exclusion analysis.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Which adjustment categories drive the growth in non-GAAP exclusions: stock compensation, amortization of acquired intangibles, restructuring?
    provided adj_04_sbc_m, adj_05a_amort_acq_intang_m, adj_22_restructuring_m, adj_06_others_m, adj_06_plug
    needs nothing external
  2. Do firms exclude recurring expenses (SBC, restructuring every quarter) under one-time labels?
    provided adj_04_sbc_labels, adj_22_restructuring_labels, NG_PERSISTENCE.adj_04_sbc_recur, NG_PERSISTENCE.adj_22_restructuring_recur, NG_PERSISTENCE.n_persistent_excl
    needs nothing external
  3. Is the tax effect of adjustments applied consistently, or does it create a 'tax loophole' in non-GAAP EPS?
    provided adj_11_tax_impact_m, adj_11a_tax_effect_of_adjustments, adj_11b_discrete_tax_item, NG.nongaap_tax_rate_pct, GAAP.gaap_net_income
    needs statutory tax rates; Compustat txtq for the GAAP tax line

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_ADJ_ITEM_DETAIL, SAT_RECOVERED_PERIOD

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
adj_01_rent_leasenumeric89%NONGAAP_A.adj_01_rent_lease · copyRent/lease expense excl. per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m) e
adj_01_rent_lease_grossnumeric89%NONGAAP_A.adj_01_rent_lease_gross · copyadj_01_rent_lease on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_01_rent_lease_gross_m$M0%NONGAAP_A.adj_01_rent_lease_gross_m · copyadj_01_rent_lease on a GROSS (pre-tax) basis, $M
adj_01_rent_lease_labelstext0%NONGAAP_A.adj_01_rent_lease_labels · copyVerbatim source line-item label(s) summed into adj_01_rent_lease, "; "-joined
adj_01_rent_lease_m$M0%NONGAAP_A.adj_01_rent_lease_m · copyRent/lease expense excl. total $M
adj_01_rent_lease_netnumeric89%NONGAAP_A.adj_01_rent_lease_net · copyadj_01_rent_lease on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_01_rent_lease_net_m$M0%NONGAAP_A.adj_01_rent_lease_net_m · copyadj_01_rent_lease on a NET (after-tax) basis, $M
adj_01_rent_lease_net_ps_incl_imputed$/share89%NONGAAP_A.adj_01_rent_lease_net_ps_incl_imputed · copyRent/lease expense excl: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_01_rent_lease_precise$/share0%NONGAAP_A.adj_01_rent_lease_precise · copyPrecise per-share adj_01_rent_lease: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_01_rent_lease_ps_incl_imputed$/share89%NONGAAP_A.adj_01_rent_lease_ps_incl_imputed · copyRent/lease expense excl: per-share amount including imputed (derived, not printed) values
adj_02_net_interestnumeric89%NONGAAP_A.adj_02_net_interest · copyNet interest expense excl. per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m)
adj_02_net_interest_grossnumeric89%NONGAAP_A.adj_02_net_interest_gross · copyadj_02_net_interest on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_02_net_interest_gross_m$M3%NONGAAP_A.adj_02_net_interest_gross_m · copyadj_02_net_interest on a GROSS (pre-tax) basis, $M
adj_02_net_interest_labelstext3%NONGAAP_A.adj_02_net_interest_labels · copyVerbatim source line-item label(s) summed into adj_02_net_interest, "; "-joined
adj_02_net_interest_m$M3%NONGAAP_A.adj_02_net_interest_m · copyNet interest expense excl. total $M
adj_02_net_interest_netnumeric89%NONGAAP_A.adj_02_net_interest_net · copyadj_02_net_interest on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_02_net_interest_net_m$M3%NONGAAP_A.adj_02_net_interest_net_m · copyadj_02_net_interest on a NET (after-tax) basis, $M
adj_02_net_interest_net_ps_incl_imputed$/share89%NONGAAP_A.adj_02_net_interest_net_ps_incl_imputed · copyNet interest expense excl: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_02_net_interest_precise$/share3%NONGAAP_A.adj_02_net_interest_precise · copyPrecise per-share adj_02_net_interest: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_02_net_interest_ps_incl_imputed$/share89%NONGAAP_A.adj_02_net_interest_ps_incl_imputed · copyNet interest expense excl: per-share amount including imputed (derived, not printed) values
adj_03_rdnumeric89%NONGAAP_A.adj_03_rd · copyR&D expense excl. per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m) exist on
adj_03_rd_grossnumeric89%NONGAAP_A.adj_03_rd_gross · copyadj_03_rd on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_03_rd_gross_m$M0%NONGAAP_A.adj_03_rd_gross_m · copyadj_03_rd on a GROSS (pre-tax) basis, $M
adj_03_rd_labelstext0%NONGAAP_A.adj_03_rd_labels · copyVerbatim source line-item label(s) summed into adj_03_rd, "; "-joined
adj_03_rd_m$M0%NONGAAP_A.adj_03_rd_m · copyR&D expense excl. total $M
adj_03_rd_netnumeric89%NONGAAP_A.adj_03_rd_net · copyadj_03_rd on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_03_rd_net_m$M0%NONGAAP_A.adj_03_rd_net_m · copyadj_03_rd on a NET (after-tax) basis, $M
adj_03_rd_net_ps_incl_imputed$/share89%NONGAAP_A.adj_03_rd_net_ps_incl_imputed · copyR&D expense excl: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_03_rd_precise$/share0%NONGAAP_A.adj_03_rd_precise · copyPrecise per-share adj_03_rd: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_03_rd_ps_incl_imputed$/share89%NONGAAP_A.adj_03_rd_ps_incl_imputed · copyR&D expense excl: per-share amount including imputed (derived, not printed) values
adj_04_sbcnumeric89%NONGAAP_A.adj_04_sbc · copyStock-based compensation per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m) e
adj_04_sbc_grossnumeric89%NONGAAP_A.adj_04_sbc_gross · copyadj_04_sbc on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_04_sbc_gross_m$M12%NONGAAP_A.adj_04_sbc_gross_m · copyadj_04_sbc on a GROSS (pre-tax) basis, $M
adj_04_sbc_labelstext12%NONGAAP_A.adj_04_sbc_labels · copyVerbatim source line-item label(s) summed into adj_04_sbc, "; "-joined
adj_04_sbc_m$M12%NONGAAP_A.adj_04_sbc_m · copyStock-based compensation total $M
adj_04_sbc_netnumeric89%NONGAAP_A.adj_04_sbc_net · copyadj_04_sbc on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_04_sbc_net_m$M12%NONGAAP_A.adj_04_sbc_net_m · copyadj_04_sbc on a NET (after-tax) basis, $M
adj_04_sbc_net_ps_incl_imputed$/share89%NONGAAP_A.adj_04_sbc_net_ps_incl_imputed · copyStock-based compensation: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_04_sbc_precise$/share12%NONGAAP_A.adj_04_sbc_precise · copyPrecise per-share adj_04_sbc: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_04_sbc_ps_incl_imputed$/share89%NONGAAP_A.adj_04_sbc_ps_incl_imputed · copyStock-based compensation: per-share amount including imputed (derived, not printed) values
adj_05a_amort_acq_intangnumeric89%NONGAAP_A.adj_05a_amort_acq_intang · copyAmortization of acquired intangibles per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar ver
adj_05a_amort_acq_intang_grossnumeric89%NONGAAP_A.adj_05a_amort_acq_intang_gross · copyadj_05a_amort_acq_intang on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_05a_amort_acq_intang_gross_m$M11%NONGAAP_A.adj_05a_amort_acq_intang_gross_m · copyadj_05a_amort_acq_intang on a GROSS (pre-tax) basis, $M
adj_05a_amort_acq_intang_labelstext11%NONGAAP_A.adj_05a_amort_acq_intang_labels · copyVerbatim source line-item label(s) summed into adj_05a_amort_acq_intang, "; "-joined
adj_05a_amort_acq_intang_m$M11%NONGAAP_A.adj_05a_amort_acq_intang_m · copyAmortization of acquired intangibles total $M
adj_05a_amort_acq_intang_netnumeric89%NONGAAP_A.adj_05a_amort_acq_intang_net · copyadj_05a_amort_acq_intang on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_05a_amort_acq_intang_net_m$M11%NONGAAP_A.adj_05a_amort_acq_intang_net_m · copyadj_05a_amort_acq_intang on a NET (after-tax) basis, $M
adj_05a_amort_acq_intang_net_ps_incl_imputed$/share89%NONGAAP_A.adj_05a_amort_acq_intang_net_ps_incl_imputed · copyAmortization of acquired intangibles: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_05a_amort_acq_intang_precise$/share10%NONGAAP_A.adj_05a_amort_acq_intang_precise · copyPrecise per-share adj_05a_amort_acq_intang: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_05a_amort_acq_intang_ps_incl_imputed$/share89%NONGAAP_A.adj_05a_amort_acq_intang_ps_incl_imputed · copyAmortization of acquired intangibles: per-share amount including imputed (derived, not printed) values
adj_05b_da_othernumeric89%NONGAAP_A.adj_05b_da_other · copyOther depreciation and amortization per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar vers
adj_05b_da_other_grossnumeric89%NONGAAP_A.adj_05b_da_other_gross · copyadj_05b_da_other on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_05b_da_other_gross_m$M3%NONGAAP_A.adj_05b_da_other_gross_m · copyadj_05b_da_other on a GROSS (pre-tax) basis, $M
adj_05b_da_other_labelstext3%NONGAAP_A.adj_05b_da_other_labels · copyVerbatim source line-item label(s) summed into adj_05b_da_other, "; "-joined
adj_05b_da_other_m$M3%NONGAAP_A.adj_05b_da_other_m · copyOther depreciation and amortization total $M
adj_05b_da_other_netnumeric89%NONGAAP_A.adj_05b_da_other_net · copyadj_05b_da_other on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_05b_da_other_net_m$M3%NONGAAP_A.adj_05b_da_other_net_m · copyadj_05b_da_other on a NET (after-tax) basis, $M
adj_05b_da_other_net_ps_incl_imputed$/share89%NONGAAP_A.adj_05b_da_other_net_ps_incl_imputed · copyOther depreciation and amortization: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_05b_da_other_precise$/share3%NONGAAP_A.adj_05b_da_other_precise · copyPrecise per-share adj_05b_da_other: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_05b_da_other_ps_incl_imputed$/share89%NONGAAP_A.adj_05b_da_other_ps_incl_imputed · copyOther depreciation and amortization: per-share amount including imputed (derived, not printed) values
adj_05c_amort_dev_technumeric89%NONGAAP_A.adj_05c_amort_dev_tech · copyAmortization of developed/acquired technology (COGS-side) per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no recon
adj_05c_amort_dev_tech_grossnumeric89%NONGAAP_A.adj_05c_amort_dev_tech_gross · copyadj_05c_amort_dev_tech on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_05c_amort_dev_tech_gross_m$M1%NONGAAP_A.adj_05c_amort_dev_tech_gross_m · copyadj_05c_amort_dev_tech on a GROSS (pre-tax) basis, $M
adj_05c_amort_dev_tech_labelstext1%NONGAAP_A.adj_05c_amort_dev_tech_labels · copyVerbatim source line-item label(s) summed into adj_05c_amort_dev_tech, "; "-joined
adj_05c_amort_dev_tech_m$M1%NONGAAP_A.adj_05c_amort_dev_tech_m · copyAmortization of developed/acquired technology (COGS-side) total $M
adj_05c_amort_dev_tech_netnumeric89%NONGAAP_A.adj_05c_amort_dev_tech_net · copyadj_05c_amort_dev_tech on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_05c_amort_dev_tech_net_m$M1%NONGAAP_A.adj_05c_amort_dev_tech_net_m · copyadj_05c_amort_dev_tech on a NET (after-tax) basis, $M
adj_05c_amort_dev_tech_net_ps_incl_imputed$/share89%NONGAAP_A.adj_05c_amort_dev_tech_net_ps_incl_imputed · copyAmortization of developed/acquired technology (COGS-side): net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_05c_amort_dev_tech_precise$/share1%NONGAAP_A.adj_05c_amort_dev_tech_precise · copyPrecise per-share adj_05c_amort_dev_tech: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_05c_amort_dev_tech_ps_incl_imputed$/share89%NONGAAP_A.adj_05c_amort_dev_tech_ps_incl_imputed · copyAmortization of developed/acquired technology (COGS-side): per-share amount including imputed (derived, not printed) values
adj_06_genuinenumeric85%NONGAAP_A.adj_06_genuine · copyThe genuinely-labelled part of the 'other' bucket, per diluted share (US$).
adj_06_genuine_m$M38%NONGAAP_A.adj_06_genuine_m · copyThe genuinely-labelled part of the 'other' bucket, US$ millions.
adj_06_othersnumeric89%NONGAAP_A.adj_06_others · copyOthers/unidentified + undefined residual per share (unidentified reconciling item, not a rounding artifact; rounding-level residual goes to adjust_rounding_difference). P
adj_06_others_is_residualtext89%NONGAAP_A.adj_06_others_is_residual · copy1=adj_06_others absorbs residual to close per-share EPS gap. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliatio
adj_06_others_labelstext19%NONGAAP_A.adj_06_others_labels · copyVerbatim source line-item label(s) summed into adj_06_others, "; "-joined
adj_06_others_m$M38%NONGAAP_A.adj_06_others_m · copyOthers/unidentified total $M
adj_06_others_m_is_residual$M89%NONGAAP_A.adj_06_others_m_is_residual · copy1=adj_06_others_m absorbs residual to close total-dollar income gap. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no recon
adj_06_others_precise$/share34%NONGAAP_A.adj_06_others_precise · copyPrecise per-share adj_06_others: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_06_others_ps_incl_imputed$/share89%NONGAAP_A.adj_06_others_ps_incl_imputed · copyOthers/unidentified + undefined residual per share (unidentified reconciling item, not a rounding artifact; rounding-level residual goes to adjust_rounding_difference): p
adj_06_others_roundingtext89%NONGAAP_A.adj_06_others_rounding · copy1=the adj_06_others catch-all is a rounding/residual/balancing PLUG, not a substantive other adjustment (set when a residual was absorbed into it OR its verbatim label is
adj_06_plugnumeric4%NONGAAP_A.adj_06_plug · copyBALANCING PLUG, per diluted share (US$): the residual that closes sum(adjustments) = non-GAAP EPS - GAAP EPS. Closure is guaranteed by construction, so judge plug SIZE, n
adj_06_plug_m$M0%NONGAAP_A.adj_06_plug_m · copyBalancing plug in US$ millions (see adj_06_plug).
adj_07_pensionnumeric89%NONGAAP_A.adj_07_pension · copyPension/post-retirement excl. per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (
adj_07_pension_grossnumeric89%NONGAAP_A.adj_07_pension_gross · copyadj_07_pension on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_07_pension_gross_m$M2%NONGAAP_A.adj_07_pension_gross_m · copyadj_07_pension on a GROSS (pre-tax) basis, $M
adj_07_pension_labelstext2%NONGAAP_A.adj_07_pension_labels · copyVerbatim source line-item label(s) summed into adj_07_pension, "; "-joined
adj_07_pension_m$M2%NONGAAP_A.adj_07_pension_m · copyPension/post-retirement excl. total $M
adj_07_pension_netnumeric89%NONGAAP_A.adj_07_pension_net · copyadj_07_pension on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_07_pension_net_m$M2%NONGAAP_A.adj_07_pension_net_m · copyadj_07_pension on a NET (after-tax) basis, $M
adj_07_pension_net_ps_incl_imputed$/share89%NONGAAP_A.adj_07_pension_net_ps_incl_imputed · copyPension/post-retirement excl: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_07_pension_precise$/share2%NONGAAP_A.adj_07_pension_precise · copyPrecise per-share adj_07_pension: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_07_pension_ps_incl_imputed$/share89%NONGAAP_A.adj_07_pension_ps_incl_imputed · copyPension/post-retirement excl: per-share amount including imputed (derived, not printed) values
adj_08_severancenumeric89%NONGAAP_A.adj_08_severance · copySeverance/termination costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m
adj_08_severance_grossnumeric89%NONGAAP_A.adj_08_severance_gross · copyadj_08_severance on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_08_severance_gross_m$M3%NONGAAP_A.adj_08_severance_gross_m · copyadj_08_severance on a GROSS (pre-tax) basis, $M
adj_08_severance_labelstext3%NONGAAP_A.adj_08_severance_labels · copyVerbatim source line-item label(s) summed into adj_08_severance, "; "-joined
adj_08_severance_m$M3%NONGAAP_A.adj_08_severance_m · copySeverance/termination costs total $M
adj_08_severance_netnumeric89%NONGAAP_A.adj_08_severance_net · copyadj_08_severance on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_08_severance_net_m$M3%NONGAAP_A.adj_08_severance_net_m · copyadj_08_severance on a NET (after-tax) basis, $M
adj_08_severance_net_ps_incl_imputed$/share89%NONGAAP_A.adj_08_severance_net_ps_incl_imputed · copySeverance/termination costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_08_severance_precise$/share2%NONGAAP_A.adj_08_severance_precise · copyPrecise per-share adj_08_severance: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_08_severance_ps_incl_imputed$/share89%NONGAAP_A.adj_08_severance_ps_incl_imputed · copySeverance/termination costs: per-share amount including imputed (derived, not printed) values
adj_09_realized_gainsnumeric89%NONGAAP_A.adj_09_realized_gains · copyRealized gains/losses on investments per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar ver
adj_09_realized_gains_grossnumeric89%NONGAAP_A.adj_09_realized_gains_gross · copyadj_09_realized_gains on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_09_realized_gains_gross_m$M5%NONGAAP_A.adj_09_realized_gains_gross_m · copyadj_09_realized_gains on a GROSS (pre-tax) basis, $M
adj_09_realized_gains_labelstext5%NONGAAP_A.adj_09_realized_gains_labels · copyVerbatim source line-item label(s) summed into adj_09_realized_gains, "; "-joined
adj_09_realized_gains_m$M5%NONGAAP_A.adj_09_realized_gains_m · copyRealized gains/losses investments total $M
adj_09_realized_gains_netnumeric89%NONGAAP_A.adj_09_realized_gains_net · copyadj_09_realized_gains on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_09_realized_gains_net_m$M5%NONGAAP_A.adj_09_realized_gains_net_m · copyadj_09_realized_gains on a NET (after-tax) basis, $M
adj_09_realized_gains_net_ps_incl_imputed$/share89%NONGAAP_A.adj_09_realized_gains_net_ps_incl_imputed · copyRealized gains/losses on investments: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_09_realized_gains_precise$/share4%NONGAAP_A.adj_09_realized_gains_precise · copyPrecise per-share adj_09_realized_gains: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_09_realized_gains_ps_incl_imputed$/share89%NONGAAP_A.adj_09_realized_gains_ps_incl_imputed · copyRealized gains/losses on investments: per-share amount including imputed (derived, not printed) values
adj_10_inventory_writedownnumeric89%NONGAAP_A.adj_10_inventory_writedown · copyInventory write-downs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m) exis
adj_10_inventory_writedown_grossnumeric89%NONGAAP_A.adj_10_inventory_writedown_gross · copyadj_10_inventory_writedown on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_10_inventory_writedown_gross_m$M2%NONGAAP_A.adj_10_inventory_writedown_gross_m · copyadj_10_inventory_writedown on a GROSS (pre-tax) basis, $M
adj_10_inventory_writedown_labelstext2%NONGAAP_A.adj_10_inventory_writedown_labels · copyVerbatim source line-item label(s) summed into adj_10_inventory_writedown, "; "-joined
adj_10_inventory_writedown_m$M2%NONGAAP_A.adj_10_inventory_writedown_m · copyInventory write-downs total $M
adj_10_inventory_writedown_netnumeric89%NONGAAP_A.adj_10_inventory_writedown_net · copyadj_10_inventory_writedown on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_10_inventory_writedown_net_m$M2%NONGAAP_A.adj_10_inventory_writedown_net_m · copyadj_10_inventory_writedown on a NET (after-tax) basis, $M
adj_10_inventory_writedown_net_ps_incl_imputed$/share89%NONGAAP_A.adj_10_inventory_writedown_net_ps_incl_imputed · copyInventory write-downs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_10_inventory_writedown_precise$/share1%NONGAAP_A.adj_10_inventory_writedown_precise · copyPrecise per-share adj_10_inventory_writedown: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_10_inventory_writedown_ps_incl_imputed$/share89%NONGAAP_A.adj_10_inventory_writedown_ps_incl_imputed · copyInventory write-downs: per-share amount including imputed (derived, not printed) values
adj_10b_inventory_methodnumeric89%NONGAAP_A.adj_10b_inventory_method · copyInventory cost-flow method (LIFO/FIFO) effect per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. D
adj_10b_inventory_method_grossnumeric89%NONGAAP_A.adj_10b_inventory_method_gross · copyadj_10b_inventory_method on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_10b_inventory_method_gross_m$M0%NONGAAP_A.adj_10b_inventory_method_gross_m · copyadj_10b_inventory_method on a GROSS (pre-tax) basis, $M
adj_10b_inventory_method_labelstext0%NONGAAP_A.adj_10b_inventory_method_labels · copyVerbatim source line-item label(s) summed into adj_10b_inventory_method, "; "-joined
adj_10b_inventory_method_m$M0%NONGAAP_A.adj_10b_inventory_method_m · copyInventory cost-flow method (LIFO/FIFO) effect total $M
adj_10b_inventory_method_netnumeric89%NONGAAP_A.adj_10b_inventory_method_net · copyadj_10b_inventory_method on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_10b_inventory_method_net_m$M0%NONGAAP_A.adj_10b_inventory_method_net_m · copyadj_10b_inventory_method on a NET (after-tax) basis, $M
adj_10b_inventory_method_net_ps_incl_imputed$/share89%NONGAAP_A.adj_10b_inventory_method_net_ps_incl_imputed · copyInventory cost-flow method (LIFO/FIFO) effect: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_10b_inventory_method_precise$/share0%NONGAAP_A.adj_10b_inventory_method_precise · copyPrecise per-share adj_10b_inventory_method: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_10b_inventory_method_ps_incl_imputed$/share89%NONGAAP_A.adj_10b_inventory_method_ps_incl_imputed · copyInventory cost-flow method (LIFO/FIFO) effect: per-share amount including imputed (derived, not printed) values
adj_11_tax_impactnumeric89%NONGAAP_A.adj_11_tax_impact · copyTax impact of non-GAAP excl. per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_
adj_11_tax_impact_labelstext21%NONGAAP_A.adj_11_tax_impact_labels · copyVerbatim source line-item label(s) summed into adj_11_tax_impact, "; "-joined
adj_11_tax_impact_m$M21%NONGAAP_A.adj_11_tax_impact_m · copyTax impact of non-GAAP excl. total $M
adj_11_tax_impact_precise$/share20%NONGAAP_A.adj_11_tax_impact_precise · copyPrecise per-share adj_11_tax_impact: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_11_tax_impact_ps_incl_imputed$/share89%NONGAAP_A.adj_11_tax_impact_ps_incl_imputed · copyTax impact of non-GAAP excl: per-share amount including imputed (derived, not printed) values
adj_12_startupnumeric89%NONGAAP_A.adj_12_startup · copyNew initiatives/start-up costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions
adj_12_startup_grossnumeric89%NONGAAP_A.adj_12_startup_gross · copyadj_12_startup on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_12_startup_gross_m$M1%NONGAAP_A.adj_12_startup_gross_m · copyadj_12_startup on a GROSS (pre-tax) basis, $M
adj_12_startup_labelstext1%NONGAAP_A.adj_12_startup_labels · copyVerbatim source line-item label(s) summed into adj_12_startup, "; "-joined
adj_12_startup_m$M1%NONGAAP_A.adj_12_startup_m · copyNew initiatives/start-up costs total $M
adj_12_startup_netnumeric89%NONGAAP_A.adj_12_startup_net · copyadj_12_startup on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_12_startup_net_m$M1%NONGAAP_A.adj_12_startup_net_m · copyadj_12_startup on a NET (after-tax) basis, $M
adj_12_startup_net_ps_incl_imputed$/share89%NONGAAP_A.adj_12_startup_net_ps_incl_imputed · copyNew initiatives/start-up costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_12_startup_precise$/share1%NONGAAP_A.adj_12_startup_precise · copyPrecise per-share adj_12_startup: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_12_startup_ps_incl_imputed$/share89%NONGAAP_A.adj_12_startup_ps_incl_imputed · copyNew initiatives/start-up costs: per-share amount including imputed (derived, not printed) values
adj_13_equity_incomenumeric89%NONGAAP_A.adj_13_equity_income · copyEquity income unconsolidated subs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versio
adj_13_equity_income_grossnumeric89%NONGAAP_A.adj_13_equity_income_gross · copyadj_13_equity_income on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_13_equity_income_gross_m$M2%NONGAAP_A.adj_13_equity_income_gross_m · copyadj_13_equity_income on a GROSS (pre-tax) basis, $M
adj_13_equity_income_labelstext2%NONGAAP_A.adj_13_equity_income_labels · copyVerbatim source line-item label(s) summed into adj_13_equity_income, "; "-joined
adj_13_equity_income_m$M2%NONGAAP_A.adj_13_equity_income_m · copyEquity income unconsolidated subs total $M
adj_13_equity_income_netnumeric89%NONGAAP_A.adj_13_equity_income_net · copyadj_13_equity_income on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_13_equity_income_net_m$M2%NONGAAP_A.adj_13_equity_income_net_m · copyadj_13_equity_income on a NET (after-tax) basis, $M
adj_13_equity_income_net_ps_incl_imputed$/share89%NONGAAP_A.adj_13_equity_income_net_ps_incl_imputed · copyEquity income unconsolidated subs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_13_equity_income_precise$/share2%NONGAAP_A.adj_13_equity_income_precise · copyPrecise per-share adj_13_equity_income: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_13_equity_income_ps_incl_imputed$/share89%NONGAAP_A.adj_13_equity_income_ps_incl_imputed · copyEquity income unconsolidated subs: per-share amount including imputed (derived, not printed) values
adj_14_impair_ppe_finitenumeric89%NONGAAP_A.adj_14_impair_ppe_finite · copyImpairment PP&E finite-lived intang per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar vers
adj_14_impair_ppe_finite_grossnumeric89%NONGAAP_A.adj_14_impair_ppe_finite_gross · copyadj_14_impair_ppe_finite on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_14_impair_ppe_finite_gross_m$M7%NONGAAP_A.adj_14_impair_ppe_finite_gross_m · copyadj_14_impair_ppe_finite on a GROSS (pre-tax) basis, $M
adj_14_impair_ppe_finite_labelstext7%NONGAAP_A.adj_14_impair_ppe_finite_labels · copyVerbatim source line-item label(s) summed into adj_14_impair_ppe_finite, "; "-joined
adj_14_impair_ppe_finite_m$M7%NONGAAP_A.adj_14_impair_ppe_finite_m · copyImpairment PP&E finite-lived intang total $M
adj_14_impair_ppe_finite_netnumeric89%NONGAAP_A.adj_14_impair_ppe_finite_net · copyadj_14_impair_ppe_finite on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_14_impair_ppe_finite_net_m$M7%NONGAAP_A.adj_14_impair_ppe_finite_net_m · copyadj_14_impair_ppe_finite on a NET (after-tax) basis, $M
adj_14_impair_ppe_finite_net_ps_incl_imputed$/share89%NONGAAP_A.adj_14_impair_ppe_finite_net_ps_incl_imputed · copyImpairment PP&E finite-lived intang: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_14_impair_ppe_finite_precise$/share6%NONGAAP_A.adj_14_impair_ppe_finite_precise · copyPrecise per-share adj_14_impair_ppe_finite: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_14_impair_ppe_finite_ps_incl_imputed$/share89%NONGAAP_A.adj_14_impair_ppe_finite_ps_incl_imputed · copyImpairment PP&E finite-lived intang: per-share amount including imputed (derived, not printed) values
adj_14b_goodwill_impairmentnumeric89%NONGAAP_A.adj_14b_goodwill_impairment · copyGoodwill impairment/write-down per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions
adj_14b_goodwill_impairment_grossnumeric89%NONGAAP_A.adj_14b_goodwill_impairment_gross · copyadj_14b_goodwill_impairment on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_14b_goodwill_impairment_gross_m$M3%NONGAAP_A.adj_14b_goodwill_impairment_gross_m · copyadj_14b_goodwill_impairment on a GROSS (pre-tax) basis, $M
adj_14b_goodwill_impairment_labelstext3%NONGAAP_A.adj_14b_goodwill_impairment_labels · copyVerbatim source line-item label(s) summed into adj_14b_goodwill_impairment, "; "-joined
adj_14b_goodwill_impairment_m$M3%NONGAAP_A.adj_14b_goodwill_impairment_m · copyGoodwill impairment/write-down total $M
adj_14b_goodwill_impairment_netnumeric89%NONGAAP_A.adj_14b_goodwill_impairment_net · copyadj_14b_goodwill_impairment on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_14b_goodwill_impairment_net_m$M3%NONGAAP_A.adj_14b_goodwill_impairment_net_m · copyadj_14b_goodwill_impairment on a NET (after-tax) basis, $M
adj_14b_goodwill_impairment_net_ps_incl_imputed$/share89%NONGAAP_A.adj_14b_goodwill_impairment_net_ps_incl_imputed · copyGoodwill impairment/write-down: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_14b_goodwill_impairment_precise$/share3%NONGAAP_A.adj_14b_goodwill_impairment_precise · copyPrecise per-share adj_14b_goodwill_impairment: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_14b_goodwill_impairment_ps_incl_imputed$/share89%NONGAAP_A.adj_14b_goodwill_impairment_ps_incl_imputed · copyGoodwill impairment/write-down: per-share amount including imputed (derived, not printed) values
adj_14c_indef_intangiblenumeric89%NONGAAP_A.adj_14c_indef_intangible · copyIndefinite-lived intangible impairment per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar v
adj_14c_indef_intangible_grossnumeric89%NONGAAP_A.adj_14c_indef_intangible_gross · copyadj_14c_indef_intangible on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_14c_indef_intangible_gross_m$M0%NONGAAP_A.adj_14c_indef_intangible_gross_m · copyadj_14c_indef_intangible on a GROSS (pre-tax) basis, $M
adj_14c_indef_intangible_labelstext0%NONGAAP_A.adj_14c_indef_intangible_labels · copyVerbatim source line-item label(s) summed into adj_14c_indef_intangible, "; "-joined
adj_14c_indef_intangible_m$M0%NONGAAP_A.adj_14c_indef_intangible_m · copyIndefinite-lived intangible impairment total $M
adj_14c_indef_intangible_netnumeric89%NONGAAP_A.adj_14c_indef_intangible_net · copyadj_14c_indef_intangible on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_14c_indef_intangible_net_m$M0%NONGAAP_A.adj_14c_indef_intangible_net_m · copyadj_14c_indef_intangible on a NET (after-tax) basis, $M
adj_14c_indef_intangible_net_ps_incl_imputed$/share89%NONGAAP_A.adj_14c_indef_intangible_net_ps_incl_imputed · copyIndefinite-lived intangible impairment: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_14c_indef_intangible_precise$/share0%NONGAAP_A.adj_14c_indef_intangible_precise · copyPrecise per-share adj_14c_indef_intangible: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_14c_indef_intangible_ps_incl_imputed$/share89%NONGAAP_A.adj_14c_indef_intangible_ps_incl_imputed · copyIndefinite-lived intangible impairment: per-share amount including imputed (derived, not printed) values
adj_15_fxnumeric89%NONGAAP_A.adj_15_fx · copyForeign currency gains/losses per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (
adj_15_fx_grossnumeric89%NONGAAP_A.adj_15_fx_gross · copyadj_15_fx on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_15_fx_gross_m$M2%NONGAAP_A.adj_15_fx_gross_m · copyadj_15_fx on a GROSS (pre-tax) basis, $M
adj_15_fx_labelstext3%NONGAAP_A.adj_15_fx_labels · copyVerbatim source line-item label(s) summed into adj_15_fx, "; "-joined
adj_15_fx_m$M2%NONGAAP_A.adj_15_fx_m · copyForeign currency gains/losses total $M
adj_15_fx_netnumeric89%NONGAAP_A.adj_15_fx_net · copyadj_15_fx on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_15_fx_net_m$M2%NONGAAP_A.adj_15_fx_net_m · copyadj_15_fx on a NET (after-tax) basis, $M
adj_15_fx_net_ps_incl_imputed$/share89%NONGAAP_A.adj_15_fx_net_ps_incl_imputed · copyForeign currency gains/losses: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_15_fx_precise$/share2%NONGAAP_A.adj_15_fx_precise · copyPrecise per-share adj_15_fx: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_15_fx_ps_incl_imputed$/share89%NONGAAP_A.adj_15_fx_ps_incl_imputed · copyForeign currency gains/losses: per-share amount including imputed (derived, not printed) values
adj_16_debt_extinguishmentnumeric89%NONGAAP_A.adj_16_debt_extinguishment · copyDebt extinguishment/refinancing per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions
adj_16_debt_extinguishment_grossnumeric89%NONGAAP_A.adj_16_debt_extinguishment_gross · copyadj_16_debt_extinguishment on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_16_debt_extinguishment_gross_m$M7%NONGAAP_A.adj_16_debt_extinguishment_gross_m · copyadj_16_debt_extinguishment on a GROSS (pre-tax) basis, $M
adj_16_debt_extinguishment_labelstext7%NONGAAP_A.adj_16_debt_extinguishment_labels · copyVerbatim source line-item label(s) summed into adj_16_debt_extinguishment, "; "-joined
adj_16_debt_extinguishment_m$M7%NONGAAP_A.adj_16_debt_extinguishment_m · copyDebt extinguishment/refinancing total $M
adj_16_debt_extinguishment_netnumeric89%NONGAAP_A.adj_16_debt_extinguishment_net · copyadj_16_debt_extinguishment on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_16_debt_extinguishment_net_m$M7%NONGAAP_A.adj_16_debt_extinguishment_net_m · copyadj_16_debt_extinguishment on a NET (after-tax) basis, $M
adj_16_debt_extinguishment_net_ps_incl_imputed$/share89%NONGAAP_A.adj_16_debt_extinguishment_net_ps_incl_imputed · copyDebt extinguishment/refinancing: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_16_debt_extinguishment_precise$/share6%NONGAAP_A.adj_16_debt_extinguishment_precise · copyPrecise per-share adj_16_debt_extinguishment: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_16_debt_extinguishment_ps_incl_imputed$/share89%NONGAAP_A.adj_16_debt_extinguishment_ps_incl_imputed · copyDebt extinguishment/refinancing: per-share amount including imputed (derived, not printed) values
adj_17_litigationnumeric89%NONGAAP_A.adj_17_litigation · copyLitigation/settlement costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m
adj_17_litigation_grossnumeric89%NONGAAP_A.adj_17_litigation_gross · copyadj_17_litigation on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_17_litigation_gross_m$M6%NONGAAP_A.adj_17_litigation_gross_m · copyadj_17_litigation on a GROSS (pre-tax) basis, $M
adj_17_litigation_labelstext6%NONGAAP_A.adj_17_litigation_labels · copyVerbatim source line-item label(s) summed into adj_17_litigation, "; "-joined
adj_17_litigation_m$M6%NONGAAP_A.adj_17_litigation_m · copyLitigation/settlement costs total $M
adj_17_litigation_netnumeric89%NONGAAP_A.adj_17_litigation_net · copyadj_17_litigation on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_17_litigation_net_m$M6%NONGAAP_A.adj_17_litigation_net_m · copyadj_17_litigation on a NET (after-tax) basis, $M
adj_17_litigation_net_ps_incl_imputed$/share89%NONGAAP_A.adj_17_litigation_net_ps_incl_imputed · copyLitigation/settlement costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_17_litigation_precise$/share6%NONGAAP_A.adj_17_litigation_precise · copyPrecise per-share adj_17_litigation: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_17_litigation_ps_incl_imputed$/share89%NONGAAP_A.adj_17_litigation_ps_incl_imputed · copyLitigation/settlement costs: per-share amount including imputed (derived, not printed) values
adj_18_fair_valuenumeric89%NONGAAP_A.adj_18_fair_value · copyUnrealized fair value adjustments per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versio
adj_18_fair_value_grossnumeric89%NONGAAP_A.adj_18_fair_value_gross · copyadj_18_fair_value on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_18_fair_value_gross_m$M5%NONGAAP_A.adj_18_fair_value_gross_m · copyadj_18_fair_value on a GROSS (pre-tax) basis, $M
adj_18_fair_value_labelstext5%NONGAAP_A.adj_18_fair_value_labels · copyVerbatim source line-item label(s) summed into adj_18_fair_value, "; "-joined
adj_18_fair_value_m$M5%NONGAAP_A.adj_18_fair_value_m · copyUnrealized fair value adjustments total $M
adj_18_fair_value_netnumeric89%NONGAAP_A.adj_18_fair_value_net · copyadj_18_fair_value on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_18_fair_value_net_m$M5%NONGAAP_A.adj_18_fair_value_net_m · copyadj_18_fair_value on a NET (after-tax) basis, $M
adj_18_fair_value_net_ps_incl_imputed$/share89%NONGAAP_A.adj_18_fair_value_net_ps_incl_imputed · copyUnrealized fair value adjustments: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_18_fair_value_precise$/share5%NONGAAP_A.adj_18_fair_value_precise · copyPrecise per-share adj_18_fair_value: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_18_fair_value_ps_incl_imputed$/share89%NONGAAP_A.adj_18_fair_value_ps_incl_imputed · copyUnrealized fair value adjustments: per-share amount including imputed (derived, not printed) values
adj_19_acquisitionnumeric89%NONGAAP_A.adj_19_acquisition · copyMerger/acquisition costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m) e
adj_19_acquisition_grossnumeric89%NONGAAP_A.adj_19_acquisition_gross · copyadj_19_acquisition on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_19_acquisition_gross_m$M11%NONGAAP_A.adj_19_acquisition_gross_m · copyadj_19_acquisition on a GROSS (pre-tax) basis, $M
adj_19_acquisition_labelstext11%NONGAAP_A.adj_19_acquisition_labels · copyVerbatim source line-item label(s) summed into adj_19_acquisition, "; "-joined
adj_19_acquisition_m$M11%NONGAAP_A.adj_19_acquisition_m · copyM&A transaction costs total $M
adj_19_acquisition_netnumeric89%NONGAAP_A.adj_19_acquisition_net · copyadj_19_acquisition on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_19_acquisition_net_m$M11%NONGAAP_A.adj_19_acquisition_net_m · copyadj_19_acquisition on a NET (after-tax) basis, $M
adj_19_acquisition_net_ps_incl_imputed$/share89%NONGAAP_A.adj_19_acquisition_net_ps_incl_imputed · copyMerger/acquisition costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_19_acquisition_precise$/share10%NONGAAP_A.adj_19_acquisition_precise · copyPrecise per-share adj_19_acquisition: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_19_acquisition_ps_incl_imputed$/share89%NONGAAP_A.adj_19_acquisition_ps_incl_imputed · copyMerger/acquisition costs: per-share amount including imputed (derived, not printed) values
adj_20_ppe_salenumeric89%NONGAAP_A.adj_20_ppe_sale · copyGains/losses on sale of PP&E per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_
adj_20_ppe_sale_grossnumeric89%NONGAAP_A.adj_20_ppe_sale_gross · copyadj_20_ppe_sale on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_20_ppe_sale_gross_m$M5%NONGAAP_A.adj_20_ppe_sale_gross_m · copyadj_20_ppe_sale on a GROSS (pre-tax) basis, $M
adj_20_ppe_sale_labelstext5%NONGAAP_A.adj_20_ppe_sale_labels · copyVerbatim source line-item label(s) summed into adj_20_ppe_sale, "; "-joined
adj_20_ppe_sale_m$M5%NONGAAP_A.adj_20_ppe_sale_m · copyGains/losses on sale of PP&E total $M
adj_20_ppe_sale_netnumeric89%NONGAAP_A.adj_20_ppe_sale_net · copyadj_20_ppe_sale on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_20_ppe_sale_net_m$M5%NONGAAP_A.adj_20_ppe_sale_net_m · copyadj_20_ppe_sale on a NET (after-tax) basis, $M
adj_20_ppe_sale_net_ps_incl_imputed$/share89%NONGAAP_A.adj_20_ppe_sale_net_ps_incl_imputed · copyGains/losses on sale of PP&E: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_20_ppe_sale_precise$/share4%NONGAAP_A.adj_20_ppe_sale_precise · copyPrecise per-share adj_20_ppe_sale: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_20_ppe_sale_ps_incl_imputed$/share89%NONGAAP_A.adj_20_ppe_sale_ps_incl_imputed · copyGains/losses on sale of PP&E: per-share amount including imputed (derived, not printed) values
adj_21_tax_accountingnumeric89%NONGAAP_A.adj_21_tax_accounting · copyTax/accounting rule changes per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m
adj_21_tax_accounting_grossnumeric89%NONGAAP_A.adj_21_tax_accounting_gross · copyadj_21_tax_accounting on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_21_tax_accounting_gross_m$M2%NONGAAP_A.adj_21_tax_accounting_gross_m · copyadj_21_tax_accounting on a GROSS (pre-tax) basis, $M
adj_21_tax_accounting_labelstext2%NONGAAP_A.adj_21_tax_accounting_labels · copyVerbatim source line-item label(s) summed into adj_21_tax_accounting, "; "-joined
adj_21_tax_accounting_m$M2%NONGAAP_A.adj_21_tax_accounting_m · copyTax/accounting rule changes total $M
adj_21_tax_accounting_netnumeric89%NONGAAP_A.adj_21_tax_accounting_net · copyadj_21_tax_accounting on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_21_tax_accounting_net_m$M2%NONGAAP_A.adj_21_tax_accounting_net_m · copyadj_21_tax_accounting on a NET (after-tax) basis, $M
adj_21_tax_accounting_net_ps_incl_imputed$/share89%NONGAAP_A.adj_21_tax_accounting_net_ps_incl_imputed · copyTax/accounting rule changes: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_21_tax_accounting_precise$/share2%NONGAAP_A.adj_21_tax_accounting_precise · copyPrecise per-share adj_21_tax_accounting: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_21_tax_accounting_ps_incl_imputed$/share89%NONGAAP_A.adj_21_tax_accounting_ps_incl_imputed · copyTax/accounting rule changes: per-share amount including imputed (derived, not printed) values
adj_22_restructuringnumeric89%NONGAAP_A.adj_22_restructuring · copyRestructuring charges per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m) exis
adj_22_restructuring_grossnumeric89%NONGAAP_A.adj_22_restructuring_gross · copyadj_22_restructuring on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_22_restructuring_gross_m$M14%NONGAAP_A.adj_22_restructuring_gross_m · copyadj_22_restructuring on a GROSS (pre-tax) basis, $M
adj_22_restructuring_labelstext14%NONGAAP_A.adj_22_restructuring_labels · copyVerbatim source line-item label(s) summed into adj_22_restructuring, "; "-joined
adj_22_restructuring_m$M14%NONGAAP_A.adj_22_restructuring_m · copyRestructuring charges total $M
adj_22_restructuring_netnumeric89%NONGAAP_A.adj_22_restructuring_net · copyadj_22_restructuring on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_22_restructuring_net_m$M14%NONGAAP_A.adj_22_restructuring_net_m · copyadj_22_restructuring on a NET (after-tax) basis, $M
adj_22_restructuring_net_ps_incl_imputed$/share89%NONGAAP_A.adj_22_restructuring_net_ps_incl_imputed · copyRestructuring charges: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_22_restructuring_precise$/share13%NONGAAP_A.adj_22_restructuring_precise · copyPrecise per-share adj_22_restructuring: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_22_restructuring_ps_incl_imputed$/share89%NONGAAP_A.adj_22_restructuring_ps_incl_imputed · copyRestructuring charges: per-share amount including imputed (derived, not printed) values
adj_23_discontinuednumeric89%NONGAAP_A.adj_23_discontinued · copyDiscontinued operations per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m) ex
adj_23_discontinued_grossnumeric89%NONGAAP_A.adj_23_discontinued_gross · copyadj_23_discontinued on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_23_discontinued_gross_m$M4%NONGAAP_A.adj_23_discontinued_gross_m · copyadj_23_discontinued on a GROSS (pre-tax) basis, $M
adj_23_discontinued_labelstext4%NONGAAP_A.adj_23_discontinued_labels · copyVerbatim source line-item label(s) summed into adj_23_discontinued, "; "-joined
adj_23_discontinued_m$M4%NONGAAP_A.adj_23_discontinued_m · copyDiscontinued operations total $M
adj_23_discontinued_netnumeric89%NONGAAP_A.adj_23_discontinued_net · copyadj_23_discontinued on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_23_discontinued_net_m$M4%NONGAAP_A.adj_23_discontinued_net_m · copyadj_23_discontinued on a NET (after-tax) basis, $M
adj_23_discontinued_net_ps_incl_imputed$/share89%NONGAAP_A.adj_23_discontinued_net_ps_incl_imputed · copyDiscontinued operations: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_23_discontinued_precise$/share4%NONGAAP_A.adj_23_discontinued_precise · copyPrecise per-share adj_23_discontinued: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_23_discontinued_ps_incl_imputed$/share89%NONGAAP_A.adj_23_discontinued_ps_incl_imputed · copyDiscontinued operations: per-share amount including imputed (derived, not printed) values
adj_24_integrationratio89%NONGAAP_A.adj_24_integration · copyPost-acquisition integration costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versi
adj_24_integration_grossratio89%NONGAAP_A.adj_24_integration_gross · copyadj_24_integration on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_24_integration_gross_m$M2%NONGAAP_A.adj_24_integration_gross_m · copyadj_24_integration on a GROSS (pre-tax) basis, $M
adj_24_integration_labelsratio2%NONGAAP_A.adj_24_integration_labels · copyVerbatim source line-item label(s) summed into adj_24_integration, "; "-joined
adj_24_integration_m$M2%NONGAAP_A.adj_24_integration_m · copyPost-acquisition integration costs total $M
adj_24_integration_netratio89%NONGAAP_A.adj_24_integration_net · copyadj_24_integration on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_24_integration_net_m$M2%NONGAAP_A.adj_24_integration_net_m · copyadj_24_integration on a NET (after-tax) basis, $M
adj_24_integration_net_ps_incl_imputed$/share89%NONGAAP_A.adj_24_integration_net_ps_incl_imputed · copyPost-acquisition integration costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_24_integration_precise$/share2%NONGAAP_A.adj_24_integration_precise · copyPrecise per-share adj_24_integration: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_24_integration_ps_incl_imputed$/share89%NONGAAP_A.adj_24_integration_ps_incl_imputed · copyPost-acquisition integration costs: per-share amount including imputed (derived, not printed) values
adj_25_covidnumeric89%NONGAAP_A.adj_25_covid · copyCOVID-19/pandemic charges per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_m)
adj_25_covid_grossnumeric89%NONGAAP_A.adj_25_covid_gross · copyadj_25_covid on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_25_covid_gross_m$M0%NONGAAP_A.adj_25_covid_gross_m · copyadj_25_covid on a GROSS (pre-tax) basis, $M
adj_25_covid_labelstext0%NONGAAP_A.adj_25_covid_labels · copyVerbatim source line-item label(s) summed into adj_25_covid, "; "-joined
adj_25_covid_m$M0%NONGAAP_A.adj_25_covid_m · copyCOVID-19/pandemic charges total $M
adj_25_covid_netnumeric89%NONGAAP_A.adj_25_covid_net · copyadj_25_covid on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_25_covid_net_m$M0%NONGAAP_A.adj_25_covid_net_m · copyadj_25_covid on a NET (after-tax) basis, $M
adj_25_covid_net_ps_incl_imputed$/share89%NONGAAP_A.adj_25_covid_net_ps_incl_imputed · copyCOVID-19/pandemic charges: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_25_covid_precise$/share0%NONGAAP_A.adj_25_covid_precise · copyPrecise per-share adj_25_covid: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_25_covid_ps_incl_imputed$/share89%NONGAAP_A.adj_25_covid_ps_incl_imputed · copyCOVID-19/pandemic charges: per-share amount including imputed (derived, not printed) values
adj_26_unrealized_invstnumeric89%NONGAAP_A.adj_26_unrealized_invst · copyUnrealized investment gains/losses per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versi
adj_26_unrealized_invst_grossnumeric89%NONGAAP_A.adj_26_unrealized_invst_gross · copyadj_26_unrealized_invst on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_26_unrealized_invst_gross_m$M1%NONGAAP_A.adj_26_unrealized_invst_gross_m · copyadj_26_unrealized_invst on a GROSS (pre-tax) basis, $M
adj_26_unrealized_invst_labelstext1%NONGAAP_A.adj_26_unrealized_invst_labels · copyVerbatim source line-item label(s) summed into adj_26_unrealized_invst, "; "-joined
adj_26_unrealized_invst_m$M1%NONGAAP_A.adj_26_unrealized_invst_m · copyUnrealized investment gains/losses total $M
adj_26_unrealized_invst_netnumeric89%NONGAAP_A.adj_26_unrealized_invst_net · copyadj_26_unrealized_invst on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_26_unrealized_invst_net_m$M1%NONGAAP_A.adj_26_unrealized_invst_net_m · copyadj_26_unrealized_invst on a NET (after-tax) basis, $M
adj_26_unrealized_invst_net_ps_incl_imputed$/share89%NONGAAP_A.adj_26_unrealized_invst_net_ps_incl_imputed · copyUnrealized investment gains/losses: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_26_unrealized_invst_precise$/share1%NONGAAP_A.adj_26_unrealized_invst_precise · copyPrecise per-share adj_26_unrealized_invst: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_26_unrealized_invst_ps_incl_imputed$/share89%NONGAAP_A.adj_26_unrealized_invst_ps_incl_imputed · copyUnrealized investment gains/losses: per-share amount including imputed (derived, not printed) values
adj_27_ipr_dnumeric89%NONGAAP_A.adj_27_ipr_d · copyAcquired in-process R&D write-off per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versio
adj_27_ipr_d_grossnumeric89%NONGAAP_A.adj_27_ipr_d_gross · copyadj_27_ipr_d on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_27_ipr_d_gross_m$M1%NONGAAP_A.adj_27_ipr_d_gross_m · copyadj_27_ipr_d on a GROSS (pre-tax) basis, $M
adj_27_ipr_d_labelstext1%NONGAAP_A.adj_27_ipr_d_labels · copyVerbatim source line-item label(s) summed into adj_27_ipr_d, "; "-joined
adj_27_ipr_d_m$M1%NONGAAP_A.adj_27_ipr_d_m · copyAcquired in-process R&D write-off total $M
adj_27_ipr_d_netnumeric89%NONGAAP_A.adj_27_ipr_d_net · copyadj_27_ipr_d on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_27_ipr_d_net_m$M1%NONGAAP_A.adj_27_ipr_d_net_m · copyadj_27_ipr_d on a NET (after-tax) basis, $M
adj_27_ipr_d_net_ps_incl_imputed$/share89%NONGAAP_A.adj_27_ipr_d_net_ps_incl_imputed · copyAcquired in-process R&D write-off: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_27_ipr_d_precise$/share1%NONGAAP_A.adj_27_ipr_d_precise · copyPrecise per-share adj_27_ipr_d: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_27_ipr_d_ps_incl_imputed$/share89%NONGAAP_A.adj_27_ipr_d_ps_incl_imputed · copyAcquired in-process R&D write-off: per-share amount including imputed (derived, not printed) values
adj_28_natural_disasternumeric89%NONGAAP_A.adj_28_natural_disaster · copyNatural disaster/catastrophe charges per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar ver
adj_28_natural_disaster_grossnumeric89%NONGAAP_A.adj_28_natural_disaster_gross · copyadj_28_natural_disaster on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_28_natural_disaster_gross_m$M1%NONGAAP_A.adj_28_natural_disaster_gross_m · copyadj_28_natural_disaster on a GROSS (pre-tax) basis, $M
adj_28_natural_disaster_labelstext1%NONGAAP_A.adj_28_natural_disaster_labels · copyVerbatim source line-item label(s) summed into adj_28_natural_disaster, "; "-joined
adj_28_natural_disaster_m$M1%NONGAAP_A.adj_28_natural_disaster_m · copyNatural disaster/catastrophe charges total $M
adj_28_natural_disaster_netnumeric89%NONGAAP_A.adj_28_natural_disaster_net · copyadj_28_natural_disaster on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_28_natural_disaster_net_m$M1%NONGAAP_A.adj_28_natural_disaster_net_m · copyadj_28_natural_disaster on a NET (after-tax) basis, $M
adj_28_natural_disaster_net_ps_incl_imputed$/share89%NONGAAP_A.adj_28_natural_disaster_net_ps_incl_imputed · copyNatural disaster/catastrophe charges: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_28_natural_disaster_precise$/share1%NONGAAP_A.adj_28_natural_disaster_precise · copyPrecise per-share adj_28_natural_disaster: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_28_natural_disaster_ps_incl_imputed$/share89%NONGAAP_A.adj_28_natural_disaster_ps_incl_imputed · copyNatural disaster/catastrophe charges: per-share amount including imputed (derived, not printed) values
adj_29_supply_chainnumeric89%NONGAAP_A.adj_29_supply_chain · copySupply chain disruption costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (
adj_29_supply_chain_grossnumeric89%NONGAAP_A.adj_29_supply_chain_gross · copyadj_29_supply_chain on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_29_supply_chain_labelstext0%NONGAAP_A.adj_29_supply_chain_labels · copyVerbatim source line-item label(s) summed into adj_29_supply_chain, "; "-joined
adj_29_supply_chain_netnumeric89%NONGAAP_A.adj_29_supply_chain_net · copyadj_29_supply_chain on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_29_supply_chain_net_ps_incl_imputed$/share89%NONGAAP_A.adj_29_supply_chain_net_ps_incl_imputed · copySupply chain disruption costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_29_supply_chain_ps_incl_imputed$/share89%NONGAAP_A.adj_29_supply_chain_ps_incl_imputed · copySupply chain disruption costs: per-share amount including imputed (derived, not printed) values
adj_30_ai_transformnumeric89%NONGAAP_A.adj_30_ai_transform · copyAI/digital transformation costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions
adj_30_ai_transform_grossnumeric89%NONGAAP_A.adj_30_ai_transform_gross · copyadj_30_ai_transform on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_30_ai_transform_gross_m$M0%NONGAAP_A.adj_30_ai_transform_gross_m · copyadj_30_ai_transform on a GROSS (pre-tax) basis, $M
adj_30_ai_transform_labelstext0%NONGAAP_A.adj_30_ai_transform_labels · copyVerbatim source line-item label(s) summed into adj_30_ai_transform, "; "-joined
adj_30_ai_transform_m$M0%NONGAAP_A.adj_30_ai_transform_m · copyAI/digital transformation costs total $M
adj_30_ai_transform_netnumeric89%NONGAAP_A.adj_30_ai_transform_net · copyadj_30_ai_transform on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_30_ai_transform_net_m$M0%NONGAAP_A.adj_30_ai_transform_net_m · copyadj_30_ai_transform on a NET (after-tax) basis, $M
adj_30_ai_transform_net_ps_incl_imputed$/share89%NONGAAP_A.adj_30_ai_transform_net_ps_incl_imputed · copyAI/digital transformation costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_30_ai_transform_precise$/share0%NONGAAP_A.adj_30_ai_transform_precise · copyPrecise per-share adj_30_ai_transform: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_30_ai_transform_ps_incl_imputed$/share89%NONGAAP_A.adj_30_ai_transform_ps_incl_imputed · copyAI/digital transformation costs: per-share amount including imputed (derived, not printed) values
adj_31_exec_transitionnumeric89%NONGAAP_A.adj_31_exec_transition · copyExecutive/C-suite transition costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versi
adj_31_exec_transition_grossnumeric89%NONGAAP_A.adj_31_exec_transition_gross · copyadj_31_exec_transition on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_31_exec_transition_gross_m$M1%NONGAAP_A.adj_31_exec_transition_gross_m · copyadj_31_exec_transition on a GROSS (pre-tax) basis, $M
adj_31_exec_transition_labelstext1%NONGAAP_A.adj_31_exec_transition_labels · copyVerbatim source line-item label(s) summed into adj_31_exec_transition, "; "-joined
adj_31_exec_transition_m$M1%NONGAAP_A.adj_31_exec_transition_m · copyExecutive/C-suite transition costs total $M
adj_31_exec_transition_netnumeric89%NONGAAP_A.adj_31_exec_transition_net · copyadj_31_exec_transition on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_31_exec_transition_net_m$M1%NONGAAP_A.adj_31_exec_transition_net_m · copyadj_31_exec_transition on a NET (after-tax) basis, $M
adj_31_exec_transition_net_ps_incl_imputed$/share89%NONGAAP_A.adj_31_exec_transition_net_ps_incl_imputed · copyExecutive/C-suite transition costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_31_exec_transition_precise$/share1%NONGAAP_A.adj_31_exec_transition_precise · copyPrecise per-share adj_31_exec_transition: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_31_exec_transition_ps_incl_imputed$/share89%NONGAAP_A.adj_31_exec_transition_ps_incl_imputed · copyExecutive/C-suite transition costs: per-share amount including imputed (derived, not printed) values
adj_32_debt_issuancenumeric89%NONGAAP_A.adj_32_debt_issuance · copyDebt issuance/financing fees per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions (_
adj_32_debt_issuance_grossnumeric89%NONGAAP_A.adj_32_debt_issuance_gross · copyadj_32_debt_issuance on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_32_debt_issuance_gross_m$M1%NONGAAP_A.adj_32_debt_issuance_gross_m · copyadj_32_debt_issuance on a GROSS (pre-tax) basis, $M
adj_32_debt_issuance_labelstext1%NONGAAP_A.adj_32_debt_issuance_labels · copyVerbatim source line-item label(s) summed into adj_32_debt_issuance, "; "-joined
adj_32_debt_issuance_m$M1%NONGAAP_A.adj_32_debt_issuance_m · copyDebt issuance/financing fees total $M
adj_32_debt_issuance_netnumeric89%NONGAAP_A.adj_32_debt_issuance_net · copyadj_32_debt_issuance on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_32_debt_issuance_net_m$M1%NONGAAP_A.adj_32_debt_issuance_net_m · copyadj_32_debt_issuance on a NET (after-tax) basis, $M
adj_32_debt_issuance_net_ps_incl_imputed$/share89%NONGAAP_A.adj_32_debt_issuance_net_ps_incl_imputed · copyDebt issuance/financing fees: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_32_debt_issuance_precise$/share1%NONGAAP_A.adj_32_debt_issuance_precise · copyPrecise per-share adj_32_debt_issuance: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_32_debt_issuance_ps_incl_imputed$/share89%NONGAAP_A.adj_32_debt_issuance_ps_incl_imputed · copyDebt issuance/financing fees: per-share amount including imputed (derived, not printed) values
adj_33_cryptonumeric89%NONGAAP_A.adj_33_crypto · copyDigital-asset impairment (pre-ASU 2023-08) / fair-value remeasurement (ASU 2023-08) per share. Per share as disclosed; 0 when this category is not in the bridge, null whe
adj_33_crypto_grossnumeric89%NONGAAP_A.adj_33_crypto_gross · copyadj_33_crypto on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_33_crypto_labelstext0%NONGAAP_A.adj_33_crypto_labels · copyVerbatim source line-item label(s) summed into adj_33_crypto, "; "-joined
adj_33_crypto_netnumeric89%NONGAAP_A.adj_33_crypto_net · copyadj_33_crypto on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_33_crypto_net_ps_incl_imputed$/share89%NONGAAP_A.adj_33_crypto_net_ps_incl_imputed · copyDigital-asset impairment (pre-ASU 2023-08) / fair-value remeasurement (ASU 2023-08): net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_33_crypto_ps_incl_imputed$/share89%NONGAAP_A.adj_33_crypto_ps_incl_imputed · copyDigital-asset impairment (pre-ASU 2023-08) / fair-value remeasurement (ASU 2023-08): per-share amount including imputed (derived, not printed) values
adj_34_geopoliticalnumeric89%NONGAAP_A.adj_34_geopolitical · copyGeopolitical/sanctions/war charges per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versi
adj_34_geopolitical_grossnumeric89%NONGAAP_A.adj_34_geopolitical_gross · copyadj_34_geopolitical on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_34_geopolitical_gross_m$M0%NONGAAP_A.adj_34_geopolitical_gross_m · copyadj_34_geopolitical on a GROSS (pre-tax) basis, $M
adj_34_geopolitical_labelstext0%NONGAAP_A.adj_34_geopolitical_labels · copyVerbatim source line-item label(s) summed into adj_34_geopolitical, "; "-joined
adj_34_geopolitical_m$M0%NONGAAP_A.adj_34_geopolitical_m · copyGeopolitical/sanctions/war charges total $M
adj_34_geopolitical_netnumeric89%NONGAAP_A.adj_34_geopolitical_net · copyadj_34_geopolitical on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_34_geopolitical_net_m$M0%NONGAAP_A.adj_34_geopolitical_net_m · copyadj_34_geopolitical on a NET (after-tax) basis, $M
adj_34_geopolitical_net_ps_incl_imputed$/share89%NONGAAP_A.adj_34_geopolitical_net_ps_incl_imputed · copyGeopolitical/sanctions/war charges: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_34_geopolitical_precise$/share0%NONGAAP_A.adj_34_geopolitical_precise · copyPrecise per-share adj_34_geopolitical: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_34_geopolitical_ps_incl_imputed$/share89%NONGAAP_A.adj_34_geopolitical_ps_incl_imputed · copyGeopolitical/sanctions/war charges: per-share amount including imputed (derived, not printed) values
adj_35_fraudnumeric89%NONGAAP_A.adj_35_fraud · copyFraud investigation/remediation costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar ve
adj_35_fraud_grossnumeric89%NONGAAP_A.adj_35_fraud_gross · copyadj_35_fraud on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_35_fraud_gross_m$M0%NONGAAP_A.adj_35_fraud_gross_m · copyadj_35_fraud on a GROSS (pre-tax) basis, $M
adj_35_fraud_labelstext0%NONGAAP_A.adj_35_fraud_labels · copyVerbatim source line-item label(s) summed into adj_35_fraud, "; "-joined
adj_35_fraud_m$M0%NONGAAP_A.adj_35_fraud_m · copyFraud investigation/remediation costs total $M
adj_35_fraud_netnumeric89%NONGAAP_A.adj_35_fraud_net · copyadj_35_fraud on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_35_fraud_net_m$M0%NONGAAP_A.adj_35_fraud_net_m · copyadj_35_fraud on a NET (after-tax) basis, $M
adj_35_fraud_net_ps_incl_imputed$/share89%NONGAAP_A.adj_35_fraud_net_ps_incl_imputed · copyFraud investigation/remediation costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_35_fraud_precise$/share0%NONGAAP_A.adj_35_fraud_precise · copyPrecise per-share adj_35_fraud: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_35_fraud_ps_incl_imputed$/share89%NONGAAP_A.adj_35_fraud_ps_incl_imputed · copyFraud investigation/remediation costs: per-share amount including imputed (derived, not printed) values
adj_36_deitext89%NONGAAP_A.adj_36_dei · copyDEI/diversity initiative costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions
adj_36_dei_grosstext89%NONGAAP_A.adj_36_dei_gross · copyadj_36_dei on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_36_dei_labelstext0%NONGAAP_A.adj_36_dei_labels · copyVerbatim source line-item label(s) summed into adj_36_dei, "; "-joined
adj_36_dei_nettext89%NONGAAP_A.adj_36_dei_net · copyadj_36_dei on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_36_dei_net_ps_incl_imputed$/share89%NONGAAP_A.adj_36_dei_net_ps_incl_imputed · copyDEI/diversity initiative costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_36_dei_ps_incl_imputed$/share89%NONGAAP_A.adj_36_dei_ps_incl_imputed · copyDEI/diversity initiative costs: per-share amount including imputed (derived, not printed) values
adj_37_climate_esgnumeric89%NONGAAP_A.adj_37_climate_esg · copyClimate transition/ESG (E+G pillar) compliance per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation.
adj_37_climate_esg_grossnumeric89%NONGAAP_A.adj_37_climate_esg_gross · copyadj_37_climate_esg on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_37_climate_esg_labelstext0%NONGAAP_A.adj_37_climate_esg_labels · copyVerbatim source line-item label(s) summed into adj_37_climate_esg, "; "-joined
adj_37_climate_esg_netnumeric89%NONGAAP_A.adj_37_climate_esg_net · copyadj_37_climate_esg on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_37_climate_esg_net_ps_incl_imputed$/share89%NONGAAP_A.adj_37_climate_esg_net_ps_incl_imputed · copyClimate transition/ESG (E+G pillar) compliance: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_37_climate_esg_ps_incl_imputed$/share89%NONGAAP_A.adj_37_climate_esg_ps_incl_imputed · copyClimate transition/ESG (E+G pillar) compliance: per-share amount including imputed (derived, not printed) values
adj_38_ai_equity_gainsnumeric89%NONGAAP_A.adj_38_ai_equity_gains · copyGains/losses on AI-company equity stakes per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar
adj_38_ai_equity_gains_grossnumeric89%NONGAAP_A.adj_38_ai_equity_gains_gross · copyadj_38_ai_equity_gains on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_38_ai_equity_gains_labelstext0%NONGAAP_A.adj_38_ai_equity_gains_labels · copyVerbatim source line-item label(s) summed into adj_38_ai_equity_gains, "; "-joined
adj_38_ai_equity_gains_netnumeric89%NONGAAP_A.adj_38_ai_equity_gains_net · copyadj_38_ai_equity_gains on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_38_ai_equity_gains_net_ps_incl_imputed$/share89%NONGAAP_A.adj_38_ai_equity_gains_net_ps_incl_imputed · copyGains/losses on AI-company equity stakes: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_38_ai_equity_gains_ps_incl_imputed$/share89%NONGAAP_A.adj_38_ai_equity_gains_ps_incl_imputed · copyGains/losses on AI-company equity stakes: per-share amount including imputed (derived, not printed) values
adj_39_tariffsnumeric89%NONGAAP_A.adj_39_tariffs · copyTariff/trade-policy/duty costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions
adj_39_tariffs_grossnumeric89%NONGAAP_A.adj_39_tariffs_gross · copyadj_39_tariffs on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_39_tariffs_gross_m$M0%NONGAAP_A.adj_39_tariffs_gross_m · copyadj_39_tariffs on a GROSS (pre-tax) basis, $M
adj_39_tariffs_labelstext0%NONGAAP_A.adj_39_tariffs_labels · copyVerbatim source line-item label(s) summed into adj_39_tariffs, "; "-joined
adj_39_tariffs_m$M0%NONGAAP_A.adj_39_tariffs_m · copyTariff/trade-policy/duty costs total $M
adj_39_tariffs_netnumeric89%NONGAAP_A.adj_39_tariffs_net · copyadj_39_tariffs on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_39_tariffs_net_m$M0%NONGAAP_A.adj_39_tariffs_net_m · copyadj_39_tariffs on a NET (after-tax) basis, $M
adj_39_tariffs_net_ps_incl_imputed$/share89%NONGAAP_A.adj_39_tariffs_net_ps_incl_imputed · copyTariff/trade-policy/duty costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_39_tariffs_precise$/share0%NONGAAP_A.adj_39_tariffs_precise · copyPrecise per-share adj_39_tariffs: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_39_tariffs_ps_incl_imputed$/share89%NONGAAP_A.adj_39_tariffs_ps_incl_imputed · copyTariff/trade-policy/duty costs: per-share amount including imputed (derived, not printed) values
adj_40_cybernumeric89%NONGAAP_A.adj_40_cyber · copyCybersecurity-incident/ransomware/breach costs per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation.
adj_40_cyber_grossnumeric89%NONGAAP_A.adj_40_cyber_gross · copyadj_40_cyber on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_40_cyber_gross_m$M0%NONGAAP_A.adj_40_cyber_gross_m · copyadj_40_cyber on a GROSS (pre-tax) basis, $M
adj_40_cyber_labelstext0%NONGAAP_A.adj_40_cyber_labels · copyVerbatim source line-item label(s) summed into adj_40_cyber, "; "-joined
adj_40_cyber_m$M0%NONGAAP_A.adj_40_cyber_m · copyCybersecurity-incident/ransomware/breach costs total $M
adj_40_cyber_netnumeric89%NONGAAP_A.adj_40_cyber_net · copyadj_40_cyber on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_40_cyber_net_m$M0%NONGAAP_A.adj_40_cyber_net_m · copyadj_40_cyber on a NET (after-tax) basis, $M
adj_40_cyber_net_ps_incl_imputed$/share89%NONGAAP_A.adj_40_cyber_net_ps_incl_imputed · copyCybersecurity-incident/ransomware/breach costs: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_40_cyber_precise$/share0%NONGAAP_A.adj_40_cyber_precise · copyPrecise per-share adj_40_cyber: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_40_cyber_ps_incl_imputed$/share89%NONGAAP_A.adj_40_cyber_ps_incl_imputed · copyCybersecurity-incident/ransomware/breach costs: per-share amount including imputed (derived, not printed) values
adj_41_commoditynumeric89%NONGAAP_A.adj_41_commodity · copyCommodity/energy-price impacts per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions
adj_41_commodity_grossnumeric89%NONGAAP_A.adj_41_commodity_gross · copyadj_41_commodity on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_41_commodity_gross_m$M0%NONGAAP_A.adj_41_commodity_gross_m · copyadj_41_commodity on a GROSS (pre-tax) basis, $M
adj_41_commodity_labelstext0%NONGAAP_A.adj_41_commodity_labels · copyVerbatim source line-item label(s) summed into adj_41_commodity, "; "-joined
adj_41_commodity_m$M0%NONGAAP_A.adj_41_commodity_m · copyCommodity/energy-price impacts total $M
adj_41_commodity_netnumeric89%NONGAAP_A.adj_41_commodity_net · copyadj_41_commodity on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_41_commodity_net_m$M0%NONGAAP_A.adj_41_commodity_net_m · copyadj_41_commodity on a NET (after-tax) basis, $M
adj_41_commodity_net_ps_incl_imputed$/share89%NONGAAP_A.adj_41_commodity_net_ps_incl_imputed · copyCommodity/energy-price impacts: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_41_commodity_precise$/share0%NONGAAP_A.adj_41_commodity_precise · copyPrecise per-share adj_41_commodity: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_41_commodity_ps_incl_imputed$/share89%NONGAAP_A.adj_41_commodity_ps_incl_imputed · copyCommodity/energy-price impacts: per-share amount including imputed (derived, not printed) values
adj_44_credit_lossnumeric89%NONGAAP_A.adj_44_credit_loss · copyBad-debt/credit-loss provision (CECL) per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar ve
adj_44_credit_loss_grossnumeric89%NONGAAP_A.adj_44_credit_loss_gross · copyadj_44_credit_loss on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_44_credit_loss_gross_m$M1%NONGAAP_A.adj_44_credit_loss_gross_m · copyadj_44_credit_loss on a GROSS (pre-tax) basis, $M
adj_44_credit_loss_labelstext1%NONGAAP_A.adj_44_credit_loss_labels · copyVerbatim source line-item label(s) summed into adj_44_credit_loss, "; "-joined
adj_44_credit_loss_m$M1%NONGAAP_A.adj_44_credit_loss_m · copyBad-debt/credit-loss provision (CECL) total $M
adj_44_credit_loss_netnumeric89%NONGAAP_A.adj_44_credit_loss_net · copyadj_44_credit_loss on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_44_credit_loss_net_m$M1%NONGAAP_A.adj_44_credit_loss_net_m · copyadj_44_credit_loss on a NET (after-tax) basis, $M
adj_44_credit_loss_net_ps_incl_imputed$/share89%NONGAAP_A.adj_44_credit_loss_net_ps_incl_imputed · copyBad-debt/credit-loss provision (CECL): net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_44_credit_loss_precise$/share1%NONGAAP_A.adj_44_credit_loss_precise · copyPrecise per-share adj_44_credit_loss: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_44_credit_loss_ps_incl_imputed$/share89%NONGAAP_A.adj_44_credit_loss_ps_incl_imputed · copyBad-debt/credit-loss provision (CECL): per-share amount including imputed (derived, not printed) values
adj_45_charitablenumeric89%NONGAAP_A.adj_45_charitable · copyCharitable/philanthropic donations, foundation/relief giving per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no re
adj_45_charitable_grossnumeric89%NONGAAP_A.adj_45_charitable_gross · copyadj_45_charitable on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_45_charitable_gross_m$M0%NONGAAP_A.adj_45_charitable_gross_m · copyadj_45_charitable on a GROSS (pre-tax) basis, $M
adj_45_charitable_labelstext0%NONGAAP_A.adj_45_charitable_labels · copyVerbatim source line-item label(s) summed into adj_45_charitable, "; "-joined
adj_45_charitable_m$M0%NONGAAP_A.adj_45_charitable_m · copyCharitable/philanthropic donations, foundation/relief giving total $M
adj_45_charitable_netnumeric89%NONGAAP_A.adj_45_charitable_net · copyadj_45_charitable on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_45_charitable_net_m$M0%NONGAAP_A.adj_45_charitable_net_m · copyadj_45_charitable on a NET (after-tax) basis, $M
adj_45_charitable_net_ps_incl_imputed$/share89%NONGAAP_A.adj_45_charitable_net_ps_incl_imputed · copyCharitable/philanthropic donations, foundation/relief giving: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_45_charitable_precise$/share0%NONGAAP_A.adj_45_charitable_precise · copyPrecise per-share adj_45_charitable: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_45_charitable_ps_incl_imputed$/share89%NONGAAP_A.adj_45_charitable_ps_incl_imputed · copyCharitable/philanthropic donations, foundation/relief giving: per-share amount including imputed (derived, not printed) values
adj_46_noncontrolling_interestnumeric89%NONGAAP_A.adj_46_noncontrolling_interest · copyNon-controlling/minority-interest adjustment per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Do
adj_46_noncontrolling_interest_grossnumeric89%NONGAAP_A.adj_46_noncontrolling_interest_gross · copyadj_46_noncontrolling_interest on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_46_noncontrolling_interest_gross_m$M3%NONGAAP_A.adj_46_noncontrolling_interest_gross_m · copyadj_46_noncontrolling_interest on a GROSS (pre-tax) basis, $M
adj_46_noncontrolling_interest_labelstext3%NONGAAP_A.adj_46_noncontrolling_interest_labels · copyVerbatim source line-item label(s) summed into adj_46_noncontrolling_interest, "; "-joined
adj_46_noncontrolling_interest_m$M3%NONGAAP_A.adj_46_noncontrolling_interest_m · copyNon-controlling/minority-interest adjustment total $M
adj_46_noncontrolling_interest_netnumeric89%NONGAAP_A.adj_46_noncontrolling_interest_net · copyadj_46_noncontrolling_interest on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_46_noncontrolling_interest_net_m$M3%NONGAAP_A.adj_46_noncontrolling_interest_net_m · copyadj_46_noncontrolling_interest on a NET (after-tax) basis, $M
adj_46_noncontrolling_interest_net_ps_incl_imputed$/share89%NONGAAP_A.adj_46_noncontrolling_interest_net_ps_incl_imputed · copyNon-controlling/minority-interest adjustment: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_46_noncontrolling_interest_precise$/share3%NONGAAP_A.adj_46_noncontrolling_interest_precise · copyPrecise per-share adj_46_noncontrolling_interest: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_46_noncontrolling_interest_ps_incl_imputed$/share89%NONGAAP_A.adj_46_noncontrolling_interest_ps_incl_imputed · copyNon-controlling/minority-interest adjustment: per-share amount including imputed (derived, not printed) values
adj_47_preferred_dividendsnumeric89%NONGAAP_A.adj_47_preferred_dividends · copyPreferred/participating-security dividend adjustment (EPS-to-common bridge) per share. Per share as disclosed; 0 when this category is not in the bridge, null when the re
adj_47_preferred_dividends_grossnumeric89%NONGAAP_A.adj_47_preferred_dividends_gross · copyadj_47_preferred_dividends on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_47_preferred_dividends_gross_m$M1%NONGAAP_A.adj_47_preferred_dividends_gross_m · copyadj_47_preferred_dividends on a GROSS (pre-tax) basis, $M
adj_47_preferred_dividends_labelstext2%NONGAAP_A.adj_47_preferred_dividends_labels · copyVerbatim source line-item label(s) summed into adj_47_preferred_dividends, "; "-joined
adj_47_preferred_dividends_m$M1%NONGAAP_A.adj_47_preferred_dividends_m · copyPreferred/participating-security dividend adjustment total $M
adj_47_preferred_dividends_netnumeric89%NONGAAP_A.adj_47_preferred_dividends_net · copyadj_47_preferred_dividends on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_47_preferred_dividends_net_m$M1%NONGAAP_A.adj_47_preferred_dividends_net_m · copyadj_47_preferred_dividends on a NET (after-tax) basis, $M
adj_47_preferred_dividends_net_ps_incl_imputed$/share89%NONGAAP_A.adj_47_preferred_dividends_net_ps_incl_imputed · copyPreferred/participating-security dividend adjustment (EPS-to-common bridge): net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_47_preferred_dividends_precise$/share1%NONGAAP_A.adj_47_preferred_dividends_precise · copyPrecise per-share adj_47_preferred_dividends: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_47_preferred_dividends_ps_incl_imputed$/share89%NONGAAP_A.adj_47_preferred_dividends_ps_incl_imputed · copyPreferred/participating-security dividend adjustment (EPS-to-common bridge): per-share amount including imputed (derived, not printed) values
adj_48_warrant_liabilitynumeric89%NONGAAP_A.adj_48_warrant_liability · copyWarrant-liability fair-value remeasurement (SPAC/de-SPAC; post-2018) per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release h
adj_48_warrant_liability_grossnumeric89%NONGAAP_A.adj_48_warrant_liability_gross · copyadj_48_warrant_liability on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_48_warrant_liability_gross_m$M1%NONGAAP_A.adj_48_warrant_liability_gross_m · copyadj_48_warrant_liability on a GROSS (pre-tax) basis, $M
adj_48_warrant_liability_labelstext1%NONGAAP_A.adj_48_warrant_liability_labels · copyVerbatim source line-item label(s) summed into adj_48_warrant_liability, "; "-joined
adj_48_warrant_liability_m$M1%NONGAAP_A.adj_48_warrant_liability_m · copyWarrant-liability fair-value remeasurement (SPAC/de-SPAC; post-2018) total $M
adj_48_warrant_liability_netnumeric89%NONGAAP_A.adj_48_warrant_liability_net · copyadj_48_warrant_liability on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_48_warrant_liability_net_m$M1%NONGAAP_A.adj_48_warrant_liability_net_m · copyadj_48_warrant_liability on a NET (after-tax) basis, $M
adj_48_warrant_liability_net_ps_incl_imputed$/share89%NONGAAP_A.adj_48_warrant_liability_net_ps_incl_imputed · copyWarrant-liability fair-value remeasurement (SPAC/de-SPAC; post-2018): net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_48_warrant_liability_precise$/share1%NONGAAP_A.adj_48_warrant_liability_precise · copyPrecise per-share adj_48_warrant_liability: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_48_warrant_liability_ps_incl_imputed$/share89%NONGAAP_A.adj_48_warrant_liability_ps_incl_imputed · copyWarrant-liability fair-value remeasurement (SPAC/de-SPAC; post-2018): per-share amount including imputed (derived, not printed) values
adj_49_re_depreciationnumeric89%NONGAAP_A.adj_49_re_depreciation · copyReal-estate depreciation & amortization add-back (REIT FFO/AFFO/FAD) per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release h
adj_49_re_depreciation_grossnumeric89%NONGAAP_A.adj_49_re_depreciation_gross · copyadj_49_re_depreciation on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_49_re_depreciation_gross_m$M2%NONGAAP_A.adj_49_re_depreciation_gross_m · copyadj_49_re_depreciation on a GROSS (pre-tax) basis, $M
adj_49_re_depreciation_labelstext2%NONGAAP_A.adj_49_re_depreciation_labels · copyVerbatim source line-item label(s) summed into adj_49_re_depreciation, "; "-joined
adj_49_re_depreciation_m$M2%NONGAAP_A.adj_49_re_depreciation_m · copyReal-estate depreciation & amortization add-back (REIT FFO/AFFO/FAD) total $M
adj_49_re_depreciation_netnumeric89%NONGAAP_A.adj_49_re_depreciation_net · copyadj_49_re_depreciation on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_49_re_depreciation_net_m$M2%NONGAAP_A.adj_49_re_depreciation_net_m · copyadj_49_re_depreciation on a NET (after-tax) basis, $M
adj_49_re_depreciation_net_ps_incl_imputed$/share89%NONGAAP_A.adj_49_re_depreciation_net_ps_incl_imputed · copyReal-estate depreciation & amortization add-back (REIT FFO/AFFO/FAD): net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_49_re_depreciation_precise$/share2%NONGAAP_A.adj_49_re_depreciation_precise · copyPrecise per-share adj_49_re_depreciation: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_49_re_depreciation_ps_incl_imputed$/share89%NONGAAP_A.adj_49_re_depreciation_ps_incl_imputed · copyReal-estate depreciation & amortization add-back (REIT FFO/AFFO/FAD): per-share amount including imputed (derived, not printed) values
adj_50_divestiture_gainnumeric89%NONGAAP_A.adj_50_divestiture_gain · copyGain/loss on sale of business or divestiture per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Do
adj_50_divestiture_gain_grossnumeric89%NONGAAP_A.adj_50_divestiture_gain_gross · copyadj_50_divestiture_gain on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_50_divestiture_gain_gross_m$M5%NONGAAP_A.adj_50_divestiture_gain_gross_m · copyadj_50_divestiture_gain on a GROSS (pre-tax) basis, $M
adj_50_divestiture_gain_labelstext5%NONGAAP_A.adj_50_divestiture_gain_labels · copyVerbatim source line-item label(s) summed into adj_50_divestiture_gain, "; "-joined
adj_50_divestiture_gain_m$M5%NONGAAP_A.adj_50_divestiture_gain_m · copyGain/loss on sale of business or divestiture total $M
adj_50_divestiture_gain_netnumeric89%NONGAAP_A.adj_50_divestiture_gain_net · copyadj_50_divestiture_gain on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_50_divestiture_gain_net_m$M5%NONGAAP_A.adj_50_divestiture_gain_net_m · copyadj_50_divestiture_gain on a NET (after-tax) basis, $M
adj_50_divestiture_gain_net_ps_incl_imputed$/share89%NONGAAP_A.adj_50_divestiture_gain_net_ps_incl_imputed · copyGain/loss on sale of business or divestiture: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_50_divestiture_gain_precise$/share4%NONGAAP_A.adj_50_divestiture_gain_precise · copyPrecise per-share adj_50_divestiture_gain: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_50_divestiture_gain_ps_incl_imputed$/share89%NONGAAP_A.adj_50_divestiture_gain_ps_incl_imputed · copyGain/loss on sale of business or divestiture: per-share amount including imputed (derived, not printed) values
adj_51_re_rent_adjnumeric89%NONGAAP_A.adj_51_re_rent_adj · copyREIT non-cash rent timing (straight-line/deferred rent) per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconci
adj_51_re_rent_adj_grossnumeric89%NONGAAP_A.adj_51_re_rent_adj_gross · copyadj_51_re_rent_adj on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_51_re_rent_adj_gross_m$M0%NONGAAP_A.adj_51_re_rent_adj_gross_m · copyadj_51_re_rent_adj on a GROSS (pre-tax) basis, $M
adj_51_re_rent_adj_labelstext0%NONGAAP_A.adj_51_re_rent_adj_labels · copyVerbatim source line-item label(s) summed into adj_51_re_rent_adj, "; "-joined
adj_51_re_rent_adj_m$M0%NONGAAP_A.adj_51_re_rent_adj_m · copyREIT non-cash rent timing total $M
adj_51_re_rent_adj_netnumeric89%NONGAAP_A.adj_51_re_rent_adj_net · copyadj_51_re_rent_adj on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_51_re_rent_adj_net_m$M0%NONGAAP_A.adj_51_re_rent_adj_net_m · copyadj_51_re_rent_adj on a NET (after-tax) basis, $M
adj_51_re_rent_adj_net_ps_incl_imputed$/share89%NONGAAP_A.adj_51_re_rent_adj_net_ps_incl_imputed · copyREIT non-cash rent timing (straight-line/deferred rent): net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_51_re_rent_adj_precise$/share0%NONGAAP_A.adj_51_re_rent_adj_precise · copyPrecise per-share adj_51_re_rent_adj: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_51_re_rent_adj_ps_incl_imputed$/share89%NONGAAP_A.adj_51_re_rent_adj_ps_incl_imputed · copyREIT non-cash rent timing (straight-line/deferred rent): per-share amount including imputed (derived, not printed) values
adj_52_maint_capexnumeric89%NONGAAP_A.adj_52_maint_capex · copyRecurring/maintenance capex (AFFO/FAD) per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar v
adj_52_maint_capex_grossnumeric89%NONGAAP_A.adj_52_maint_capex_gross · copyadj_52_maint_capex on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_52_maint_capex_gross_m$M0%NONGAAP_A.adj_52_maint_capex_gross_m · copyadj_52_maint_capex on a GROSS (pre-tax) basis, $M
adj_52_maint_capex_labelstext0%NONGAAP_A.adj_52_maint_capex_labels · copyVerbatim source line-item label(s) summed into adj_52_maint_capex, "; "-joined
adj_52_maint_capex_m$M0%NONGAAP_A.adj_52_maint_capex_m · copyRecurring/maintenance capex (AFFO/FAD) total $M
adj_52_maint_capex_netnumeric89%NONGAAP_A.adj_52_maint_capex_net · copyadj_52_maint_capex on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_52_maint_capex_net_m$M0%NONGAAP_A.adj_52_maint_capex_net_m · copyadj_52_maint_capex on a NET (after-tax) basis, $M
adj_52_maint_capex_net_ps_incl_imputed$/share89%NONGAAP_A.adj_52_maint_capex_net_ps_incl_imputed · copyRecurring/maintenance capex (AFFO/FAD): net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_52_maint_capex_precise$/share0%NONGAAP_A.adj_52_maint_capex_precise · copyPrecise per-share adj_52_maint_capex: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_52_maint_capex_ps_incl_imputed$/share89%NONGAAP_A.adj_52_maint_capex_ps_incl_imputed · copyRecurring/maintenance capex (AFFO/FAD): per-share amount including imputed (derived, not printed) values
adj_53_acquired_deferred_revnumeric89%NONGAAP_A.adj_53_acquired_deferred_rev · copyAcquired deferred-revenue fair-value (purchase accounting) per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reco
adj_53_acquired_deferred_rev_grossnumeric89%NONGAAP_A.adj_53_acquired_deferred_rev_gross · copyadj_53_acquired_deferred_rev on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_53_acquired_deferred_rev_gross_m$M1%NONGAAP_A.adj_53_acquired_deferred_rev_gross_m · copyadj_53_acquired_deferred_rev on a GROSS (pre-tax) basis, $M
adj_53_acquired_deferred_rev_labelstext1%NONGAAP_A.adj_53_acquired_deferred_rev_labels · copyVerbatim source line-item label(s) summed into adj_53_acquired_deferred_rev, "; "-joined
adj_53_acquired_deferred_rev_m$M1%NONGAAP_A.adj_53_acquired_deferred_rev_m · copyAcquired deferred-revenue fair-value total $M
adj_53_acquired_deferred_rev_netnumeric89%NONGAAP_A.adj_53_acquired_deferred_rev_net · copyadj_53_acquired_deferred_rev on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_53_acquired_deferred_rev_net_m$M1%NONGAAP_A.adj_53_acquired_deferred_rev_net_m · copyadj_53_acquired_deferred_rev on a NET (after-tax) basis, $M
adj_53_acquired_deferred_rev_net_ps_incl_imputed$/share89%NONGAAP_A.adj_53_acquired_deferred_rev_net_ps_incl_imputed · copyAcquired deferred-revenue fair-value (purchase accounting): net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_53_acquired_deferred_rev_precise$/share1%NONGAAP_A.adj_53_acquired_deferred_rev_precise · copyPrecise per-share adj_53_acquired_deferred_rev: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_53_acquired_deferred_rev_ps_incl_imputed$/share89%NONGAAP_A.adj_53_acquired_deferred_rev_ps_incl_imputed · copyAcquired deferred-revenue fair-value (purchase accounting): per-share amount including imputed (derived, not printed) values
adj_54_environmentalnumeric89%NONGAAP_A.adj_54_environmental · copyEnvironmental remediation/cleanup per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versio
adj_54_environmental_grossnumeric89%NONGAAP_A.adj_54_environmental_gross · copyadj_54_environmental on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_54_environmental_gross_m$M0%NONGAAP_A.adj_54_environmental_gross_m · copyadj_54_environmental on a GROSS (pre-tax) basis, $M
adj_54_environmental_labelstext0%NONGAAP_A.adj_54_environmental_labels · copyVerbatim source line-item label(s) summed into adj_54_environmental, "; "-joined
adj_54_environmental_m$M0%NONGAAP_A.adj_54_environmental_m · copyEnvironmental remediation/cleanup total $M
adj_54_environmental_netnumeric89%NONGAAP_A.adj_54_environmental_net · copyadj_54_environmental on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_54_environmental_net_m$M0%NONGAAP_A.adj_54_environmental_net_m · copyadj_54_environmental on a NET (after-tax) basis, $M
adj_54_environmental_net_ps_incl_imputed$/share89%NONGAAP_A.adj_54_environmental_net_ps_incl_imputed · copyEnvironmental remediation/cleanup: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_54_environmental_precise$/share0%NONGAAP_A.adj_54_environmental_precise · copyPrecise per-share adj_54_environmental: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_54_environmental_ps_incl_imputed$/share89%NONGAAP_A.adj_54_environmental_ps_incl_imputed · copyEnvironmental remediation/cleanup: per-share amount including imputed (derived, not printed) values
adj_55_govt_grantnumeric89%NONGAAP_A.adj_55_govt_grant · copyGovernment grants/ERC/subsidies per share. Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconciliation. Dollar versions
adj_55_govt_grant_grossnumeric89%NONGAAP_A.adj_55_govt_grant_gross · copyadj_55_govt_grant on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_55_govt_grant_gross_m$M0%NONGAAP_A.adj_55_govt_grant_gross_m · copyadj_55_govt_grant on a GROSS (pre-tax) basis, $M
adj_55_govt_grant_labelstext0%NONGAAP_A.adj_55_govt_grant_labels · copyVerbatim source line-item label(s) summed into adj_55_govt_grant, "; "-joined
adj_55_govt_grant_m$M0%NONGAAP_A.adj_55_govt_grant_m · copyGovernment grants/ERC/subsidies total $M
adj_55_govt_grant_netnumeric89%NONGAAP_A.adj_55_govt_grant_net · copyadj_55_govt_grant on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_55_govt_grant_net_m$M0%NONGAAP_A.adj_55_govt_grant_net_m · copyadj_55_govt_grant on a NET (after-tax) basis, $M
adj_55_govt_grant_net_ps_incl_imputed$/share89%NONGAAP_A.adj_55_govt_grant_net_ps_incl_imputed · copyGovernment grants/ERC/subsidies: net (after-tax) per-share amount, including imputed (derived, not printed) values
adj_55_govt_grant_precise$/share0%NONGAAP_A.adj_55_govt_grant_precise · copyPrecise per-share adj_55_govt_grant: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_55_govt_grant_ps_incl_imputed$/share89%NONGAAP_A.adj_55_govt_grant_ps_incl_imputed · copyGovernment grants/ERC/subsidies: per-share amount including imputed (derived, not printed) values
adj_dollars_imputedtext89%NONGAAP_A.adj_dollars_imputed · copy1=at least one present adjustment was stated per-share only (no disclosed $); its dollar amount must be imputed from per-share x diluted_shares_k. The $ TOTAL is still ex
adj_dollars_imputed_catstext2%NONGAAP_A.adj_dollars_imputed_cats · copyadj_* category keys stated per-share only (no disclosed dollar amount), "; "-joined
adj_gross_imputedtext89%NONGAAP_A.adj_gross_imputed · copy1=the *_gross columns are IMPUTED (firm reported net-of-tax); 0=observed (firm reported gross)
adj_net_imputedtext89%NONGAAP_A.adj_net_imputed · copy1=the *_net columns are IMPUTED (firm reported gross); 0=observed (firm reported net)
adj_ps_imputed$/share89%NONGAAP_A.adj_ps_imputed · copy1 if per-share adjustment amounts required an imputed share count.
n_footnoted_adjustmentscount89%NONGAAP_A.n_footnoted_adjustments · copyCount of adjustment rows carrying an explanatory footnote marker
n_subpenny_adjustmentscount89%NONGAAP_A.n_subpenny_adjustments · copyCount of subpenny adjustments.
noncash_excl_shareratio38%NONGAAP_A.noncash_excl_share · copyNon-cash share of itemized exclusions = /non-cash/ / (/non-cash/+/cash/+/mixed/), per share (0–1)
noncash_labeled_categoriestext8%NONGAAP_A.noncash_labeled_categories · copyadj_* category keys whose row label the FILING explicitly calls "non-cash" ("; "-joined; LLM-extracted; resolves mixed items)
subpenny_adjustments_m$M89%NONGAAP_A.subpenny_adjustments_m · copySubpenny adjustments, US$ millions.
subpenny_labelstext12%NONGAAP_A.subpenny_labels · copySemicolon-separated list of non-GAAP adjustment labels, each with a numeric code and position type, from earnings press releases.
total_cash_excl_m$M37%NONGAAP_A.total_cash_excl_m · copyTotal $M exclusions of CASH nature
total_cash_excl_ps$/share38%NONGAAP_A.total_cash_excl_ps · copyPer-share exclusions of CASH nature (severance, litigation, deal/integration costs, etc.)
total_cashmixed_excl_m$M37%NONGAAP_A.total_cashmixed_excl_m · copyTotal $M exclusions of MIXED cash nature
total_cashmixed_excl_ps$/share38%NONGAAP_A.total_cashmixed_excl_ps · copyPer-share exclusions of MIXED cash nature (restructuring, FX, debt extinguishment — part cash/part non-cash)
total_noncash_excl_m$M37%NONGAAP_A.total_noncash_excl_m · copyTotal $M exclusions of NON-CASH nature
total_noncash_excl_ps$/share38%NONGAAP_A.total_noncash_excl_ps · copyPer-share exclusions of NON-CASH nature (SBC, amortization, impairments, fair-value, etc.); category map CASH_NATURE
total_noncash_resolved_m$M37%NONGAAP_A.total_noncash_resolved_m · copyTotal $M non-cash exclusions resolved (incl. filing-labeled non-cash items)
total_noncash_resolved_ps$/share38%NONGAAP_A.total_noncash_resolved_ps · copyPer-share NON-CASH exclusions RESOLVED: non-cash-nature items PLUS any mixed/cash item the filing explicitly labels "non-cash" (noncash_labeled_categories)
adj_06_roundingnumeric45%SAT_RECOVERED_PERIOD.adj_06_rounding · copyThe rounding component isolated from the 'other' bucket.
adj_11_split_methodtext19%SAT_RECOVERED_PERIOD.adj_11_split_method · copyHow the tax line was split between the tax effect of adjustments and discrete tax items.
adj_11a_tax_effect_of_adjustmentsnumeric23%SAT_RECOVERED_PERIOD.adj_11a_tax_effect_of_adjustments · copyTax effect OF the non-GAAP adjustments, per diluted share (US$). Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reconcili
adj_11b_discrete_tax_itemnumeric20%SAT_RECOVERED_PERIOD.adj_11b_discrete_tax_item · copyDiscrete tax item excluded in its own right, per diluted share (US$). Per share as disclosed; 0 when this category is not in the bridge, null when the release has no reco
adj_items_ncount47%SAT_ADJ_ITEM_DETAIL · adj_items_summaryItemized reconciliation lines (SAT_ADJ_ITEM_DETAIL, current quarter)
adj_items_separately_identified_ncount47%SAT_ADJ_ITEM_DETAIL · adj_items_summaryLines separately identified in the filing
adj_items_largest_labeltext47%SAT_ADJ_ITEM_DETAIL · adj_items_summaryLabel of the largest line by |per-share| (else |$M|)
adj_items_largest_ps$/share2%SAT_ADJ_ITEM_DETAIL · adj_items_summaryLargest line, per share
adj_items_largest_m$M3%SAT_ADJ_ITEM_DETAIL · adj_items_summaryLargest line, $M
adj_items_largest_categorytext47%SAT_ADJ_ITEM_DETAIL · adj_items_summaryCategory of the largest line
adj_items_labelstext47%SAT_ADJ_ITEM_DETAIL · adj_items_summaryAll line labels, '; '-joined, in table order
adj_items_categoriestext47%SAT_ADJ_ITEM_DETAIL · adj_items_summaryAll line categories, '; '-joined, in table order
subpenny_adjustments_ps_derived$/share74%NONGAAP_A.subpenny_adjustments_m · per_share_from_msubpenny_adjustments per diluted share, DERIVED = subpenny_adjustments_m x 1000 / diluted_shares_k (basic if diluted missing)
subpenny_adjustments_ps_derived_sourcetext74%NONGAAP_A.subpenny_adjustments_m · per_share_from_mdiluted / basic share count used for the derivation
sparse_extrasjson0%derived · sparse_foldJSON {column: value} of this module's sparse (N<100) variants, non-missing only; nothing dropped
Folded into sparse_extras (20): adj_29_supply_chain_gross_m, adj_29_supply_chain_m, adj_29_supply_chain_net_m, adj_29_supply_chain_precise, adj_33_crypto_gross_m, adj_33_crypto_m, adj_33_crypto_net_m, adj_33_crypto_precise, adj_36_dei_gross_m, adj_36_dei_m, adj_36_dei_net_m, adj_36_dei_precise, adj_37_climate_esg_gross_m, adj_37_climate_esg_m, adj_37_climate_esg_net_m, adj_37_climate_esg_precise, adj_38_ai_equity_gains_gross_m, adj_38_ai_equity_gains_m, adj_38_ai_equity_gains_net_m, adj_38_ai_equity_gains_precise
07 

MODA_07_NG_PERSISTENCE

Recurring vs transitory exclusion totals
79 columns

What it is about. Recurrence of exclusions across the firm's own history: how many categories recur, the persistent share of exclusions, and the thresholds used.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Do 'non-recurring' exclusions recur, and how persistent are they across eight quarters?
    provided n_persistent_excl, persistent_excl_share, recurring_excl_share, recur_window, recur_thresh
    needs nothing external
  2. Does investor pricing differ between persistent and transitory exclusions?
    provided persistent_excl_ps, transitory_excl_ps, total_recurring_excl_ps, total_nonrecur_excl_ps
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno); I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)
  3. Which industries have the highest recurrence of the same exclusion categories?
    provided n_excluded_categories, n_persistent_excl, recurring_excl_share
    needs industry codes from Compustat fundamentals (size, book-to-market, leverage, industry; from IDENTIFIERS.gvkey)

Sources: NONGAAP_A, PANEL_SPINE_A

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
adj_01_rent_lease_recurnumeric0%NONGAAP_A.adj_01_rent_lease_recur · copy1 = the adjustment category adj_01_rent_lease recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_02_net_interest_recurnumeric0%NONGAAP_A.adj_02_net_interest_recur · copy1 = the adjustment category adj_02_net_interest recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_03_rd_recurnumeric0%NONGAAP_A.adj_03_rd_recur · copy1 = the adjustment category adj_03_rd recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_04_sbc_recurnumeric0%NONGAAP_A.adj_04_sbc_recur · copy1 = the adjustment category adj_04_sbc recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_05a_amort_acq_intang_recurnumeric0%NONGAAP_A.adj_05a_amort_acq_intang_recur · copy1 = the adjustment category adj_05a_amort_acq_intang recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_05b_da_other_recurnumeric0%NONGAAP_A.adj_05b_da_other_recur · copy1 = the adjustment category adj_05b_da_other recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_05c_amort_dev_tech_recurnumeric0%NONGAAP_A.adj_05c_amort_dev_tech_recur · copy1 = the adjustment category adj_05c_amort_dev_tech recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_07_pension_recurnumeric0%NONGAAP_A.adj_07_pension_recur · copy1 = the adjustment category adj_07_pension recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_08_severance_recurnumeric0%NONGAAP_A.adj_08_severance_recur · copy1 = the adjustment category adj_08_severance recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_09_realized_gains_recurnumeric0%NONGAAP_A.adj_09_realized_gains_recur · copy1 = the adjustment category adj_09_realized_gains recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_10_inventory_writedown_recurnumeric0%NONGAAP_A.adj_10_inventory_writedown_recur · copy1 = the adjustment category adj_10_inventory_writedown recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_10b_inventory_method_recurnumeric0%NONGAAP_A.adj_10b_inventory_method_recur · copy1 = the adjustment category adj_10b_inventory_method recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_12_startup_recurnumeric0%NONGAAP_A.adj_12_startup_recur · copy1 = the adjustment category adj_12_startup recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_13_equity_income_recurnumeric0%NONGAAP_A.adj_13_equity_income_recur · copy1 = the adjustment category adj_13_equity_income recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_14_impair_ppe_finite_recurnumeric0%NONGAAP_A.adj_14_impair_ppe_finite_recur · copy1 = the adjustment category adj_14_impair_ppe_finite recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_14b_goodwill_impairment_recurnumeric0%NONGAAP_A.adj_14b_goodwill_impairment_recur · copy1 = the adjustment category adj_14b_goodwill_impairment recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_14c_indef_intangible_recurnumeric0%NONGAAP_A.adj_14c_indef_intangible_recur · copy1 = the adjustment category adj_14c_indef_intangible recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_15_fx_recurnumeric0%NONGAAP_A.adj_15_fx_recur · copy1 = the adjustment category adj_15_fx recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_16_debt_extinguishment_recurnumeric0%NONGAAP_A.adj_16_debt_extinguishment_recur · copy1 = the adjustment category adj_16_debt_extinguishment recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_17_litigation_recurnumeric0%NONGAAP_A.adj_17_litigation_recur · copy1 = the adjustment category adj_17_litigation recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_18_fair_value_recurnumeric0%NONGAAP_A.adj_18_fair_value_recur · copy1 = the adjustment category adj_18_fair_value recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_19_acquisition_recurnumeric0%NONGAAP_A.adj_19_acquisition_recur · copy1 = the adjustment category adj_19_acquisition recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_20_ppe_sale_recurnumeric0%NONGAAP_A.adj_20_ppe_sale_recur · copy1 = the adjustment category adj_20_ppe_sale recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_21_tax_accounting_recurnumeric0%NONGAAP_A.adj_21_tax_accounting_recur · copy1 = the adjustment category adj_21_tax_accounting recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_22_restructuring_recurnumeric0%NONGAAP_A.adj_22_restructuring_recur · copy1 = the adjustment category adj_22_restructuring recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_23_discontinued_recurnumeric0%NONGAAP_A.adj_23_discontinued_recur · copy1 = the adjustment category adj_23_discontinued recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_24_integration_recurratio0%NONGAAP_A.adj_24_integration_recur · copy1 = the adjustment category adj_24_integration recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_25_covid_recurnumeric0%NONGAAP_A.adj_25_covid_recur · copy1 = the adjustment category adj_25_covid recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_26_unrealized_invst_recurnumeric0%NONGAAP_A.adj_26_unrealized_invst_recur · copy1 = the adjustment category adj_26_unrealized_invst recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_27_ipr_d_recurnumeric0%NONGAAP_A.adj_27_ipr_d_recur · copy1 = the adjustment category adj_27_ipr_d recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_28_natural_disaster_recurnumeric0%NONGAAP_A.adj_28_natural_disaster_recur · copy1 = the adjustment category adj_28_natural_disaster recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_29_supply_chain_recurnumeric0%NONGAAP_A.adj_29_supply_chain_recur · copy1 = the adjustment category adj_29_supply_chain recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_30_ai_transform_recurnumeric0%NONGAAP_A.adj_30_ai_transform_recur · copy1 = the adjustment category adj_30_ai_transform recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_31_exec_transition_recurnumeric0%NONGAAP_A.adj_31_exec_transition_recur · copy1 = the adjustment category adj_31_exec_transition recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_32_debt_issuance_recurnumeric0%NONGAAP_A.adj_32_debt_issuance_recur · copy1 = the adjustment category adj_32_debt_issuance recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_33_crypto_recurnumeric0%NONGAAP_A.adj_33_crypto_recur · copy1 = the adjustment category adj_33_crypto recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_34_geopolitical_recurnumeric0%NONGAAP_A.adj_34_geopolitical_recur · copy1 = the adjustment category adj_34_geopolitical recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_35_fraud_recurnumeric0%NONGAAP_A.adj_35_fraud_recur · copy1 = the adjustment category adj_35_fraud recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_36_dei_recurtext0%NONGAAP_A.adj_36_dei_recur · copy1 = the adjustment category adj_36_dei recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_37_climate_esg_recurnumeric0%NONGAAP_A.adj_37_climate_esg_recur · copy1 = the adjustment category adj_37_climate_esg recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_38_ai_equity_gains_recurnumeric0%NONGAAP_A.adj_38_ai_equity_gains_recur · copy1 = the adjustment category adj_38_ai_equity_gains recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_39_tariffs_recurnumeric0%NONGAAP_A.adj_39_tariffs_recur · copy1 = the adjustment category adj_39_tariffs recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_40_cyber_recurnumeric0%NONGAAP_A.adj_40_cyber_recur · copy1 = the adjustment category adj_40_cyber recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_41_commodity_recurnumeric0%NONGAAP_A.adj_41_commodity_recur · copy1 = the adjustment category adj_41_commodity recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_44_credit_loss_recurnumeric0%NONGAAP_A.adj_44_credit_loss_recur · copy1 = the adjustment category adj_44_credit_loss recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_45_charitable_recurnumeric0%NONGAAP_A.adj_45_charitable_recur · copy1 = the adjustment category adj_45_charitable recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_46_noncontrolling_interest_recurnumeric0%NONGAAP_A.adj_46_noncontrolling_interest_recur · copy1 = the adjustment category adj_46_noncontrolling_interest recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thres
adj_47_preferred_dividends_recurnumeric0%NONGAAP_A.adj_47_preferred_dividends_recur · copy1 = the adjustment category adj_47_preferred_dividends recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_48_warrant_liability_recurnumeric0%NONGAAP_A.adj_48_warrant_liability_recur · copy1 = the adjustment category adj_48_warrant_liability recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_49_re_depreciation_recurnumeric0%NONGAAP_A.adj_49_re_depreciation_recur · copy1 = the adjustment category adj_49_re_depreciation recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_50_divestiture_gain_recurnumeric0%NONGAAP_A.adj_50_divestiture_gain_recur · copy1 = the adjustment category adj_50_divestiture_gain recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_51_re_rent_adj_recurnumeric0%NONGAAP_A.adj_51_re_rent_adj_recur · copy1 = the adjustment category adj_51_re_rent_adj recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_52_maint_capex_recurnumeric0%NONGAAP_A.adj_52_maint_capex_recur · copy1 = the adjustment category adj_52_maint_capex recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_53_acquired_deferred_rev_recurnumeric0%NONGAAP_A.adj_53_acquired_deferred_rev_recur · copy1 = the adjustment category adj_53_acquired_deferred_rev recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_54_environmental_recurnumeric0%NONGAAP_A.adj_54_environmental_recur · copy1 = the adjustment category adj_54_environmental recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
adj_55_govt_grant_recurnumeric0%NONGAAP_A.adj_55_govt_grant_recur · copy1 = the adjustment category adj_55_govt_grant recurs in this firm's own reconciliation history (recurrence rule in NG_PERSISTENCE: recur_window / recur_thresh)
n_excluded_categoriescount0%NONGAAP_A.n_excluded_categories · copyNumber of distinct adjustment categories in this quarter's bridge
n_persistent_exclcount0%NONGAAP_A.n_persistent_excl · copyNumber of this quarter's excluded categories that are EMPIRICALLY PERSISTENT for the firm (present in >= recur_thresh of the trailing recur_window quarters)
persistent_excl_m$M0%NONGAAP_A.persistent_excl_m · copyDollar exclusions that are empirically persistent for this firm
persistent_excl_ps$/share0%NONGAAP_A.persistent_excl_ps · copyPer-share exclusions that are empirically persistent for this firm (same category excluded in >= recur_thresh of the trailing window)
persistent_excl_shareratio0%NONGAAP_A.persistent_excl_share · copyPersistent share of this quarter's exclusions = |persistent| / (|persistent| + |transitory|), 0-1; high = the firm habitually excludes the same categories
recur_threshratio0%NONGAAP_A.recur_thresh · copyRecurrence threshold of the persistence rule: a category is persistent when present in >= this fraction of the window (0.5)
recur_windowquarters0%NONGAAP_A.recur_window · copyTrailing window of the persistence rule, in quarters (8)
recurring_excl_shareratio37%NONGAAP_A.recurring_excl_share · copyRecurring-by-nature share = recurring / (recurring + non-recurring + mixed), per share, 0-1; the taxonomy is listed under total_recurring_excl_ps
total_nonrecur_excl_m$M37%NONGAAP_A.total_nonrecur_excl_m · copyDollar exclusions non-recurring by nature (same taxonomy)
total_nonrecur_excl_ps$/share37%NONGAAP_A.total_nonrecur_excl_ps · copyPer-share exclusions non-recurring BY NATURE: non-recurring by nature = realized gains, inventory write-downs, start-up, impairments (PP&E, goodwill, indefinite-lived), d
total_recurmixed_excl_m$M37%NONGAAP_A.total_recurmixed_excl_m · copyDollar exclusions of mixed recurrence by nature (same taxonomy)
total_recurmixed_excl_ps$/share37%NONGAAP_A.total_recurmixed_excl_ps · copyPer-share exclusions of MIXED recurrence by nature: mixed = severance, inventory method, FX, litigation, fair value, tax accounting, restructuring, unrealized investments
total_recurring_excl_m$M37%NONGAAP_A.total_recurring_excl_m · copyDollar exclusions recurring by nature (same taxonomy as total_recurring_excl_ps)
total_recurring_excl_ps$/share37%NONGAAP_A.total_recurring_excl_ps · copyPer-share exclusions recurring BY NATURE (category taxonomy RECUR_NATURE, fixed at extraction; independent of the firm's history): recurring by nature = rent/lease, net i
transitory_excl_m$M0%NONGAAP_A.transitory_excl_m · copyDollar exclusions that are transitory for this firm
transitory_excl_ps$/share0%NONGAAP_A.transitory_excl_ps · copyPer-share exclusions that are transitory for this firm (excluded this quarter but not persistently across the window)
08 

MODA_08_NG_RATIONALE

Why the firm excludes; specificity, misleading risk
19 columns

What it is about. How well the firm explains its adjustments: explained versus unexplained categories, specificity, boilerplate, misleading-risk assessment, and contradictions between 'non-recurring' claims and the firm's history.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Do firms that explain adjustments specifically have smaller or more persistent exclusions?
    provided rationale_explained_share, rationale_specific_share, rationale_n_boilerplate, GAAP_TO_NG.total_exclusions, NG_PERSISTENCE.persistent_excl_share
    needs nothing external
  2. Is boilerplate rationale associated with SEC comment letters or later restatements?
    provided rationale_n_boilerplate, rationale_max_misleading_risk, rationale_nonrecurring_contradicted, TOPICS.p3_sec_comment_letter, TOPICS.p3_any_restatement_flag
    needs SEC comment letters (EDGAR CORRESP / UPLOAD filings); Audit Analytics restatements / auditor changes
  3. Does the explanation quality change after the firm receives a comment letter?
    provided rationale_explained_share, rationale_specific_share, rationale_changed_n, rationale_explains_gaap_insufficient
    needs SEC comment letters (EDGAR CORRESP / UPLOAD filings) with dates

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_ADJ_REASONING, SAT_ADJ_TRANSPARENCY

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
rationale_n_categoriescount50%SAT_ADJ_TRANSPARENCY · transparency_summaryNumber of adjustment categories in this quarter's bridge assessed for a stated rationale (filled where the bridge has categories)
rationale_n_unexplainedcount50%SAT_ADJ_TRANSPARENCY · transparency_summaryCategories for which the release gives NO rationale
rationale_explained_shareratio50%SAT_ADJ_TRANSPARENCY · transparency_summaryShare of the bridge's categories with a stated rationale, 0-1
rationale_n_boilerplatecount50%SAT_ADJ_TRANSPARENCY · transparency_summaryCategories whose rationale is boilerplate (generic wording reused across firms and periods)
rationale_specific_shareratio23%SAT_ADJ_TRANSPARENCY · transparency_summaryShare of rationales that are firm-and-period specific, 0-1 (LLM specificity pass; covers about half of the assessed categories, hence the lower fill)
rationale_max_misleading_risktext23%SAT_ADJ_TRANSPARENCY · transparency_summaryHighest misleading-risk label across the quarter's rationales: low / medium / high (LLM specificity pass; ~half coverage)
rationale_nonrecurring_contradictedflag50%SAT_ADJ_TRANSPARENCY · transparency_summary1 = at least one 'non-recurring' claim is contradicted by the firm's own exclusion history
rationale_explains_gaap_insufficientflag50%SAT_ADJ_TRANSPARENCY · transparency_summary1 = at least one rationale explains WHY the GAAP figure is insufficient (rather than only what was excluded)
rationale_changed_ncount50%SAT_ADJ_TRANSPARENCY · transparency_summaryCategories whose stated rationale changed from the prior period
reasoning_ncount26%SAT_ADJ_REASONING · reasoning_summaryNumber of adjustment-reasoning statements in the release (SAT_ADJ_REASONING)
reasoning_typestext26%SAT_ADJ_REASONING · reasoning_summaryDistinct reason types stated, '; '-joined (investor_usefulness / comparability / non_recurring / management_use / ...)
reasoning_firsttext26%SAT_ADJ_REASONING · reasoning_summaryFirst stated reason, verbatim
09 

MODA_09_NG_COMPLIANCE

Reg G / Item 10(e), regex and LLM readings
64 columns

What it is about. Regulation G and C&DI compliance signals, regex and LLM side by side: EBITDA per share, liquidity measures per share, supplement framing, explanation presence, plus the Pass 3 presentation panel (separate non-GAAP income statement, undue prominence, individually tailored measures, recurring cash operating expenses excluded).

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. How common are the C&DI-disfavored practices, and did they fall after the 2016 guidance?
    provided p3_p10_sep_nongaap_income_statement, p3_p10_undue_prominence, p3_p10_individually_tailored_measure, p3_p10_recurring_cash_opex_excluded, liquidity_per_share_violation
    needs nothing external
  2. Which firms present individually tailored measures, and are they penalised by investors or the SEC?
    provided p3_p10_individually_tailored_measure, p3_p10_records_json, TOPICS.p3_sec_comment_letter
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno); SEC comment letters (EDGAR CORRESP / UPLOAD filings)
  3. Does compliance language predict the size of the non-GAAP premium?
    provided mentions_reg_g, mentions_item_10e, nongaap_supplement_framing, nongaap_explanation_present, GAAP_TO_NG.total_exclusions
    needs nothing external

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_COMPLIANCE, SAT_COMPLIANCE_LLM, SAT_PASS3_SEC_PRESENTATION

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
cash_flow_method_llmtext91%SAT_COMPLIANCE.cash_flow_method_llm · copyRaw LLM reading of the cash-flow method
cash_flow_method_regextext25%SAT_COMPLIANCE.cash_flow_method_regex · copyRegex-detected cash-flow method (deterministic companion, lower recall)
ebitda_per_share_llmflag91%SAT_COMPLIANCE.ebitda_per_share_llm · copyRaw LLM reading of the EBITDA-per-share flag (P9)
ebitda_per_share_violationflag91%SAT_COMPLIANCE.ebitda_per_share_violation · copy1 = EBITDA (or adjusted EBITDA) is presented PER SHARE, a practice the SEC staff objects to (C&DI 103.02). CANONICAL (LLM-judged)
ebitda_per_share_violation_regexflag91%SAT_COMPLIANCE.ebitda_per_share_violation_regex · copyRegex companion of ebitda_per_share_violation
has_balance_sheetflag91%SAT_COMPLIANCE.has_balance_sheet_regex · copy1 = the release includes a balance sheet (HTML detection, P8)
has_cash_flow_stmtflag91%SAT_COMPLIANCE.has_cash_flow_regex · copy1 = the release includes a cash-flow statement (HTML detection, P8)
has_copyright_noticeflag91%SAT_COMPLIANCE.has_copyright_regex · copy1 = the release carries a copyright notice (HTML detection)
has_equity_stmtflag91%SAT_COMPLIANCE.has_equity_stmt_regex · copy1 = the release includes a statement of equity (HTML detection, P8)
has_income_stmt_htmlflag91%SAT_COMPLIANCE.has_income_stmt_regex · copy1 = the release includes an income statement (deterministic HTML detection, P8); the LLM judgement is has_income_stmt in NG_PROMINENCE
has_recon_tableflag91%SAT_COMPLIANCE.has_recon_table_regex · copy1 = the release contains a GAAP-to-non-GAAP reconciliation table (deterministic HTML detection, P8); the same column anchors module 05
liquidity_per_share_llmflag91%SAT_COMPLIANCE.liquidity_per_share_llm · copyRaw LLM reading of the liquidity-per-share flag (P9)
liquidity_per_share_violationflag91%SAT_COMPLIANCE.liquidity_per_share_violation · copy1 = a liquidity measure (free cash flow, cash flow, EBITDA as liquidity) is presented PER SHARE (C&DI 102.05). CANONICAL (LLM-judged)
liquidity_per_share_violation_regexflag91%SAT_COMPLIANCE.liquidity_per_share_violation_regex · copyRegex companion of liquidity_per_share_violation
mentions_item_10eflag91%SAT_COMPLIANCE.mentions_item_10e_regex · copy1 = the release mentions Item 10(e) of Regulation S-K
mentions_reg_gflag91%SAT_COMPLIANCE.mentions_reg_g_regex · copy1 = the release mentions Regulation G
n_sec_termscount91%SAT_COMPLIANCE.n_sec_terms_regex · copyNumber of SEC regulatory terms mentioned (Regulation G, Item 10(e), C&DI, non-GAAP financial measure ...)
n_tablescount91%SAT_COMPLIANCE.n_tables_regex · copyNumber of tables in the release (HTML)
n_trademarked_termscount91%SAT_COMPLIANCE.n_trademarked_terms_regex · copyNumber of trademarked terms (TM / registered marks) in the release
nongaap_explanation_presentflag91%SAT_COMPLIANCE.nongaap_explanation_present · copy1 = the release explains WHY management uses non-GAAP measures. CANONICAL (LLM-judged); companions _llm (raw LLM flag) and _regex (paragraph detector)
nongaap_explanation_present_llmflag91%SAT_COMPLIANCE.nongaap_explanation_present_llm · copyRaw LLM reading of the non-GAAP explanation flag (P9 compliance task)
nongaap_explanation_present_regexflag91%SAT_COMPLIANCE.nongaap_explanation_present_regex · copy1 = the regex detector found a non-GAAP explanation paragraph (deterministic companion)
nongaap_explanation_wordscount91%SAT_COMPLIANCE.nongaap_explanation_words_regex · copyWord count of the detected non-GAAP explanation paragraph (regex detector)
nongaap_supplement_framing_llmflag91%SAT_COMPLIANCE.nongaap_supplement_framing_llm · copyRaw LLM reading of the supplement-framing flag (P9)
nongaap_supplement_framing_regexflag91%SAT_COMPLIANCE.nongaap_supplement_framing_regex · copy1 = the regex detector flagged supplement framing (narrow pattern, under-detects)
html_pass_statustext91%SAT_COMPLIANCE.p8_status · copyStatus of the deterministic HTML pass (P8) for this release: ok / no_html / parse_fail
pos_balance_sheetcount80%SAT_COMPLIANCE.pos_balance_sheet_regex · copyOrder of appearance of the balance sheet among the included statements (1 = first)
pos_cash_flow_stmtcount32%SAT_COMPLIANCE.pos_cash_flow_regex · copyOrder of appearance of the cash-flow statement among the included statements (1 = first)
pos_equity_stmtcount1%SAT_COMPLIANCE.pos_equity_stmt_regex · copyOrder of appearance of the equity statement among the included statements (1 = first)
pos_income_stmtcount74%SAT_COMPLIANCE.pos_income_stmt_regex · copyOrder of appearance of the income statement among the financial statements in the release (1 = first)
pos_recon_tablecount48%SAT_COMPLIANCE.pos_recon_table_regex · copyOrder of appearance of the reconciliation table among the included statements and tables (1 = first)
recon_table_char_shareratio30%SAT_COMPLIANCE.recon_table_char_share_regex · copyShare of the release's characters taken by the reconciliation table
recon_table_rankcount30%SAT_COMPLIANCE.recon_table_rank_regex · copyOrdinal of the reconciliation table among ALL tables in the release (1 = the first table)
sec_terms_mentionedtext4%SAT_COMPLIANCE.sec_terms_mentioned_regex · copyThe SEC regulatory terms mentioned, '; '-joined
states_unauditedflag91%SAT_COMPLIANCE.states_unaudited_regex · copy1 = the release states that its figures are unaudited
table_text_shareratio91%SAT_COMPLIANCE.table_text_share_regex · copyShare of the release's text that sits inside tables
trademarked_termstext20%SAT_COMPLIANCE.trademarked_terms_regex · copyThe trademarked terms found, '; '-joined
cash_flow_methodtext91%SAT_COMPLIANCE_LLM.cash_flow_method · copyCash-flow statement method: direct / indirect (blank if no statement). CANONICAL (LLM-judged)
liquidity_per_shareflag91%SAT_COMPLIANCE_LLM.liquidity_per_share · copyDuplicate raw LLM reading of the liquidity-per-share flag (SAT_COMPLIANCE_LLM); canonical = liquidity_per_share_violation
nongaap_supplement_framingflag91%SAT_COMPLIANCE_LLM.nongaap_supplement_framing · copy1 = non-GAAP measures are framed as SUPPLEMENTAL to GAAP, not a substitute. CANONICAL (LLM-judged); the regex companion under-detects
p3_p10_period_scopetext87%SAT_PASS3_SEC_PRESENTATION.p3_p10_period_scope · copyPeriod the panel judged [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_confidencetext88%SAT_PASS3_SEC_PRESENTATION.p3_p10_confidence · copyPanel confidence [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_gaap_eps$/share87%SAT_PASS3_SEC_PRESENTATION.p3_p10_gaap_eps · copyGAAP EPS as read by the presentation panel (cross-check only; the release value is gaap_eps) [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PAS
p3_p10_nongaap_eps$/share40%SAT_PASS3_SEC_PRESENTATION.p3_p10_nongaap_eps · copyNon-GAAP EPS as read by the presentation panel (cross-check only) [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_reconciliation_presentflag88%SAT_PASS3_SEC_PRESENTATION.p3_p10_reconciliation_present · copy1 = a GAAP reconciliation is present, as judged by the Pass 3 presentation panel (the HTML detection is has_recon_table)
p3_p10_reconciliation_completeflag84%SAT_PASS3_SEC_PRESENTATION.p3_p10_reconciliation_complete · copy1 = the reconciliation is complete [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_reconciliation_starts_from_gaapflag83%SAT_PASS3_SEC_PRESENTATION.p3_p10_reconciliation_starts_from_gaap · copy1 = the reconciliation starts from the GAAP figure, as judged by the Pass 3 presentation panel (the table reading is recon_starts_gaap in module 05)
p3_p10_sep_nongaap_income_statementflag88%SAT_PASS3_SEC_PRESENTATION.p3_p10_sep_nongaap_income_statement · copy1 = a separate full non-GAAP income statement is presented (C&DI 102.10) [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt
p3_p10_nongaap_stmt_line_countcount76%SAT_PASS3_SEC_PRESENTATION.p3_p10_nongaap_stmt_line_count · copyLine count of the separate non-GAAP statement [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_undue_prominenceflag88%SAT_PASS3_SEC_PRESENTATION.p3_p10_undue_prominence · copy1 = non-GAAP given undue prominence over GAAP (C&DI 102.10) [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_individually_tailored_measureflag88%SAT_PASS3_SEC_PRESENTATION.p3_p10_individually_tailored_measure · copy1 = an individually tailored accounting measure (C&DI 100.04) [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_recurring_cash_opex_excludedflag88%SAT_PASS3_SEC_PRESENTATION.p3_p10_recurring_cash_opex_excluded · copy1 = normal recurring cash operating expenses excluded (C&DI 100.01) [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_per_share_liquidity_measureflag88%SAT_PASS3_SEC_PRESENTATION.p3_p10_per_share_liquidity_measure · copy1 = a liquidity measure shown per share (C&DI 102.05) [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_unreasonable_efforts_languageflag88%SAT_PASS3_SEC_PRESENTATION.p3_p10_unreasonable_efforts_language · copy1 = 'unreasonable efforts' language used for forward non-GAAP (C&DI 102.10) [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.
p3_p10_forward_nongaap_guidanceflag88%SAT_PASS3_SEC_PRESENTATION.p3_p10_forward_nongaap_guidance · copy1 = forward-looking non-GAAP guidance present [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_has_guidance_recordflag88%SAT_PASS3_SEC_PRESENTATION.p3_p10_has_guidance_record · copy1 = the panel carries a guidance record [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_p10_records_jsontext88%SAT_PASS3_SEC_PRESENTATION.p3_p10_records_json · copyPer-measure C&DI records (JSON list) from the presentation panel [source: Pass 3 Task E, SEC C&DI presentation panel, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
10 

MODA_10_NG_PROMINENCE

Headline, table order, bold, positions
76 columns

What it is about. Where and how prominently non-GAAP appears: headline, bullets, order of mention, bold emphasis, characters and words until the first GAAP or non-GAAP EPS figure, spin direction and degree.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Does non-GAAP-first presentation change the market reaction to the same earnings surprise?
    provided nongaap_mentioned_first, html_nongaap_headline, html_nongaap_bold_first, undue_prominence_score, CONSENSUS_BEAT.earnings_surprise
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno); I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)
  2. Has undue prominence declined since the SEC's 2016 guidance?
    provided undue_prominence_score, undue_prominence_score, up_headline_ng_only, up_bulletin_ng_only, up_ng_bold_only
    needs nothing external
  3. Do firms increase non-GAAP prominence in quarters with GAAP losses?
    provided chars_to_nongaap_eps_num, chars_to_gaap_eps_num, bulletin_spin_direction, bulletin_spin_degree, GAAP.gaap_eps
    needs nothing external

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_HEADLINE_METRICS, SAT_PROMINENCE

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
text_words_nongaap_minus_gaapnumeric20%NONGAAP_A.text_words_nongaap_minus_gaap · copytext_words_to_nongaap_eps minus text_words_to_gaap_eps (negative=non-GAAP first)
bulletin_countcount89%NONGAAP_A.bulletin_count · copyNumber of highlight bullet points in the release (LLM)
bulletin_spin_degreetext89%NONGAAP_A.bulletin_spin_degree · copyDegree of bullet-vs-results discrepancy: none/low/moderate/high
bulletin_spin_directiontext89%NONGAAP_A.bulletin_spin_direction · copyBullet positivity vs actual results: bullets_overstate/consistent/bullets_understate/none
bulletin_tonetext89%NONGAAP_A.bulletin_tone · copyOverall tone of the bullets: positive/negative/neutral/mixed/none
bulletin_word_ratioratio89%NONGAAP_A.bulletin_word_ratio · copybulletin_count / prose word count (tables excluded)
bulletins_usedflag89%NONGAAP_A.bulletins_used · copy1 = the release uses highlight bullet points
chars_to_gaap_eps_numcount26%NONGAAP_A.chars_to_gaap_eps_num · copyCharacter offset of the FIRST occurrence of the GAAP EPS number in the release prose (null if not found)
chars_to_nongaap_eps_numcount26%NONGAAP_A.chars_to_nongaap_eps_num · copyCharacter offset of the FIRST occurrence of the non-GAAP EPS number in the release prose (null if not found)
eps_mention_ratioratio34%NONGAAP_A.eps_mention_ratio · copyNon-GAAP EPS mentions divided by GAAP EPS mentions in the prose
eps_num_char_gapcount23%NONGAAP_A.eps_num_char_gap · copychars_to_gaap_eps_num minus chars_to_nongaap_eps_num: positive = the non-GAAP number comes earlier (more prominent)
eps_value_mention_ratioratio28%NONGAAP_A.eps_value_mention_ratio · copynongaap_eps_value_count / gaap_eps_value_count
gaap_bulletinflag89%NONGAAP_A.gaap_bulletin · copy1 = GAAP EPS appears as a bullet point in the release highlights (LLM)
gaap_eps_value_countcount89%NONGAAP_A.gaap_eps_value_count · copyNumber of distinct occurrences of the GAAP EPS value in the prose
gaap_mentioned_firstflag89%NONGAAP_A.gaap_mentioned_first · copy1 = GAAP EPS is mentioned before non-GAAP EPS in the headline / first paragraph
gaap_term_countcount89%NONGAAP_A.gaap_term_count · copyCount of standalone "GAAP" (excludes the GAAP inside "non-GAAP")
has_income_stmtflag89%NONGAAP_A.has_income_stmt · copy1 = the release includes an income statement (LLM reading; the HTML detection is has_income_stmt_html in NG_COMPLIANCE)
has_income_stmt_sourcetext89%NONGAAP_A.has_income_stmt_source · copyWhich pass produced has_income_stmt: p8_fresh = the deterministic HTML pass (P8) on the cached release
header_describes_performanceflag89%NONGAAP_A.header_describes_performance · copy1 = the headline characterizes performance (record, strong, growth ...) rather than only announcing results
header_performance_typetext89%NONGAAP_A.header_performance_type · copyPrimary performance type in headline: revenue/earnings/growth/record/margin/cash_flow/loss/guidance/operational/mixed/none
header_texttext88%NONGAAP_A.header_text · copyVerbatim press release headline/title
html_bold_cashflowflag89%NONGAAP_A.html_bold_cashflow · copy1 = a cash-flow figure is bolded
html_bold_ebitdaflag89%NONGAAP_A.html_bold_ebitda · copy1 = an EBITDA figure is bolded
html_bold_gaap_epsflag89%NONGAAP_A.html_bold_gaap_eps · copy1 = the GAAP EPS figure is bolded
html_bold_mechanismstext79%NONGAAP_A.html_bold_mechanisms · copyWhich HTML mechanisms produced the bold detection (tag, style, class).
html_bold_nongaap_epsflag89%NONGAAP_A.html_bold_nongaap_eps · copy1 = the non-GAAP EPS figure is bolded
html_bold_number_typestext10%NONGAAP_A.html_bold_number_types · copyTypes of figures that are bolded ("; "-joined)
html_bold_ratioratio89%NONGAAP_A.html_bold_ratio · copyBolded words / total words (bold emphasis intensity)
html_bold_revenueflag89%NONGAAP_A.html_bold_revenue · copy1 = a revenue figure is bolded
html_bold_wordscount89%NONGAAP_A.html_bold_words · copyNumber of bolded words in the release HTML
html_bulletin_cashflowflag89%NONGAAP_A.html_bulletin_cashflow · copy1 = a cash-flow figure appears in a highlight bullet
html_bulletin_ebitdaflag89%NONGAAP_A.html_bulletin_ebitda · copy1 = an EBITDA figure appears in a highlight bullet
html_bulletin_gaap_epsflag89%NONGAAP_A.html_bulletin_gaap_eps · copy1 = GAAP EPS appears in a highlight bullet
html_bulletin_nongaap_epsflag89%NONGAAP_A.html_bulletin_nongaap_eps · copy1 = non-GAAP EPS appears in a highlight bullet
html_bulletin_number_typestext7%NONGAAP_A.html_bulletin_number_types · copyTypes of figures appearing in highlight bullets ("; "-joined)
html_bulletin_revenueflag89%NONGAAP_A.html_bulletin_revenue · copy1 = a revenue figure appears in a highlight bullet
html_gaap_boldflag89%NONGAAP_A.html_gaap_bold · copy1 = a GAAP figure is bolded anywhere in the release
html_gaap_headlineflag89%NONGAAP_A.html_gaap_headline · copy1 = a GAAP figure appears in the HTML headline / title
html_nongaap_boldflag89%NONGAAP_A.html_nongaap_bold · copy1 = a non-GAAP figure is bolded anywhere in the release
html_nongaap_bold_firstflag89%NONGAAP_A.html_nongaap_bold_first · copy1 = the first bolded earnings figure is non-GAAP rather than GAAP
html_nongaap_headlineflag89%NONGAAP_A.html_nongaap_headline · copy1 = a non-GAAP figure appears in the HTML headline / title
html_total_wordscount89%NONGAAP_A.html_total_words · copyTotal word count of the release HTML
table_layouttext85%NONGAAP_A.layout · copyOrientation of the primary results table: row (periods across) or column (periods down)
mentions_nongaap_termflag89%NONGAAP_A.mentions_nongaap_term · copy1 = the term 'non-GAAP' appears at least once
nongaap_bulletinflag89%NONGAAP_A.nongaap_bulletin · copy1 = non-GAAP EPS appears as a bullet point in the release highlights (LLM)
nongaap_eps_num_firstflag23%NONGAAP_A.nongaap_eps_num_first · copy1 = the non-GAAP EPS number appears before the GAAP EPS number in the prose (deterministic; Chen-Gee-Neilson style)
nongaap_eps_value_countcount43%NONGAAP_A.nongaap_eps_value_count · copyNumber of distinct occurrences of the non-GAAP EPS value in the prose
nongaap_mentioned_firstflag89%NONGAAP_A.nongaap_mentioned_first · copy1 = non-GAAP EPS is mentioned before GAAP EPS in the headline / first paragraph
nongaap_term_countcount89%NONGAAP_A.nongaap_term_count · copyCount of the term "non-GAAP" in the full filing text
number_countcount89%NONGAAP_A.number_count · copyCount of numeric tokens in the filing text
number_word_ratioratio89%NONGAAP_A.number_word_ratio · copyNumeric tokens / total words (quantitative density)
pos_neg_word_ratioratio61%NONGAAP_A.pos_neg_word_ratio · copyPositive-tone vs negative-tone word ratio in the filing text
recent_period_firstflag89%NONGAAP_A.recent_period_first · copy1 = the most recent period is the first (left-most) data column of the primary table
headline_metric_firsttext36%SAT_HEADLINE_METRICS.value · copyFirst metric named in the release's headline / title (canonical name: revenue, eps_nongaap, ebitda ...); the full ordered list is in SAT_HEADLINE_METRICS
undue_prominence_scorecount40%SAT_PROMINENCE.undue_prominence_score · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Number of undue-prominence indicators (up_*, SEC C&DI 102.10) that fire for the release, 0 to
up_bulletin_ng_onlyflag40%SAT_PROMINENCE.up_bulletin_ng_only · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: non-GAAP EPS appears in the highlight bullets while GAAP EPS does not
up_headline_ng_onlyflag40%SAT_PROMINENCE.up_headline_ng_only · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: a non-GAAP figure is in the headline while no GAAP figure is
up_ng_before_gaapflag40%SAT_PROMINENCE.up_ng_before_gaap · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: non-GAAP EPS is mentioned before GAAP EPS
up_ng_bold_onlyflag40%SAT_PROMINENCE.up_ng_bold_only · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: a non-GAAP figure is bolded while the GAAP figure is not
up_ng_income_stmtflag40%SAT_PROMINENCE.up_ng_income_stmt · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: the income statement itself is presented on a non-GAAP basis
up_no_explanationflag40%SAT_PROMINENCE.up_no_explanation · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: no explanation of why the non-GAAP measure is useful
up_no_reconflag40%SAT_PROMINENCE.up_no_recon · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: no GAAP reconciliation table
up_not_supplementalflag40%SAT_PROMINENCE.up_not_supplemental · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: non-GAAP is not framed as supplemental to GAAP
up_perf_languageflag40%SAT_PROMINENCE.up_perf_language · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: performance is characterized in non-GAAP terms (record adjusted earnings
up_pershare_violationflag40%SAT_PROMINENCE.up_pershare_violation · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: a liquidity measure is shown per share
up_table_ng_firstflag40%SAT_PROMINENCE.up_table_ng_first · prominence_of_release[prominence of the FY (Q4) release -- the annual release IS the Q4 release] Prominence indicator: the reconciliation table starts from the non-GAAP figure
bulletin_order_basistext89%NONGAAP_A.bulletin_order_basis · copyWhat the bullet order is based on: favorability/magnitude/chronological/metric_importance/segment/mixed/none
bulletin_order_fav_to_lessflag89%NONGAAP_A.bulletin_order_fav_to_less · copy1 = highlight bullets are ordered from most to least favorable
compares_to_year_agoflag89%NONGAAP_A.compared_to_year_ago · copy1 = the release compares EPS to its own year-ago value (prior-year quarter); 88% of releases do
11 

MODA_11_NG_COMPLEXITY

How many items and in what order
127 columns + 8 sparse

What it is about. The layout of the reconciliation: the row position of each adjustment category, the number of lines, and how the bridge is sequenced. A measure of how hard the reconciliation is to read.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Does reconciliation complexity reduce analysts' ability to price exclusions?
    provided adj_04_sbc_position_m, adj_22_restructuring_position_m, NG_PERSISTENCE.n_excluded_categories, GAAP_TO_NG.total_exclusions
    needs I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno); CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno)
  2. Are the largest exclusions placed early or buried late in the reconciliation?
    provided adj_04_sbc_position_m, adj_05a_amort_acq_intang_position_m, adj_14b_goodwill_impairment_position_m, NG_ADJUSTMENTS.adj_04_sbc_m
    needs nothing external
  3. Does complexity rise when firms have more to hide, for instance in loss quarters?
    provided adj_17_litigation_position, adj_07_pension_position, NG_PERSISTENCE.n_excluded_categories, GAAP.gaap_eps
    needs nothing external

Sources: NONGAAP_A, PANEL_SPINE_A

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
adj_01_rent_lease_positioncount0%NONGAAP_A.adj_01_rent_lease_position · copyRow position (1 = first adjustment line) of the category adj_01_rent_lease in the PER-SHARE reconciliation table; null when the category is absent
adj_01_rent_lease_position_mcount0%NONGAAP_A.adj_01_rent_lease_position_m · copyRow position of the category adj_01_rent_lease in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_02_net_interest_positioncount3%NONGAAP_A.adj_02_net_interest_position · copyRow position (1 = first adjustment line) of the category adj_02_net_interest in the PER-SHARE reconciliation table; null when the category is absent
adj_02_net_interest_position_mcount3%NONGAAP_A.adj_02_net_interest_position_m · copyRow position of the category adj_02_net_interest in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_03_rd_positioncount0%NONGAAP_A.adj_03_rd_position · copyRow position (1 = first adjustment line) of the category adj_03_rd in the PER-SHARE reconciliation table; null when the category is absent
adj_03_rd_position_mcount0%NONGAAP_A.adj_03_rd_position_m · copyRow position of the category adj_03_rd in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_04_sbc_positioncount11%NONGAAP_A.adj_04_sbc_position · copyRow position (1 = first adjustment line) of the category adj_04_sbc in the PER-SHARE reconciliation table; null when the category is absent
adj_04_sbc_position_mcount12%NONGAAP_A.adj_04_sbc_position_m · copyRow position of the category adj_04_sbc in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_05a_amort_acq_intang_positioncount10%NONGAAP_A.adj_05a_amort_acq_intang_position · copyRow position (1 = first adjustment line) of the category adj_05a_amort_acq_intang in the PER-SHARE reconciliation table; null when the category is absent
adj_05a_amort_acq_intang_position_mcount10%NONGAAP_A.adj_05a_amort_acq_intang_position_m · copyRow position of the category adj_05a_amort_acq_intang in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_05b_da_other_positioncount3%NONGAAP_A.adj_05b_da_other_position · copyRow position (1 = first adjustment line) of the category adj_05b_da_other in the PER-SHARE reconciliation table; null when the category is absent
adj_05b_da_other_position_mcount3%NONGAAP_A.adj_05b_da_other_position_m · copyRow position of the category adj_05b_da_other in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_05c_amort_dev_tech_positioncount0%NONGAAP_A.adj_05c_amort_dev_tech_position · copyRow position (1 = first adjustment line) of the category adj_05c_amort_dev_tech in the PER-SHARE reconciliation table; null when the category is absent
adj_05c_amort_dev_tech_position_mcount0%NONGAAP_A.adj_05c_amort_dev_tech_position_m · copyRow position of the category adj_05c_amort_dev_tech in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_07_pension_positioncount2%NONGAAP_A.adj_07_pension_position · copyRow position (1 = first adjustment line) of the category adj_07_pension in the PER-SHARE reconciliation table; null when the category is absent
adj_07_pension_position_mcount2%NONGAAP_A.adj_07_pension_position_m · copyRow position of the category adj_07_pension in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_08_severance_positioncount2%NONGAAP_A.adj_08_severance_position · copyRow position (1 = first adjustment line) of the category adj_08_severance in the PER-SHARE reconciliation table; null when the category is absent
adj_08_severance_position_mcount3%NONGAAP_A.adj_08_severance_position_m · copyRow position of the category adj_08_severance in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_09_realized_gains_positioncount4%NONGAAP_A.adj_09_realized_gains_position · copyRow position (1 = first adjustment line) of the category adj_09_realized_gains in the PER-SHARE reconciliation table; null when the category is absent
adj_09_realized_gains_position_mcount5%NONGAAP_A.adj_09_realized_gains_position_m · copyRow position of the category adj_09_realized_gains in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_10_inventory_writedown_positioncount1%NONGAAP_A.adj_10_inventory_writedown_position · copyRow position (1 = first adjustment line) of the category adj_10_inventory_writedown in the PER-SHARE reconciliation table; null when the category is absent
adj_10_inventory_writedown_position_mcount2%NONGAAP_A.adj_10_inventory_writedown_position_m · copyRow position of the category adj_10_inventory_writedown in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_10b_inventory_method_positioncount0%NONGAAP_A.adj_10b_inventory_method_position · copyRow position (1 = first adjustment line) of the category adj_10b_inventory_method in the PER-SHARE reconciliation table; null when the category is absent
adj_10b_inventory_method_position_mcount0%NONGAAP_A.adj_10b_inventory_method_position_m · copyRow position of the category adj_10b_inventory_method in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_11_tax_impact_positioncount20%NONGAAP_A.adj_11_tax_impact_position · copyRow position (1 = first adjustment line) of the category adj_11_tax_impact in the PER-SHARE reconciliation table; null when the category is absent
adj_11_tax_impact_position_mcount20%NONGAAP_A.adj_11_tax_impact_position_m · copyRow position of the category adj_11_tax_impact in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_12_startup_positioncount1%NONGAAP_A.adj_12_startup_position · copyRow position (1 = first adjustment line) of the category adj_12_startup in the PER-SHARE reconciliation table; null when the category is absent
adj_12_startup_position_mcount1%NONGAAP_A.adj_12_startup_position_m · copyRow position of the category adj_12_startup in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_13_equity_income_positioncount2%NONGAAP_A.adj_13_equity_income_position · copyRow position (1 = first adjustment line) of the category adj_13_equity_income in the PER-SHARE reconciliation table; null when the category is absent
adj_13_equity_income_position_mcount2%NONGAAP_A.adj_13_equity_income_position_m · copyRow position of the category adj_13_equity_income in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_14_impair_ppe_finite_positioncount6%NONGAAP_A.adj_14_impair_ppe_finite_position · copyRow position (1 = first adjustment line) of the category adj_14_impair_ppe_finite in the PER-SHARE reconciliation table; null when the category is absent
adj_14_impair_ppe_finite_position_mcount7%NONGAAP_A.adj_14_impair_ppe_finite_position_m · copyRow position of the category adj_14_impair_ppe_finite in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_14b_goodwill_impairment_positioncount3%NONGAAP_A.adj_14b_goodwill_impairment_position · copyRow position (1 = first adjustment line) of the category adj_14b_goodwill_impairment in the PER-SHARE reconciliation table; null when the category is absent
adj_14b_goodwill_impairment_position_mcount3%NONGAAP_A.adj_14b_goodwill_impairment_position_m · copyRow position of the category adj_14b_goodwill_impairment in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_14c_indef_intangible_positioncount0%NONGAAP_A.adj_14c_indef_intangible_position · copyRow position (1 = first adjustment line) of the category adj_14c_indef_intangible in the PER-SHARE reconciliation table; null when the category is absent
adj_14c_indef_intangible_position_mcount0%NONGAAP_A.adj_14c_indef_intangible_position_m · copyRow position of the category adj_14c_indef_intangible in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_15_fx_positioncount2%NONGAAP_A.adj_15_fx_position · copyRow position (1 = first adjustment line) of the category adj_15_fx in the PER-SHARE reconciliation table; null when the category is absent
adj_15_fx_position_mcount2%NONGAAP_A.adj_15_fx_position_m · copyRow position of the category adj_15_fx in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_16_debt_extinguishment_positioncount7%NONGAAP_A.adj_16_debt_extinguishment_position · copyRow position (1 = first adjustment line) of the category adj_16_debt_extinguishment in the PER-SHARE reconciliation table; null when the category is absent
adj_16_debt_extinguishment_position_mcount7%NONGAAP_A.adj_16_debt_extinguishment_position_m · copyRow position of the category adj_16_debt_extinguishment in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_17_litigation_positioncount6%NONGAAP_A.adj_17_litigation_position · copyRow position (1 = first adjustment line) of the category adj_17_litigation in the PER-SHARE reconciliation table; null when the category is absent
adj_17_litigation_position_mcount6%NONGAAP_A.adj_17_litigation_position_m · copyRow position of the category adj_17_litigation in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_18_fair_value_positioncount5%NONGAAP_A.adj_18_fair_value_position · copyRow position (1 = first adjustment line) of the category adj_18_fair_value in the PER-SHARE reconciliation table; null when the category is absent
adj_18_fair_value_position_mcount5%NONGAAP_A.adj_18_fair_value_position_m · copyRow position of the category adj_18_fair_value in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_19_acquisition_positioncount11%NONGAAP_A.adj_19_acquisition_position · copyRow position (1 = first adjustment line) of the category adj_19_acquisition in the PER-SHARE reconciliation table; null when the category is absent
adj_19_acquisition_position_mcount11%NONGAAP_A.adj_19_acquisition_position_m · copyRow position of the category adj_19_acquisition in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_20_ppe_sale_positioncount4%NONGAAP_A.adj_20_ppe_sale_position · copyRow position (1 = first adjustment line) of the category adj_20_ppe_sale in the PER-SHARE reconciliation table; null when the category is absent
adj_20_ppe_sale_position_mcount5%NONGAAP_A.adj_20_ppe_sale_position_m · copyRow position of the category adj_20_ppe_sale in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_21_tax_accounting_positioncount3%NONGAAP_A.adj_21_tax_accounting_position · copyRow position (1 = first adjustment line) of the category adj_21_tax_accounting in the PER-SHARE reconciliation table; null when the category is absent
adj_21_tax_accounting_position_mcount3%NONGAAP_A.adj_21_tax_accounting_position_m · copyRow position of the category adj_21_tax_accounting in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_22_restructuring_positioncount13%NONGAAP_A.adj_22_restructuring_position · copyRow position (1 = first adjustment line) of the category adj_22_restructuring in the PER-SHARE reconciliation table; null when the category is absent
adj_22_restructuring_position_mcount13%NONGAAP_A.adj_22_restructuring_position_m · copyRow position of the category adj_22_restructuring in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_23_discontinued_positioncount2%NONGAAP_A.adj_23_discontinued_position · copyRow position (1 = first adjustment line) of the category adj_23_discontinued in the PER-SHARE reconciliation table; null when the category is absent
adj_23_discontinued_position_mcount2%NONGAAP_A.adj_23_discontinued_position_m · copyRow position of the category adj_23_discontinued in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_24_integration_positioncount2%NONGAAP_A.adj_24_integration_position · copyRow position (1 = first adjustment line) of the category adj_24_integration in the PER-SHARE reconciliation table; null when the category is absent
adj_24_integration_position_mcount2%NONGAAP_A.adj_24_integration_position_m · copyRow position of the category adj_24_integration in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_25_covid_positioncount0%NONGAAP_A.adj_25_covid_position · copyRow position (1 = first adjustment line) of the category adj_25_covid in the PER-SHARE reconciliation table; null when the category is absent
adj_25_covid_position_mcount0%NONGAAP_A.adj_25_covid_position_m · copyRow position of the category adj_25_covid in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_26_unrealized_invst_positioncount1%NONGAAP_A.adj_26_unrealized_invst_position · copyRow position (1 = first adjustment line) of the category adj_26_unrealized_invst in the PER-SHARE reconciliation table; null when the category is absent
adj_26_unrealized_invst_position_mcount1%NONGAAP_A.adj_26_unrealized_invst_position_m · copyRow position of the category adj_26_unrealized_invst in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_27_ipr_d_positioncount1%NONGAAP_A.adj_27_ipr_d_position · copyRow position (1 = first adjustment line) of the category adj_27_ipr_d in the PER-SHARE reconciliation table; null when the category is absent
adj_27_ipr_d_position_mcount1%NONGAAP_A.adj_27_ipr_d_position_m · copyRow position of the category adj_27_ipr_d in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_28_natural_disaster_positioncount1%NONGAAP_A.adj_28_natural_disaster_position · copyRow position (1 = first adjustment line) of the category adj_28_natural_disaster in the PER-SHARE reconciliation table; null when the category is absent
adj_28_natural_disaster_position_mcount1%NONGAAP_A.adj_28_natural_disaster_position_m · copyRow position of the category adj_28_natural_disaster in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_30_ai_transform_positioncount0%NONGAAP_A.adj_30_ai_transform_position · copyRow position (1 = first adjustment line) of the category adj_30_ai_transform in the PER-SHARE reconciliation table; null when the category is absent
adj_30_ai_transform_position_mcount0%NONGAAP_A.adj_30_ai_transform_position_m · copyRow position of the category adj_30_ai_transform in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_31_exec_transition_positioncount1%NONGAAP_A.adj_31_exec_transition_position · copyRow position (1 = first adjustment line) of the category adj_31_exec_transition in the PER-SHARE reconciliation table; null when the category is absent
adj_31_exec_transition_position_mcount1%NONGAAP_A.adj_31_exec_transition_position_m · copyRow position of the category adj_31_exec_transition in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_32_debt_issuance_positioncount1%NONGAAP_A.adj_32_debt_issuance_position · copyRow position (1 = first adjustment line) of the category adj_32_debt_issuance in the PER-SHARE reconciliation table; null when the category is absent
adj_32_debt_issuance_position_mcount1%NONGAAP_A.adj_32_debt_issuance_position_m · copyRow position of the category adj_32_debt_issuance in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_34_geopolitical_positioncount0%NONGAAP_A.adj_34_geopolitical_position · copyRow position (1 = first adjustment line) of the category adj_34_geopolitical in the PER-SHARE reconciliation table; null when the category is absent
adj_34_geopolitical_position_mcount0%NONGAAP_A.adj_34_geopolitical_position_m · copyRow position of the category adj_34_geopolitical in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_35_fraud_positioncount0%NONGAAP_A.adj_35_fraud_position · copyRow position (1 = first adjustment line) of the category adj_35_fraud in the PER-SHARE reconciliation table; null when the category is absent
adj_35_fraud_position_mcount0%NONGAAP_A.adj_35_fraud_position_m · copyRow position of the category adj_35_fraud in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_39_tariffs_positioncount0%NONGAAP_A.adj_39_tariffs_position · copyRow position (1 = first adjustment line) of the category adj_39_tariffs in the PER-SHARE reconciliation table; null when the category is absent
adj_39_tariffs_position_mcount0%NONGAAP_A.adj_39_tariffs_position_m · copyRow position of the category adj_39_tariffs in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_40_cyber_positioncount0%NONGAAP_A.adj_40_cyber_position · copyRow position (1 = first adjustment line) of the category adj_40_cyber in the PER-SHARE reconciliation table; null when the category is absent
adj_40_cyber_position_mcount0%NONGAAP_A.adj_40_cyber_position_m · copyRow position of the category adj_40_cyber in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_41_commodity_positioncount0%NONGAAP_A.adj_41_commodity_position · copyRow position (1 = first adjustment line) of the category adj_41_commodity in the PER-SHARE reconciliation table; null when the category is absent
adj_41_commodity_position_mcount0%NONGAAP_A.adj_41_commodity_position_m · copyRow position of the category adj_41_commodity in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_44_credit_loss_positioncount1%NONGAAP_A.adj_44_credit_loss_position · copyRow position (1 = first adjustment line) of the category adj_44_credit_loss in the PER-SHARE reconciliation table; null when the category is absent
adj_44_credit_loss_position_mcount1%NONGAAP_A.adj_44_credit_loss_position_m · copyRow position of the category adj_44_credit_loss in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_45_charitable_positioncount0%NONGAAP_A.adj_45_charitable_position · copyRow position (1 = first adjustment line) of the category adj_45_charitable in the PER-SHARE reconciliation table; null when the category is absent
adj_45_charitable_position_mcount0%NONGAAP_A.adj_45_charitable_position_m · copyRow position of the category adj_45_charitable in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_46_noncontrolling_interest_positioncount3%NONGAAP_A.adj_46_noncontrolling_interest_position · copyRow position (1 = first adjustment line) of the category adj_46_noncontrolling_interest in the PER-SHARE reconciliation table; null when the category is absent
adj_46_noncontrolling_interest_position_mcount3%NONGAAP_A.adj_46_noncontrolling_interest_position_m · copyRow position of the category adj_46_noncontrolling_interest in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_47_preferred_dividends_positioncount2%NONGAAP_A.adj_47_preferred_dividends_position · copyRow position (1 = first adjustment line) of the category adj_47_preferred_dividends in the PER-SHARE reconciliation table; null when the category is absent
adj_47_preferred_dividends_position_mcount2%NONGAAP_A.adj_47_preferred_dividends_position_m · copyRow position of the category adj_47_preferred_dividends in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_48_warrant_liability_positioncount1%NONGAAP_A.adj_48_warrant_liability_position · copyRow position (1 = first adjustment line) of the category adj_48_warrant_liability in the PER-SHARE reconciliation table; null when the category is absent
adj_48_warrant_liability_position_mcount1%NONGAAP_A.adj_48_warrant_liability_position_m · copyRow position of the category adj_48_warrant_liability in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_49_re_depreciation_positioncount2%NONGAAP_A.adj_49_re_depreciation_position · copyRow position (1 = first adjustment line) of the category adj_49_re_depreciation in the PER-SHARE reconciliation table; null when the category is absent
adj_49_re_depreciation_position_mcount2%NONGAAP_A.adj_49_re_depreciation_position_m · copyRow position of the category adj_49_re_depreciation in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_50_divestiture_gain_positioncount5%NONGAAP_A.adj_50_divestiture_gain_position · copyRow position (1 = first adjustment line) of the category adj_50_divestiture_gain in the PER-SHARE reconciliation table; null when the category is absent
adj_50_divestiture_gain_position_mcount5%NONGAAP_A.adj_50_divestiture_gain_position_m · copyRow position of the category adj_50_divestiture_gain in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_51_re_rent_adj_positioncount0%NONGAAP_A.adj_51_re_rent_adj_position · copyRow position (1 = first adjustment line) of the category adj_51_re_rent_adj in the PER-SHARE reconciliation table; null when the category is absent
adj_51_re_rent_adj_position_mcount0%NONGAAP_A.adj_51_re_rent_adj_position_m · copyRow position of the category adj_51_re_rent_adj in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_52_maint_capex_positioncount0%NONGAAP_A.adj_52_maint_capex_position · copyRow position (1 = first adjustment line) of the category adj_52_maint_capex in the PER-SHARE reconciliation table; null when the category is absent
adj_52_maint_capex_position_mcount0%NONGAAP_A.adj_52_maint_capex_position_m · copyRow position of the category adj_52_maint_capex in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_53_acquired_deferred_rev_positioncount1%NONGAAP_A.adj_53_acquired_deferred_rev_position · copyRow position (1 = first adjustment line) of the category adj_53_acquired_deferred_rev in the PER-SHARE reconciliation table; null when the category is absent
adj_53_acquired_deferred_rev_position_mcount1%NONGAAP_A.adj_53_acquired_deferred_rev_position_m · copyRow position of the category adj_53_acquired_deferred_rev in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_54_environmental_positioncount0%NONGAAP_A.adj_54_environmental_position · copyRow position (1 = first adjustment line) of the category adj_54_environmental in the PER-SHARE reconciliation table; null when the category is absent
adj_54_environmental_position_mcount0%NONGAAP_A.adj_54_environmental_position_m · copyRow position of the category adj_54_environmental in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adj_55_govt_grant_positioncount0%NONGAAP_A.adj_55_govt_grant_position · copyRow position (1 = first adjustment line) of the category adj_55_govt_grant in the PER-SHARE reconciliation table; null when the category is absent
adj_55_govt_grant_position_mcount0%NONGAAP_A.adj_55_govt_grant_position_m · copyRow position of the category adj_55_govt_grant in the TOTAL-DOLLAR reconciliation table; null when absent or when only a per-share table is printed
adjs_sum_cleanflag89%NONGAAP_A.adjs_sum_clean · copy1 = the per-share adjustments sum to the EPS difference with no artificial residual (adj_06_plug = 0)
adjs_sum_clean_mflag37%NONGAAP_A.adjs_sum_clean_m · copy1 = the dollar adjustments sum to the net-income difference with no artificial residual
n_adj_dollar_valuedcount89%NONGAAP_A.n_adj_dollar_valued · copyCount of adjustment categories carrying a non-zero TOTAL-DOLLAR ($M) value; differs from n_adj_pershare_valued when an item is itemized in $ but aggregated, or too small
n_adj_dollars_disclosedcount89%NONGAAP_A.n_adj_dollars_disclosed · copyOf the present adjustments, how many carry a DISCLOSED dollar amount (adj_*_m); the rest are stated per-share only
n_adj_mergedcount89%NONGAAP_A.n_adj_merged · copyNumber of taxonomy categories into which MORE THAN ONE printed reconciliation line was accumulated
n_adj_pershare_valuedcount89%NONGAAP_A.n_adj_pershare_valued · copyCount of adjustment categories carrying a non-zero PER-SHARE value (>= $0.01/sh)
n_adj_presentcount89%NONGAAP_A.n_adj_present · copyCount of non-zero named adjustment categories present (incl. the tax line)
n_adjustmentscount89%NONGAAP_A.n_adjustments · copyNumber of non-zero named adjustment categories in the bridge (adj_01 to adj_55, excluding the adj_06 residual)
n_items_rev_to_gpcount31%NONGAAP_A.n_items_rev_to_gp · copyCount of income-statement line items strictly between the revenue line and the gross-profit line (cost lines); null if no gross-profit line
n_items_rev_to_nicount71%NONGAAP_A.n_items_rev_to_ni · copyCount of income-statement line items strictly between the revenue line and the net income line (income-statement granularity); null if no GAAP income statement
n_recon_lines_printedcount89%NONGAAP_A.n_recon_lines_printed · copyACTUAL printed reconciliation line count: GAAP + every printed adjustment sub-line + non-GAAP (the firm-as-printed count; e.g. 3 SBC lines + GAAP + non-GAAP = 5)
n_recon_lines_taxonomycount89%NONGAAP_A.n_recon_lines_taxonomy · copyOUR merged-taxonomy reconciliation line count: GAAP + distinct adjustment CATEGORIES + non-GAAP (several printed lines mapped to one category count once; e.g. a lone merg
n_recon_stepscount89%NONGAAP_A.n_recon_steps · copyNumber of steps in the reconciliation sequence (GAAP line + items + non-GAAP total)
recon_order_differsflag89%NONGAAP_A.recon_order_differs · copy1 = the total-dollar reconciliation prints its lines in a different order than the per-share reconciliation (compare *_position and *_position_m)
adj_basis_asymmetricflag89%NONGAAP_A.adj_basis_asymmetric · copy1 = the per-share and total-dollar reconciliation tables carry a DIFFERENT number of valued adjustment lines (n_adj_pershare_valued vs n_adj_dollar_valued)
sparse_extrasjson0%derived · sparse_foldJSON {column: value} of this module's sparse (N<100) variants, non-missing only; nothing dropped
Folded into sparse_extras (8): adj_29_supply_chain_position, adj_29_supply_chain_position_m, adj_33_crypto_position, adj_33_crypto_position_m, adj_37_climate_esg_position, adj_37_climate_esg_position_m, adj_38_ai_equity_gains_position, adj_38_ai_equity_gains_position_m
12 

MODA_12_NG_FAMILY

EBITDA / adjusted / FFO / AFFO / NOI / non-GAAP revenue
106 columns

What it is about. The other non-GAAP measures in the release: adjusted EBITDA, EBITDA, FFO, AFFO, adjusted operating income, adjusted revenue, organic and constant-currency growth, ROIC and more, per family with totals, per-share values and the number of reconciling items.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Which non-GAAP measures dominate by industry, and how many measures does a typical release carry?
    provided alt_earnings_count, measure_adj_ebitda_total_m, ffo_m, affo_m, noi_m
    needs industry codes from Compustat fundamentals (size, book-to-market, leverage, industry; from IDENTIFIERS.gvkey)
  2. Do EBITDA-type measures carry larger exclusions than EPS-type measures?
    provided measure_adj_ebitda_total_m, ebitda_m, measure_ng_earnings_total_m, GAAP.operating_income_m, GAAP_TO_NG.total_exclusions_m_sum
    needs nothing external
  3. How do organic-growth definitions vary across peers, and does that vary with acquisitions?
    provided organic_revenue_growth_pct, cc_revenue_growth_pct, GAAP.revenue_growth_pct, TOPICS.topic_acquisition
    needs M&A completion dates (SDC or Compustat acquisitions)

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_FY_RELEASE, SAT_MEASURES_LONG, SAT_MEASURES_WIDE

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
affo_m_q4_release$M1%NONGAAP_A.affo_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] REIT Adjusted FFO / FAD / CAD ($M); null if not reported
affo_per_share_q4_release$/share1%NONGAAP_A.affo_per_share · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] AFFO per diluted share = affo_m*1000/diluted_shares_k; null if missing
alt_earnings_countcount89%NONGAAP_A.alt_earnings_count · copyCount of distinct alternative/adjusted earnings metrics reported in addition to GAAP (EBITDA and Adjusted EBITDA count separately; a metric total and its per-share twin c
cc_revenue_growth_pct_q4_releaseratio5%NONGAAP_A.cc_revenue_growth_pct · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Constant-currency / FX-neutral revenue/sales growth, percent; null if not stated
ebitda_existsflag89%NONGAAP_A.ebitda_exists · copy1 = the release presents an EBITDA-type measure (EBITDA, adjusted EBITDA, EBITDAX ...)
ebitda_labeltext28%NONGAAP_A.ebitda_label · copyExact label of EBITDA measure (e.g. Adjusted EBITDA, EBITDAX)
ebitda_m_q4_release$M27%NONGAAP_A.ebitda_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Primary EBITDA measure for most recent period ($M)
ebitda_margin_q4_releaseratio27%NONGAAP_A.ebitda_margin · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] EBITDA (Adjusted EBITDA) margin = ebitda_m / revenue_m (ratio)
ebitda_per_share_q4_release$/share25%NONGAAP_A.ebitda_per_share · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] EBITDA per share: the stated value if the release prints one (ebitda_per_share_stated), else e
ebitda_per_share_stated$/share1%NONGAAP_A.ebitda_per_share_stated · copyEBITDA per share as explicitly stated in filing (null if not stated)
ebitda_same_as_nongaaptext89%NONGAAP_A.ebitda_same_as_nongaap · copy1=EBITDA presented as the non-GAAP metric
ffo_labeltext3%NONGAAP_A.ffo_label · copyVerbatim FFO label (FFO / Core FFO / Normalized FFO); null if none
ffo_m_q4_release$M3%NONGAAP_A.ffo_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] REIT Funds From Operations ($M; incl. Core/Normalized FFO); null if not a REIT / not reported
ffo_per_share_q4_release$/share3%NONGAAP_A.ffo_per_share · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] FFO per diluted share = ffo_m*1000/diluted_shares_k; null if missing
measure_adj_earnings_basistext89%NONGAAP_A.measure_adj_earnings_basis · copyDisclosed basis of adj_earnings: per_share_only / total_only / both / none (what the FILING printed, recorded before any derivation).
measure_adj_earnings_labeltext28%NONGAAP_A.measure_adj_earnings_label · copyVerbatim filing label of the adj_earnings measure (so researchers see exactly what was taken). Blank if absent.
measure_adj_earnings_per_share$/share26%NONGAAP_A.measure_adj_earnings_per_share · copyadj_earnings per share — reported if printed, else DERIVED = total_m*1000/diluted_shares_k (see _per_share_reported).
measure_adj_earnings_per_share_reportedflag89%NONGAAP_A.measure_adj_earnings_per_share_reported · copy1=adj_earnings_per_share was printed in the filing; 0=derived by us from diluted shares.
measure_adj_earnings_presentflag89%NONGAAP_A.measure_adj_earnings_present · copy1=filing presents a adjusted/core/underlying/pro-forma earnings NOT labeled "non-GAAP" or EBITDA for the most-recent period; else 0.
measure_adj_earnings_total_m_q4_release$M28%NONGAAP_A.measure_adj_earnings_total_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] adj_earnings total in $M — reported if printed, else DERIVED = per_share*diluted_shares_k/1000
measure_adj_earnings_total_reportedflag89%NONGAAP_A.measure_adj_earnings_total_reported · copy1=adj_earnings_total_m was printed in the filing; 0=derived by us from diluted shares.
measure_adj_ebitda_basistext89%NONGAAP_A.measure_adj_ebitda_basis · copyDisclosed basis of adj_ebitda: per_share_only / total_only / both / none (what the FILING printed, recorded before any derivation).
measure_adj_ebitda_labeltext26%NONGAAP_A.measure_adj_ebitda_label · copyVerbatim filing label of the adj_ebitda measure (so researchers see exactly what was taken). Blank if absent.
measure_adj_ebitda_per_share$/share24%NONGAAP_A.measure_adj_ebitda_per_share · copyadj_ebitda per share — reported if printed, else DERIVED = total_m*1000/diluted_shares_k (see _per_share_reported).
measure_adj_ebitda_per_share_reportedflag89%NONGAAP_A.measure_adj_ebitda_per_share_reported · copy1=adj_ebitda_per_share was printed in the filing; 0=derived by us from diluted shares.
measure_adj_ebitda_presentflag89%NONGAAP_A.measure_adj_ebitda_present · copy1=filing presents a EBITDA-family measure (EBITDA, Adjusted EBITDA, EBIT, OIBDA, EBITDAX, EBITDAR) for the most-recent period; else 0.
measure_adj_ebitda_total_m_q4_release$M26%NONGAAP_A.measure_adj_ebitda_total_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] adj_ebitda total in $M — reported if printed, else DERIVED = per_share*diluted_shares_k/1000 (
measure_adj_ebitda_total_reportedflag89%NONGAAP_A.measure_adj_ebitda_total_reported · copy1=adj_ebitda_total_m was printed in the filing; 0=derived by us from diluted shares.
measure_alt_earnings_presentflag89%NONGAAP_A.measure_alt_earnings_present · copy1=at least one ALTERNATIVE-EARNINGS family present (ng_earnings/adj_earnings/adj_ebitda).
measure_families_present_countcount89%NONGAAP_A.measure_families_present_count · copyNumber of the five measure families (ng_earnings, adj_earnings, adj_ebitda, fcf, revenue) the release presents
measure_ng_earnings_basistext89%NONGAAP_A.measure_ng_earnings_basis · copyDisclosed basis of ng_earnings: per_share_only / total_only / both / none (what the FILING printed, recorded before any derivation).
measure_ng_earnings_labeltext39%NONGAAP_A.measure_ng_earnings_label · copyVerbatim filing label of the ng_earnings measure (so researchers see exactly what was taken). Blank if absent.
measure_ng_earnings_per_share$/share41%NONGAAP_A.measure_ng_earnings_per_share · copyng_earnings per share — reported if printed, else DERIVED = total_m*1000/diluted_shares_k (see _per_share_reported).
measure_ng_earnings_per_share_reportedflag89%NONGAAP_A.measure_ng_earnings_per_share_reported · copy1=ng_earnings_per_share was printed in the filing; 0=derived by us from diluted shares.
measure_ng_earnings_presentflag89%NONGAAP_A.measure_ng_earnings_present · copy1=filing presents a non-GAAP earnings whose label literally says "non-GAAP" for the most-recent period; else 0.
measure_ng_earnings_total_m_q4_release$M40%NONGAAP_A.measure_ng_earnings_total_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] ng_earnings total in $M — reported if printed, else DERIVED = per_share*diluted_shares_k/1000
measure_ng_earnings_total_reportedflag89%NONGAAP_A.measure_ng_earnings_total_reported · copy1=ng_earnings_total_m was printed in the filing; 0=derived by us from diluted shares.
measure_nonearnings_presentflag89%NONGAAP_A.measure_nonearnings_present · copy1=at least one non-earnings non-GAAP MEASURE present (fcf/revenue).
measure_revenue_basistext89%NONGAAP_A.measure_revenue_basis · copyDisclosed basis of revenue: per_share_only / total_only / both / none (what the FILING printed, recorded before any derivation).
measure_revenue_labeltext8%NONGAAP_A.measure_revenue_label · copyVerbatim filing label of the revenue measure (so researchers see exactly what was taken). Blank if absent.
measure_revenue_per_share$/share7%NONGAAP_A.measure_revenue_per_share · copyrevenue per share — reported if printed, else DERIVED = total_m*1000/diluted_shares_k (see _per_share_reported).
measure_revenue_per_share_reportedflag89%NONGAAP_A.measure_revenue_per_share_reported · copy1=revenue_per_share was printed in the filing; 0=derived by us from diluted shares.
measure_revenue_presentflag89%NONGAAP_A.measure_revenue_present · copy1=filing presents a non-GAAP / adjusted / organic / constant-currency revenue (not earnings) for the most-recent period; else 0.
measure_revenue_total_m_q4_release$M8%NONGAAP_A.measure_revenue_total_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] revenue total in $M — reported if printed, else DERIVED = per_share*diluted_shares_k/1000 (see
measure_revenue_total_reportedflag89%NONGAAP_A.measure_revenue_total_reported · copy1=revenue_total_m was printed in the filing; 0=derived by us from diluted shares.
noi_m_q4_release$M1%NONGAAP_A.noi_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] REIT Net Operating Income (property-level, $M); null if not reported
nongaap_revenue_basistext7%NONGAAP_A.nongaap_revenue_basis · copyBasis of nongaap_revenue_m: organic / constant_currency / adjusted / core / pro_forma / other; null if none
nongaap_revenue_labeltext7%NONGAAP_A.nongaap_revenue_label · copyVerbatim non-GAAP revenue label (e.g. Organic revenue, Constant-currency revenue, Adjusted revenue); null if none
nongaap_revenue_m_q4_release$M7%NONGAAP_A.nongaap_revenue_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] NON-GAAP / adjusted revenue for most recent period ($M; organic / constant-currency / adjusted
nongaap_revenue_per_share_q4_release$/share6%NONGAAP_A.nongaap_revenue_per_share · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Non-GAAP revenue per diluted share = nongaap_revenue_m*1000/diluted_shares_k; null if missing
organic_revenue_growth_pct_q4_releaseratio6%NONGAAP_A.organic_revenue_growth_pct · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Organic revenue/sales growth (ex-M&A, often ex-FX), percent; null if not stated
ebitda_ps_presented_flagflag91%SAT_MEASURES_WIDE.ebitda_per_share · copy1 = EBITDA was presented on a per-share basis in the release (measures pass flag; the $/share value is ebitda_per_share)
mx_ebitda_ncount12%SAT_MEASURES_LONG · measures_pivotActual (non-guidance) 'ebitda' reconciliations in the release
mx_ebitda_total_m$M12%SAT_MEASURES_LONG · measures_pivot'ebitda' total, $M (first actual row)
mx_ebitda_start_labeltext12%SAT_MEASURES_LONG · measures_pivotLabel the 'ebitda' reconciliation starts from
mx_ebitda_n_adjustmentscount12%SAT_MEASURES_LONG · measures_pivotAdjustment lines in the 'ebitda' reconciliation
mx_adjusted_ebitda_ncount23%SAT_MEASURES_LONG · measures_pivotActual (non-guidance) 'adjusted_ebitda' reconciliations in the release
mx_adjusted_ebitda_total_m$M23%SAT_MEASURES_LONG · measures_pivot'adjusted_ebitda' total, $M (first actual row)
mx_adjusted_ebitda_start_labeltext22%SAT_MEASURES_LONG · measures_pivotLabel the 'adjusted_ebitda' reconciliation starts from
mx_adjusted_ebitda_n_adjustmentscount23%SAT_MEASURES_LONG · measures_pivotAdjustment lines in the 'adjusted_ebitda' reconciliation
mx_adjusted_operating_income_ncount15%SAT_MEASURES_LONG · measures_pivotActual (non-guidance) 'adjusted_operating_income' reconciliations in the release
mx_adjusted_operating_income_total_m$M15%SAT_MEASURES_LONG · measures_pivot'adjusted_operating_income' total, $M (first actual row)
mx_adjusted_operating_income_per_share$/share1%SAT_MEASURES_LONG · measures_pivot'adjusted_operating_income' per share as reported
mx_adjusted_operating_income_start_labeltext15%SAT_MEASURES_LONG · measures_pivotLabel the 'adjusted_operating_income' reconciliation starts from
mx_adjusted_operating_income_n_adjustmentscount15%SAT_MEASURES_LONG · measures_pivotAdjustment lines in the 'adjusted_operating_income' reconciliation
mx_ffo_ncount3%SAT_MEASURES_LONG · measures_pivotActual (non-guidance) 'ffo' reconciliations in the release
mx_ffo_total_m$M3%SAT_MEASURES_LONG · measures_pivot'ffo' total, $M (first actual row)
mx_ffo_per_share$/share3%SAT_MEASURES_LONG · measures_pivot'ffo' per share as reported
mx_ffo_start_labeltext3%SAT_MEASURES_LONG · measures_pivotLabel the 'ffo' reconciliation starts from
mx_ffo_n_adjustmentscount3%SAT_MEASURES_LONG · measures_pivotAdjustment lines in the 'ffo' reconciliation
mx_affo_ncount1%SAT_MEASURES_LONG · measures_pivotActual (non-guidance) 'affo' reconciliations in the release
mx_affo_total_m$M1%SAT_MEASURES_LONG · measures_pivot'affo' total, $M (first actual row)
mx_affo_per_share$/share1%SAT_MEASURES_LONG · measures_pivot'affo' per share as reported
mx_affo_start_labeltext1%SAT_MEASURES_LONG · measures_pivotLabel the 'affo' reconciliation starts from
mx_affo_n_adjustmentscount1%SAT_MEASURES_LONG · measures_pivotAdjustment lines in the 'affo' reconciliation
mx_other_ncount35%SAT_MEASURES_LONG · measures_pivotNumber of reconciliations to measures outside the five named families (type 'other': FTE net interest income, segment measures, ...); labels in mx_other_labels. The mx_ p
mx_other_labelstext35%SAT_MEASURES_LONG · measures_pivotLabels of the 'other' measures, '; '-joined
affo_m$M1%derived · annual_flow_fyFULL-YEAR affo_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see affo_m_fy_source
affo_m_fy_sourcetext1%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
ebitda_m$M22%derived · annual_flow_fyFULL-YEAR ebitda_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see ebitda_m_fy_sour
ebitda_m_fy_sourcetext22%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
ffo_m$M3%derived · annual_flow_fyFULL-YEAR ffo_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see ffo_m_fy_source
ffo_m_fy_sourcetext3%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
measure_adj_earnings_total_m$M16%derived · annual_flow_fyFULL-YEAR measure_adj_earnings_total_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure;
measure_adj_earnings_total_m_fy_sourcetext16%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
measure_adj_ebitda_total_m$M21%derived · annual_flow_fyFULL-YEAR measure_adj_ebitda_total_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; se
measure_adj_ebitda_total_m_fy_sourcetext21%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
measure_ng_earnings_total_m$M28%derived · annual_flow_fyFULL-YEAR measure_ng_earnings_total_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; s
measure_ng_earnings_total_m_fy_sourcetext28%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
measure_revenue_total_m$M4%derived · annual_flow_fyFULL-YEAR measure_revenue_total_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see m
measure_revenue_total_m_fy_sourcetext4%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
noi_m$M1%derived · annual_flow_fyFULL-YEAR noi_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see noi_m_fy_source
noi_m_fy_sourcetext1%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
nongaap_revenue_m$M4%derived · annual_flow_fyFULL-YEAR nongaap_revenue_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see nongaap
nongaap_revenue_m_fy_sourcetext4%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
ebitda_m_fy_release$M27%SAT_FY_RELEASE.ebitda_m_fy_release · copyEBITDA for the FISCAL YEAR as printed in the Q4 release's full-year column ($M); null where the column is a 9-/6-month stub
ebitda_m_fy_best$M28%derived · annual_fy_ratios[FY, deterministic] Best full-year EBITDA
ebitda_margin_fyratio28%derived · annual_fy_ratios[FY, deterministic] ebitda_fy_best / revenue_fy_best
fy_release_is_full_yearflag90%SAT_FY_RELEASE.fy_release_is_full_year · copy1 = the release's FY column covers 12 months or a 52/53-week year (repeated here so ebitda_m_fy_release can be nulled on stubs)
13 

MODA_13_UNEXCLUDED_GAINS

Gains the firm did not exclude
17 columns

What it is about. Selective exclusion: special gains the firm left inside its non-GAAP figure while excluding losses, with counts, totals and the largest item.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. How prevalent is asymmetric exclusion (losses out, gains in), and is it priced by investors?
    provided unexcluded_n, unexcluded_total_ps, asymmetric_exclusion, GAAP_TO_NG.total_exclusions
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno)
  2. Do unexcluded gains cluster around quarters where the firm just meets its guidance or consensus?
    provided unexcluded_total_ps, unexcluded_largest_m, CONSENSUS_BEAT.consensus_beat, GUIDANCE.gq_guidance_nongaap_point
    needs I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)
  3. Which industries and firm types are most prone to selective exclusion?
    provided unexcluded_n, unexcluded_concepts, unexcluded_largest_concept, unexcluded_where
    needs industry codes from Compustat fundamentals (size, book-to-market, leverage, industry; from IDENTIFIERS.gvkey)

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_RECOVERED_FILING, SAT_UNEXCLUDED_GAINS

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
unexcluded_gains_count_filingcount5%SAT_RECOVERED_FILING.unexcluded_gains_count · copyFiling-level count of unexcluded gains from the recovered P4 field (includes explicit zeros on 52k releases the satellite has no rows for); the satellite-based count is u
unexcluded_ncount42%SAT_UNEXCLUDED_GAINS · unexcluded_summaryNumber of special / non-operating GAINS the firm left INSIDE its non-GAAP figure (selective exclusion); null without a bridge
asymmetric_exclusionflag42%SAT_UNEXCLUDED_GAINS · unexcluded_summary1 = the release presents a non-GAAP measure yet retains at least one special gain it did not exclude (unexcluded_n > 0); 0 = none retained; null without a bridge (the run
unexcluded_total_m$M6%SAT_UNEXCLUDED_GAINS · unexcluded_summarySum of the unexcluded gains, $M
unexcluded_total_ps$/share1%SAT_UNEXCLUDED_GAINS · unexcluded_summarySum of the unexcluded gains, per share
unexcluded_largest_labeltext7%SAT_UNEXCLUDED_GAINS · unexcluded_summaryVerbatim label of the largest unexcluded gain
unexcluded_largest_m$M6%SAT_UNEXCLUDED_GAINS · unexcluded_summaryLargest unexcluded gain, $M
unexcluded_largest_concepttext7%SAT_UNEXCLUDED_GAINS · unexcluded_summaryConcept of the largest unexcluded gain (gain on sale, insurance recovery, legal settlement, tax benefit ...)
unexcluded_conceptstext7%SAT_UNEXCLUDED_GAINS · unexcluded_summaryDistinct concepts of the unexcluded gains, '; '-joined
unexcluded_wheretext7%SAT_UNEXCLUDED_GAINS · unexcluded_summaryIncome-statement line(s) where the gains sit, '; '-joined
14 

MODA_14_FREE_CF

FCF and the transparency of its definition
46 columns

What it is about. Free cash flow as defined and calculated by the firm: label, value, per share, the starting line, the adjustments used and whether the definition is homogeneous across firms.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. How heterogeneous are free-cash-flow definitions, and does that harm comparability?
    provided fcf_label, fcf_tr_start_label, fcf_tr_starts_from_cfo, fcf_tr_deducts_capex, fcf_tr_deducts_more_than_capex, fcf_tr_n_adjustment_lines
    needs nothing external
  2. Do firms redefine free cash flow when the standard definition would show a decline?
    provided fcf_m, fcf_tr_adjustments_sum_m, fcf_tr_label_consistent, CASH_FLOW.cfo_quarterly_m, FILING_10Q.capex_xbrl
    needs nothing external
  3. Does free cash flow predict future dividends and buybacks better than non-GAAP earnings?
    provided fcf_m, fcf_per_share, NG.nongaap_net_income, TOPICS.topic_buyback_future
    needs Compustat dividends and repurchases (dvy, prstkcy)

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_FCF_TRANSPARENCY, SAT_FY_RELEASE

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
fcf_labeltext11%NONGAAP_A.fcf_label · copyVerbatim free-cash-flow label (Free cash flow, Adjusted FCF, Distributable cash flow ...)
fcf_m_q4_release$M11%NONGAAP_A.fcf_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Free cash flow ($M) from Prompt 1's headline fields (the release's stated FCF); the measures-m
fcf_per_share_q4_release$/share10%NONGAAP_A.fcf_per_share · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Free cash flow per diluted share: fcf_m x 1000 / diluted_shares_k
fcf_per_share_quarterly$/share0%NONGAAP_A.fcf_per_share_quarterly · copyFree cash flow for the discrete quarter, per diluted share (US$).
fcf_quarterly_m$M0%NONGAAP_A.fcf_quarterly_m · copyFree cash flow for the discrete quarter, US$ millions.
measure_fcf_basistext89%NONGAAP_A.measure_fcf_basis · copyHow the FCF measure is printed: per_share_only / total_only / both / none
measure_fcf_labeltext9%NONGAAP_A.measure_fcf_label · copyVerbatim filing label of the fcf measure (so researchers see exactly what was taken). Blank if absent.
measure_fcf_per_share$/share8%NONGAAP_A.measure_fcf_per_share · copyFCF per share from the measures matrix: reported if printed, else derived (measure_fcf_per_share_reported says which)
measure_fcf_per_share_reportedflag89%NONGAAP_A.measure_fcf_per_share_reported · copy1 = the per-share FCF was printed in the release; 0 = derived from diluted shares
measure_fcf_presentflag89%NONGAAP_A.measure_fcf_present · copy1 = the release presents a cash-flow-type non-GAAP measure (free cash flow, distributable cash flow, cash flow per share)
measure_fcf_total_m_q4_release$M9%NONGAAP_A.measure_fcf_total_m · copy[Q4 QUARTER value from the FY release -- filing-level field, NOT full-year] Free cash flow from the measures matrix ($M): reported if printed, else derived from per share
measure_fcf_total_reportedflag89%NONGAAP_A.measure_fcf_total_reported · copy1 = the total FCF was printed; 0 = derived
fcf_tr_extra_adjustments_explainedflag9%SAT_FCF_TRANSPARENCY.additional_FCF_adjustments_explained · fcf_row1 = adjustments beyond capex are explained (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconciliation exists, ~8% of
fcf_tr_adjustments_sum_m$M9%SAT_FCF_TRANSPARENCY.adjustments_sum_m · fcf_rowSum of the adjustment lines, $M (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconciliation exists, ~8% of firm-quarte
fcf_tr_capex_definedflag9%SAT_FCF_TRANSPARENCY.capex_definition_explained · fcf_row1 = the release explains what it counts as capex (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconciliation exists, ~
fcf_tr_nondiscretionary_needs_acknowledgedflag9%SAT_FCF_TRANSPARENCY.debt_service_or_other_nondiscretionary_cash_needs_acknowledged · fcf_row1 = debt service or other non-discretionary cash needs are acknowledged (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a r
fcf_tr_deducts_capexflag9%SAT_FCF_TRANSPARENCY.deducts_capex · fcf_row1 = the free-cash-flow calculation deducts capital expenditures (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconcili
fcf_tr_deducts_more_than_capexflag9%SAT_FCF_TRANSPARENCY.deducts_more_than_capex · fcf_row1 = the calculation deducts more than capex (dividends, debt service, leases ...) (FCF transparency pass on the release's first free-cash-flow reconciliation; filled wher
fcf_tr_discretionary_use_explainedflag9%SAT_FCF_TRANSPARENCY.explanation_of_available_for_discretionary_use · fcf_row1 = the release explains whether the cash is available for discretionary use (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where suc
fcf_tr_label_consistentflag8%SAT_FCF_TRANSPARENCY.fcf_label_consistent_with_calculation · fcf_row1 = the label (free cash flow, adjusted FCF ...) is consistent with the calculation shown (FCF transparency pass on the release's first free-cash-flow reconciliation; fil
fcf_tr_usefulness_explainedflag9%SAT_FCF_TRANSPARENCY.fcf_usefulness_explained · fcf_row1 = the release explains why free cash flow is useful (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconciliation exis
fcf_tr_maint_vs_growth_explainedflag9%SAT_FCF_TRANSPARENCY.maintenance_vs_growth_capex_explained · fcf_row1 = maintenance versus growth capex is distinguished (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconciliation exist
fcf_tr_mandatory_omittedflag9%SAT_FCF_TRANSPARENCY.mandatory_cash_expenditures_omitted · fcf_row1 = mandatory cash expenditures are omitted from the calculation (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconcil
fcf_tr_measure_labeltext9%SAT_FCF_TRANSPARENCY.measure_label · fcf_rowVerbatim label of the free-cash-flow measure (first FCF measure of the release) (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where
fcf_tr_measure_total_m$M9%SAT_FCF_TRANSPARENCY.measure_total_m · fcf_rowStated free cash flow of that measure, $M (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconciliation exists, ~8% of f
fcf_tr_n_adjustment_linescount9%SAT_FCF_TRANSPARENCY.n_adjustment_lines · fcf_rowNumber of adjustment lines in the FCF reconciliation (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconciliation exist
fcf_tr_identity_closesflag9%SAT_FCF_TRANSPARENCY.recon_identity_closes · fcf_row1 = start line plus adjustments equals the stated free cash flow (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconcil
fcf_tr_start_labeltext9%SAT_FCF_TRANSPARENCY.recon_start_label · fcf_rowVerbatim label of the line the FCF reconciliation starts from (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconciliat
fcf_tr_start_m$M9%SAT_FCF_TRANSPARENCY.recon_start_m · fcf_rowValue of the starting line, $M (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconciliation exists, ~8% of firm-quarter
fcf_tr_starts_from_earningsflag9%SAT_FCF_TRANSPARENCY.starts_from_earnings_measure · fcf_row1 = the reconciliation starts from an earnings measure (EBITDA, net income) instead of cash flow (FCF transparency pass on the release's first free-cash-flow reconciliati
fcf_tr_starts_from_cfoflag9%SAT_FCF_TRANSPARENCY.starts_from_operating_cash_flow · fcf_row1 = the reconciliation starts from operating cash flow (FCF transparency pass on the release's first free-cash-flow reconciliation; filled where such a reconciliation exi
fcf_m$M11%derived · annual_flow_fyFULL-YEAR fcf_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see fcf_m_fy_source
fcf_m_fy_sourcetext11%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
measure_fcf_total_m$M5%derived · annual_flow_fyFULL-YEAR measure_fcf_total_m: sum of the 4 fiscal quarters' press-release values (all four required), or for cash-flow lines the release's 12-month YTD figure; see measu
measure_fcf_total_m_fy_sourcetext5%derived · annual_flow_fysum_of_4_quarters / release_ytd_12_months / sum_of_4_discrete_quarters / missing
fcf_m_fy_release$M11%SAT_FY_RELEASE.fcf_m_fy_release · copyFree cash flow for the FISCAL YEAR as printed in the Q4 release's full-year column ($M); null where the column is a 9-/6-month stub
fcf_m_fy_best$M12%derived · annual_fy_ratios[FY, deterministic] Best full-year free cash flow
fcf_per_share_fy$/share10%derived · annual_fy_ratios[FY, deterministic] fcf_fy_best x 1000 / FY diluted shares
fy_release_is_full_yearflag90%SAT_FY_RELEASE.fy_release_is_full_year · copy1 = the release's FY column covers 12 months or a 52/53-week year (repeated here so fcf_m_fy_release can be nulled on stubs)
15 

MODA_15_GUIDANCE

Next-quarter (gq_) and fiscal-year (gfy_) guidance, item summaries
266 columns + 14 sparse

What it is about. Forward-looking statements: EPS guidance for the next quarter and the fiscal year with point and range values, and every guided item by family (revenue, margins, capex, subscribers and more) with basis, action and horizon.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Do firms guide on non-GAAP rather than GAAP EPS, and does that shift with GAAP losses?
    provided has_eps_guidance, guidance_given, gq_guidance_nongaap_point, gq_guidance_gaap_point, gq_guidance_metric, GAAP.gaap_eps
    needs nothing external
  2. How accurate is management guidance relative to realised results, and does accuracy differ by basis?
    provided gq_guidance_nongaap_point, gfy_guidance_nongaap_point, gq_guidance_nongaap_mean, gfy_guidance_nongaap_mean, NG.nongaap_eps, gi_revenue_point, gi_revenue_basis
    needs nothing external; the realised value is the later quarter's NG.nongaap_eps / GAAP.gaap_eps in this database
  3. Do guidance raises and cuts move prices more than the earnings surprise itself?
    provided gi_revenue_action, gifa_revenue_action, guid_withdrawal_present, CONSENSUS_BEAT.earnings_surprise
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno); I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)

Sources: GUIDANCE_A, GUIDANCE_ITEMS_Q, GUIDANCE_Q, NONGAAP_A, PANEL_SPINE_A, SAT_RECOVERED_FILING

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
capex_amount_m$M8%SAT_RECOVERED_FILING.capex_amount_m · copyPlanned/future capital expenditure in $M (null if none)
guid_qualitative_onlytext91%SAT_RECOVERED_FILING.guid_qualitative_only · copy1 if the guidance is qualitative only (no numbers)
guid_withdrawal_presentflag91%SAT_RECOVERED_FILING.guid_withdrawal_present · copy1 if the release withdraws guidance
guidance_giventext91%SAT_RECOVERED_FILING.guidance_given · copy1=forward-looking guidance present (any metric, GAAP or non-GAAP)
gi_revenue_ncount11%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'revenue' (nearest quarterly horizon)
gi_revenue_pointnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'revenue' (nearest quarterly horizon; unit in _unit)
gi_revenue_lownumeric9%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'revenue' (nearest quarterly horizon)
gi_revenue_highnumeric9%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'revenue' (nearest quarterly horizon)
gi_revenue_basistext11%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'revenue' (nearest quarterly horizon)
gi_revenue_actiontext11%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'revenue' (nearest quarterly horizon)
gi_revenue_unittext10%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'revenue' (nearest quarterly horizon)
gi_revenue_growth_ncount3%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'revenue_growth' (nearest quarterly horizon)
gi_revenue_growth_pointnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'revenue_growth' (nearest quarterly horizon; unit in _unit)
gi_revenue_growth_lownumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'revenue_growth' (nearest quarterly horizon)
gi_revenue_growth_highnumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'revenue_growth' (nearest quarterly horizon)
gi_revenue_growth_basistext3%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'revenue_growth' (nearest quarterly horizon)
gi_revenue_growth_actiontext3%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'revenue_growth' (nearest quarterly horizon)
gi_revenue_growth_unittext3%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'revenue_growth' (nearest quarterly horizon)
gi_gross_margin_ncount2%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'gross_margin' (nearest quarterly horizon)
gi_gross_margin_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'gross_margin' (nearest quarterly horizon; unit in _unit)
gi_gross_margin_lownumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'gross_margin' (nearest quarterly horizon)
gi_gross_margin_highnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'gross_margin' (nearest quarterly horizon)
gi_gross_margin_basistext2%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'gross_margin' (nearest quarterly horizon)
gi_gross_margin_actiontext2%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'gross_margin' (nearest quarterly horizon)
gi_gross_margin_unittext2%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'gross_margin' (nearest quarterly horizon)
gi_operating_margin_ncount1%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'operating_margin' (nearest quarterly horizon)
gi_operating_margin_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'operating_margin' (nearest quarterly horizon; unit in _unit)
gi_operating_margin_lownumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'operating_margin' (nearest quarterly horizon)
gi_operating_margin_highnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'operating_margin' (nearest quarterly horizon)
gi_operating_margin_basistext1%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'operating_margin' (nearest quarterly horizon)
gi_operating_margin_actiontext1%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'operating_margin' (nearest quarterly horizon)
gi_operating_margin_unittext1%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'operating_margin' (nearest quarterly horizon)
gi_operating_income_ncount1%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'operating_income' (nearest quarterly horizon)
gi_operating_income_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'operating_income' (nearest quarterly horizon; unit in _unit)
gi_operating_income_lownumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'operating_income' (nearest quarterly horizon)
gi_operating_income_highnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'operating_income' (nearest quarterly horizon)
gi_operating_income_basistext1%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'operating_income' (nearest quarterly horizon)
gi_operating_income_actiontext1%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'operating_income' (nearest quarterly horizon)
gi_operating_income_unittext1%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'operating_income' (nearest quarterly horizon)
gi_operating_expenses_ncount2%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'operating_expenses' (nearest quarterly horizon)
gi_operating_expenses_pointnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'operating_expenses' (nearest quarterly horizon; unit in _unit)
gi_operating_expenses_lownumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'operating_expenses' (nearest quarterly horizon)
gi_operating_expenses_highnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'operating_expenses' (nearest quarterly horizon)
gi_operating_expenses_basistext2%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'operating_expenses' (nearest quarterly horizon)
gi_operating_expenses_actiontext2%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'operating_expenses' (nearest quarterly horizon)
gi_operating_expenses_unittext2%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'operating_expenses' (nearest quarterly horizon)
gi_net_income_ncount2%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'net_income' (nearest quarterly horizon)
gi_net_income_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'net_income' (nearest quarterly horizon; unit in _unit)
gi_net_income_lownumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'net_income' (nearest quarterly horizon)
gi_net_income_highnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'net_income' (nearest quarterly horizon)
gi_net_income_basistext2%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'net_income' (nearest quarterly horizon)
gi_net_income_actiontext2%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'net_income' (nearest quarterly horizon)
gi_net_income_unittext2%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'net_income' (nearest quarterly horizon)
gi_ebitda_ncount1%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'ebitda' (nearest quarterly horizon)
gi_ebitda_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'ebitda' (nearest quarterly horizon; unit in _unit)
gi_ebitda_lownumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'ebitda' (nearest quarterly horizon)
gi_ebitda_highnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'ebitda' (nearest quarterly horizon)
gi_ebitda_basistext1%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'ebitda' (nearest quarterly horizon)
gi_ebitda_actiontext1%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'ebitda' (nearest quarterly horizon)
gi_ebitda_unittext1%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'ebitda' (nearest quarterly horizon)
gi_adj_ebitda_ncount2%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'adj_ebitda' (nearest quarterly horizon)
gi_adj_ebitda_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'adj_ebitda' (nearest quarterly horizon; unit in _unit)
gi_adj_ebitda_lownumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'adj_ebitda' (nearest quarterly horizon)
gi_adj_ebitda_highnumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'adj_ebitda' (nearest quarterly horizon)
gi_adj_ebitda_basistext2%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'adj_ebitda' (nearest quarterly horizon)
gi_adj_ebitda_actiontext2%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'adj_ebitda' (nearest quarterly horizon)
gi_adj_ebitda_unittext2%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'adj_ebitda' (nearest quarterly horizon)
gi_tax_rate_ncount1%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'tax_rate' (nearest quarterly horizon)
gi_tax_rate_pointnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'tax_rate' (nearest quarterly horizon; unit in _unit)
gi_tax_rate_lownumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'tax_rate' (nearest quarterly horizon)
gi_tax_rate_highnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'tax_rate' (nearest quarterly horizon)
gi_tax_rate_basistext1%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'tax_rate' (nearest quarterly horizon)
gi_tax_rate_actiontext1%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'tax_rate' (nearest quarterly horizon)
gi_tax_rate_unittext1%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'tax_rate' (nearest quarterly horizon)
gi_capex_ncount0%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'capex' (nearest quarterly horizon)
gi_capex_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'capex' (nearest quarterly horizon; unit in _unit)
gi_capex_lownumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'capex' (nearest quarterly horizon)
gi_capex_highnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'capex' (nearest quarterly horizon)
gi_capex_basistext0%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'capex' (nearest quarterly horizon)
gi_capex_actiontext0%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'capex' (nearest quarterly horizon)
gi_capex_unittext0%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'capex' (nearest quarterly horizon)
gi_shares_ncount0%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'shares' (nearest quarterly horizon)
gi_shares_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'shares' (nearest quarterly horizon; unit in _unit)
gi_shares_lownumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'shares' (nearest quarterly horizon)
gi_shares_highnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'shares' (nearest quarterly horizon)
gi_shares_basistext0%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'shares' (nearest quarterly horizon)
gi_shares_actiontext0%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'shares' (nearest quarterly horizon)
gi_shares_unittext0%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'shares' (nearest quarterly horizon)
gi_other_ncount6%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'other' (nearest quarterly horizon)
gi_other_pointnumeric3%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'other' (nearest quarterly horizon; unit in _unit)
gi_other_lownumeric3%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'other' (nearest quarterly horizon)
gi_other_highnumeric3%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'other' (nearest quarterly horizon)
gi_other_basistext6%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'other' (nearest quarterly horizon)
gi_other_actiontext6%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'other' (nearest quarterly horizon)
gi_other_unittext6%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'other' (nearest quarterly horizon)
gifa_revenue_ncount19%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'revenue' (nearest annual horizon)
gifa_revenue_pointnumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'revenue' (nearest annual horizon; unit in _unit)
gifa_revenue_lownumeric15%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'revenue' (nearest annual horizon)
gifa_revenue_highnumeric14%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'revenue' (nearest annual horizon)
gifa_revenue_basistext19%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'revenue' (nearest annual horizon)
gifa_revenue_actiontext19%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'revenue' (nearest annual horizon)
gifa_revenue_unittext18%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'revenue' (nearest annual horizon)
gifa_revenue_growth_ncount9%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'revenue_growth' (nearest annual horizon)
gifa_revenue_growth_pointnumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'revenue_growth' (nearest annual horizon; unit in _unit)
gifa_revenue_growth_lownumeric6%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'revenue_growth' (nearest annual horizon)
gifa_revenue_growth_highnumeric6%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'revenue_growth' (nearest annual horizon)
gifa_revenue_growth_basistext9%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'revenue_growth' (nearest annual horizon)
gifa_revenue_growth_actiontext9%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'revenue_growth' (nearest annual horizon)
gifa_revenue_growth_unittext9%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'revenue_growth' (nearest annual horizon)
gifa_gross_margin_ncount3%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'gross_margin' (nearest annual horizon)
gifa_gross_margin_pointnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'gross_margin' (nearest annual horizon; unit in _unit)
gifa_gross_margin_lownumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'gross_margin' (nearest annual horizon)
gifa_gross_margin_highnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'gross_margin' (nearest annual horizon)
gifa_gross_margin_basistext3%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'gross_margin' (nearest annual horizon)
gifa_gross_margin_actiontext3%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'gross_margin' (nearest annual horizon)
gifa_gross_margin_unittext3%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'gross_margin' (nearest annual horizon)
gifa_operating_margin_ncount3%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'operating_margin' (nearest annual horizon)
gifa_operating_margin_pointnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'operating_margin' (nearest annual horizon; unit in _unit)
gifa_operating_margin_lownumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'operating_margin' (nearest annual horizon)
gifa_operating_margin_highnumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'operating_margin' (nearest annual horizon)
gifa_operating_margin_basistext3%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'operating_margin' (nearest annual horizon)
gifa_operating_margin_actiontext3%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'operating_margin' (nearest annual horizon)
gifa_operating_margin_unittext3%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'operating_margin' (nearest annual horizon)
gifa_operating_income_ncount2%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'operating_income' (nearest annual horizon)
gifa_operating_income_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'operating_income' (nearest annual horizon; unit in _unit)
gifa_operating_income_lownumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'operating_income' (nearest annual horizon)
gifa_operating_income_highnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'operating_income' (nearest annual horizon)
gifa_operating_income_basistext2%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'operating_income' (nearest annual horizon)
gifa_operating_income_actiontext2%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'operating_income' (nearest annual horizon)
gifa_operating_income_unittext2%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'operating_income' (nearest annual horizon)
gifa_operating_expenses_ncount6%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'operating_expenses' (nearest annual horizon)
gifa_operating_expenses_pointnumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'operating_expenses' (nearest annual horizon; unit in _unit)
gifa_operating_expenses_lownumeric4%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'operating_expenses' (nearest annual horizon)
gifa_operating_expenses_highnumeric4%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'operating_expenses' (nearest annual horizon)
gifa_operating_expenses_basistext6%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'operating_expenses' (nearest annual horizon)
gifa_operating_expenses_actiontext6%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'operating_expenses' (nearest annual horizon)
gifa_operating_expenses_unittext6%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'operating_expenses' (nearest annual horizon)
gifa_net_income_ncount5%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'net_income' (nearest annual horizon)
gifa_net_income_pointnumeric1%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'net_income' (nearest annual horizon; unit in _unit)
gifa_net_income_lownumeric4%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'net_income' (nearest annual horizon)
gifa_net_income_highnumeric4%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'net_income' (nearest annual horizon)
gifa_net_income_basistext5%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'net_income' (nearest annual horizon)
gifa_net_income_actiontext5%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'net_income' (nearest annual horizon)
gifa_net_income_unittext5%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'net_income' (nearest annual horizon)
gifa_ebitda_ncount3%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'ebitda' (nearest annual horizon)
gifa_ebitda_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'ebitda' (nearest annual horizon; unit in _unit)
gifa_ebitda_lownumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'ebitda' (nearest annual horizon)
gifa_ebitda_highnumeric2%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'ebitda' (nearest annual horizon)
gifa_ebitda_basistext3%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'ebitda' (nearest annual horizon)
gifa_ebitda_actiontext3%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'ebitda' (nearest annual horizon)
gifa_ebitda_unittext3%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'ebitda' (nearest annual horizon)
gifa_adj_ebitda_ncount6%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'adj_ebitda' (nearest annual horizon)
gifa_adj_ebitda_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'adj_ebitda' (nearest annual horizon; unit in _unit)
gifa_adj_ebitda_lownumeric5%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'adj_ebitda' (nearest annual horizon)
gifa_adj_ebitda_highnumeric5%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'adj_ebitda' (nearest annual horizon)
gifa_adj_ebitda_basistext6%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'adj_ebitda' (nearest annual horizon)
gifa_adj_ebitda_actiontext6%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'adj_ebitda' (nearest annual horizon)
gifa_adj_ebitda_unittext6%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'adj_ebitda' (nearest annual horizon)
gifa_tax_rate_ncount6%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'tax_rate' (nearest annual horizon)
gifa_tax_rate_pointnumeric3%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'tax_rate' (nearest annual horizon; unit in _unit)
gifa_tax_rate_lownumeric3%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'tax_rate' (nearest annual horizon)
gifa_tax_rate_highnumeric3%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'tax_rate' (nearest annual horizon)
gifa_tax_rate_basistext6%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'tax_rate' (nearest annual horizon)
gifa_tax_rate_actiontext6%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'tax_rate' (nearest annual horizon)
gifa_tax_rate_unittext6%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'tax_rate' (nearest annual horizon)
gifa_capex_ncount10%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'capex' (nearest annual horizon)
gifa_capex_pointnumeric4%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'capex' (nearest annual horizon; unit in _unit)
gifa_capex_lownumeric5%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'capex' (nearest annual horizon)
gifa_capex_highnumeric5%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'capex' (nearest annual horizon)
gifa_capex_basistext10%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'capex' (nearest annual horizon)
gifa_capex_actiontext10%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'capex' (nearest annual horizon)
gifa_capex_unittext10%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'capex' (nearest annual horizon)
gifa_shares_ncount0%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'shares' (nearest annual horizon)
gifa_shares_pointnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'shares' (nearest annual horizon; unit in _unit)
gifa_shares_lownumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'shares' (nearest annual horizon)
gifa_shares_highnumeric0%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'shares' (nearest annual horizon)
gifa_shares_basistext0%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'shares' (nearest annual horizon)
gifa_shares_actiontext0%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'shares' (nearest annual horizon)
gifa_shares_unittext0%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'shares' (nearest annual horizon)
gifa_other_ncount22%GUIDANCE_ITEMS_Q · guidance_items_summaryGuidance items in family 'other' (nearest annual horizon)
gifa_other_pointnumeric9%GUIDANCE_ITEMS_Q · guidance_items_summaryPoint estimate, family 'other' (nearest annual horizon; unit in _unit)
gifa_other_lownumeric12%GUIDANCE_ITEMS_Q · guidance_items_summaryRange low, family 'other' (nearest annual horizon)
gifa_other_highnumeric12%GUIDANCE_ITEMS_Q · guidance_items_summaryRange high, family 'other' (nearest annual horizon)
gifa_other_basistext22%GUIDANCE_ITEMS_Q · guidance_items_summarygaap / nongaap / operational, family 'other' (nearest annual horizon)
gifa_other_actiontext22%GUIDANCE_ITEMS_Q · guidance_items_summaryinitiated / raised / lowered / maintained, family 'other' (nearest annual horizon)
gifa_other_unittext20%GUIDANCE_ITEMS_Q · guidance_items_summaryUnit as stated, family 'other' (nearest annual horizon)
gi_total_ncount49%GUIDANCE_ITEMS_Q · guidance_items_summaryAll guidance items in the release (any horizon)
gi_n_raisedcount49%GUIDANCE_ITEMS_Q · guidance_items_summaryItems labeled raised
gi_n_loweredcount49%GUIDANCE_ITEMS_Q · guidance_items_summaryItems labeled lowered
gi_n_maintainedcount49%GUIDANCE_ITEMS_Q · guidance_items_summaryItems labeled maintained
gi_capex_planned_m$M8%GUIDANCE_ITEMS_Q · guidance_items_summaryPlanned/future capex stated in the release ($M; SAT_RECOVERED_FILING.capex_amount_m)
gq_forecast_period_typetext9%GUIDANCE_Q.forecast_period_type · guidance_horizon_slots[next-quarter guidance] Whether the forecast period is a fiscal QUARTER or a fiscal YEAR ('quarter'/'annual'). Required, not cosmetic: for a December-FYE firm the Q4 end
gq_guidance_actiontext9%GUIDANCE_Q.guidance_action · guidance_horizon_slots[next-quarter guidance] Guidance attribute: action.
gq_guidance_covers_eps$/share0%GUIDANCE_Q.guidance_covers_eps · guidance_horizon_slots[next-quarter guidance] 1=forward guidance includes EPS, 0=guidance but not EPS, .=none
gq_guidance_ebitda_highertext0%GUIDANCE_Q.guidance_ebitda_higher · guidance_horizon_slots[next-quarter guidance] Forward EBITDA guidance range upper bound ($M)
gq_guidance_ebitda_lowertext0%GUIDANCE_Q.guidance_ebitda_lower · guidance_horizon_slots[next-quarter guidance] Forward EBITDA guidance range lower bound ($M)
gq_guidance_ebitda_meantext0%GUIDANCE_Q.guidance_ebitda_mean · guidance_horizon_slots[next-quarter guidance] Forward EBITDA guidance mean of lower and higher bounds ($M)
gq_guidance_gaap_highertext6%GUIDANCE_Q.guidance_gaap_higher · guidance_horizon_slots[next-quarter guidance] GAAP EPS guidance range upper bound
gq_guidance_gaap_lowertext6%GUIDANCE_Q.guidance_gaap_lower · guidance_horizon_slots[next-quarter guidance] GAAP EPS guidance range lower bound
gq_guidance_gaap_meantext0%GUIDANCE_Q.guidance_gaap_mean · guidance_horizon_slots[next-quarter guidance] GAAP EPS guidance mean of lower and higher bounds
gq_guidance_gaap_pointtext1%GUIDANCE_Q.guidance_gaap_point · guidance_horizon_slots[next-quarter guidance] GAAP EPS guidance point estimate (null if range)
gq_guidance_giventext0%GUIDANCE_Q.guidance_given · guidance_horizon_slots[next-quarter guidance] 1=forward-looking guidance present (any metric, GAAP or non-GAAP)
gq_guidance_has_reconciliationtext0%GUIDANCE_Q.guidance_has_reconciliation · guidance_horizon_slots[next-quarter guidance] 1=FORWARD non-GAAP guidance reconciled to GAAP (tightened; excl historical)
gq_guidance_metrictext0%GUIDANCE_Q.guidance_metric · guidance_horizon_slots[next-quarter guidance] Forward-guidance metric(s), ;-joined (eps/revenue/ebitda/...)
gq_guidance_ni_dollars_onlytext0%GUIDANCE_Q.guidance_ni_dollars_only · guidance_horizon_slots[next-quarter guidance] Guidance attribute: ni dollars only.
gq_guidance_nongaap_highertext5%GUIDANCE_Q.guidance_nongaap_higher · guidance_horizon_slots[next-quarter guidance] Non-GAAP EPS guidance range upper bound
gq_guidance_nongaap_lowertext5%GUIDANCE_Q.guidance_nongaap_lower · guidance_horizon_slots[next-quarter guidance] Non-GAAP EPS guidance range lower bound
gq_guidance_nongaap_meantext0%GUIDANCE_Q.guidance_nongaap_mean · guidance_horizon_slots[next-quarter guidance] Non-GAAP EPS guidance mean of lower and higher bounds
gq_guidance_nongaap_pointtext0%GUIDANCE_Q.guidance_nongaap_point · guidance_horizon_slots[next-quarter guidance] Non-GAAP EPS guidance point estimate (null if range)
gq_guidance_period_endtext0%GUIDANCE_Q.guidance_period_end · guidance_horizon_slots[next-quarter guidance] On a REPORTED row: the period the firm's guidance TARGETS (the nearest forward QUARTER it guides to), lifted from the LLM-extracted is_guidance ro
gq_guidance_pt_verdicttext0%GUIDANCE_Q.guidance_pt_verdict · guidance_horizon_slots[next-quarter guidance] Guidance attribute: pt verdict.
gq_guidance_revenue_highertext0%GUIDANCE_Q.guidance_revenue_higher · guidance_horizon_slots[next-quarter guidance] Forward revenue guidance range upper bound ($M)
gq_guidance_revenue_lowertext0%GUIDANCE_Q.guidance_revenue_lower · guidance_horizon_slots[next-quarter guidance] Forward revenue guidance range lower bound ($M)
gq_guidance_revenue_meantext0%GUIDANCE_Q.guidance_revenue_mean · guidance_horizon_slots[next-quarter guidance] Forward revenue guidance mean of lower and higher bounds ($M)
gq_guidance_revenue_pointtext0%GUIDANCE_Q.guidance_revenue_point · guidance_horizon_slots[next-quarter guidance] Forward REVENUE guidance point estimate ($M; non-GAAP/adjusted preferred; null if range)
gq_guidance_sourcetext9%GUIDANCE_Q.guidance_source · guidance_horizon_slots[next-quarter guidance] Where the guidance row came from: 'period_row' (a dedicated guidance row), 'doc_columns' (an explicit disclosed target date), or 'items_derived' (
gq_guidance_unreasonable_efforttext0%GUIDANCE_Q.guidance_unreasonable_effort · guidance_horizon_slots[next-quarter guidance] 1=filing invokes the SEC Item 10(e)/Reg-G "unreasonable effort(s)" exemption to omit a forward-looking non-GAAP-to-GAAP guidance reconciliation
gq_guidance_valuedtext9%GUIDANCE_Q.guidance_valued · guidance_horizon_slots[next-quarter guidance] 1 if the row carries at least one numeric guided value (point, low or high); 0 if the metric was guided qualitatively. Binary.
gq_horizon_daysdate9%GUIDANCE_Q.horizon_days · guidance_horizon_slots[next-quarter guidance] period_end minus announcement_date, i.e. how far ahead the forecast reaches. Median 62 days for quarter forecasts, 237 for annual. Integer days; n
gfy_guidance_valuedtext18%GUIDANCE_A.guidance_valued · guidance_horizon_slots[current-fiscal-year guidance] 1 if the row carries at least one numeric guided value (point, low or high); 0 if the metric was guided qualitatively. Binary.
gfy_guidance_giventext0%GUIDANCE_A.guidance_given · guidance_horizon_slots[current-fiscal-year guidance] 1=forward-looking guidance present (any metric, GAAP or non-GAAP)
gfy_guidance_metrictext0%GUIDANCE_A.guidance_metric · guidance_horizon_slots[current-fiscal-year guidance] Forward-guidance metric(s), ;-joined (eps/revenue/ebitda/...)
gfy_guidance_covers_eps$/share0%GUIDANCE_A.guidance_covers_eps · guidance_horizon_slots[current-fiscal-year guidance] 1=forward guidance includes EPS, 0=guidance but not EPS, .=none
gfy_guidance_has_reconciliationtext0%GUIDANCE_A.guidance_has_reconciliation · guidance_horizon_slots[current-fiscal-year guidance] 1=FORWARD non-GAAP guidance reconciled to GAAP (tightened; excl historical)
gfy_guidance_unreasonable_efforttext0%GUIDANCE_A.guidance_unreasonable_effort · guidance_horizon_slots[current-fiscal-year guidance] 1=filing invokes the SEC Item 10(e)/Reg-G "unreasonable effort(s)" exemption to omit a forward-looking non-GAAP-to-GAAP guidance reconcilia
gfy_guidance_nongaap_pointtext1%GUIDANCE_A.guidance_nongaap_point · guidance_horizon_slots[current-fiscal-year guidance] Non-GAAP EPS guidance point estimate (null if range)
gfy_guidance_nongaap_lowertext11%GUIDANCE_A.guidance_nongaap_lower · guidance_horizon_slots[current-fiscal-year guidance] Non-GAAP EPS guidance range lower bound
gfy_guidance_nongaap_highertext11%GUIDANCE_A.guidance_nongaap_higher · guidance_horizon_slots[current-fiscal-year guidance] Non-GAAP EPS guidance range upper bound
gfy_guidance_nongaap_meantext0%GUIDANCE_A.guidance_nongaap_mean · guidance_horizon_slots[current-fiscal-year guidance] Non-GAAP EPS guidance mean of lower and higher bounds
gfy_guidance_gaap_pointtext1%GUIDANCE_A.guidance_gaap_point · guidance_horizon_slots[current-fiscal-year guidance] GAAP EPS guidance point estimate (null if range)
gfy_guidance_gaap_lowertext10%GUIDANCE_A.guidance_gaap_lower · guidance_horizon_slots[current-fiscal-year guidance] GAAP EPS guidance range lower bound
gfy_guidance_gaap_highertext10%GUIDANCE_A.guidance_gaap_higher · guidance_horizon_slots[current-fiscal-year guidance] GAAP EPS guidance range upper bound
gfy_guidance_gaap_meantext0%GUIDANCE_A.guidance_gaap_mean · guidance_horizon_slots[current-fiscal-year guidance] GAAP EPS guidance mean of lower and higher bounds
gfy_guidance_revenue_pointtext0%GUIDANCE_A.guidance_revenue_point · guidance_horizon_slots[current-fiscal-year guidance] Forward REVENUE guidance point estimate ($M; non-GAAP/adjusted preferred; null if range)
gfy_guidance_revenue_lowertext0%GUIDANCE_A.guidance_revenue_lower · guidance_horizon_slots[current-fiscal-year guidance] Forward revenue guidance range lower bound ($M)
gfy_guidance_revenue_highertext0%GUIDANCE_A.guidance_revenue_higher · guidance_horizon_slots[current-fiscal-year guidance] Forward revenue guidance range upper bound ($M)
gfy_guidance_revenue_meantext0%GUIDANCE_A.guidance_revenue_mean · guidance_horizon_slots[current-fiscal-year guidance] Forward revenue guidance mean of lower and higher bounds ($M)
gfy_guidance_revenue_growth_pointtext0%GUIDANCE_A.guidance_revenue_growth_point · guidance_horizon_slots[current-fiscal-year guidance] Forward revenue GROWTH-RATE guidance point estimate (percent, e.g. 8.5; used when revenue guided as a growth rate)
gfy_guidance_revenue_growth_lowertext0%GUIDANCE_A.guidance_revenue_growth_lower · guidance_horizon_slots[current-fiscal-year guidance] Forward revenue growth-rate guidance lower bound (percent)
gfy_guidance_revenue_growth_highertext0%GUIDANCE_A.guidance_revenue_growth_higher · guidance_horizon_slots[current-fiscal-year guidance] Forward revenue growth-rate guidance upper bound (percent)
gfy_guidance_revenue_growth_meantext0%GUIDANCE_A.guidance_revenue_growth_mean · guidance_horizon_slots[current-fiscal-year guidance] Forward revenue growth-rate guidance mean of bounds (percent)
gfy_guidance_ebitda_pointtext0%GUIDANCE_A.guidance_ebitda_point · guidance_horizon_slots[current-fiscal-year guidance] Forward EBITDA guidance point estimate ($M; Adjusted EBITDA preferred; null if range)
gfy_guidance_ebitda_lowertext0%GUIDANCE_A.guidance_ebitda_lower · guidance_horizon_slots[current-fiscal-year guidance] Forward EBITDA guidance range lower bound ($M)
gfy_guidance_ebitda_highertext0%GUIDANCE_A.guidance_ebitda_higher · guidance_horizon_slots[current-fiscal-year guidance] Forward EBITDA guidance range upper bound ($M)
gfy_guidance_ebitda_meantext0%GUIDANCE_A.guidance_ebitda_mean · guidance_horizon_slots[current-fiscal-year guidance] Forward EBITDA guidance mean of lower and higher bounds ($M)
gfy_guidance_period_endtext0%GUIDANCE_A.guidance_period_end · guidance_horizon_slots[current-fiscal-year guidance] On a REPORTED row: the period the firm's guidance TARGETS (the nearest forward QUARTER it guides to), lifted from the LLM-extracted is_guid
gfy_guidance_ni_dollars_onlytext0%GUIDANCE_A.guidance_ni_dollars_only · guidance_horizon_slots[current-fiscal-year guidance] Guidance attribute: ni dollars only.
gfy_guidance_pt_verdicttext0%GUIDANCE_A.guidance_pt_verdict · guidance_horizon_slots[current-fiscal-year guidance] Guidance attribute: pt verdict.
gfy_guidance_sourcetext18%GUIDANCE_A.guidance_source · guidance_horizon_slots[current-fiscal-year guidance] Where the guidance row came from: 'period_row' (a dedicated guidance row), 'doc_columns' (an explicit disclosed target date), or 'items_der
gfy_guidance_actiontext18%GUIDANCE_A.guidance_action · guidance_horizon_slots[current-fiscal-year guidance] Guidance attribute: action.
gfy_horizon_daysdate18%GUIDANCE_A.horizon_days · guidance_horizon_slots[current-fiscal-year guidance] period_end minus announcement_date, i.e. how far ahead the forecast reaches. Median 62 days for quarter forecasts, 237 for annual. Integer
gfy_forecast_period_typetext18%GUIDANCE_A.forecast_period_type · guidance_horizon_slots[current-fiscal-year guidance] Whether the forecast period is a fiscal QUARTER or a fiscal YEAR ('quarter'/'annual'). Required, not cosmetic: for a December-FYE firm the
gq_forecast_period_enddate9%GUIDANCE_Q · guidance_horizon_slotsForecast period end of the gq_ slot
gfy_forecast_period_enddate18%GUIDANCE_Q · guidance_horizon_slotsForecast period end of the gfy_ slot
guidance_n_quarterly_horizonscount9%GUIDANCE_Q · guidance_horizon_slotsQuarterly forecast periods guided in this release
guidance_n_annual_horizonscount18%GUIDANCE_Q · guidance_horizon_slotsAnnual forecast periods guided in this release
capex_amount_ps_derived$/share7%SAT_RECOVERED_FILING.capex_amount_m · per_share_from_mcapex_amount per diluted share, DERIVED = capex_amount_m x 1000 / diluted_shares_k (basic if diluted missing)
capex_amount_ps_derived_sourcetext7%SAT_RECOVERED_FILING.capex_amount_m · per_share_from_mdiluted / basic share count used for the derivation
sparse_extrasjson0%derived · sparse_foldJSON {column: value} of this module's sparse (N<100) variants, non-missing only; nothing dropped
Folded into sparse_extras (14): gq_guidance_ebitda_point, gq_guidance_organic_growth_higher, gq_guidance_organic_growth_lower, gq_guidance_organic_growth_mean, gq_guidance_organic_growth_point, gq_guidance_revenue_growth_higher, gq_guidance_revenue_growth_lower, gq_guidance_revenue_growth_mean, gq_guidance_revenue_growth_point, gq_guidance_scenario, gfy_guidance_organic_growth_point, gfy_guidance_organic_growth_lower, gfy_guidance_organic_growth_higher, gfy_guidance_organic_growth_mean
16 

MODA_16_FWD_RECON

Forward-looking reconciliation provided or omitted
159 columns

What it is about. The ex-ante bridge: whether forward non-GAAP guidance is reconciled to GAAP, the expected adjustments, anchors and totals, and use of the 'unreasonable efforts' exemption.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. How often is forward non-GAAP guidance reconciled to GAAP, as the C&DIs require?
    provided fwd_recon_present, fwd_recon_measure, fr_items_n, GUIDANCE.has_eps_guidance, GUIDANCE.gq_guidance_unreasonable_effort
    needs nothing external
  2. Do firms that invoke 'unreasonable efforts' later report larger unexpected charges?
    provided GUIDANCE.gq_guidance_unreasonable_effort, fwd_recon_present, NG_ADJUSTMENTS.adj_22_restructuring_m, NG_ADJUSTMENTS.adj_14b_goodwill_impairment_m
    needs nothing external
  3. Are anticipated adjustments in the forward bridge realised in the actual reconciliation?
    provided fr_adj_04_sbc_ps, fr_adj_04_sbc_low, fr_adj_04_sbc_high, fr_range_unit, NG_ADJUSTMENTS.adj_04_sbc, NG_ADJUSTMENTS.adj_05a_amort_acq_intang
    needs nothing external

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_FWD_RECON, SAT_RECOVERED_FILING

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
fwd_recon_measuretext9%SAT_RECOVERED_FILING.fwd_recon_measure · copyMeasure the forward reconciliation reconciles
fwd_recon_periodtext9%SAT_RECOVERED_FILING.fwd_recon_period · copyPeriod the forward reconciliation covers
fwd_recon_presentflag91%SAT_RECOVERED_FILING.fwd_recon_present · copy1 if the release provides a forward-looking (guidance) reconciliation
fr_items_ncount9%SAT_FWD_RECON · fwd_recon_summaryNumber of line items in the release's forward (guidance) reconciliation
fr_n_categoriescount9%SAT_FWD_RECON · fwd_recon_summaryNumber of distinct adjustment categories among those lines
fr_n_rangescount9%SAT_FWD_RECON · fwd_recon_summaryLines given as a range (low-high) rather than a point
fr_has_tax_lineflag9%SAT_FWD_RECON · fwd_recon_summary1 = the forward bridge contains a tax-effect line (adj_11)
fr_largest_categorytext9%SAT_FWD_RECON · fwd_recon_summaryCategory code of the largest line by absolute value ($M first, else per share, else range midpoint)
fr_largest_labeltext9%SAT_FWD_RECON · fwd_recon_summaryVerbatim label of that largest line
fr_range_unittext9%SAT_FWD_RECON · fwd_recon_summaryUnit assumed for the fr_*_low / fr_*_high range columns: '$/share' when fwd_recon_measure is an EPS-type measure, '$M' for any other stated measure, 'unknown' when no mea
fwd_recon_gaap_anchornumber2%SAT_RECOVERED_FILING · fwd_recon_summaryGAAP starting value of the forward reconciliation, numeric (the source text field's literal 'nan' strings are nulled); unit follows fwd_recon_measure: $M for EBITDA / net
fwd_recon_nongaap_totalnumber2%SAT_RECOVERED_FILING · fwd_recon_summaryNon-GAAP total the forward reconciliation arrives at, numeric; unit follows fwd_recon_measure as for fwd_recon_gaap_anchor
fr_adj_04_sbc_m$M2%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'stock-based compensation' (adj_04_sbc) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_04_sbc_ps$/share1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'stock-based compensation' (adj_04_sbc) guided for the forecast period, point value per diluted share
fr_adj_04_sbc_lownumber2%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'stock-based compensation' (adj_04_sbc) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_04_sbc_highnumber2%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'stock-based compensation' (adj_04_sbc) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_11_tax_impact_m$M1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'tax effect of the adjustments' (adj_11_tax_impact) guided for the forecast period, point value in $M (sum of the release's lines in this cate
fr_adj_11_tax_impact_ps$/share1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'tax effect of the adjustments' (adj_11_tax_impact) guided for the forecast period, point value per diluted share
fr_adj_11_tax_impact_lownumber2%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'tax effect of the adjustments' (adj_11_tax_impact) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_11_tax_impact_highnumber2%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'tax effect of the adjustments' (adj_11_tax_impact) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_05a_amort_acq_intang_m$M1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'amortization of acquired intangibles' (adj_05a_amort_acq_intang) guided for the forecast period, point value in $M (sum of the release's line
fr_adj_05a_amort_acq_intang_ps$/share1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'amortization of acquired intangibles' (adj_05a_amort_acq_intang) guided for the forecast period, point value per diluted share
fr_adj_05a_amort_acq_intang_lownumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'amortization of acquired intangibles' (adj_05a_amort_acq_intang) guided for the forecast period, low end of the printed range (unit: see fr_r
fr_adj_05a_amort_acq_intang_highnumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'amortization of acquired intangibles' (adj_05a_amort_acq_intang) guided for the forecast period, high end of the printed range (unit: see fr_
fr_adj_06_others_m$M1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'other adjustments' (adj_06_others) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_06_others_ps$/share1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'other adjustments' (adj_06_others) guided for the forecast period, point value per diluted share
fr_adj_06_others_lownumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'other adjustments' (adj_06_others) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_06_others_highnumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'other adjustments' (adj_06_others) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_22_restructuring_m$M1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'restructuring' (adj_22_restructuring) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_22_restructuring_ps$/share1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'restructuring' (adj_22_restructuring) guided for the forecast period, point value per diluted share
fr_adj_22_restructuring_lownumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'restructuring' (adj_22_restructuring) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_22_restructuring_highnumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'restructuring' (adj_22_restructuring) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_05b_da_other_m$M1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'depreciation and other amortization' (adj_05b_da_other) guided for the forecast period, point value in $M (sum of the release's lines in this
fr_adj_05b_da_other_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'depreciation and other amortization' (adj_05b_da_other) guided for the forecast period, point value per diluted share
fr_adj_05b_da_other_lownumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'depreciation and other amortization' (adj_05b_da_other) guided for the forecast period, low end of the printed range (unit: see fr_range_unit
fr_adj_05b_da_other_highnumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'depreciation and other amortization' (adj_05b_da_other) guided for the forecast period, high end of the printed range (unit: see fr_range_uni
fr_adj_02_net_interest_m$M1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'net interest' (adj_02_net_interest) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_02_net_interest_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'net interest' (adj_02_net_interest) guided for the forecast period, point value per diluted share
fr_adj_02_net_interest_lownumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'net interest' (adj_02_net_interest) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_02_net_interest_highnumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'net interest' (adj_02_net_interest) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_19_acquisition_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'acquisition costs' (adj_19_acquisition) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_19_acquisition_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'acquisition costs' (adj_19_acquisition) guided for the forecast period, point value per diluted share
fr_adj_19_acquisition_lownumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'acquisition costs' (adj_19_acquisition) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_19_acquisition_highnumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'acquisition costs' (adj_19_acquisition) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_49_re_depreciation_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'real-estate depreciation (FFO-type)' (adj_49_re_depreciation) guided for the forecast period, point value in $M (sum of the release's lines i
fr_adj_49_re_depreciation_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'real-estate depreciation (FFO-type)' (adj_49_re_depreciation) guided for the forecast period, point value per diluted share
fr_adj_49_re_depreciation_lownumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'real-estate depreciation (FFO-type)' (adj_49_re_depreciation) guided for the forecast period, low end of the printed range (unit: see fr_rang
fr_adj_49_re_depreciation_highnumber1%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'real-estate depreciation (FFO-type)' (adj_49_re_depreciation) guided for the forecast period, high end of the printed range (unit: see fr_ran
fr_other_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'uncategorised line' (other) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_other_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'uncategorised line' (other) guided for the forecast period, point value per diluted share
fr_other_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'uncategorised line' (other) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_other_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'uncategorised line' (other) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_16_debt_extinguishment_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'debt extinguishment' (adj_16_debt_extinguishment) guided for the forecast period, point value in $M (sum of the release's lines in this categ
fr_adj_16_debt_extinguishment_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'debt extinguishment' (adj_16_debt_extinguishment) guided for the forecast period, point value per diluted share
fr_adj_16_debt_extinguishment_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'debt extinguishment' (adj_16_debt_extinguishment) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_16_debt_extinguishment_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'debt extinguishment' (adj_16_debt_extinguishment) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_17_litigation_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'litigation' (adj_17_litigation) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_17_litigation_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'litigation' (adj_17_litigation) guided for the forecast period, point value per diluted share
fr_adj_17_litigation_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'litigation' (adj_17_litigation) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_17_litigation_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'litigation' (adj_17_litigation) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_50_divestiture_gain_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'divestiture gains/losses' (adj_50_divestiture_gain) guided for the forecast period, point value in $M (sum of the release's lines in this cat
fr_adj_50_divestiture_gain_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'divestiture gains/losses' (adj_50_divestiture_gain) guided for the forecast period, point value per diluted share
fr_adj_50_divestiture_gain_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'divestiture gains/losses' (adj_50_divestiture_gain) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_50_divestiture_gain_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'divestiture gains/losses' (adj_50_divestiture_gain) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_46_noncontrolling_interest_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'non-controlling interest' (adj_46_noncontrolling_interest) guided for the forecast period, point value in $M (sum of the release's lines in t
fr_adj_46_noncontrolling_interest_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'non-controlling interest' (adj_46_noncontrolling_interest) guided for the forecast period, point value per diluted share
fr_adj_46_noncontrolling_interest_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'non-controlling interest' (adj_46_noncontrolling_interest) guided for the forecast period, low end of the printed range (unit: see fr_range_u
fr_adj_46_noncontrolling_interest_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'non-controlling interest' (adj_46_noncontrolling_interest) guided for the forecast period, high end of the printed range (unit: see fr_range_
fr_adj_20_ppe_sale_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'gains/losses on asset sales' (adj_20_ppe_sale) guided for the forecast period, point value in $M (sum of the release's lines in this category
fr_adj_20_ppe_sale_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'gains/losses on asset sales' (adj_20_ppe_sale) guided for the forecast period, point value per diluted share
fr_adj_20_ppe_sale_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'gains/losses on asset sales' (adj_20_ppe_sale) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_20_ppe_sale_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'gains/losses on asset sales' (adj_20_ppe_sale) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_24_integration_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'integration costs' (adj_24_integration) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_24_integration_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'integration costs' (adj_24_integration) guided for the forecast period, point value per diluted share
fr_adj_24_integration_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'integration costs' (adj_24_integration) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_24_integration_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'integration costs' (adj_24_integration) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_14_impair_ppe_finite_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'impairment of PP&E / finite-lived intangibles' (adj_14_impair_ppe_finite) guided for the forecast period, point value in $M (sum of the relea
fr_adj_14_impair_ppe_finite_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'impairment of PP&E / finite-lived intangibles' (adj_14_impair_ppe_finite) guided for the forecast period, point value per diluted share
fr_adj_14_impair_ppe_finite_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'impairment of PP&E / finite-lived intangibles' (adj_14_impair_ppe_finite) guided for the forecast period, low end of the printed range (unit:
fr_adj_14_impair_ppe_finite_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'impairment of PP&E / finite-lived intangibles' (adj_14_impair_ppe_finite) guided for the forecast period, high end of the printed range (unit
fr_adj_13_equity_income_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'equity-method income' (adj_13_equity_income) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_13_equity_income_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'equity-method income' (adj_13_equity_income) guided for the forecast period, point value per diluted share
fr_adj_13_equity_income_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'equity-method income' (adj_13_equity_income) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_13_equity_income_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'equity-method income' (adj_13_equity_income) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_18_fair_value_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'fair-value remeasurements' (adj_18_fair_value) guided for the forecast period, point value in $M (sum of the release's lines in this category
fr_adj_18_fair_value_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'fair-value remeasurements' (adj_18_fair_value) guided for the forecast period, point value per diluted share
fr_adj_18_fair_value_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'fair-value remeasurements' (adj_18_fair_value) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_18_fair_value_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'fair-value remeasurements' (adj_18_fair_value) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_47_preferred_dividends_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'preferred dividends' (adj_47_preferred_dividends) guided for the forecast period, point value in $M (sum of the release's lines in this categ
fr_adj_47_preferred_dividends_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'preferred dividends' (adj_47_preferred_dividends) guided for the forecast period, point value per diluted share
fr_adj_47_preferred_dividends_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'preferred dividends' (adj_47_preferred_dividends) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_47_preferred_dividends_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'preferred dividends' (adj_47_preferred_dividends) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_07_pension_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'pension / post-retirement items' (adj_07_pension) guided for the forecast period, point value in $M (sum of the release's lines in this categ
fr_adj_07_pension_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'pension / post-retirement items' (adj_07_pension) guided for the forecast period, point value per diluted share
fr_adj_07_pension_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'pension / post-retirement items' (adj_07_pension) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_07_pension_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'pension / post-retirement items' (adj_07_pension) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_15_fx_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'foreign-exchange items' (adj_15_fx) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_15_fx_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'foreign-exchange items' (adj_15_fx) guided for the forecast period, point value per diluted share
fr_adj_15_fx_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'foreign-exchange items' (adj_15_fx) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_15_fx_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'foreign-exchange items' (adj_15_fx) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_51_re_rent_adj_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'straight-line rent adjustments (REIT)' (adj_51_re_rent_adj) guided for the forecast period, point value in $M (sum of the release's lines in
fr_adj_51_re_rent_adj_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'straight-line rent adjustments (REIT)' (adj_51_re_rent_adj) guided for the forecast period, point value per diluted share
fr_adj_51_re_rent_adj_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'straight-line rent adjustments (REIT)' (adj_51_re_rent_adj) guided for the forecast period, low end of the printed range (unit: see fr_range_
fr_adj_51_re_rent_adj_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'straight-line rent adjustments (REIT)' (adj_51_re_rent_adj) guided for the forecast period, high end of the printed range (unit: see fr_range
fr_adj_53_acquired_deferred_rev_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'acquired deferred-revenue haircut' (adj_53_acquired_deferred_rev) guided for the forecast period, point value in $M (sum of the release's lin
fr_adj_53_acquired_deferred_rev_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'acquired deferred-revenue haircut' (adj_53_acquired_deferred_rev) guided for the forecast period, point value per diluted share
fr_adj_53_acquired_deferred_rev_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'acquired deferred-revenue haircut' (adj_53_acquired_deferred_rev) guided for the forecast period, low end of the printed range (unit: see fr_
fr_adj_53_acquired_deferred_rev_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'acquired deferred-revenue haircut' (adj_53_acquired_deferred_rev) guided for the forecast period, high end of the printed range (unit: see fr
fr_adj_09_realized_gains_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'realised investment gains/losses' (adj_09_realized_gains) guided for the forecast period, point value in $M (sum of the release's lines in th
fr_adj_09_realized_gains_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'realised investment gains/losses' (adj_09_realized_gains) guided for the forecast period, point value per diluted share
fr_adj_09_realized_gains_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'realised investment gains/losses' (adj_09_realized_gains) guided for the forecast period, low end of the printed range (unit: see fr_range_un
fr_adj_09_realized_gains_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'realised investment gains/losses' (adj_09_realized_gains) guided for the forecast period, high end of the printed range (unit: see fr_range_u
fr_adj_32_debt_issuance_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'debt-issuance costs' (adj_32_debt_issuance) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_32_debt_issuance_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'debt-issuance costs' (adj_32_debt_issuance) guided for the forecast period, point value per diluted share
fr_adj_32_debt_issuance_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'debt-issuance costs' (adj_32_debt_issuance) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_32_debt_issuance_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'debt-issuance costs' (adj_32_debt_issuance) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_21_tax_accounting_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'discrete tax items' (adj_21_tax_accounting) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_21_tax_accounting_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'discrete tax items' (adj_21_tax_accounting) guided for the forecast period, point value per diluted share
fr_adj_21_tax_accounting_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'discrete tax items' (adj_21_tax_accounting) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_21_tax_accounting_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'discrete tax items' (adj_21_tax_accounting) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_08_severance_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'severance' (adj_08_severance) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_08_severance_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'severance' (adj_08_severance) guided for the forecast period, point value per diluted share
fr_adj_08_severance_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'severance' (adj_08_severance) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_08_severance_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'severance' (adj_08_severance) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_52_maint_capex_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'maintenance capex (FFO/AFFO)' (adj_52_maint_capex) guided for the forecast period, point value in $M (sum of the release's lines in this cate
fr_adj_52_maint_capex_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'maintenance capex (FFO/AFFO)' (adj_52_maint_capex) guided for the forecast period, point value per diluted share
fr_adj_52_maint_capex_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'maintenance capex (FFO/AFFO)' (adj_52_maint_capex) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_52_maint_capex_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'maintenance capex (FFO/AFFO)' (adj_52_maint_capex) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_14b_goodwill_impairment_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'goodwill impairment' (adj_14b_goodwill_impairment) guided for the forecast period, point value in $M (sum of the release's lines in this cate
fr_adj_14b_goodwill_impairment_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'goodwill impairment' (adj_14b_goodwill_impairment) guided for the forecast period, point value per diluted share
fr_adj_14b_goodwill_impairment_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'goodwill impairment' (adj_14b_goodwill_impairment) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_14b_goodwill_impairment_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'goodwill impairment' (adj_14b_goodwill_impairment) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_23_discontinued_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'discontinued operations' (adj_23_discontinued) guided for the forecast period, point value in $M (sum of the release's lines in this category
fr_adj_23_discontinued_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'discontinued operations' (adj_23_discontinued) guided for the forecast period, point value per diluted share
fr_adj_23_discontinued_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'discontinued operations' (adj_23_discontinued) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_23_discontinued_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'discontinued operations' (adj_23_discontinued) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_05c_amort_dev_tech_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'amortization of developed technology' (adj_05c_amort_dev_tech) guided for the forecast period, point value in $M (sum of the release's lines
fr_adj_05c_amort_dev_tech_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'amortization of developed technology' (adj_05c_amort_dev_tech) guided for the forecast period, point value per diluted share
fr_adj_05c_amort_dev_tech_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'amortization of developed technology' (adj_05c_amort_dev_tech) guided for the forecast period, low end of the printed range (unit: see fr_ran
fr_adj_05c_amort_dev_tech_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'amortization of developed technology' (adj_05c_amort_dev_tech) guided for the forecast period, high end of the printed range (unit: see fr_ra
fr_adj_12_startup_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'start-up costs' (adj_12_startup) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_12_startup_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'start-up costs' (adj_12_startup) guided for the forecast period, point value per diluted share
fr_adj_12_startup_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'start-up costs' (adj_12_startup) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_12_startup_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'start-up costs' (adj_12_startup) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
fr_adj_26_unrealized_invst_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'unrealised investment gains/losses' (adj_26_unrealized_invst) guided for the forecast period, point value in $M (sum of the release's lines i
fr_adj_26_unrealized_invst_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'unrealised investment gains/losses' (adj_26_unrealized_invst) guided for the forecast period, point value per diluted share
fr_adj_26_unrealized_invst_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'unrealised investment gains/losses' (adj_26_unrealized_invst) guided for the forecast period, low end of the printed range (unit: see fr_rang
fr_adj_26_unrealized_invst_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'unrealised investment gains/losses' (adj_26_unrealized_invst) guided for the forecast period, high end of the printed range (unit: see fr_ran
fr_adj_27_ipr_d_m$M0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'in-process R&D' (adj_27_ipr_d) guided for the forecast period, point value in $M (sum of the release's lines in this category)
fr_adj_27_ipr_d_ps$/share0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'in-process R&D' (adj_27_ipr_d) guided for the forecast period, point value per diluted share
fr_adj_27_ipr_d_lownumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'in-process R&D' (adj_27_ipr_d) guided for the forecast period, low end of the printed range (unit: see fr_range_unit)
fr_adj_27_ipr_d_highnumber0%SAT_FWD_RECON · fwd_recon_summaryForward-reconciliation line 'in-process R&D' (adj_27_ipr_d) guided for the forecast period, high end of the printed range (unit: see fr_range_unit)
17 

MODA_17_CONSENSUS_BEAT

The release's own comparison to consensus
25 columns

What it is about. The firm's own framing against expectations: whether consensus is mentioned, the basis, the figure quoted, the stated direction and beat, and year-ago comparisons.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Do firms cite consensus mainly when they beat it?
    provided consensus_mentioned, consensus_beat, consensus_direction, consensus_eps
    needs I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno) to observe the beat when the release is silent
  2. Is a self-declared beat on a non-GAAP basis rewarded like a GAAP beat?
    provided consensus_beat, consensus_basis, earnings_surprise, NG.nongaap_eps, GAAP.gaap_eps
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno); I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)
  3. How often does the consensus figure quoted in the release differ from external estimate databases?
    provided consensus_eps, consensus_eps_reported, consensus_source, consensus_metric
    needs I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_CONSENSUS_REGEX

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
consensus_basistext0%NONGAAP_A.consensus_basis · copyShare basis of the comparison: diluted or basic
consensus_beatflag0%NONGAAP_A.consensus_beat · copy1 = reported EPS beat the consensus stated in the release (earnings_surprise > 0); set only where consensus_eps is stated (1,528 filings)
consensus_directiontext0%NONGAAP_A.consensus_direction · copybeat / meet / miss as worded in the release (agrees with consensus_beat on 93% of the overlap)
consensus_eps$/share0%NONGAAP_A.consensus_eps · copyAnalyst consensus / forecast EPS as stated in the release text (not an external database value)
consensus_eps_reported$/share0%NONGAAP_A.consensus_eps_reported · copyThe company's own EPS figure quoted next to the consensus in the prose (basis per consensus_metric)
consensus_mentionedflag89%NONGAAP_A.consensus_mentioned · copy1 = the release explicitly compares EPS to an analyst consensus / estimate (as worded in the release, NOT an I/B/E/S match); base rate 0.6% of filings. The regex companio
consensus_metrictext0%NONGAAP_A.consensus_metric · copyBasis of the compared figure: gaap or nongaap
consensus_sourcetext0%NONGAAP_A.consensus_source · copyConsensus provider named in the release (First Call, Thomson Reuters, Zacks, FactSet, I/B/E/S ...) or 'other'
earnings_surprise$/share0%NONGAAP_A.earnings_surprise · copyReported EPS minus consensus_eps, basis- and metric-matched (positive = beat), from the release's own figures
rx_consensus_mentionflag91%SAT_CONSENSUS_REGEX.rx_consensus_mention · copy1 = the full release text contains a consensus / analyst-estimate phrase (regex over cached text; verbatim window in rx_consensus_context) [source: regex over the full ca
rx_n_consensus_hitscount91%SAT_CONSENSUS_REGEX.rx_n_consensus_hits · copyNumber of consensus-phrase matches in the release [source: regex over the full cached release text, stage 44c, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
rx_consensus_phrasetext1%SAT_CONSENSUS_REGEX.rx_consensus_phrase · copyFirst consensus phrase matched, as printed [source: regex over the full cached release text, stage 44c, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
rx_consensus_contexttext1%SAT_CONSENSUS_REGEX.rx_consensus_context · copyVerbatim 240-character window around the first consensus phrase (audit trail) [source: regex over the full cached release text, stage 44c, run-1 Pass 3, prompt PASS3_prom
rx_consensus_directiontext1%SAT_CONSENSUS_REGEX.rx_consensus_direction · copybeat / miss / meet inferred from the words in the first window (exceeded, above, surpassed = beat; below, missed, short of = miss; in line, met = meet); empty when no dir
rx_consensus_providertext2%SAT_CONSENSUS_REGEX.rx_consensus_provider · copyFirst consensus provider named anywhere in the release (First Call, Thomson, Zacks, FactSet, I/B/E/S, Refinitiv, Capital IQ, Bloomberg, StarMine, Visible Alpha) [source:
rx_provider_near_consensusflag91%SAT_CONSENSUS_REGEX.rx_provider_near_consensus · copy1 = a provider name sits within 300 characters of a consensus phrase [source: regex over the full cached release text, stage 44c, run-1 Pass 3, prompt PASS3_prompt_frozen
rx_text_charscount91%SAT_CONSENSUS_REGEX.rx_text_chars · copyLength of the scanned text in characters (0 = no cached text; row absent when the file is not cached) [source: regex over the full cached release text, stage 44c, run-1 P
rx_in_safe_harborflag91%SAT_CONSENSUS_REGEX.rx_in_safe_harbor · copy1 = the first consensus phrase sits inside forward-looking / safe-harbor boilerplate ('actual results may differ from analysts' expectations'); such windows do NOT count
18 

MODA_18_QUOTES

Quotes by role: counts, first quote, sentiment, topic
47 columns

What it is about. Executive voice: whether the CEO and CFO are quoted, how many quotes and speakers, role slots with sentiment, topics and forward-looking classification. Every quote in full is in SAT_QUOTES.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Whose voice moves the price: does CEO versus CFO attribution change the reaction to the same news?
    provided ceo_quoted, cfo_quoted, q_ceo_first_sentiment, q_cfo_first_sentiment, q_ceo_first_text, q_cfo_first_text
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno); I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)
  2. Does quote sentiment predict subsequent guidance revisions?
    provided q_sentiment_positive_share, q_ceo_first_fwd_looking, q_cfo_first_fwd_looking, GUIDANCE.gi_revenue_action
    needs nothing external
  3. Are non-management quotes (customers, analysts) associated with different disclosure quality?
    provided any_nonmgmt_quote, q_analyst_n, q_other_n, NG_RATIONALE.rationale_specific_share
    needs nothing external

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_QUOTES, SAT_QUOTES_SUMMARY, SAT_RECOVERED_FILING

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
ceo_quotedflag80%SAT_QUOTES_SUMMARY.ceo_quoted · copy1 = the CEO is directly quoted (equals q_ceo_n > 0)
cfo_quotedflag80%SAT_QUOTES_SUMMARY.cfo_quoted · copy1 = the CFO is directly quoted (equals q_cfo_n > 0)
quote_rolestext80%SAT_QUOTES_SUMMARY.quote_roles · copyComma-joined speaker roles quoted, in order of first appearance (e.g. 'ceo,cfo')
any_nonmgmt_quoteflag91%SAT_RECOVERED_FILING.any_nonmgmt_quote · copy1 = at least one quote is from a non-management speaker (analyst, customer, partner, regulator)
n_distinct_speakerscount91%SAT_RECOVERED_FILING.n_distinct_speakers · copyNumber of distinct quoted speakers
n_quotescount91%SAT_RECOVERED_FILING.n_quotes · copyNumber of direct quotations attributed to people in the release (0 when none; agrees with the SAT_QUOTES row count on 99.9%)
q_ceo_ncount80%SAT_QUOTES · quote_role_slotsNumber of quotes attributed to a ceo speaker in the release
q_ceo_first_texttext78%SAT_QUOTES · quote_role_slotsText of the first ceo quote (lowest seq)
q_ceo_first_sentimenttext78%SAT_QUOTES · quote_role_slotsSentiment label of the first ceo quote (positive/neutral/negative/mixed)
q_ceo_first_topictext78%SAT_QUOTES · quote_role_slotsTopic of the first ceo quote as a FREE-TEXT label from the extractor (not a fixed vocabulary)
q_ceo_first_fwd_lookingflag77%SAT_QUOTES · quote_role_slots1 if the first ceo quote is forward-looking
q_cfo_ncount80%SAT_QUOTES · quote_role_slotsNumber of quotes attributed to a cfo speaker in the release
q_cfo_first_texttext10%SAT_QUOTES · quote_role_slotsText of the first cfo quote (lowest seq)
q_cfo_first_sentimenttext10%SAT_QUOTES · quote_role_slotsSentiment label of the first cfo quote (positive/neutral/negative/mixed)
q_cfo_first_topictext10%SAT_QUOTES · quote_role_slotsTopic of the first cfo quote as a FREE-TEXT label from the extractor (not a fixed vocabulary)
q_cfo_first_fwd_lookingflag10%SAT_QUOTES · quote_role_slots1 if the first cfo quote is forward-looking
q_chair_board_ncount80%SAT_QUOTES · quote_role_slotsNumber of quotes attributed to a chair_board speaker in the release
q_chair_board_first_texttext2%SAT_QUOTES · quote_role_slotsText of the first chair_board quote (lowest seq)
q_chair_board_first_sentimenttext2%SAT_QUOTES · quote_role_slotsSentiment label of the first chair_board quote (positive/neutral/negative/mixed)
q_chair_board_first_topictext2%SAT_QUOTES · quote_role_slotsTopic of the first chair_board quote as a FREE-TEXT label from the extractor (not a fixed vocabulary)
q_chair_board_first_fwd_lookingflag2%SAT_QUOTES · quote_role_slots1 if the first chair_board quote is forward-looking
q_other_exec_ncount80%SAT_QUOTES · quote_role_slotsNumber of quotes attributed to a other_exec speaker in the release
q_other_exec_first_texttext5%SAT_QUOTES · quote_role_slotsText of the first other_exec quote (lowest seq)
q_other_exec_first_sentimenttext5%SAT_QUOTES · quote_role_slotsSentiment label of the first other_exec quote (positive/neutral/negative/mixed)
q_other_exec_first_topictext5%SAT_QUOTES · quote_role_slotsTopic of the first other_exec quote as a FREE-TEXT label from the extractor (not a fixed vocabulary)
q_other_exec_first_fwd_lookingflag5%SAT_QUOTES · quote_role_slots1 if the first other_exec quote is forward-looking
q_analyst_ncount80%SAT_QUOTES · quote_role_slotsNumber of quotes attributed to a analyst speaker in the release
q_analyst_first_texttext0%SAT_QUOTES · quote_role_slotsText of the first analyst quote (lowest seq)
q_analyst_first_sentimenttext0%SAT_QUOTES · quote_role_slotsSentiment label of the first analyst quote (positive/neutral/negative/mixed)
q_analyst_first_topictext0%SAT_QUOTES · quote_role_slotsTopic of the first analyst quote as a FREE-TEXT label from the extractor (not a fixed vocabulary)
q_analyst_first_fwd_lookingflag0%SAT_QUOTES · quote_role_slots1 if the first analyst quote is forward-looking
q_other_ncount80%SAT_QUOTES · quote_role_slotsNumber of quotes attributed to a other speaker in the release
q_other_first_texttext1%SAT_QUOTES · quote_role_slotsText of the first other quote (lowest seq)
q_other_first_sentimenttext1%SAT_QUOTES · quote_role_slotsSentiment label of the first other quote (positive/neutral/negative/mixed)
q_other_first_topictext1%SAT_QUOTES · quote_role_slotsTopic of the first other quote as a FREE-TEXT label from the extractor (not a fixed vocabulary)
q_other_first_fwd_lookingflag1%SAT_QUOTES · quote_role_slots1 if the first other quote is forward-looking
q_sentiment_positive_shareratio80%SAT_QUOTES · quote_role_slotsShare of the release's quotes labeled positive
q_first_roletext80%SAT_QUOTES · quote_role_slotsSpeaker role of the FIRST quote in the release (ceo / cfo / chair_board / other_exec / analyst / other)
cfo_quoted_before_ceoflag80%SAT_QUOTES · quote_role_slots1 = a CFO quote appears before any CEO quote (both quoted or CFO only); 0 otherwise; null when no quotes
quote_patterntext80%SAT_QUOTES · quote_role_slotsCEO/CFO quotation pattern: neither / ceo_only / cfo_only / both (the 2x2 asked for on 2026-09-05)
19 

MODA_19_NARRATIVE

Attributions, superlatives, tone dispersion, word counts
62 columns

What it is about. Text features of the release: length, header tone, words until the first EPS figure, attribution of performance to internal or external causes, superlative claims and directional vocabulary.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Do firms attribute good performance to themselves and bad performance to the environment?
    provided attr_ceo, attr_cfo, attribution_diverges, header_tone, GAAP.gaap_eps, CONSENSUS_BEAT.consensus_beat
    needs nothing external
  2. Does the density of superlatives predict subsequent reversal of returns?
    provided tone_ceo, tone_cfo, fb_tone_level, filing_word_count, header_tone
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno) for post-announcement drift and reversal
  3. How does release length relate to the number of non-GAAP adjustments?
    provided filing_word_count, text_words_to_nongaap_eps, text_words_to_gaap_eps, NG_PERSISTENCE.n_excluded_categories
    needs nothing external

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_ATTRIBUTIONS, SAT_CONTENT_DIVERGENCE, SAT_EXEC_DISPERSION, SAT_SUPERLATIVES

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
filing_word_countcount89%NONGAAP_A.filing_word_count · copyTotal word count of the release text
header_tonetext89%NONGAAP_A.header_tone · copyHeadline tone: positive / negative / mixed / neutral
text_words_to_gaap_epscount25%NONGAAP_A.text_words_to_gaap_eps · copyWord offset from the start of the release text to the first GAAP-EPS mention (words)
text_words_to_nongaap_epscount36%NONGAAP_A.text_words_to_nongaap_eps · copyWord offset from the start of the release text to the first non-GAAP-EPS mention (words)
word_count_declinecount89%NONGAAP_A.word_count_decline · copyOccurrences of "decline" in the filing text
word_count_decreasecount89%NONGAAP_A.word_count_decrease · copyOccurrences of "decrease" in the filing text
word_count_expectcount89%NONGAAP_A.word_count_expect · copyOccurrences of "expect" in the filing text
word_count_growcount89%NONGAAP_A.word_count_grow · copyOccurrences of "grow/growth" in the filing text
word_count_increasecount89%NONGAAP_A.word_count_increase · copyOccurrences of "increase" in the filing text
ceo_unique_shareratio9%SAT_CONTENT_DIVERGENCE.ceo_unique_share · copyCEO vs CFO dispersion, both quoted: Share of the CEO's content vocabulary that the CFO does not use. Mean about 0.89.
cfo_unique_shareratio9%SAT_CONTENT_DIVERGENCE.cfo_unique_share · copyCEO vs CFO dispersion, both quoted: Share of the CFO's content vocabulary that the CEO does not use. Mean about 0.82.
content_overlapratio9%SAT_CONTENT_DIVERGENCE.content_overlap · copyCEO vs CFO dispersion, both quoted: /A n B/ / min(/A/,/B/): the share of the SHORTER speaker's vocabulary that the other also uses.
n_words_ceocount9%SAT_CONTENT_DIVERGENCE.n_words_ceo · copyCEO vs CFO dispersion, both quoted: Count of distinct CEO content words after the stoplist, mean about 75.
n_words_cfocount9%SAT_CONTENT_DIVERGENCE.n_words_cfo · copyCEO vs CFO dispersion, both quoted: Count of distinct CFO content words after the stoplist, mean about 45.
numeric_overlapratio9%SAT_CONTENT_DIVERGENCE.numeric_overlap · copyCEO vs CFO dispersion, both quoted: Overlap of the numbers the two executives cite: do they quote the same figures? Null (about 8% of releases) when neither cites a figur
topic_overlapratio9%SAT_CONTENT_DIVERGENCE.topic_overlap · copyCEO vs CFO dispersion, both quoted: share of quotation topics the two executives share (0 = disjoint topics, 1 = identical)
word_overlapratio9%SAT_CONTENT_DIVERGENCE.word_overlap · copyCEO vs CFO dispersion, both quoted: Jaccard overlap of the CEO's and CFO's content vocabularies, /A n B/ / /A u B/, after removing function words and earnings boilerplate
attr_ceoratio9%SAT_EXEC_DISPERSION.attr_ceo · copyCEO vs CFO dispersion, both quoted: Modal cause the CEO credits the quarter to: internal (management action), external (market conditions), or both.
attr_cforatio9%SAT_EXEC_DISPERSION.attr_cfo · copyCEO vs CFO dispersion, both quoted: As attr_ceo for the CFO.
attribution_divergesratio9%SAT_EXEC_DISPERSION.attribution_diverges · copyCEO vs CFO dispersion, both quoted: 1 when attr_ceo and attr_cfo differ, i.e. the two executives credit the quarter to different causes. Correlates +0.54 with the LEVEL o
ceo_word_shareratio9%SAT_EXEC_DISPERSION.ceo_word_share · copyCEO vs CFO dispersion, both quoted: wc_ceo / (wc_ceo + wc_cfo): the CEO's share of the words spoken by the two executives. Mean about 0.60 -- CEO quotations average 209 c
fb_tone_ceoratio9%SAT_EXEC_DISPERSION.fb_tone_ceo · copyCEO vs CFO dispersion, both quoted: FinBERT tone of the CEO's quotations, P(positive) - P(negative), averaged within speaker. Range -1 to +1. Contextual rather than dicti
fb_tone_cforatio9%SAT_EXEC_DISPERSION.fb_tone_cfo · copyCEO vs CFO dispersion, both quoted: As fb_tone_ceo for the CFO.
fb_tone_gapratio9%SAT_EXEC_DISPERSION.fb_tone_gap · copyCEO vs CFO dispersion, both quoted: fb_tone_ceo minus fb_tone_cfo. Positive = the CEO is the more upbeat voice. Correlates about -0.81 with fb_tone_level, so it must neve
fb_tone_levelratio9%SAT_EXEC_DISPERSION.fb_tone_level · copyCEO vs CFO dispersion, both quoted: Mean of fb_tone_ceo and fb_tone_cfo: how positive the release sounds overall. This is the variable that is actually priced; the gap is
hedge_ceoratio9%SAT_EXEC_DISPERSION.hedge_ceo · copyCEO vs CFO dispersion, both quoted: Share of the CEO's words that are Loughran-McDonald weak-modal (hedging) words.
hedge_cforatio9%SAT_EXEC_DISPERSION.hedge_cfo · copyCEO vs CFO dispersion, both quoted: As hedge_ceo for the CFO.
hedge_gapratio9%SAT_EXEC_DISPERSION.hedge_gap · copyCEO vs CFO dispersion, both quoted: hedge_ceo minus hedge_cfo.
litig_ceoratio9%SAT_EXEC_DISPERSION.litig_ceo · copyCEO vs CFO dispersion, both quoted: Share of the CEO's words that are Loughran-McDonald litigious words.
litig_cforatio9%SAT_EXEC_DISPERSION.litig_cfo · copyCEO vs CFO dispersion, both quoted: As litig_ceo for the CFO.
llm_ceoratio9%SAT_EXEC_DISPERSION.llm_ceo · copyCEO vs CFO dispersion, both quoted: The extraction's own three-point sentiment for the CEO's quotations, mapped positive=+1, neutral/mixed=0, negative=-1, averaged within
llm_cforatio9%SAT_EXEC_DISPERSION.llm_cfo · copyCEO vs CFO dispersion, both quoted: As llm_ceo for the CFO.
llm_tone_gapratio9%SAT_EXEC_DISPERSION.llm_tone_gap · copyCEO vs CFO dispersion, both quoted: llm_ceo minus llm_cfo. Coarse: the two executives score identically in about 69% of releases, so most of its variation is rounding.
tone_ceoratio9%SAT_EXEC_DISPERSION.tone_ceo · copyCEO vs CFO dispersion, both quoted: Loughran-McDonald tone of the CEO's quotations, (positive-negative)/(positive+negative), averaged within speaker. Range -1 to +1. Null
tone_cforatio9%SAT_EXEC_DISPERSION.tone_cfo · copyCEO vs CFO dispersion, both quoted: As tone_ceo for the CFO. Lower fill (92%) because CFO quotations are shorter and more often contain no sentiment word at all.
tone_gapratio9%SAT_EXEC_DISPERSION.tone_gap · copyCEO vs CFO dispersion, both quoted: tone_ceo minus tone_cfo. Positive = the CEO is the more upbeat voice. NOT a clean measure of disagreement: it correlates about -0.7 wi
tonew_ceoratio9%SAT_EXEC_DISPERSION.tonew_ceo · copyCEO vs CFO dispersion, both quoted: Word-weighted CEO tone: quotations weighted by their length before averaging, so a long quotation counts for more than a one-line one.
tonew_cforatio9%SAT_EXEC_DISPERSION.tonew_cfo · copyCEO vs CFO dispersion, both quoted: As tonew_ceo for the CFO.
tonew_gapratio9%SAT_EXEC_DISPERSION.tonew_gap · copyCEO vs CFO dispersion, both quoted: tonew_ceo minus tonew_cfo, the word-weighted counterpart of tone_gap.
uncert_ceoratio9%SAT_EXEC_DISPERSION.uncert_ceo · copyCEO vs CFO dispersion, both quoted: Share of the CEO's words that are Loughran-McDonald uncertainty words. A rate, not a count, so quotation length does not drive it.
uncert_cforatio9%SAT_EXEC_DISPERSION.uncert_cfo · copyCEO vs CFO dispersion, both quoted: As uncert_ceo for the CFO.
uncert_gapratio9%SAT_EXEC_DISPERSION.uncert_gap · copyCEO vs CFO dispersion, both quoted: uncert_ceo minus uncert_cfo.
wc_ceocount9%SAT_EXEC_DISPERSION.wc_ceo · copyCEO vs CFO dispersion, both quoted: Total words across all CEO quotations in the release.
wc_cfocount9%SAT_EXEC_DISPERSION.wc_cfo · copyCEO vs CFO dispersion, both quoted: Total words across all CFO quotations in the release.
attr_ncount91%SAT_ATTRIBUTIONS · attributions_summaryCausal attributions in the release (0 when the release has none; from SAT_ATTRIBUTIONS)
attr_up_ncount86%SAT_ATTRIBUTIONS · attributions_summaryAttributions for favorable outcomes
attr_down_ncount86%SAT_ATTRIBUTIONS · attributions_summaryAttributions for unfavorable outcomes
attr_flat_ncount86%SAT_ATTRIBUTIONS · attributions_summaryAttributions for flat outcomes
attr_controllable_ncount86%SAT_ATTRIBUTIONS · attributions_summaryAttributions to high-controllability causes
attr_uncontrollable_ncount86%SAT_ATTRIBUTIONS · attributions_summaryAttributions to low-controllability causes
attr_self_serving_shareratio86%SAT_ATTRIBUTIONS · attributions_summaryShare of attributions that are self-serving (up & controllable, down & uncontrollable)
attr_first_causetext86%SAT_ATTRIBUTIONS · attributions_summaryVerbatim cause of the first attribution
sup_ncount91%SAT_SUPERLATIVES · superlatives_summarySuperlative / record phrases in the release (0 when none; from SAT_SUPERLATIVES)
sup_termstext74%SAT_SUPERLATIVES · superlatives_summaryDistinct superlative terms, '; '-joined
sup_metricstext74%SAT_SUPERLATIVES · superlatives_summaryMetrics the superlatives attach to, '; '-joined
20 

MODA_20_PRELIMINARY

The displaced preliminary release, full schema (prelim_)
150 columns

What it is about. The full schema of the preliminary or flash release that preceded the final one, under the prelim_ prefix, plus the gap between preliminary and final figures.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. How often do preliminary results differ from the final release, and in which direction?
    provided prelim_estimate_in_actual, prelim_gaap_eps, prelim_nongaap_eps, prelim_gap_gaap_eps, prelim_gap_nongaap_eps
    needs nothing external
  2. Do firms pre-announce more when they miss guidance?
    provided prelim_estimate_in_actual, prelim_gap_nongaap_eps, GUIDANCE.gq_guidance_nongaap_point, NG.nongaap_eps
    needs I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)
  3. Is the market reaction split between the preliminary and the final announcement?
    provided prelim_estimate_in_actual, prelim_estimate_in_actual_source, TIMING.press_release_date_corrected
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno) on both dates

Sources: NONGAAP_A, PANEL_SPINE_A, PRELIMINARY_A, PRELIMINARY_Q

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
prelim_estimate_in_actualflag89%NONGAAP_A.preliminary_estimate · copy1 = the ACTUAL release for this quarter calls its non-GAAP figure a preliminary estimate (3,301 cases). Different thing from the prelim_* block, which is a separate, earl
prelim_estimate_in_actual_sourcetext89%NONGAAP_A.preliminary_estimate_source · copyHow prelim_estimate_in_actual was set: run1_flags (extractor flag) or header_rule (headline wording)
prelim_adj_01_rent_lease$/share4%PRELIMINARY_A.adj_01_rent_lease · prefix[preliminary release] Rent/lease expense excl. per share
prelim_adj_02_net_interest$/share4%PRELIMINARY_A.adj_02_net_interest · prefix[preliminary release] Net interest expense excl. per share
prelim_adj_03_rd$/share4%PRELIMINARY_A.adj_03_rd · prefix[preliminary release] R&D expense excl. per share
prelim_adj_04_sbc$/share4%PRELIMINARY_A.adj_04_sbc · prefix[preliminary release] Stock-based compensation per share
prelim_adj_04_sbc_pseudo$/share4%PRELIMINARY_A.adj_04_sbc_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_04_sbc used in the pseudo non-GAAP
prelim_adj_05a_amort_acq_intang$/share4%PRELIMINARY_A.adj_05a_amort_acq_intang · prefix[preliminary release] Amortization of acquired intangibles per share
prelim_adj_05a_amort_acq_intang_pseudo$/share4%PRELIMINARY_A.adj_05a_amort_acq_intang_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_05a_amort_acq_intang used in the pseudo non-GAAP
prelim_adj_05b_da_other$/share4%PRELIMINARY_A.adj_05b_da_other · prefix[preliminary release] Other depreciation and amortization per share
prelim_adj_05c_amort_dev_tech$/share4%PRELIMINARY_A.adj_05c_amort_dev_tech · prefix[preliminary release] Amortization of developed/acquired technology (COGS-side) per share
prelim_adj_05c_amort_dev_tech_pseudo$/share4%PRELIMINARY_A.adj_05c_amort_dev_tech_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_05c_amort_dev_tech used in the pseudo non-GAAP
prelim_adj_06_genuine$/share4%PRELIMINARY_A.adj_06_genuine · prefix[preliminary release] The genuinely-labelled part of the 'other' bucket, per diluted share (US$).
prelim_adj_06_others$/share4%PRELIMINARY_A.adj_06_others · prefix[preliminary release] Others/unidentified + undefined residual per share (unidentified reconciling item, not a rounding artifact; rounding-level residual goes to adjust_r
prelim_adj_06_others_is_residual$/share4%PRELIMINARY_A.adj_06_others_is_residual · prefix[preliminary release] 1=adj_06_others absorbs residual to close per-share EPS gap
prelim_adj_06_others_m_is_residual$/share4%PRELIMINARY_A.adj_06_others_m_is_residual · prefix[preliminary release] 1=adj_06_others_m absorbs residual to close total-dollar income gap
prelim_adj_06_others_rounding$/share4%PRELIMINARY_A.adj_06_others_rounding · prefix[preliminary release] 1=the adj_06_others catch-all is a rounding/residual/balancing PLUG, not a substantive other adjustment (set when a residual was absorbed into it OR
prelim_adj_06_plug$/share0%PRELIMINARY_A.adj_06_plug · prefix[preliminary release] BALANCING PLUG, per diluted share (US$): the residual that closes sum(adjustments) = non-GAAP EPS - GAAP EPS. Closure is guaranteed by construction,
prelim_adj_07_pension$/share4%PRELIMINARY_A.adj_07_pension · prefix[preliminary release] Pension/post-retirement excl. per share
prelim_adj_07_pension_pseudo$/share4%PRELIMINARY_A.adj_07_pension_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_07_pension used in the pseudo non-GAAP
prelim_adj_08_severance$/share4%PRELIMINARY_A.adj_08_severance · prefix[preliminary release] Severance/termination costs per share
prelim_adj_08_severance_pseudo$/share4%PRELIMINARY_A.adj_08_severance_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_08_severance used in the pseudo non-GAAP
prelim_adj_09_realized_gains$/share4%PRELIMINARY_A.adj_09_realized_gains · prefix[preliminary release] Realized gains/losses on investments per share
prelim_adj_09_realized_gains_pseudo$/share4%PRELIMINARY_A.adj_09_realized_gains_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_09_realized_gains used in the pseudo non-GAAP
prelim_adj_10_inventory_writedown$/share4%PRELIMINARY_A.adj_10_inventory_writedown · prefix[preliminary release] Inventory write-downs per share
prelim_adj_10_inventory_writedown_pseudo$/share4%PRELIMINARY_A.adj_10_inventory_writedown_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_10_inventory_writedown used in the pseudo non-GAAP
prelim_adj_10b_inventory_method$/share4%PRELIMINARY_A.adj_10b_inventory_method · prefix[preliminary release] Inventory cost-flow method (LIFO/FIFO) effect per share
prelim_adj_10b_inventory_method_pseudo$/share4%PRELIMINARY_A.adj_10b_inventory_method_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_10b_inventory_method used in the pseudo non-GAAP
prelim_adj_11_tax_impact$/share4%PRELIMINARY_A.adj_11_tax_impact · prefix[preliminary release] Tax impact of non-GAAP excl. per share
prelim_adj_12_startup$/share4%PRELIMINARY_A.adj_12_startup · prefix[preliminary release] New initiatives/start-up costs per share
prelim_adj_12_startup_pseudo$/share4%PRELIMINARY_A.adj_12_startup_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_12_startup used in the pseudo non-GAAP
prelim_adj_13_equity_income$/share4%PRELIMINARY_A.adj_13_equity_income · prefix[preliminary release] Equity income unconsolidated subs per share
prelim_adj_13_equity_income_pseudo$/share4%PRELIMINARY_A.adj_13_equity_income_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_13_equity_income used in the pseudo non-GAAP
prelim_adj_14_impair_ppe_finite$/share4%PRELIMINARY_A.adj_14_impair_ppe_finite · prefix[preliminary release] Impairment PP&E finite-lived intang per share
prelim_adj_14_impair_ppe_finite_pseudo$/share4%PRELIMINARY_A.adj_14_impair_ppe_finite_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_14_impair_ppe_finite used in the pseudo non-GAAP
prelim_adj_14b_goodwill_impairment$/share4%PRELIMINARY_A.adj_14b_goodwill_impairment · prefix[preliminary release] Goodwill impairment/write-down per share
prelim_adj_14b_goodwill_impairment_pseudo$/share4%PRELIMINARY_A.adj_14b_goodwill_impairment_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_14b_goodwill_impairment used in the pseudo non-GAAP
prelim_adj_14c_indef_intangible$/share4%PRELIMINARY_A.adj_14c_indef_intangible · prefix[preliminary release] Indefinite-lived intangible impairment per share
prelim_adj_14c_indef_intangible_pseudo$/share4%PRELIMINARY_A.adj_14c_indef_intangible_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_14c_indef_intangible used in the pseudo non-GAAP
prelim_adj_15_fx$/share4%PRELIMINARY_A.adj_15_fx · prefix[preliminary release] Foreign currency gains/losses per share
prelim_adj_15_fx_pseudo$/share4%PRELIMINARY_A.adj_15_fx_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_15_fx used in the pseudo non-GAAP
prelim_adj_16_debt_extinguishment$/share4%PRELIMINARY_A.adj_16_debt_extinguishment · prefix[preliminary release] Debt extinguishment/refinancing per share
prelim_adj_16_debt_extinguishment_pseudo$/share4%PRELIMINARY_A.adj_16_debt_extinguishment_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_16_debt_extinguishment used in the pseudo non-GAAP
prelim_adj_17_litigation$/share4%PRELIMINARY_A.adj_17_litigation · prefix[preliminary release] Litigation/settlement costs per share
prelim_adj_17_litigation_pseudo$/share4%PRELIMINARY_A.adj_17_litigation_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_17_litigation used in the pseudo non-GAAP
prelim_adj_18_fair_value$/share4%PRELIMINARY_A.adj_18_fair_value · prefix[preliminary release] Unrealized fair value adjustments per share
prelim_adj_18_fair_value_pseudo$/share4%PRELIMINARY_A.adj_18_fair_value_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_18_fair_value used in the pseudo non-GAAP
prelim_adj_19_acquisition$/share4%PRELIMINARY_A.adj_19_acquisition · prefix[preliminary release] Merger/acquisition costs per share
prelim_adj_19_acquisition_pseudo$/share4%PRELIMINARY_A.adj_19_acquisition_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_19_acquisition used in the pseudo non-GAAP
prelim_adj_20_ppe_sale$/share4%PRELIMINARY_A.adj_20_ppe_sale · prefix[preliminary release] Gains/losses on sale of PP&E per share
prelim_adj_20_ppe_sale_pseudo$/share4%PRELIMINARY_A.adj_20_ppe_sale_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_20_ppe_sale used in the pseudo non-GAAP
prelim_adj_21_tax_accounting$/share4%PRELIMINARY_A.adj_21_tax_accounting · prefix[preliminary release] Tax/accounting rule changes per share
prelim_adj_21_tax_accounting_pseudo$/share4%PRELIMINARY_A.adj_21_tax_accounting_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_21_tax_accounting used in the pseudo non-GAAP
prelim_adj_22_restructuring$/share4%PRELIMINARY_A.adj_22_restructuring · prefix[preliminary release] Restructuring charges per share
prelim_adj_22_restructuring_pseudo$/share4%PRELIMINARY_A.adj_22_restructuring_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_22_restructuring used in the pseudo non-GAAP
prelim_adj_23_discontinued$/share4%PRELIMINARY_A.adj_23_discontinued · prefix[preliminary release] Discontinued operations per share
prelim_adj_23_discontinued_pseudo$/share4%PRELIMINARY_A.adj_23_discontinued_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_23_discontinued used in the pseudo non-GAAP
prelim_adj_24_integration$/share4%PRELIMINARY_A.adj_24_integration · prefix[preliminary release] Post-acquisition integration costs per share
prelim_adj_24_integration_pseudo$/share4%PRELIMINARY_A.adj_24_integration_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_24_integration used in the pseudo non-GAAP
prelim_adj_25_covid$/share4%PRELIMINARY_A.adj_25_covid · prefix[preliminary release] COVID-19/pandemic charges per share
prelim_adj_25_covid_pseudo$/share4%PRELIMINARY_A.adj_25_covid_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_25_covid used in the pseudo non-GAAP
prelim_adj_26_unrealized_invst$/share4%PRELIMINARY_A.adj_26_unrealized_invst · prefix[preliminary release] Unrealized investment gains/losses per share
prelim_adj_26_unrealized_invst_pseudo$/share4%PRELIMINARY_A.adj_26_unrealized_invst_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_26_unrealized_invst used in the pseudo non-GAAP
prelim_adj_27_ipr_d$/share4%PRELIMINARY_A.adj_27_ipr_d · prefix[preliminary release] Acquired in-process R&D write-off per share
prelim_adj_27_ipr_d_pseudo$/share4%PRELIMINARY_A.adj_27_ipr_d_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_27_ipr_d used in the pseudo non-GAAP
prelim_adj_28_natural_disaster$/share4%PRELIMINARY_A.adj_28_natural_disaster · prefix[preliminary release] Natural disaster/catastrophe charges per share
prelim_adj_28_natural_disaster_pseudo$/share4%PRELIMINARY_A.adj_28_natural_disaster_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_28_natural_disaster used in the pseudo non-GAAP
prelim_adj_29_supply_chain$/share4%PRELIMINARY_A.adj_29_supply_chain · prefix[preliminary release] Supply chain disruption costs per share
prelim_adj_29_supply_chain_pseudo$/share4%PRELIMINARY_A.adj_29_supply_chain_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_29_supply_chain used in the pseudo non-GAAP
prelim_adj_30_ai_transform$/share4%PRELIMINARY_A.adj_30_ai_transform · prefix[preliminary release] AI/digital transformation costs per share
prelim_adj_30_ai_transform_pseudo$/share4%PRELIMINARY_A.adj_30_ai_transform_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_30_ai_transform used in the pseudo non-GAAP
prelim_adj_31_exec_transition$/share4%PRELIMINARY_A.adj_31_exec_transition · prefix[preliminary release] Executive/C-suite transition costs per share
prelim_adj_31_exec_transition_pseudo$/share4%PRELIMINARY_A.adj_31_exec_transition_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_31_exec_transition used in the pseudo non-GAAP
prelim_adj_32_debt_issuance$/share4%PRELIMINARY_A.adj_32_debt_issuance · prefix[preliminary release] Debt issuance/financing fees per share
prelim_adj_32_debt_issuance_pseudo$/share4%PRELIMINARY_A.adj_32_debt_issuance_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_32_debt_issuance used in the pseudo non-GAAP
prelim_adj_33_crypto$/share4%PRELIMINARY_A.adj_33_crypto · prefix[preliminary release] Digital-asset impairment (pre-ASU 2023-08) / fair-value remeasurement (ASU 2023-08) per share
prelim_adj_33_crypto_pseudo$/share4%PRELIMINARY_A.adj_33_crypto_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_33_crypto used in the pseudo non-GAAP
prelim_adj_34_geopolitical$/share4%PRELIMINARY_A.adj_34_geopolitical · prefix[preliminary release] Geopolitical/sanctions/war charges per share
prelim_adj_34_geopolitical_pseudo$/share4%PRELIMINARY_A.adj_34_geopolitical_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_34_geopolitical used in the pseudo non-GAAP
prelim_adj_35_fraud$/share4%PRELIMINARY_A.adj_35_fraud · prefix[preliminary release] Fraud investigation/remediation costs per share
prelim_adj_35_fraud_pseudo$/share4%PRELIMINARY_A.adj_35_fraud_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_35_fraud used in the pseudo non-GAAP
prelim_adj_36_dei$/share4%PRELIMINARY_A.adj_36_dei · prefix[preliminary release] DEI/diversity initiative costs per share
prelim_adj_36_dei_pseudo$/share4%PRELIMINARY_A.adj_36_dei_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_36_dei used in the pseudo non-GAAP
prelim_adj_37_climate_esg$/share4%PRELIMINARY_A.adj_37_climate_esg · prefix[preliminary release] Climate transition/ESG (E+G pillar) compliance per share
prelim_adj_37_climate_esg_pseudo$/share4%PRELIMINARY_A.adj_37_climate_esg_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_37_climate_esg used in the pseudo non-GAAP
prelim_adj_38_ai_equity_gains$/share4%PRELIMINARY_A.adj_38_ai_equity_gains · prefix[preliminary release] Gains/losses on AI-company equity stakes per share
prelim_adj_38_ai_equity_gains_pseudo$/share4%PRELIMINARY_A.adj_38_ai_equity_gains_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_38_ai_equity_gains used in the pseudo non-GAAP
prelim_adj_39_tariffs$/share4%PRELIMINARY_A.adj_39_tariffs · prefix[preliminary release] Tariff/trade-policy/duty costs per share
prelim_adj_39_tariffs_pseudo$/share4%PRELIMINARY_A.adj_39_tariffs_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_39_tariffs used in the pseudo non-GAAP
prelim_adj_40_cyber$/share4%PRELIMINARY_A.adj_40_cyber · prefix[preliminary release] Cybersecurity-incident/ransomware/breach costs per share
prelim_adj_40_cyber_pseudo$/share4%PRELIMINARY_A.adj_40_cyber_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_40_cyber used in the pseudo non-GAAP
prelim_adj_41_commodity$/share4%PRELIMINARY_A.adj_41_commodity · prefix[preliminary release] Commodity/energy-price impacts per share
prelim_adj_41_commodity_pseudo$/share4%PRELIMINARY_A.adj_41_commodity_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_41_commodity used in the pseudo non-GAAP
prelim_adj_44_credit_loss$/share4%PRELIMINARY_A.adj_44_credit_loss · prefix[preliminary release] Bad-debt/credit-loss provision (CECL) per share
prelim_adj_44_credit_loss_pseudo$/share4%PRELIMINARY_A.adj_44_credit_loss_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_44_credit_loss used in the pseudo non-GAAP
prelim_adj_45_charitable$/share4%PRELIMINARY_A.adj_45_charitable · prefix[preliminary release] Charitable/philanthropic donations, foundation/relief giving per share
prelim_adj_45_charitable_pseudo$/share4%PRELIMINARY_A.adj_45_charitable_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_45_charitable used in the pseudo non-GAAP
prelim_adj_46_noncontrolling_interest$/share4%PRELIMINARY_A.adj_46_noncontrolling_interest · prefix[preliminary release] Non-controlling/minority-interest adjustment per share
prelim_adj_46_noncontrolling_interest_pseudo$/share4%PRELIMINARY_A.adj_46_noncontrolling_interest_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_46_noncontrolling_interest used in the pseudo non-GAAP
prelim_adj_47_preferred_dividends$/share4%PRELIMINARY_A.adj_47_preferred_dividends · prefix[preliminary release] Preferred/participating-security dividend adjustment (EPS-to-common bridge) per share
prelim_adj_47_preferred_dividends_pseudo$/share4%PRELIMINARY_A.adj_47_preferred_dividends_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_47_preferred_dividends used in the pseudo non-GAAP
prelim_adj_48_warrant_liability$/share4%PRELIMINARY_A.adj_48_warrant_liability · prefix[preliminary release] Warrant-liability fair-value remeasurement (SPAC/de-SPAC; post-2018) per share
prelim_adj_48_warrant_liability_pseudo$/share4%PRELIMINARY_A.adj_48_warrant_liability_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_48_warrant_liability used in the pseudo non-GAAP
prelim_adj_49_re_depreciation$/share4%PRELIMINARY_A.adj_49_re_depreciation · prefix[preliminary release] Real-estate depreciation & amortization add-back (REIT FFO/AFFO/FAD) per share
prelim_adj_50_divestiture_gain$/share4%PRELIMINARY_A.adj_50_divestiture_gain · prefix[preliminary release] Gain/loss on sale of business or divestiture per share
prelim_adj_50_divestiture_gain_pseudo$/share4%PRELIMINARY_A.adj_50_divestiture_gain_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_50_divestiture_gain used in the pseudo non-GAAP
prelim_adj_51_re_rent_adj$/share4%PRELIMINARY_A.adj_51_re_rent_adj · prefix[preliminary release] REIT non-cash rent timing (straight-line/deferred rent) per share
prelim_adj_51_re_rent_adj_pseudo$/share4%PRELIMINARY_A.adj_51_re_rent_adj_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_51_re_rent_adj used in the pseudo non-GAAP
prelim_adj_52_maint_capex$/share4%PRELIMINARY_A.adj_52_maint_capex · prefix[preliminary release] Recurring/maintenance capex (AFFO/FAD) per share
prelim_adj_53_acquired_deferred_rev$/share4%PRELIMINARY_A.adj_53_acquired_deferred_rev · prefix[preliminary release] Acquired deferred-revenue fair-value (purchase accounting) per share
prelim_adj_53_acquired_deferred_rev_pseudo$/share4%PRELIMINARY_A.adj_53_acquired_deferred_rev_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_53_acquired_deferred_rev used in the pseudo non-GAAP
prelim_adj_54_environmental$/share4%PRELIMINARY_A.adj_54_environmental · prefix[preliminary release] Environmental remediation/cleanup per share
prelim_adj_54_environmental_pseudo$/share4%PRELIMINARY_A.adj_54_environmental_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_54_environmental used in the pseudo non-GAAP
prelim_adj_55_govt_grant$/share4%PRELIMINARY_A.adj_55_govt_grant · prefix[preliminary release] Government grants/ERC/subsidies per share
prelim_adj_55_govt_grant_pseudo$/share4%PRELIMINARY_A.adj_55_govt_grant_pseudo · prefix[preliminary release] Standardized pretax per-share adjustment for adj_55_govt_grant used in the pseudo non-GAAP
prelim_adjustments_gross_ps$/share4%PRELIMINARY_A.adjustments_gross_ps · prefix[preliminary release] Total adjustments on a GROSS (pre-tax) basis, per share = sum of adj_*_gross (excludes the tax line)
prelim_adjustments_net_ps$/share4%PRELIMINARY_A.adjustments_net_ps · prefix[preliminary release] Total adjustments on a NET (after-tax) basis, per share = sum of adj_*_net
prelim_consensus_mentionedflag4%PRELIMINARY_A.consensus_mentioned · prefix[preliminary release] 1=press release explicitly compares EPS to an analyst consensus/estimate
prelim_ebitda_labeltext1%PRELIMINARY_A.ebitda_label · prefix[preliminary release] Exact label of EBITDA measure (e.g. Adjusted EBITDA, EBITDAX)
prelim_ebitda_m$M1%PRELIMINARY_A.ebitda_m · prefix[preliminary release] Primary EBITDA measure for most recent period ($M)
prelim_fcf_m$M0%PRELIMINARY_A.fcf_m · prefix[preliminary release] Free cash flow ($M; typically non-GAAP: operating CF minus capex)
prelim_gaap_eps$/share4%PRELIMINARY_A.gaap_eps · prefix[preliminary release] GAAP diluted EPS reported in the preliminary release; the actual quarter's value is NG.gaap_eps on the same cik+datadate, difference in prelim_gap_g
prelim_gaap_eps_basic$/share2%PRELIMINARY_A.gaap_eps_basic · prefix[preliminary release] GAAP basic EPS as reported
prelim_gaap_net_income$M4%PRELIMINARY_A.gaap_net_income · prefix[preliminary release] GAAP net income ($M)
prelim_has_income_stmtflag4%PRELIMINARY_A.has_income_stmt · prefix[preliminary release] 1=filing includes an income statement (statement of operations/income)
prelim_header_describes_performanceflag4%PRELIMINARY_A.header_describes_performance · prefix[preliminary release] 1=headline characterizes performance (not just announces results)
prelim_header_performance_typetext4%PRELIMINARY_A.header_performance_type · prefix[preliminary release] Primary performance type in headline: revenue/earnings/growth/record/margin/cash_flow/loss/guidance/operational/mixed/none
prelim_header_texttext4%PRELIMINARY_A.header_text · prefix[preliminary release] Verbatim press release headline/title
prelim_header_tonetext4%PRELIMINARY_A.header_tone · prefix[preliminary release] Headline tone: positive / negative / mixed / neutral
prelim_nongaap_eps$/share2%PRELIMINARY_A.nongaap_eps · prefix[preliminary release] Non-GAAP diluted EPS reported in the preliminary release; the actual is NG.nongaap_eps on the same cik+datadate, difference in prelim_gap_nongaap_ep
prelim_nongaap_eps_label$/share2%PRELIMINARY_A.nongaap_eps_label · prefix[preliminary release] Verbatim non-GAAP EPS row label from filing
prelim_nongaap_eps_type$/share2%PRELIMINARY_A.nongaap_eps_type · prefix[preliminary release] Type of the headline non-GAAP EPS, from its verbatim label (deterministic; classifies the value, never changes it): non_gaap (label says "non-GAAP")
prelim_nongaap_net_income$M1%PRELIMINARY_A.nongaap_net_income · prefix[preliminary release] Non-GAAP net income ($M) — always imputed (see nongaap_eps_source)
prelim_operating_income_m$M2%PRELIMINARY_A.operating_income_m · prefix[preliminary release] GAAP operating income / operating earnings for most recent period ($M; revenue minus operating expenses, before interest & taxes); read from the sam
prelim_period_enddate4%PRELIMINARY_A.period_end · prefix[preliminary release] Fiscal period end date (YYYY-MM-DD), from the most-recent net-income column header
prelim_period_typetext4%PRELIMINARY_A.period_type · prefix[preliminary release] Q=quarterly A=annual
prelim_preliminary_estimatetext4%PRELIMINARY_A.preliminary_estimate · prefix[preliminary release] Flag indicating whether the non-GAAP figure is a preliminary estimate, with 1 for yes and 0 for no.
prelim_preliminary_estimate_sourcetext4%PRELIMINARY_A.preliminary_estimate_source · prefix[preliminary release] Source of preliminary non-GAAP estimate, indicating rule or flag used to derive the value.
prelim_recon_noneflag4%PRELIMINARY_A.recon_none · prefix[preliminary release] 1=no reconciliation table (no period extracted); see llm_status
prelim_revenue_m$M3%PRELIMINARY_A.revenue_m · prefix[preliminary release] Total revenue/net sales for most recent period ($M)
prelim_gap_gaap_eps$/share4%PRELIMINARY_Q · prelim_gapActual GAAP EPS minus preliminary GAAP EPS
prelim_gap_nongaap_eps$/share2%PRELIMINARY_Q · prelim_gapActual non-GAAP EPS minus preliminary non-GAAP EPS
prelim_days_before_actualdays3%PRELIMINARY_Q · prelim_gapActual release date minus preliminary release date
21 

MODA_21_KPI

Operational KPIs, count + 10 slots
232 columns

What it is about. Key performance indicators: the names management flags as key metrics, and the reported operational KPI values from Pass 3 (subscribers, store counts, backlog, occupancy, volumes, headcount, airline unit metrics, bank and insurance ratios, and more: 135 standardized codes in 26 families, the frequent ones as their own columns) with units and verbatim labels.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Do operational KPIs explain the non-GAAP premium beyond financial measures?
    provided opkpi_n, opkpi_subscribers, opkpi_backlog, opkpi_store_count, GAAP_TO_NG.total_exclusions
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno); I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)
  2. Which industries disclose the most operational metrics, and does disclosure change after bad quarters?
    provided opkpi_n, opkpi_codes, kpi_n, kpi_managers_disclosed, GAAP.gaap_eps
    needs industry codes from Compustat fundamentals (size, book-to-market, leverage, industry; from IDENTIFIERS.gvkey)
  3. Do firms drop a KPI from the release when it deteriorates?
    provided opkpi_codes, opkpi_comparable_sales, opkpi_occupancy, opkpi_net_retention
    needs nothing external; needs the firm's own prior quarters in this database

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_KPI, SAT_OPERATIONAL_KPIS, SAT_RECOVERED_FILING

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
kpi_managers_disclosedflag89%SAT_RECOVERED_FILING.kpi_managers_disclosed · copy1 = management flags at least one metric as a key performance indicator in the release (frozen prompt); names in kpi_01..kpi_10
kpi_ncount29%SAT_KPI · kpi_slotsNumber of KPI NAMES management flagged as key metrics (frozen prompt; names only, values in opkpi_* / measures)
kpi_01text29%SAT_KPI · kpi_slotsFlagged KPI name #1 (in disclosure order)
kpi_02text17%SAT_KPI · kpi_slotsFlagged KPI name #2 (in disclosure order)
kpi_03text10%SAT_KPI · kpi_slotsFlagged KPI name #3 (in disclosure order)
kpi_04text6%SAT_KPI · kpi_slotsFlagged KPI name #4 (in disclosure order)
kpi_05text3%SAT_KPI · kpi_slotsFlagged KPI name #5 (in disclosure order)
kpi_06text2%SAT_KPI · kpi_slotsFlagged KPI name #6 (in disclosure order)
kpi_07text1%SAT_KPI · kpi_slotsFlagged KPI name #7 (in disclosure order)
kpi_08text1%SAT_KPI · kpi_slotsFlagged KPI name #8 (in disclosure order)
kpi_09text0%SAT_KPI · kpi_slotsFlagged KPI name #9 (in disclosure order)
kpi_10text0%SAT_KPI · kpi_slotsFlagged KPI name #10 (in disclosure order)
opkpi_ncount59%SAT_OPERATIONAL_KPIS · opkpi_slotsNumber of REPORTED operational KPIs with a numeric value in the release (Pass 3 Task G)
opkpi_n_employeescount11%SAT_OPERATIONAL_KPIS · opkpi_slotsTotal employee / headcount figure stated in the release (Pass 3)
opkpi_codestext59%SAT_OPERATIONAL_KPIS · opkpi_slotsDistinct standardized KPI codes reported, in release order (kpi_std: deterministic label rules over the Pass 3 taxonomy; 'other' = firm-specific)
opkpi_familiestext59%SAT_OPERATIONAL_KPIS · opkpi_slotsDistinct KPI families reported (airline, lodging, retail, bank, insurance, asset_mgmt, energy, subscription, industrial, transport, healthcare, general)
opkpi_labelstext59%SAT_OPERATIONAL_KPIS · opkpi_slotsVerbatim KPI labels of the release, '; '-joined in the order of opkpi_codes (per-code label columns were dropped as redundant, 96% contained here)
opkpi_units_volumenumeric12%SAT_OPERATIONAL_KPIS · opkpi_slotsUnits / volume sold, shipped or produced: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family industrial, 124,394 recor
opkpi_units_volume_unittext12%SAT_OPERATIONAL_KPIS · opkpi_slotsUnits / volume sold, shipped or produced: unit as printed (millions / thousands / % / count / days / ...)
opkpi_store_countnumeric11%SAT_OPERATIONAL_KPIS · opkpi_slotsStore / restaurant / location count: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family retail, 65,954 records) — valu
opkpi_comparable_salesnumeric6%SAT_OPERATIONAL_KPIS · opkpi_slotsComparable / same-store sales (growth): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family retail, 60,585 records) — v
opkpi_comparable_sales_unittext6%SAT_OPERATIONAL_KPIS · opkpi_slotsComparable / same-store sales (growth): unit as printed (millions / thousands / % / count / days / ...)
opkpi_production_volumenumeric4%SAT_OPERATIONAL_KPIS · opkpi_slotsProduction volume (boe, mcf, barrels, ounces, tons): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family energy, 57,328
opkpi_production_volume_unittext4%SAT_OPERATIONAL_KPIS · opkpi_slotsProduction volume (boe, mcf, barrels, ounces, tons): unit as printed (millions / thousands / % / count / days / ...)
opkpi_customersnumeric9%SAT_OPERATIONAL_KPIS · opkpi_slotsCustomer / client / account count: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 56,778 records) —
opkpi_customers_unittext9%SAT_OPERATIONAL_KPIS · opkpi_slotsCustomer / client / account count: unit as printed (millions / thousands / % / count / days / ...)
opkpi_headcountnumeric11%SAT_OPERATIONAL_KPIS · opkpi_slotsEmployee headcount: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family general, 53,583 records) — value as printed in
opkpi_backlognumeric7%SAT_OPERATIONAL_KPIS · opkpi_slotsBacklog / remaining performance obligation: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family industrial, 41,017 reco
opkpi_backlog_unittext7%SAT_OPERATIONAL_KPIS · opkpi_slotsBacklog / remaining performance obligation: unit as printed (millions / thousands / % / count / days / ...)
opkpi_ordersnumeric6%SAT_OPERATIONAL_KPIS · opkpi_slotsOrders / bookings: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family industrial, 39,808 records) — value AS PRINTED,
opkpi_orders_unittext6%SAT_OPERATIONAL_KPIS · opkpi_slotsOrders / bookings: unit as printed (millions / thousands / % / count / days / ...)
opkpi_subscribersnumeric3%SAT_OPERATIONAL_KPIS · opkpi_slotsSubscribers / paid members: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 34,136 records) — value A
opkpi_subscribers_unittext3%SAT_OPERATIONAL_KPIS · opkpi_slotsSubscribers / paid members: unit as printed (millions / thousands / % / count / days / ...)
opkpi_occupancynumeric3%SAT_OPERATIONAL_KPIS · opkpi_slotsOccupancy rate: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family lodging, 28,934 records) — value AS PRINTED, units
opkpi_occupancy_unittext3%SAT_OPERATIONAL_KPIS · opkpi_slotsOccupancy rate: unit as printed (millions / thousands / % / count / days / ...)
opkpi_square_feetnumeric2%SAT_OPERATIONAL_KPIS · opkpi_slotsSquare feet / footage: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family real_estate, 17,929 records) — value AS PRIN
opkpi_square_feet_unittext2%SAT_OPERATIONAL_KPIS · opkpi_slotsSquare feet / footage: unit as printed (millions / thousands / % / count / days / ...)
opkpi_aumnumeric2%SAT_OPERATIONAL_KPIS · opkpi_slotsAssets under management / administration: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family asset_mgmt, 16,419 record
opkpi_aum_unittext2%SAT_OPERATIONAL_KPIS · opkpi_slotsAssets under management / administration: unit as printed (millions / thousands / % / count / days / ...)
opkpi_atmsnumeric3%SAT_OPERATIONAL_KPIS · opkpi_slotsAtms (bank): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 15,283 records) — value as printed in the releas
opkpi_propertiesnumeric2%SAT_OPERATIONAL_KPIS · opkpi_slotsProperties (real_estate): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family real_estate, 12,523 records) — value AS P
opkpi_properties_unittext2%SAT_OPERATIONAL_KPIS · opkpi_slotsProperties (real_estate): unit as printed (millions / thousands / % / count / days / ...)
opkpi_utilizationnumeric2%SAT_OPERATIONAL_KPIS · opkpi_slotsUtilization rate: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family industrial, 12,270 records) — value AS PRINTED, u
opkpi_utilization_unittext2%SAT_OPERATIONAL_KPIS · opkpi_slotsUtilization rate: unit as printed (millions / thousands / % / count / days / ...)
opkpi_market_sharenumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsMarket share: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family general, 9,182 records) — value as printed in the rel
opkpi_npa_rationumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsNon-performing assets or loans ratio: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 8,396 records) — value
opkpi_npa_ratio_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsNon-performing assets or loans ratio: unit as printed (millions / thousands / % / count / days / ...)
opkpi_megawattsnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsMegawatts or mwh (capacity / generation): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family utility, 7,985 records) —
opkpi_megawatts_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsMegawatts or mwh (capacity / generation): unit as printed (millions / thousands / % / count / days / ...)
opkpi_combined_rationumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsCombined ratio: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family insurance, 7,519 records) — value as printed in the
opkpi_wellsnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsWells (energy): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family energy, 7,241 records) — value AS PRINTED, units mi
opkpi_wells_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsWells (energy): unit as printed (millions / thousands / % / count / days / ...)
opkpi_revparnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsRevenue per available room (revpar): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family lodging, 6,975 records) — valu
opkpi_revpar_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsRevenue per available room (revpar): unit as printed (millions / thousands / % / count / days / ...)
opkpi_arrnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsAnnual recurring revenue / acv: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 5,964 records) — valu
opkpi_arr_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsAnnual recurring revenue / acv: unit as printed (millions / thousands / % / count / days / ...)
opkpi_churnnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsChurn / attrition rate: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 5,888 records) — value as pri
opkpi_loansnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsTotal loans / originations: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 5,808 records) — value AS PRINTED
opkpi_loans_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsTotal loans / originations: unit as printed (millions / thousands / % / count / days / ...)
opkpi_net_interest_marginnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsNet interest margin: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 5,805 records) — value as printed in the
opkpi_dsonumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsDays sales outstanding: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family industrial, 5,588 records) — value as print
opkpi_tractorsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsTractors (transport): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family transport, 5,476 records) — value AS PRINTED,
opkpi_tractors_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsTractors (transport): unit as printed (millions / thousands / % / count / days / ...)
opkpi_access_linesnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsAccess lines (subscription): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 5,259 records) — value A
opkpi_access_lines_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsAccess lines (subscription): unit as printed (millions / thousands / % / count / days / ...)
opkpi_arpunumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage revenue per user / unit / subscriber: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 5,167 r
opkpi_arpu_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage revenue per user / unit / subscriber: unit as printed (millions / thousands / % / count / days / ...)
opkpi_franchised_unitsnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsFranchised units (retail): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family retail, 5,147 records) — value AS PRINTE
opkpi_franchised_units_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsFranchised units (retail): unit as printed (millions / thousands / % / count / days / ...)
opkpi_enrollmentnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsEnrollment (education): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family education, 5,040 records) — value AS PRINTE
opkpi_enrollment_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsEnrollment (education): unit as printed (millions / thousands / % / count / days / ...)
opkpi_adrnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage daily rate: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family lodging, 4,989 records) — value AS PRINTED, uni
opkpi_adr_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage daily rate: unit as printed (millions / thousands / % / count / days / ...)
opkpi_active_usersnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsActive users (mau/dau/active accounts): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 4,987 records
opkpi_active_users_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsActive users (mau/dau/active accounts): unit as printed (millions / thousands / % / count / days / ...)
opkpi_capital_rationumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsRegulatory capital ratio (tier 1, cet1, leverage, risk-based): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank
opkpi_capital_ratio_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsRegulatory capital ratio (tier 1, cet1, leverage, risk-based): unit as printed (millions / thousands / % / count / days / ...)
opkpi_book_to_billnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsBook-to-bill ratio: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family industrial, 4,717 records) — value AS PRINTED,
opkpi_book_to_bill_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsBook-to-bill ratio: unit as printed (millions / thousands / % / count / days / ...)
opkpi_roenumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsReturn on (average / tangible common) equity: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 4,631 records)
opkpi_net_addsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsNet (or gross) subscriber / customer additions: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 4,537
opkpi_net_adds_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsNet (or gross) subscriber / customer additions: unit as printed (millions / thousands / % / count / days / ...)
opkpi_patient_daysnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPatient days / length of stay / census: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family healthcare, 4,461 records)
opkpi_patient_days_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsPatient days / length of stay / census: unit as printed (millions / thousands / % / count / days / ...)
opkpi_geographiesnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsGeographies (footprint): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family footprint, 4,036 records) — value AS PRINT
opkpi_geographies_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsGeographies (footprint): unit as printed (millions / thousands / % / count / days / ...)
opkpi_operating_marginnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsOperating margin (general): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family general, 3,967 records) — value AS PRIN
opkpi_operating_margin_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsOperating margin (general): unit as printed (millions / thousands / % / count / days / ...)
opkpi_loss_rationumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsLoss ratio: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family insurance, 3,923 records) — value as printed in the rel
opkpi_roomsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsRooms (footprint): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family footprint, 3,796 records) — value AS PRINTED, un
opkpi_rooms_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsRooms (footprint): unit as printed (millions / thousands / % / count / days / ...)
opkpi_efficiency_rationumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsEfficiency ratio: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 3,731 records) — value as printed in the re
opkpi_proceduresnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsProcedures (healthcare): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family healthcare, 3,669 records) — value AS PRIN
opkpi_procedures_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsProcedures (healthcare): unit as printed (millions / thousands / % / count / days / ...)
opkpi_acresnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsAcres (agriculture): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family agriculture, 3,634 records) — value AS PRINTED
opkpi_acres_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsAcres (agriculture): unit as printed (millions / thousands / % / count / days / ...)
opkpi_admissionsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsAdmissions: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family healthcare, 3,495 records) — value AS PRINTED, units mi
opkpi_admissions_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsAdmissions: unit as printed (millions / thousands / % / count / days / ...)
opkpi_expense_rationumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsExpense ratio: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family insurance, 3,436 records) — value as printed in the
opkpi_audiencenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsAudience (media): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family media, 3,429 records) — value AS PRINTED, units m
opkpi_audience_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsAudience (media): unit as printed (millions / thousands / % / count / days / ...)
opkpi_rent_per_sqftnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsRent per sqft (real_estate): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family real_estate, 3,367 records) — value AS
opkpi_rent_per_sqft_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsRent per sqft (real_estate): unit as printed (millions / thousands / % / count / days / ...)
opkpi_book_value_psnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slots(tangible) book value per share: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 3,357 records) — value AS PR
opkpi_book_value_ps_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slots(tangible) book value per share: unit as printed (millions / thousands / % / count / days / ...)
opkpi_net_retentionnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsNet revenue / dollar retention: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 3,355 records) — valu
opkpi_roanumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsReturn on (average) assets: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 3,338 records) — value as printed
opkpi_nco_rationumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsNet charge-off ratio: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 3,330 records) — value AS PRINTED, unit
opkpi_nco_ratio_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsNet charge-off ratio: unit as printed (millions / thousands / % / count / days / ...)
opkpi_delinquencynumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsDelinquency (specialty_finance): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family specialty_finance, 3,287 records)
opkpi_delinquency_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsDelinquency (specialty_finance): unit as printed (millions / thousands / % / count / days / ...)
opkpi_prescriptionsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPrescriptions (healthcare): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family healthcare, 3,159 records) — value AS P
opkpi_prescriptions_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsPrescriptions (healthcare): unit as printed (millions / thousands / % / count / days / ...)
opkpi_vehiclesnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsVehicles (autos): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family autos, 3,143 records) — value AS PRINTED, units m
opkpi_vehicles_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsVehicles (autos): unit as printed (millions / thousands / % / count / days / ...)
opkpi_premiums_writtennumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPremiums written: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family insurance, 3,102 records) — value AS PRINTED, uni
opkpi_premiums_written_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsPremiums written: unit as printed (millions / thousands / % / count / days / ...)
opkpi_average_ticketnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage ticket / order value / check: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family retail, 3,100 records) — valu
opkpi_average_ticket_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage ticket / order value / check: unit as printed (millions / thousands / % / count / days / ...)
opkpi_allowance_rationumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsAllowance ratio (bank): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 3,027 records) — value AS PRINTED, un
opkpi_allowance_ratio_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsAllowance ratio (bank): unit as printed (millions / thousands / % / count / days / ...)
opkpi_net_flowsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsNet client flows: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family asset_mgmt, 2,977 records) — value AS PRINTED, un
opkpi_net_flows_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsNet client flows: unit as printed (millions / thousands / % / count / days / ...)
opkpi_attendancenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsAttendance (leisure): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family leisure, 2,913 records) — value AS PRINTED, u
opkpi_attendance_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsAttendance (leisure): unit as printed (millions / thousands / % / count / days / ...)
opkpi_average_selling_pricenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage selling price (retail): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family retail, 2,879 records) — value AS P
opkpi_average_selling_price_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage selling price (retail): unit as printed (millions / thousands / % / count / days / ...)
opkpi_penetrationnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPenetration (subscription): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 2,875 records) — value as
opkpi_servicing_portfolionumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsServicing portfolio (specialty_finance): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family specialty_finance, 2,847 r
opkpi_servicing_portfolio_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsServicing portfolio (specialty_finance): unit as printed (millions / thousands / % / count / days / ...)
opkpi_policies_in_forcenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPolicies in force (insurance): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family insurance, 2,610 records) — value AS
opkpi_policies_in_force_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsPolicies in force (insurance): unit as printed (millions / thousands / % / count / days / ...)
opkpi_asmnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsAvailable seat miles (or kilometres): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 2,544 records) — val
opkpi_asm_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsAvailable seat miles (or kilometres): unit as printed (millions / thousands / % / count / days / ...)
opkpi_percent_leasednumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPercent leased (real_estate): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family real_estate, 2,516 records) — value a
opkpi_loadsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsLoads (transport): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family transport, 2,515 records) — value AS PRINTED, un
opkpi_loads_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsLoads (transport): unit as printed (millions / thousands / % / count / days / ...)
opkpi_inventory_turnsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsInventory turns / days of inventory: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family industrial, 2,383 records) — v
opkpi_inventory_turns_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsInventory turns / days of inventory: unit as printed (millions / thousands / % / count / days / ...)
opkpi_homes_closednumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsHomes closed (homebuilding): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family homebuilding, 2,381 records) — value A
opkpi_homes_closed_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsHomes closed (homebuilding): unit as printed (millions / thousands / % / count / days / ...)
opkpi_installed_basenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsInstalled base (footprint): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family footprint, 2,342 records) — value AS PR
opkpi_installed_base_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsInstalled base (footprint): unit as printed (millions / thousands / % / count / days / ...)
opkpi_load_factornumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPassenger load factor: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 2,327 records) — value as printed i
opkpi_licensed_bedsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsLicensed beds (healthcare): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family healthcare, 2,250 records) — value as p
opkpi_vesselsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsVessels (transport): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family transport, 2,243 records) — value AS PRINTED,
opkpi_vessels_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsVessels (transport): unit as printed (millions / thousands / % / count / days / ...)
opkpi_proved_reservesnumeric1%SAT_OPERATIONAL_KPIS · opkpi_slotsProved reserves: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family energy, 2,173 records) — value AS PRINTED, units m
opkpi_proved_reserves_unittext1%SAT_OPERATIONAL_KPIS · opkpi_slotsProved reserves: unit as printed (millions / thousands / % / count / days / ...)
opkpi_facilitiesnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsFacilities (footprint): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family footprint, 2,122 records) — value AS PRINTE
opkpi_facilities_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsFacilities (footprint): unit as printed (millions / thousands / % / count / days / ...)
opkpi_passengersnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPassengers carried: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 1,993 records) — value AS PRINTED, uni
opkpi_passengers_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsPassengers carried: unit as printed (millions / thousands / % / count / days / ...)
opkpi_yield_on_assetsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsYield on assets (bank): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 1,960 records) — value as printed in
opkpi_patientsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPatients (healthcare): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family healthcare, 1,931 records) — value AS PRINTE
opkpi_patients_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsPatients (healthcare): unit as printed (millions / thousands / % / count / days / ...)
opkpi_gaming_winnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsGaming win (leisure): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family leisure, 1,920 records) — value AS PRINTED, u
opkpi_gaming_win_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsGaming win (leisure): unit as printed (millions / thousands / % / count / days / ...)
opkpi_originationsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsOriginations (specialty_finance): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family specialty_finance, 1,886 records)
opkpi_originations_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsOriginations (specialty_finance): unit as printed (millions / thousands / % / count / days / ...)
opkpi_depositsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsTotal deposits: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 1,876 records) — value AS PRINTED, units mixe
opkpi_deposits_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsTotal deposits: unit as printed (millions / thousands / % / count / days / ...)
opkpi_rpmnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsRevenue passenger miles (or kilometres): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 1,841 records) —
opkpi_rpm_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsRevenue passenger miles (or kilometres): unit as printed (millions / thousands / % / count / days / ...)
opkpi_lease_termnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsLease term (real_estate): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family real_estate, 1,784 records) — value as pr
opkpi_placementsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPlacements (services): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family services, 1,721 records) — value AS PRINTED,
opkpi_placements_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsPlacements (services): unit as printed (millions / thousands / % / count / days / ...)
opkpi_operating_daysnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsOperating days (footprint): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family footprint, 1,716 records) — value AS PR
opkpi_operating_days_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsOperating days (footprint): unit as printed (millions / thousands / % / count / days / ...)
opkpi_prepayment_ratenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPrepayment rate (specialty_finance): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family specialty_finance, 1,686 recor
opkpi_same_property_noinumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsSame property noi (real_estate): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family real_estate, 1,667 records) — valu
opkpi_leasing_spreadnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsLeasing spread (real_estate): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family real_estate, 1,596 records) — value a
opkpi_tenant_retentionnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsTenant retention (real_estate): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family real_estate, 1,570 records) — value
opkpi_stage_lengthnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage stage length / length of haul: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 1,557 records) — va
opkpi_stage_length_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage stage length / length of haul: unit as printed (millions / thousands / % / count / days / ...)
opkpi_carloadsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsCarloads (transport): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family transport, 1,531 records) — value AS PRINTED,
opkpi_carloads_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsCarloads (transport): unit as printed (millions / thousands / % / count / days / ...)
opkpi_fuel_gallonsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsFuel gallons consumed: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 1,526 records) — value AS PRINTED,
opkpi_fuel_gallons_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsFuel gallons consumed: unit as printed (millions / thousands / % / count / days / ...)
opkpi_operating_rationumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsOperating ratio (rail / trucking): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family transport, 1,517 records) — valu
opkpi_system_wide_salesnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsSystem wide sales (retail): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family retail, 1,428 records) — value AS PRINT
opkpi_system_wide_sales_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsSystem wide sales (retail): unit as printed (millions / thousands / % / count / days / ...)
opkpi_aircraft_fleetnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsAircraft fleet (airline): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 1,408 records) — value as printe
opkpi_screensnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsScreens (leisure): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family leisure, 1,250 records) — value AS PRINTED, unit
opkpi_screens_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsScreens (leisure): unit as printed (millions / thousands / % / count / days / ...)
opkpi_tce_rationumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsTce ratio (bank): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 1,232 records) — value AS PRINTED, units mi
opkpi_tce_ratio_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsTce ratio (bank): unit as printed (millions / thousands / % / count / days / ...)
opkpi_fuel_pricenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage fuel price per gallon: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 1,147 records) — value AS P
opkpi_fuel_price_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsAverage fuel price per gallon: unit as printed (millions / thousands / % / count / days / ...)
opkpi_milesnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsMiles (transport): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family transport, 1,135 records) — value AS PRINTED, un
opkpi_miles_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsMiles (transport): unit as printed (millions / thousands / % / count / days / ...)
opkpi_realized_pricenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsRealized price per unit: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family energy, 1,114 records) — value AS PRINTED,
opkpi_realized_price_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsRealized price per unit: unit as printed (millions / thousands / % / count / days / ...)
opkpi_homes_passednumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsHomes passed (subscription): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family subscription, 1,089 records) — value A
opkpi_homes_passed_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsHomes passed (subscription): unit as printed (millions / thousands / % / count / days / ...)
opkpi_gaming_unitsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsGaming units (leisure): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family leisure, 1,051 records) — value AS PRINTED,
opkpi_gaming_units_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsGaming units (leisure): unit as printed (millions / thousands / % / count / days / ...)
opkpi_cancellation_ratenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsCancellation rate (homebuilding): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family homebuilding, 1,040 records) — va
opkpi_lotsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsLots (homebuilding): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family homebuilding, 1,022 records) — value as printe
opkpi_casmnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsCost per available seat mile (casm): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 963 records) — value
opkpi_casm_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsCost per available seat mile (casm): unit as printed (millions / thousands / % / count / days / ...)
opkpi_frac_stagesnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsFrac stages (energy): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family energy, 962 records) — value AS PRINTED, unit
opkpi_frac_stages_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsFrac stages (energy): unit as printed (millions / thousands / % / count / days / ...)
opkpi_glanumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsGla (real_estate): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family real_estate, 960 records) — value AS PRINTED, un
opkpi_gla_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsGla (real_estate): unit as printed (millions / thousands / % / count / days / ...)
opkpi_block_hoursnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsBlock hours: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 960 records) — value AS PRINTED, units mixed
opkpi_block_hours_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsBlock hours: unit as printed (millions / thousands / % / count / days / ...)
opkpi_departuresnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsDepartures / trips flown: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 905 records) — value AS PRINTED,
opkpi_departures_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsDepartures / trips flown: unit as printed (millions / thousands / % / count / days / ...)
opkpi_cost_of_fundsnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsCost of funds (bank): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family bank, 761 records) — value as printed in the
opkpi_sales_per_sqftnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsSales per sqft (retail): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family retail, 757 records) — value AS PRINTED, u
opkpi_sales_per_sqft_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsSales per sqft (retail): unit as printed (millions / thousands / % / count / days / ...)
opkpi_inventory_daysnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsInventory days (autos): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family autos, 746 records) — value as printed in t
opkpi_billable_hoursnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsBillable hours (services): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family services, 705 records) — value AS PRINTE
opkpi_billable_hours_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsBillable hours (services): unit as printed (millions / thousands / % / count / days / ...)
opkpi_passenger_yieldnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPassenger yield (revenue per rpm): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 682 records) — value AS
opkpi_passenger_yield_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsPassenger yield (revenue per rpm): unit as printed (millions / thousands / % / count / days / ...)
opkpi_gmvnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsGmv (ecommerce): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family ecommerce, 657 records) — value AS PRINTED, units
opkpi_gmv_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsGmv (ecommerce): unit as printed (millions / thousands / % / count / days / ...)
opkpi_payment_volumenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPayment volume (payments): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family payments, 632 records) — value AS PRINTE
opkpi_payment_volume_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsPayment volume (payments): unit as printed (millions / thousands / % / count / days / ...)
opkpi_prasmnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsPassenger revenue per available seat mile: reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 572 records) —
opkpi_casm_exnumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsCasm excluding fuel and special items (casm-ex): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family airline, 555 recor
opkpi_crop_volumenumeric0%SAT_OPERATIONAL_KPIS · opkpi_slotsCrop volume (agriculture): reported value AS PRINTED (scale in the _unit column; first record of this code in the release; family agriculture, 547 records) — value AS PRI
opkpi_crop_volume_unittext0%SAT_OPERATIONAL_KPIS · opkpi_slotsCrop volume (agriculture): unit as printed (millions / thousands / % / count / days / ...)
22 

MODA_22_TOPICS

31 canonical topic flags + raw mentions
82 columns

What it is about. Mention flags for hundreds of topics (AI, layoffs, buybacks, tariffs, cyber, litigation and more) with evidence text, plus the Pass 3 governance events: restatements, auditor changes, SEC investigations, enforcement and misconduct with verbatim sentences.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Which macro topics (tariffs, energy costs, AI) enter earnings releases first, and in which industries?
    provided topic_tariffs, m_energy_cost, topic_ai, topic_war_geo, topic_ai
    needs industry codes from Compustat fundamentals (size, book-to-market, leverage, industry; from IDENTIFIERS.gvkey)
  2. Do restatement announcements coincide with changes in non-GAAP presentation?
    provided p3_restating_now, p3_restating_now_text, p3_any_restatement_flag, NG_PROMINENCE.undue_prominence_score, GAAP_TO_NG.total_exclusions
    needs Audit Analytics restatements / auditor changes to validate the flag
  3. Is layoff language associated with restructuring exclusions in the same quarter?
    provided topic_layoffs, NG_ADJUSTMENTS.adj_22_restructuring_m, NG_ADJUSTMENTS.adj_08_severance_m
    needs WARN notices for validation (optional)

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_PASS3_EVENTS, SAT_TOPICS

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
m_auditorflag3%SAT_TOPICS.m_auditor · copy1=release mentions the external auditor / audit firm
m_ceoflag8%SAT_TOPICS.m_ceo · copy1=release mentions the CEO / chief executive (by title or name)
m_cfoflag6%SAT_TOPICS.m_cfo · copy1=release mentions the CFO / chief financial officer (by title or name)
m_csuite_changeflag3%SAT_TOPICS.m_csuite_change · copy1=release mentions a future or planned C-suite / executive leadership change
m_deiflag3%SAT_TOPICS.m_dei · copySub-topic of topic_dei: 1 if the release mentions dei.
m_election_riskflag3%SAT_TOPICS.m_election_risk · copy1=release mentions an election (e.g. presidential) framed as uncertainty/risk
m_energy_costflag3%SAT_TOPICS.m_energy_cost · copy1=release mentions energy / fuel / utility cost levels or pressures
m_esgflag4%SAT_TOPICS.m_esg · copySub-topic of topic_esg: 1 if the release mentions esg.
m_fraudflag3%SAT_TOPICS.m_fraud · copySub-topic of topic_fraud: 1=release mentions fraud (alleged, investigated, or found)
m_green_productflag3%SAT_TOPICS.m_green_product · copySub-topic of topic_esg: 1 if the release mentions green product.
m_immigration_policyflag3%SAT_TOPICS.m_immigration_policy · copySub-topic of topic_immigration: 1 if the release mentions immigration policy.
m_internal_controlsflag3%SAT_TOPICS.m_internal_controls · copy1 if the release mentions internal controls.
m_investorflag7%SAT_TOPICS.m_investor · copy1=release mentions investors generally
m_labor_shortageflag3%SAT_TOPICS.m_labor_shortage · copySub-topic of topic_labor: 1=release mentions labor / talent shortage
m_labor_unionflag3%SAT_TOPICS.m_labor_union · copySub-topic of topic_labor: 1=release mentions labor unions / collective bargaining
m_liquidity_concernflag3%SAT_TOPICS.m_liquidity_concern · copy1=release mentions liquidity concerns / going-concern doubt / cash-runway pressure
m_min_wageflag3%SAT_TOPICS.m_min_wage · copySub-topic of topic_labor: 1=release mentions minimum wage
m_misreportflag3%SAT_TOPICS.m_misreport · copySub-topic of topic_fraud: 1=release mentions unintentional misreporting / accounting error / restatement that is NOT fraud
m_name_dropflag5%SAT_TOPICS.m_name_drop · copy1=release mentions notable named people or organizations dropped (officials, celebrities, marquee partners/customers) beyond the company's own routine executives
m_new_ipflag3%SAT_TOPICS.m_new_ip · copy1=release mentions new patents or trademarks (IP grants/filings/awards)
m_new_productflag5%SAT_TOPICS.m_new_product · copy1 if the release mentions new product.
m_political_partyflag15%SAT_TOPICS.m_political_party · copySub-topic of topic_political_mention: 1=release mentions Democrats, Republicans, or a named political party
m_political_viewflag15%SAT_TOPICS.m_political_view · copySub-topic of topic_political_mention: 1=release mentions an expressed political opinion/stance by the company
m_retail_investorflag3%SAT_TOPICS.m_retail_investor · copy1=release mentions retail / individual investors
m_sponsorflag3%SAT_TOPICS.m_sponsor · copy1=release mentions sponsorships / sponsoring of events, teams, causes
m_tech_fraud_preventionflag3%SAT_TOPICS.m_tech_fraud_prevention · copySub-topic of topic_fraud: 1 if the release mentions tech fraud prevention.
m_wage_increaseflag3%SAT_TOPICS.m_wage_increase · copySub-topic of topic_labor: 1=release mentions employee wage / salary increases
topic_acquisitiontext91%SAT_TOPICS.topic_acquisition · copy1 if the release discusses acquisition (canonical topic indicator consolidated from the raw m_* mentions)
topic_aitext91%SAT_TOPICS.topic_ai · copy1 if the release discusses ai (canonical topic indicator consolidated from the raw m_* mentions)
topic_animal_testingtext91%SAT_TOPICS.topic_animal_testing · copy1 if the release discusses animal testing (canonical topic indicator consolidated from the raw m_* mentions)
topic_buyback_futuretext91%SAT_TOPICS.topic_buyback_future · copy1 if the release discusses buyback future (canonical topic indicator consolidated from the raw m_* mentions)
topic_buyback_pasttext91%SAT_TOPICS.topic_buyback_past · copy1 if the release discusses buyback past (canonical topic indicator consolidated from the raw m_* mentions)
topic_capextext91%SAT_TOPICS.topic_capex · copy1 if the release discusses capex (canonical topic indicator consolidated from the raw m_* mentions)
topic_charitabletext91%SAT_TOPICS.topic_charitable · copy1 if the release discusses charitable (canonical topic indicator consolidated from the raw m_* mentions)
topic_covidtext91%SAT_TOPICS.topic_covid · copy1 if the release discusses covid (canonical topic indicator consolidated from the raw m_* mentions)
topic_cryptotext91%SAT_TOPICS.topic_crypto · copy1 if the release discusses crypto (canonical topic indicator consolidated from the raw m_* mentions)
topic_customer_satisfactiontext91%SAT_TOPICS.topic_customer_satisfaction · copy1 if the release discusses customer satisfaction (canonical topic indicator consolidated from the raw m_* mentions)
topic_cybertext91%SAT_TOPICS.topic_cyber · copy1 if the release discusses cyber (canonical topic indicator consolidated from the raw m_* mentions)
topic_deitext91%SAT_TOPICS.topic_dei · copy1 if the release discusses dei (canonical topic indicator consolidated from the raw m_* mentions)
topic_discontinuedtext91%SAT_TOPICS.topic_discontinued · copy1 if the release discusses discontinued (canonical topic indicator consolidated from the raw m_* mentions)
topic_esgtext91%SAT_TOPICS.topic_esg · copy1 if the release discusses esg (canonical topic indicator consolidated from the raw m_* mentions)
topic_fraudtext91%SAT_TOPICS.topic_fraud · copy1 if the release discusses fraud (canonical topic indicator consolidated from the raw m_* mentions)
topic_govt_contracttext91%SAT_TOPICS.topic_govt_contract · copy1 if the release discusses govt contract (canonical topic indicator consolidated from the raw m_* mentions)
topic_govt_fundingtext91%SAT_TOPICS.topic_govt_funding · copy1 if the release discusses govt funding (canonical topic indicator consolidated from the raw m_* mentions)
topic_immigrationratio91%SAT_TOPICS.topic_immigration · copy1 if the release discusses immigration (canonical topic indicator consolidated from the raw m_* mentions)
topic_instit_investortext91%SAT_TOPICS.topic_instit_investor · copy1 if the release discusses instit investor (canonical topic indicator consolidated from the raw m_* mentions)
topic_labortext91%SAT_TOPICS.topic_labor · copy1 if the release discusses labor (canonical topic indicator consolidated from the raw m_* mentions)
topic_layoffstext91%SAT_TOPICS.topic_layoffs · copy1 if the release discusses layoffs (canonical topic indicator consolidated from the raw m_* mentions)
topic_nonus_employeestext91%SAT_TOPICS.topic_nonus_employees · copy1 if the release discusses nonus employees (canonical topic indicator consolidated from the raw m_* mentions)
topic_political_donationtext91%SAT_TOPICS.topic_political_donation · copy1 if the release discusses political donation (canonical topic indicator consolidated from the raw m_* mentions)
topic_political_mentiontext91%SAT_TOPICS.topic_political_mention · copy1 if the release discusses political mention (canonical topic indicator consolidated from the raw m_* mentions)
topic_religiontext91%SAT_TOPICS.topic_religion · copy1 if the release discusses religion (canonical topic indicator consolidated from the raw m_* mentions)
topic_sec_scrutinytext91%SAT_TOPICS.topic_sec_scrutiny · copy1 if the release discusses sec scrutiny (canonical topic indicator consolidated from the raw m_* mentions)
topic_supply_chaintext91%SAT_TOPICS.topic_supply_chain · copy1 if the release discusses supply chain (canonical topic indicator consolidated from the raw m_* mentions)
topic_tariffstext91%SAT_TOPICS.topic_tariffs · copy1 if the release discusses tariffs (canonical topic indicator consolidated from the raw m_* mentions)
topic_war_geotext91%SAT_TOPICS.topic_war_geo · copy1 if the release discusses war geo (canonical topic indicator consolidated from the raw m_* mentions)
topic_warranttext91%SAT_TOPICS.topic_warrant · copy1 if the release discusses warrant (canonical topic indicator consolidated from the raw m_* mentions)
topic_weather_disastertext91%SAT_TOPICS.topic_weather_disaster · copy1 if the release discusses weather disaster (canonical topic indicator consolidated from the raw m_* mentions)
p3_restated_pastflag88%SAT_PASS3_EVENTS.p3_restated_past · copy1 = the release says results were restated in the past [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_restated_past_texttext4%SAT_PASS3_EVENTS.p3_restated_past_text · copyVerbatim text supporting restated_past (Pass 3 Task I) [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_restating_nowflag88%SAT_PASS3_EVENTS.p3_restating_now · copy1 = the release announces a restatement of prior results [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_restating_now_texttext2%SAT_PASS3_EVENTS.p3_restating_now_text · copyVerbatim text supporting restating_now (Pass 3 Task I) [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_may_restateflag88%SAT_PASS3_EVENTS.p3_may_restate · copy1 = the release says results may be restated [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_may_restate_texttext1%SAT_PASS3_EVENTS.p3_may_restate_text · copyVerbatim text supporting may_restate (Pass 3 Task I) [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_auditor_changeflag88%SAT_PASS3_EVENTS.p3_auditor_change · copy1 = an auditor change is disclosed [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_auditor_change_texttext0%SAT_PASS3_EVENTS.p3_auditor_change_text · copyVerbatim text supporting auditor_change (Pass 3 Task I) [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_sec_comment_letterflag88%SAT_PASS3_EVENTS.p3_sec_comment_letter · copy1 = an SEC comment letter is mentioned [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_sec_comment_letter_texttext0%SAT_PASS3_EVENTS.p3_sec_comment_letter_text · copyVerbatim text supporting sec_comment_letter (Pass 3 Task I) [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_sec_aaer_enforcementflag88%SAT_PASS3_EVENTS.p3_sec_aaer_enforcement · copy1 = an SEC AAER / enforcement action is mentioned [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_sec_aaer_enforcement_texttext0%SAT_PASS3_EVENTS.p3_sec_aaer_enforcement_text · copyVerbatim text supporting sec_aaer_enforcement (Pass 3 Task I) [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_sec_investigationflag88%SAT_PASS3_EVENTS.p3_sec_investigation · copy1 = an SEC (or other regulator) investigation is mentioned [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_sec_investigation_texttext1%SAT_PASS3_EVENTS.p3_sec_investigation_text · copyVerbatim text supporting sec_investigation (Pass 3 Task I) [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_corruption_misconductflag88%SAT_PASS3_EVENTS.p3_corruption_misconduct · copy1 = corruption, fraud or misconduct is disclosed [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_corruption_misconduct_texttext1%SAT_PASS3_EVENTS.p3_corruption_misconduct_text · copyVerbatim text supporting corruption_misconduct (Pass 3 Task I) [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
p3_any_restatement_flagflag88%SAT_PASS3_EVENTS.p3_any_restatement_flag · copy1 = any of restated_past / restating_now / may_restate [source: Pass 3 Task I, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
23 

MODA_23_AS_IF_NG

Standardized as-if non-GAAP (pseudo)
125 columns

What it is about. A STANDARDIZED 'as-if-everyone-adjusted-the-same-way' non-GAAP EPS built from the 10-Q/10-K XBRL (nongaap_eps_pseudo_xbrl, 2026-09-06): the filing's GAAP diluted EPS plus every standard-set item tagged on its face statements (stock compensation, amortization of acquired intangibles, restructuring, impairments, acquisition costs, litigation, pension settlements, inventory write-downs, severance, debt-issuance amortization as add-backs; asset-sale, debt-extinguishment, FX, fair-value, investment, equity-method and discontinued-operations gains removed), tax-effected at the filing's own rate, with the item count, an SBC-present flag and a discrete/YTD basis label. Same rule for every firm, GAAP-only reporters included; source-labelled, never blended with the release. Deterministic pieces from the release sit beside it (effective tax rate, gross-up rate, the firm's exclusions outside the standard set). The release-text LLM version (pseudo_runner.py) is a separate, optional layer.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. How much of the cross-sectional variation in non-GAAP EPS is firm-specific definition rather than economics?
    provided nongaap_eps_pseudo_xbrl, pseudo_xbrl_adjustments_ps, pseudo_xbrl_n_items, NG.nongaap_eps, GAAP.gaap_eps
    needs nothing external
  2. Does a standardized non-GAAP figure predict future earnings better than the firm's own?
    provided nongaap_eps_pseudo_xbrl, nongaap_eps_pseudo_pretax_xbrl, pseudo_xbrl_has_sbc, NG.nongaap_eps
    needs nothing external; future GAAP.gaap_eps from this database, optionally I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)
  3. Which firms deviate most from a uniform definition, and are they penalised?
    provided nongaap_eps_pseudo_xbrl, NG.nongaap_eps, adjustments_reversed_ps, GAAP_TO_NG.total_exclusions
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno)

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_PSEUDO_RELEASE, SAT_XBRL_FACTS_LONG

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
effective_tax_rateratio89%NONGAAP_A.effective_tax_rate · copyFirm GAAP effective tax rate = income-tax expense / pre-tax income from the release's income statement (deterministic); the rate a standardized tax-effecting would use
gross_up_methodtext89%NONGAAP_A.gross_up_method · copyetr (firm effective rate used) or statutory_fallback
gross_up_rateratio89%NONGAAP_A.gross_up_rate · copyTax rate used to convert between gross and net adjustments: effective_tax_rate when inside [0.10, 0.35], else the statutory fallback (gross_up_method says which)
adjustments_reversed_m$M7%NONGAAP_A.adjustments_reversed_m · copy$M counterpart of adjustments_reversed_ps (where the bridge is in $M)
adjustments_reversed_ps$/share89%NONGAAP_A.adjustments_reversed_ps · copyPer-share sum of the firm's own exclusions that fall OUTSIDE the standard set (rent, net interest, R&D, normal D&A): what a standardized as-if non-GAAP would put back. De
nongaap_eps_pseudo_xbrl$/share47%SAT_XBRL_FACTS_LONG · pseudo_xbrlSTANDARDIZED as-if non-GAAP diluted EPS from the 10-Q/10-K XBRL: XBRL GAAP diluted EPS + the standard-set items tagged on the face statements (per share, pre-tax) x (1 -
nongaap_eps_pseudo_pretax_xbrl$/share47%SAT_XBRL_FACTS_LONG · pseudo_xbrlAs nongaap_eps_pseudo_xbrl before tax-effecting (transparent reference)
pseudo_xbrl_adjustments_ps$/share47%SAT_XBRL_FACTS_LONG · pseudo_xbrlSum of the standard-set items found in the XBRL, per diluted share, pre-tax (sign: expenses +, gains -)
pseudo_xbrl_adjustments_m$M47%SAT_XBRL_FACTS_LONG · pseudo_xbrlThe same sum in $M
pseudo_xbrl_n_itemscount47%SAT_XBRL_FACTS_LONG · pseudo_xbrlNumber of standard-set categories found in the filing's XBRL (0 = only the GAAP base: no tagged standard item)
pseudo_xbrl_tax_rateratio47%SAT_XBRL_FACTS_LONG · pseudo_xbrlEffective tax rate used: income tax / pre-tax income from the XBRL when in [0, 0.5], else 0.21
pseudo_xbrl_has_sbcflag47%SAT_XBRL_FACTS_LONG · pseudo_xbrl1 = stock-based compensation was tagged (the most important standard item; absent on 15% of XBRL filings)
pseudo_xbrl_basistext37%SAT_XBRL_FACTS_LONG · pseudo_xbrldiscrete (3-month facts) / ytd_diff (YTD minus prior-quarter YTD, incl. Q4 = FY minus 9M) / mixed
adj_04_sbc_pseudo_xbrl_ps$/share35%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_04_sbc from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_05a_amort_acq_intang_pseudo_xbrl_ps$/share8%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_05a_amort_acq_intang from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_22_restructuring_pseudo_xbrl_ps$/share5%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_22_restructuring from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_14_impair_ppe_finite_pseudo_xbrl_ps$/share8%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_14_impair_ppe_finite from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_14b_goodwill_impairment_pseudo_xbrl_ps$/share3%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_14b_goodwill_impairment from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_19_acquisition_pseudo_xbrl_ps$/share2%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_19_acquisition from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_17_litigation_pseudo_xbrl_ps$/share1%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_17_litigation from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_07_pension_pseudo_xbrl_ps$/share1%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_07_pension from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_10_inventory_writedown_pseudo_xbrl_ps$/share3%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_10_inventory_writedown from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_08_severance_pseudo_xbrl_ps$/share0%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_08_severance from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_32_debt_issuance_pseudo_xbrl_ps$/share9%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_32_debt_issuance from the XBRL, per diluted share, pre-tax, sign by economic substance (expense, +); null when not tagged
adj_20_ppe_sale_pseudo_xbrl_ps$/share15%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_20_ppe_sale from the XBRL, per diluted share, pre-tax, sign by economic substance (gain, -); null when not tagged
adj_16_debt_extinguishment_pseudo_xbrl_ps$/share8%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_16_debt_extinguishment from the XBRL, per diluted share, pre-tax, sign by economic substance (gain, -); null when not tagged
adj_15_fx_pseudo_xbrl_ps$/share5%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_15_fx from the XBRL, per diluted share, pre-tax, sign by economic substance (gain, -); null when not tagged
adj_18_fair_value_pseudo_xbrl_ps$/share6%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_18_fair_value from the XBRL, per diluted share, pre-tax, sign by economic substance (gain, -); null when not tagged
adj_09_realized_gains_pseudo_xbrl_ps$/share4%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_09_realized_gains from the XBRL, per diluted share, pre-tax, sign by economic substance (gain, -); null when not tagged
adj_26_unrealized_invst_pseudo_xbrl_ps$/share1%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_26_unrealized_invst from the XBRL, per diluted share, pre-tax, sign by economic substance (gain, -); null when not tagged
adj_13_equity_income_pseudo_xbrl_ps$/share7%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_13_equity_income from the XBRL, per diluted share, pre-tax, sign by economic substance (gain, -); null when not tagged
adj_23_discontinued_pseudo_xbrl_ps$/share5%SAT_XBRL_FACTS_LONG · pseudo_xbrlStandard item adj_23_discontinued from the XBRL, per diluted share, pre-tax, sign by economic substance (gain, -); null when not tagged
pr_period_enddate3%SAT_PSEUDO_RELEASE.pr_period_end · copyPeriod the pass read (most recent reported period of the release) [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prompt_fr
pr_period_typetext3%SAT_PSEUDO_RELEASE.pr_period_type · copyQ / A [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
pr_gaap_eps$/share1%SAT_PSEUDO_RELEASE.pr_gaap_eps · copyGAAP diluted EPS as the pseudo pass read it from the release (independent re-read; matches GAAP.gaap_eps within 1c on 94% in the pretest) [source: release-text pseudo pas
pr_gaap_net_income_m$M1%SAT_PSEUDO_RELEASE.pr_gaap_net_income_m · copyGAAP net income as read by the pass [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
pr_diluted_shares_kthousands1%SAT_PSEUDO_RELEASE.pr_diluted_shares_k · copyDiluted weighted-average shares as read by the pass [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
pr_effective_tax_rateratio1%SAT_PSEUDO_RELEASE.pr_effective_tax_rate · copyIncome tax / pre-tax income as read from the release; null when not determinable [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt
pr_firm_nongaap_eps$/share0%SAT_PSEUDO_RELEASE.pr_firm_nongaap_eps · copyThe firm's own non-GAAP diluted EPS as read by the pass (null for GAAP-only reporters) [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, p
nongaap_eps_pseudo_release$/share1%SAT_PSEUDO_RELEASE.nongaap_eps_pseudo_release · copySTANDARDIZED as-if non-GAAP diluted EPS from the RELEASE TEXT: GAAP EPS + every standard-set item the pass found anywhere in the release (pre-tax, per share, sign by econ
nongaap_eps_pseudo_pretax_release$/share1%SAT_PSEUDO_RELEASE.nongaap_eps_pseudo_pretax_release · copyThe same before tax-effecting [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
pseudo_release_adjustments_ps$/share1%SAT_PSEUDO_RELEASE.pseudo_release_adjustments_ps · copySum of the standard-set items found in the release, per share, pre-tax [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prom
pseudo_release_n_itemscount1%SAT_PSEUDO_RELEASE.pseudo_release_n_items · copyNumber of standard-set items found in the release [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
pseudo_release_sbc_sourcetext1%SAT_PSEUDO_RELEASE.pseudo_release_sbc_source · copyWhere the pass found stock-based compensation: reconciliation / cash_flow_statement / income_statement / footnote / not_found [source: release-text pseudo pass v2 (pseudo
pseudo_release_sbc_in_releaseflag1%SAT_PSEUDO_RELEASE.pseudo_release_sbc_in_release · copy1 = a stock-based compensation amount is printed somewhere in the release [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_p
pseudo_release_has_cfsflag1%SAT_PSEUDO_RELEASE.pseudo_release_has_cfs · copy1 = the release contains a cash-flow statement [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
pseudo_release_has_reconflag1%SAT_PSEUDO_RELEASE.pseudo_release_has_recon · copy1 = the release contains a GAAP-to-non-GAAP reconciliation [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prompt_frozen.tx
pseudo_release_core_exclusions_ps$/share1%SAT_PSEUDO_RELEASE.pseudo_release_core_exclusions_ps · copyPer-share sum of CORE items (rent, net interest, R&D, normal D&A, real-estate depreciation, maintenance capex) the FIRM ITSELF excluded: its over-adjustment relative to t
pseudo_release_is_quarterflag3%SAT_PSEUDO_RELEASE.pseudo_release_is_quarter · copy1 = the pass read a QUARTER; on Q4 releases the pass sometimes reads the fiscal-year column instead (7% of 2025 rows): the quarterly modules null the values where this is
pseudo_release_is_annualflag3%SAT_PSEUDO_RELEASE.pseudo_release_is_annual · copy1 = the pass read the fiscal-year column (the reading the ANNUAL modules use; nulled there where 0) [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, ru
pseudo_release_confidencetext3%SAT_PSEUDO_RELEASE.pseudo_release_confidence · copyPass confidence: high / medium / low [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
pseudo_release_notestext3%SAT_PSEUDO_RELEASE.pseudo_release_notes · copyPass notes (free text) [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
adj_04_sbc_pseudo_release_ps$/share1%SAT_PSEUDO_RELEASE.adj_04_sbc_pseudo_release_ps · copyStandard item adj_04_sbc as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-text pseudo
adj_04_sbc_pseudo_release_sourcetext1%SAT_PSEUDO_RELEASE.adj_04_sbc_pseudo_release_source · copyWhere adj_04_sbc was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pa
adj_05a_amort_acq_intang_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_05a_amort_acq_intang_pseudo_release_ps · copyStandard item adj_05a_amort_acq_intang as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: relea
adj_05a_amort_acq_intang_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_05a_amort_acq_intang_pseudo_release_source · copyWhere adj_05a_amort_acq_intang was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage
adj_05c_amort_dev_tech_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_05c_amort_dev_tech_pseudo_release_ps · copyStandard item adj_05c_amort_dev_tech as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release
adj_05c_amort_dev_tech_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_05c_amort_dev_tech_pseudo_release_source · copyWhere adj_05c_amort_dev_tech was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 4
adj_07_pension_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_07_pension_pseudo_release_ps · copyStandard item adj_07_pension as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-text ps
adj_07_pension_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_07_pension_pseudo_release_source · copyWhere adj_07_pension was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-
adj_08_severance_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_08_severance_pseudo_release_ps · copyStandard item adj_08_severance as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-text
adj_08_severance_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_08_severance_pseudo_release_source · copyWhere adj_08_severance was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, ru
adj_09_realized_gains_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_09_realized_gains_pseudo_release_ps · copyStandard item adj_09_realized_gains as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-
adj_09_realized_gains_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_09_realized_gains_pseudo_release_source · copyWhere adj_09_realized_gains was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44
adj_10_inventory_writedown_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_10_inventory_writedown_pseudo_release_ps · copyStandard item adj_10_inventory_writedown as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: rel
adj_10_inventory_writedown_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_10_inventory_writedown_pseudo_release_source · copyWhere adj_10_inventory_writedown was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), sta
adj_12_startup_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_12_startup_pseudo_release_ps · copyStandard item adj_12_startup as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-text ps
adj_12_startup_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_12_startup_pseudo_release_source · copyWhere adj_12_startup was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-
adj_13_equity_income_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_13_equity_income_pseudo_release_ps · copyStandard item adj_13_equity_income as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-t
adj_13_equity_income_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_13_equity_income_pseudo_release_source · copyWhere adj_13_equity_income was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d
adj_14_impair_ppe_finite_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_14_impair_ppe_finite_pseudo_release_ps · copyStandard item adj_14_impair_ppe_finite as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: relea
adj_14_impair_ppe_finite_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_14_impair_ppe_finite_pseudo_release_source · copyWhere adj_14_impair_ppe_finite was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage
adj_14b_goodwill_impairment_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_14b_goodwill_impairment_pseudo_release_ps · copyStandard item adj_14b_goodwill_impairment as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: re
adj_14b_goodwill_impairment_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_14b_goodwill_impairment_pseudo_release_source · copyWhere adj_14b_goodwill_impairment was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), st
adj_15_fx_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_15_fx_pseudo_release_ps · copyStandard item adj_15_fx as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-text pseudo
adj_15_fx_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_15_fx_pseudo_release_source · copyWhere adj_15_fx was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run-1 Pas
adj_16_debt_extinguishment_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_16_debt_extinguishment_pseudo_release_ps · copyStandard item adj_16_debt_extinguishment as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: rel
adj_16_debt_extinguishment_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_16_debt_extinguishment_pseudo_release_source · copyWhere adj_16_debt_extinguishment was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), sta
adj_17_litigation_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_17_litigation_pseudo_release_ps · copyStandard item adj_17_litigation as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-text
adj_17_litigation_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_17_litigation_pseudo_release_source · copyWhere adj_17_litigation was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, r
adj_18_fair_value_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_18_fair_value_pseudo_release_ps · copyStandard item adj_18_fair_value as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-text
adj_18_fair_value_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_18_fair_value_pseudo_release_source · copyWhere adj_18_fair_value was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, r
adj_19_acquisition_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_19_acquisition_pseudo_release_ps · copyStandard item adj_19_acquisition as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-tex
adj_19_acquisition_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_19_acquisition_pseudo_release_source · copyWhere adj_19_acquisition was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d,
adj_20_ppe_sale_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_20_ppe_sale_pseudo_release_ps · copyStandard item adj_20_ppe_sale as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-text p
adj_20_ppe_sale_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_20_ppe_sale_pseudo_release_source · copyWhere adj_20_ppe_sale was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d, run
adj_21_tax_accounting_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_21_tax_accounting_pseudo_release_ps · copyStandard item adj_21_tax_accounting as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-
adj_21_tax_accounting_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_21_tax_accounting_pseudo_release_source · copyWhere adj_21_tax_accounting was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44
adj_22_restructuring_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_22_restructuring_pseudo_release_ps · copyStandard item adj_22_restructuring as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-t
adj_22_restructuring_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_22_restructuring_pseudo_release_source · copyWhere adj_22_restructuring was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d
adj_23_discontinued_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_23_discontinued_pseudo_release_ps · copyStandard item adj_23_discontinued as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-te
adj_23_discontinued_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_23_discontinued_pseudo_release_source · copyWhere adj_23_discontinued was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d,
adj_24_integration_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_24_integration_pseudo_release_ps · copyStandard item adj_24_integration as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-tex
adj_24_integration_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_24_integration_pseudo_release_source · copyWhere adj_24_integration was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d,
adj_26_unrealized_invst_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_26_unrealized_invst_pseudo_release_ps · copyStandard item adj_26_unrealized_invst as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: releas
adj_26_unrealized_invst_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_26_unrealized_invst_pseudo_release_source · copyWhere adj_26_unrealized_invst was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage
adj_28_natural_disaster_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_28_natural_disaster_pseudo_release_ps · copyStandard item adj_28_natural_disaster as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: releas
adj_28_natural_disaster_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_28_natural_disaster_pseudo_release_source · copyWhere adj_28_natural_disaster was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage
adj_29_supply_chain_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_29_supply_chain_pseudo_release_ps · copyStandard item adj_29_supply_chain as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-te
adj_29_supply_chain_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_29_supply_chain_pseudo_release_source · copyWhere adj_29_supply_chain was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d,
adj_31_exec_transition_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_31_exec_transition_pseudo_release_ps · copyStandard item adj_31_exec_transition as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release
adj_31_exec_transition_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_31_exec_transition_pseudo_release_source · copyWhere adj_31_exec_transition was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 4
adj_32_debt_issuance_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_32_debt_issuance_pseudo_release_ps · copyStandard item adj_32_debt_issuance as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-t
adj_32_debt_issuance_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_32_debt_issuance_pseudo_release_source · copyWhere adj_32_debt_issuance was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d
adj_44_credit_loss_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_44_credit_loss_pseudo_release_ps · copyStandard item adj_44_credit_loss as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-tex
adj_44_credit_loss_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_44_credit_loss_pseudo_release_source · copyWhere adj_44_credit_loss was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d,
adj_46_noncontrolling_interest_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_46_noncontrolling_interest_pseudo_release_ps · copyStandard item adj_46_noncontrolling_interest as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source:
adj_46_noncontrolling_interest_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_46_noncontrolling_interest_pseudo_release_source · copyWhere adj_46_noncontrolling_interest was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py),
adj_47_preferred_dividends_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_47_preferred_dividends_pseudo_release_ps · copyStandard item adj_47_preferred_dividends as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: rel
adj_47_preferred_dividends_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_47_preferred_dividends_pseudo_release_source · copyWhere adj_47_preferred_dividends was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), sta
adj_48_warrant_liability_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_48_warrant_liability_pseudo_release_ps · copyStandard item adj_48_warrant_liability as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: relea
adj_48_warrant_liability_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_48_warrant_liability_pseudo_release_source · copyWhere adj_48_warrant_liability was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage
adj_50_divestiture_gain_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_50_divestiture_gain_pseudo_release_ps · copyStandard item adj_50_divestiture_gain as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: releas
adj_50_divestiture_gain_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_50_divestiture_gain_pseudo_release_source · copyWhere adj_50_divestiture_gain was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage
adj_53_acquired_deferred_rev_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_53_acquired_deferred_rev_pseudo_release_ps · copyStandard item adj_53_acquired_deferred_rev as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: r
adj_53_acquired_deferred_rev_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_53_acquired_deferred_rev_pseudo_release_source · copyWhere adj_53_acquired_deferred_rev was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), s
adj_54_environmental_pseudo_release_ps$/share0%SAT_PSEUDO_RELEASE.adj_54_environmental_pseudo_release_ps · copyStandard item adj_54_environmental as found in the release text, pre-tax per share, sign by economic substance (expense +, gain -); null when not found [source: release-t
adj_54_environmental_pseudo_release_sourcetext0%SAT_PSEUDO_RELEASE.adj_54_environmental_pseudo_release_source · copyWhere adj_54_environmental was read: reconciliation / cash_flow_statement / income_statement / footnote [source: release-text pseudo pass v2 (pseudo_runner.py), stage 44d
24 

MODA_24_FILING_10Q

10-Q/10-K XBRL companions (*_xbrl), never blended
38 columns

What it is about. The formal filing next to the release: 10-Q and 10-K XBRL facts for the same period as _xbrl companions, plus GAAP EPS filled from the filing where no release exists. Companions, never blended.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Do figures in the press release differ from the later 10-Q, and are differences systematic?
    provided revenue_xbrl, gaap_net_income_xbrl, gaap_eps_diluted_xbrl, xbrl_period_gap_days, GAAP.revenue_m, GAAP.gaap_eps
    needs nothing external
  2. For firms without a release, does the 10-Q alone convey a comparable earnings surprise?
    provided gaap_eps_filled, gaap_eps_filled_source, fill_form, DISCLOSURE.has_press_release
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno); I/B/E/S analyst consensus and actuals (from IDENTIFIERS.ticker / permno)
  3. How often do XBRL diluted-EPS facts disagree with the release, and why?
    provided gaap_eps_diluted_xbrl, gaap_eps_basic_xbrl, xbrl_ni_tag, xbrl_period_basis, GAAP.gaap_eps, GAAP.gaap_eps_basic
    needs nothing external

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_XBRL_FACTS_LONG

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
revenue_xbrl$M41%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY revenue as tagged in the 10-K XBRL
cogs_xbrl$M27%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY cost of sales (10-K XBRL)
sga_xbrl$M19%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY SG&A (10-K XBRL)
rd_expense_xbrl$M18%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY R&D (10-K XBRL)
operating_income_xbrl$M38%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY operating income (10-K XBRL)
pretax_income_xbrl$M44%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY pretax income (10-K XBRL)
income_tax_xbrl$M44%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY income tax expense (10-K XBRL)
gaap_net_income_xbrl$M51%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY net income (10-K XBRL)
gaap_eps_diluted_xbrl$/share47%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY diluted EPS (10-K XBRL)
gaap_eps_basic_xbrl$/share48%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY basic EPS (10-K XBRL)
diluted_shares_xbrl_kthousands39%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY weighted diluted shares (10-K XBRL)
basic_shares_xbrl_kthousands39%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY weighted basic shares (10-K XBRL)
xbrl_accessiontext51%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsAccession of the 10-K the FY facts come from
xbrl_period_enddate51%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsFY period end of the matched facts
xbrl_period_gap_daysdays51%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsxbrl_period_end minus datadate
xbrl_period_basistext51%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsfy_discrete (a 350-380 day duration fact ending at the FY end)
xbrl_revenue_tagtext41%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsXBRL tag used for revenue
xbrl_ni_tagtext51%SAT_XBRL_FACTS_LONG · xbrl_fy_companionsXBRL tag used for net income
xbrl_facts_long_availableflag100%SAT_XBRL_FACTS_LONG · xbrl_fy_companions1 if the firm-year has facts in SAT_XBRL_FACTS_LONG
total_assets_xbrl$M52%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsTotal assets at period end (10-Q/10-K XBRL, instant)
total_liabilities_xbrl$M42%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsTotal liabilities at period end (XBRL, instant)
total_equity_xbrl$M51%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsStockholders' equity at period end (XBRL, instant)
cash_xbrl$M46%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsCash and cash equivalents at period end (XBRL, instant)
long_term_debt_xbrl$M20%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsLong-term debt (noncurrent) at period end (XBRL, instant)
cfo_xbrl$M43%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsNet cash from operating activities (XBRL; quarterly = discrete quarter via YTD differencing, annual = FY)
cfi_xbrl$M42%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsNet cash from investing activities (XBRL; see xbrl_cf_basis)
cff_xbrl$M43%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsNet cash from financing activities (XBRL; see xbrl_cf_basis)
capex_xbrl$M43%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsCapital expenditures = payments to acquire PP&E (XBRL; see xbrl_cf_basis)
da_xbrl$M41%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsDepreciation, depletion and amortization (XBRL cash-flow statement; see xbrl_cf_basis)
sbc_xbrl$M43%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsShare-based compensation (XBRL cash-flow statement; see xbrl_cf_basis)
xbrl_cf_basistext51%SAT_XBRL_FACTS_LONG · xbrl_extra_companionsdiscrete_q1 / ytd_diff (quarterly) or fy (annual): how the cash-flow companions were derived
25 

MODA_25_TIMING

Release and filing dates, lags, call details
27 columns

What it is about. When the release and call happened: press-release date, earnings-call date and time, lag to the fiscal period end and to the formal filing, deciles of timeliness.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Do firms delay releases when the news is bad or the exclusions are large?
    provided period_announce_lag_days, press_release_date_corrected, GAAP.gaap_eps, GAAP_TO_NG.total_exclusions
    needs nothing external
  2. Does an after-hours or Friday release change the market's reaction?
    provided press_release_date_corrected, call_time_et, call_same_day, CONSENSUS_BEAT.earnings_surprise
    needs CRSP daily returns (CAR around the release date; from IDENTIFIERS.permno); release timestamps (sec-api metadata acceptedDate) for after-hours classification
  3. Has the lag between period end and release shortened over time?
    provided period_announce_lag_days, release_to_10q_days, release_to_10k_days, q4_released_with_10k
    needs nothing external

Sources: NONGAAP_A, PANEL_SPINE_A, tenq_exist_grid_v2

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
filing_date_10qdate1%tenq_exist_grid_v2.tenq_filing_date · copyEDGAR filing date of the quarter's 10-Q (same column as DISCLOSURE.filing_date_10q, repeated here next to press_release_date and release_to_10q_days)
filing_date_10kdate90%tenq_exist_grid_v2.tenk_filing_date · copyEDGAR filing date of the fiscal year's 10-K (same column as DISCLOSURE.filing_date_10k)
call_datedate54%NONGAAP_A.call_date · copyEarnings conference call date (YYYY-MM-DD)
call_decileratio63%NONGAAP_A.call_decile · copyDecile (1-10) of the earnings-call announcement's position within the release text
call_time_ettext54%NONGAAP_A.call_time_et · copyCall time converted to Eastern Time (24-hour HH:MM)
call_timezone_statedtext54%NONGAAP_A.call_timezone_stated · copyTime zone as written in the release: ET/CT/MT/PT
call_webcast_urlurl51%NONGAAP_A.call_webcast_url · copyVerbatim website/URL for the earnings call or webcast / IR events page (null if none given)
earnings_call_mentionedflag89%NONGAAP_A.earnings_call_mentioned · copy1=release announces an earnings conference call/webcast
period_announce_lag_daysdays86%NONGAAP_A.period_announce_lag_days · copyDays from period_end to the press-release date (announcement lag); normal 10-90 days, negative or > 120 = date problem (see period_date_consistent)
period_date_consistentflag86%NONGAAP_A.period_date_consistent · copy1=COLUMN/period validation passes: the reported period ends BEFORE the release within a normal lag (0..110d Q / 0..120d A) — confirms GAAP EPS, non-GAAP EPS and the adjus
press_release_date_correcteddate86%NONGAAP_A.press_release_date_corrected · copypress_release_date with the 172 detected typos repaired (= sec_filing_date when press_release_date_typo = 1); equals press_release_date on 99.95%
press_release_date_typoflag89%NONGAAP_A.press_release_date_typo · copy1=the press_release_date is a TYPO (REPORTED periods only; guidance rows excluded): it precedes period_end (impossible — a release cannot predate the quarter it reports)
press_release_locationtext86%NONGAAP_A.press_release_location · copyDateline city/location of the press release (null if none)
sec_filing_datedate88%NONGAAP_A.sec_filing_date · copySEC/EDGAR filing date (YYYY-MM-DD) — the EDGAR acceptance date of the 8-K (when it was furnished to the SEC), joined from the 8-K filing index (struct `secadate`) by acce
sec_filing_date_sourcetext88%NONGAAP_A.sec_filing_date_source · copyWhere the EDGAR filing date came from (metadata vs submissions API).
release_to_10q_daysdays0%derived · lag_daysfiling_date_10q minus press_release_date: days from the earnings release to the 10-Q filing (same quarter)
call_same_dayflag53%derived · lag_days1 = the earnings call is on the press-release date (derived from call_date vs press_release_date; null when no call date)
release_to_filing_daysdays86%derived · lag_dayssec_filing_date minus press_release_date: days from the release to the 8-K furnishing (0 on 77%; negative = filed before the stated release date, a typo signal)
release_to_10k_daysdays81%derived · lag_daysfiling_date_10k minus press_release_date (Q4 / fiscal-year releases)
q4_released_with_10kflag81%derived · lag_days1 if the Q4 release date equals the 10-K filing date
26 

MODA_26_INTEGRITY

Quality tiers, share consistency, provenance, diagnostics
42 columns + 1 sparse

What it is about. Extraction and data-quality signals: provenance, deduplication decisions, value-in-filing verification, annual-into-quarterly leak checks, share-count consistency and the recovered-variable audit.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Which extracted values are corroborated verbatim in the filing text, and which are not?
    provided gaap_eps_in_filing, nongaap_eps_in_filing, text_confirmed_gaap, text_matches_table, n_adj_tested, n_adj_not_found
    needs nothing external
  2. How should researchers weight observations with imputed or filled figures?
    provided nongaap_eps_quality, nongaap_eps_derived, imputed_share_source, confidence, GAAP.gaap_eps_imputed
    needs nothing external
  3. Do data-quality flags correlate with firm characteristics that would bias a sample?
    provided extraction_status, share_scale_suspect, source_is_txt
    needs Compustat fundamentals (size, book-to-market, leverage, industry; from IDENTIFIERS.gvkey)

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_PROVENANCE, SAT_RECOVERED_FILING, SAT_SHARE_CONSISTENCY, SAT_VALUE_QUALITY

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
html_image_basedflag89%NONGAAP_A.html_image_based · copy1=release is image/PDF-based (little extractable HTML text)
ann_gni$M88%NONGAAP_A.ann_gni · copyDecumulation-guard input: the fiscal year's annual GAAP net income ($M) where known
extraction_passtext89%NONGAAP_A.extraction_pass · copyWhich extraction pass produced the row: main (frozen all-in-one), repair (120k-token retry), run22_eps_removal, ... (provenance)
period_label_forward_lookingflag89%NONGAAP_A.fw_label · copy1 = the period label of the extracted row contains forward-looking words (expect / estimate / project / forecast / outlook / guidance): Rule D input, 252 spine rows
imputed_share_sourcetext89%NONGAAP_A.imputed_share_source · copyOrigin of the share count when the filing printed none: 'gaap_ni_over_gaap_eps' (derived from the filing) or 'not_computable_from_filing'.
is_most_recentflag89%NONGAAP_A.is_most_recent · copy1 = this row is the most recent actual period in its filing (64 spine rows are an earlier period kept because the latest was unusable)
period_dup_reasontext0%NONGAAP_A.period_dup_reason · copyPeriod dup reason
period_dup_unresolvedflag89%NONGAAP_A.period_dup_unresolved · copyPeriod dup unresolved
period_type_verdicttext89%NONGAAP_A.period_type_verdict · copyOutcome of the quarterly-vs-annual period-type guard.
prose_backfilledflag89%NONGAAP_A.prose_backfilled · copy1 if the text-position fields were recomputed by the prose backfill pass.
q13_ni_sum$M81%NONGAAP_A.q13_ni_sum · copyDecumulation-guard input: sum of GAAP net income ($M) over the prior quarters of the same fiscal year found for this firm (0 when none)
q13_nqcount81%NONGAAP_A.q13_nq · copyDecumulation-guard input: number of prior same-fiscal-year quarters found (0-3)
raw_gaap_eps$/share88%NONGAAP_A.raw_gaap_eps · copyGAAP EPS as first read, before cleaning rules.
raw_gaap_ni_m$M88%NONGAAP_A.raw_gaap_ni_m · copyGAAP net income as first read, US$ millions, before gating.
raw_nongaap_eps$/share40%NONGAAP_A.raw_nongaap_eps · copyNon-GAAP EPS as first read, before cleaning rules.
raw_nongaap_ni_m$M37%NONGAAP_A.raw_nongaap_ni_m · copyNon-GAAP net income as first read from the filing, US$ millions, before the eligibility gating that populates nongaap_net_income.
source_is_txtflag89%NONGAAP_A.source_is_txt · copy1=source exhibit is a plain-text .txt filing (space-aligned columns; flash under-values the itemization, so these are routed to pro-think). 0=.htm/.html.
text_confirmed_gaapflag89%NONGAAP_A.text_confirmed_gaap · copy1=GAAP EPS confirmed in press release text (LLM judgment)
text_matches_tableflag32%NONGAAP_A.text_matches_table · copy1=text anchor matches table non-GAAP EPS (within $0.01); null if no text anchor
modeltext91%SAT_PROVENANCE.model · copyLLM that produced the row: deepseek-v4-flash (89%) or deepseek-v4-pro (repairs)
extraction_statustext91%SAT_PROVENANCE.status · copyok / hard_fail (33) / parse_fail: outcome of the extraction call for the filing
confidencetext91%SAT_RECOVERED_FILING.confidence · copyExtractor self-reported confidence for the row: high / medium / low
notestext91%SAT_RECOVERED_FILING.notes · copyExtractor free-text notes on the filing (e.g. 'GAAP-only release; no non-GAAP reconciliation')
implied_shares_kthousands67%SAT_SHARE_CONSISTENCY.implied_shares_k · copyDiluted share count in THOUSANDS implied by the filing itself: GAAP net income divided by GAAP diluted EPS. An internal control, computed without any external data.
share_gap_ratioratio67%SAT_SHARE_CONSISTENCY.share_gap_ratio · copyimplied_shares_k divided by the share count the filing reports. A value near 1.0 means the two agree.
share_scale_suspectflag67%SAT_SHARE_CONSISTENCY.share_scale_suspect · copy1 when implied and reported share counts differ by more than 50%. A soft flag: GAAP EPS is printed to two decimals, so the division amplifies rounding for small-EPS firms
gaap_eps_in_filingflag83%SAT_VALUE_QUALITY.gaap_eps_in_filing · copy1 if the stated GAAP EPS appears verbatim in the filing text (anti-fabrication).
n_adj_not_foundcount36%SAT_VALUE_QUALITY.n_adj_not_found · copyCount of adj not found.
n_adj_testedcount36%SAT_VALUE_QUALITY.n_adj_tested · copyCount of adj tested.
nongaap_eps_calc_consistentflag33%SAT_VALUE_QUALITY.nongaap_eps_calc_consistent · copy1 when the stated non-GAAP EPS agrees with non-GAAP net income divided by the share count. A COMPANION column: it never overwrites the extractor's own consistency flag.
nongaap_eps_derivedflag83%SAT_VALUE_QUALITY.nongaap_eps_derived · copy1 when the non-GAAP EPS was computed rather than read off the page -- either explicitly derived, or consistent with net income over shares while absent from the text.
nongaap_eps_in_filingflag40%SAT_VALUE_QUALITY.nongaap_eps_in_filing · copy1 when the stated non-GAAP EPS is found verbatim in the filing text. The anti-fabrication check: a stated value that is absent from its own filing was not read, it was pr
nongaap_eps_qualitytext40%SAT_VALUE_QUALITY.nongaap_eps_quality · copyOverall grade for the non-GAAP EPS: clean / derived_not_disclosed / value_dispute / unresolved. Null when the release states no non-GAAP EPS.
nongaap_eps_verdicttext1%SAT_VALUE_QUALITY.nongaap_eps_verdict · copyReferee category where the value was adjudicated, else null. Populated only for the disputed subset.
sparse_extrasjson0%derived · sparse_foldJSON {column: value} of this module's sparse (N<100) variants, non-missing only; nothing dropped
Folded into sparse_extras (1): input_truncated
27 

MODA_27_IDENTIFIERS

Keys, tickers, crosswalk flags
43 columns

What it is about. Who and when: CIK, ticker, fiscal calendar, the Compustat and CRSP crosswalk flags (identifiers themselves ship only internally), the release's contact block and the filing-level keys.

Research questions this module can address (variables this database provides, and what each design still needs from elsewhere)

  1. Which firms in Compustat never issue earnings press releases, and how does that bias samples?
    provided compustat_match, compustat_nonmatch_reason, gvkey, DISCLOSURE.has_press_release
    needs Compustat fundamentals (size, book-to-market, leverage, industry; from IDENTIFIERS.gvkey) universe
  2. Do investor-relations contacts and external IR agencies relate to disclosure quality?
    provided n_contacts_regex, n_contacts_llm, contact_source, NG_RATIONALE.rationale_specific_share, NG_COMPLIANCE.nongaap_explanation_present
    needs nothing external
  3. How stable are fiscal calendars, and how often do quarters get restated across releases?
    provided ticker, period_type, INTEGRITY.period_dup_reason, PRELIMINARY.prelim_gap_gaap_eps
    needs Compustat fyr for fiscal-year-end changes

Sources: NONGAAP_A, PANEL_SPINE_A, SAT_CONTACTS

variableunitfillsource · transformdescription
ciktext100%PANEL_SPINE_A.cik · id_blockSEC Central Index Key
datadatedate100%PANEL_SPINE_A.datadate · id_blockFiscal quarter end (Compustat month-end convention)
fiscal_yeartext100%NONGAAP_A.fiscal_year · id_blockFiscal year of the quarter
fiscal_quartertext0%NONGAAP_A.fiscal_quarter · id_blockFiscal quarter (1-4)
exhibit_urlurl91%PANEL_SPINE_A.exhibit_url · id_blockURL of the earnings press release (8-K Ex. 99.1) for the quarter (Rule-D winner)
accession_numbertext89%NONGAAP_A.accession_number · id_blockSEC accession number of the 8-K carrying the release
press_release_datedate86%NONGAAP_A.press_release_date · id_blockDate of the press release
compustat_matchflag89%NONGAAP_A.compustat_match · copy1 = cik + datadate matched a Compustat fundq firm-quarter in the crosswalk (identifier match only; no Compustat values in the database)
compustat_nonmatch_reasontext5%NONGAAP_A.compustat_nonmatch_reason · copyWhy a Compustat match failed.
crsp_matchflag89%NONGAAP_A.crsp_match · copy1 = the firm-quarter matched CRSP in the crosswalk (identifier match only)
ibes_matchflag89%NONGAAP_A.ibes_match · copy1 = the firm-quarter has an I/B/E/S ticker in the crosswalk (identifier match only; no I/B/E/S values in the database)
period_enddate89%NONGAAP_A.period_end · copyFiscal period end AS PRINTED in the press release (e.g. 2016-01-28 for a 52/53-week year). datadate in the identifier block is this date snapped to the calendar month end
period_end_suspectflag89%NONGAAP_A.period_end_suspect · copy1 = on a reported period both the press-release date and the SEC filing date precede period_end (date problem; 15 rows)
period_typetext89%NONGAAP_A.period_type · copyQ = quarterly row, A = annual row (41 annual rows sit on the quarterly spine where the firm reported only a fiscal-year figure for its Q4)
tickertext87%NONGAAP_A.ticker · copyCompany ticker as printed in the release or from the crosswalk
ceo_nametext81%derived · exec_namesCEO name as printed in the release: from a quote attributed to the CEO, else Pass 3 Task C, else the contact block (see ceo_name_source)
ceo_name_sourcetext81%derived · exec_namesquote / pass3 / contact_block
cfo_nametext35%derived · exec_namesCFO name as printed in the release: from a quote attributed to the CFO, else Pass 3 Task C, else the contact block (see cfo_name_source)
cfo_name_sourcetext35%derived · exec_namesquote / pass3 / contact_block
period_end_snap_daysdays89%derived · period_snapperiod_end (the fiscal period end as printed in the release) minus datadate (the month-end-snapped key used for the Compustat / CRSP merge), days; 0 on 93% of rows, non-z
contact_block_found_regexflag91%SAT_CONTACTS.contact_block_found_regex · copy1 = a contact block was found by the regex pass [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_froze
contact_names_regextext59%SAT_CONTACTS.contact_names_regex · copyContact names (regex, '; '-joined) [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact_titles_regextext41%SAT_CONTACTS.contact_titles_regex · copyContact titles (regex) [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact_emails_regextext29%SAT_CONTACTS.contact_emails_regex · copyContact e-mails (regex) [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact_phones_regextext53%SAT_CONTACTS.contact_phones_regex · copyContact phones (regex) [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
n_contacts_regexcount91%SAT_CONTACTS.n_contacts_regex · copyNumber of contacts (regex) [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact_needs_llmflag91%SAT_CONTACTS.contact_needs_llm · copy1 = regex result ambiguous, sent to the LLM contacts pass [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_pr
contact_llm_statustext36%SAT_CONTACTS.contact_llm_status · copyLLM contacts pass status (ok / no_cache / error) [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_froz
n_contacts_llmcount36%SAT_CONTACTS.n_contacts_llm · copyNumber of contacts returned by the LLM pass [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.tx
contacts_llm_jsontext8%SAT_CONTACTS.contacts_llm_json · copyAll LLM-pass contacts as a JSON list of name / title / org / email / phone (contact #3 and beyond live only here)
contact1_name_llmtext7%SAT_CONTACTS.contact1_name_llm · copyLLM contacts pass: contact #1 name [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact1_title_llmtext4%SAT_CONTACTS.contact1_title_llm · copyLLM contacts pass: contact #1 title [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact1_org_llmtext5%SAT_CONTACTS.contact1_org_llm · copyLLM contacts pass: contact #1 org [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact1_email_llmtext3%SAT_CONTACTS.contact1_email_llm · copyLLM contacts pass: contact #1 email [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact1_phone_llmtext6%SAT_CONTACTS.contact1_phone_llm · copyLLM contacts pass: contact #1 phone [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact2_name_llmtext3%SAT_CONTACTS.contact2_name_llm · copyLLM contacts pass: contact #2 name [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact2_title_llmtext1%SAT_CONTACTS.contact2_title_llm · copyLLM contacts pass: contact #2 title [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact2_org_llmtext2%SAT_CONTACTS.contact2_org_llm · copyLLM contacts pass: contact #2 org [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact2_email_llmtext2%SAT_CONTACTS.contact2_email_llm · copyLLM contacts pass: contact #2 email [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact2_phone_llmtext3%SAT_CONTACTS.contact2_phone_llm · copyLLM contacts pass: contact #2 phone [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_prompt_frozen.txt]
contact_sourcetext91%SAT_CONTACTS.contact_source · copyllm / regex / none: which pass supplies the contact columns [source: run-2 contact block: regex on all filings + LLM pass on the flagged ones, run-1 Pass 3, prompt PASS3_
contact_names_regex_cleanflag57%SAT_CONTACTS.contact_names_regex_clean · copytact names regex clean (run-2 contact block: regex on all filings + LLM pass on the flagged ones) [source: run-2 contact block: regex on all filings + LLM pass on the fla
contact_regex_qualityflag59%SAT_CONTACTS.contact_regex_quality · copytact regex quality (run-2 contact block: regex on all filings + LLM pass on the flagged ones) [source: run-2 contact block: regex on all filings + LLM pass on the flagged

Satellites with several rows per firm-year

These physical tables hold more than one row per release and are NOT modules: each is summarized into its module by the named transform shown, and ships as is for buyers who want every row. Columns and definitions from the physical codebook.

How to merge a satellite to the spine. exhibit_url — the SEC 8-K Exhibit 99.1 URL — is the unique filing-level key of every satellite and the column to merge on: one spine row (cik × datadate) → many satellite rows. The relation is one-to-many from the spine's perspective (one release, five quotes = five rows). cik, datadate, period_end, fiscal_year, fiscal_quarter are convenience keys added to every satellite (chain stage add_satellite_keys.py): they describe the headline period of the release, repeat on every row of that release, and are not unique. on_spine_q = 1 marks the rows whose release is the winning release of its spine row (the rows the modules were built from); key_source says where the keys came from.

satellite 

SAT_QUOTES

grain exhibit_url x seq · summarized into QUOTES (quote_role_slots)
1,130,283 rows · 27 columns

Every direct quotation in every release (1.13M quotes): speaker name, position and role (ceo / cfo / other_exec / chair_board / analyst / customer_partner / investor / regulator / other), verbatim text, free-text topic and a coded topic list (q_topics, 186 codes), sentiment (positive / neutral / negative / mixed), direction, attribution (internal / external / both / mixed / none) and the forward-looking flag. CAVEAT: 843 'releases' with > 30 quotes and 657 quoting an 'Operator' are earnings-call transcripts furnished as Exhibit 99.1 -> is_transcript_like = 1 (derived at write time). The old key spellings (name / position / content / role, 41% of rows, equal to the canonical columns on 99.9%) were folded in and removed 2026-09-06.

columnnon-missingdefinition
exhibit_url JOIN KEY1,130,283SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik1,130,283SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate1,006,847Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end964,155Headline fiscal period end as printed in the release — convenience key
fiscal_year964,981Fiscal year of the headline period — convenience key
fiscal_quarter900,749Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q1,130,2831 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a1,130,2831 = this release is the annual spine's release for its firm-year
datadate_a230,908PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source1,130,283Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
seq1,130,283Row order within the release (0 = first item as it appears) Order of the quote in the release (0 = first)
speaker_name1,126,795Name of the executive or representative speaking during the earnings call, as stated in the transcript. Name of the quoted person as printed
speaker_position1,122,677Free text stating the corporate title or position of the quoted speaker, e.g., chairman and CEO. Title as printed ('President and Chief Executive Officer')
speaker_role1,130,035Role of the speaker in an earnings call, e.g., CEO, CFO, analyst; free text. Coded role: ceo / cfo / other_exec / chair_board / analyst / customer_partner / investor / regulator / other
quote_text1,130,130Quote attribute: text. Verbatim quotation
topic1,130,112Topic or headline of the earnings press release quote, summarizing key financial or operational themes. Free-text topic label from the extractor
sentiment1,130,115Sentiment classification of management commentary in SEC earnings press releases, with values positive, mixed, neutral, or negative. positive / neutral / negative / mixed
q_topics1,129,575List of topics discussed in the earnings call, such as revenue, profitability, demand, product, operations, strategy, outlook, or balance sheet. Coded topic list (JSON): operations, strategy, outlook, revenue, demand, product, profitability, capital_allocation, costs, acquisition, macro, balance_sheet, margins ... (186 codes)
q_direction1,129,574Direction of quarterly earnings trend as stated in press release, e.g., positive, mixed, neutral, negative, or both. Direction of the message: positive / mixed / neutral / negative
q_attribution1,129,572Attribution of quarterly earnings quote source: both, internal, external, mixed, none, or neutral; free text. Whom the quote credits: internal / external / both / mixed / none
q_fwd_looking1,129,575Flag (1/0) indicating whether the earnings press release contains forward-looking statements. 1 = the quote is forward-looking
quotes152Free text: JSON array of executive quotes from earnings call, each with speaker name and position. raw nested JSON variant, 152 rows; ignore.
n_quotes152Number of direct quotations attributed to people in the release raw-schema variant present on only 152 rows (an early nested-quotes output); the per-release quote COUNT is n_quotes in module QUOTES (87% of firm-quarters) and n_quotes_long (rows in this table).
n_distinct_speakers152Count of distinct speakers. raw variant, 152 rows; ignore.
any_nonmgmt_quote152Flag indicating whether any non-management quote appears in the earnings press release; 1=yes, 0=no.
confidence155Confidence level (high, medium, or low) assigned to the accuracy of the quoted financial data in the press release.
is_transcript_like1,130,283 1 = the release looks like an earnings-call transcript (> 30 quotes or an 'Operator' speaker); derived at write time
satellite 

SAT_KPI

grain exhibit_url x seq · summarized into KPI (kpi_slots)
346,977 rows · 12 columns

The NAMES management flags as key metrics in the frozen prompt (Adjusted EBITDA, EBITDA, free cash flow, adjusted net income ...; free text, 46k spellings), one row per flagged name (347k rows, 148k releases). Module KPI's kpi_01..kpi_10 slots come from here. NOT the values table: operational KPI VALUES (units, subscribers, stores, ASMs ...) are in SAT_OPERATIONAL_KPIS (Pass 3, 264k releases).

columnnon-missingdefinition
exhibit_url JOIN KEY346,977SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik346,977SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate336,078Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end322,973Headline fiscal period end as printed in the release — convenience key
fiscal_year323,000Fiscal year of the headline period — convenience key
fiscal_quarter311,844Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q346,9771 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a346,9771 = this release is the annual spine's release for its firm-year
datadate_a72,773PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source346,977Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
seq346,977Row order within the release (0 = first item as it appears) Disclosure order of the flagged name (0 = first)
value346,977Adjustment to diluted earnings per share from non-GAAP to GAAP, in US$ per diluted share. the KPI NAME management flagged as a key metric (verbatim; frozen prompt collects names only) — 44,917 rows say 'Adjusted EBITDA', 19,082 'EBITDA'; the VALUES of operational KPIs are in SAT_OPERATIONAL_KPIS (Pass 3 Task G).
satellite 

SAT_OPERATIONAL_KPIS

grain exhibit_url x seq · summarized into KPI (opkpi_slots)
1,284,047 rows · 21 columns

One row per operational KPI VALUE read by Pass 3 Task G (1.28M rows, 264k releases): raw code and verbatim label, value AS PRINTED, unit as printed (3,284 spellings) plus unit_std (closed set) and scale_to_units (1 / 1,000 / 1,000,000 / 1,000,000,000 for magnitude words, null for percent, ratios and physical units), period (Q / A / point_in_time / partial / other), and the standardized kpi_std (135 codes) / kpi_family (26 families) from kpi_std_map.py. Module KPI pivots the 120 codes with >= 500 records.

columnnon-missingdefinition
exhibit_url JOIN KEY1,284,047SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik1,284,047SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate1,277,501Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end1,226,800Headline fiscal period end as printed in the release — convenience key
fiscal_year1,226,853Fiscal year of the headline period — convenience key
fiscal_quarter1,232,701Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q1,284,0471 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a1,284,0471 = this release is the annual spine's release for its firm-year
datadate_a322,386PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source1,284,047Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
seq1,284,047Row order within the release (0 = first item as it appears)
kpi1,284,047 Pass 3 normalized code (subscribers, store_count, backlog_rpo, occupancy, units_volume, ... 'other' = firm-specific, see label_verbatim).
label_verbatim1,284,046 Verbatim KPI label as printed
value1,284,047Adjustment to diluted earnings per share from non-GAAP to GAAP, in US$ per diluted share. numeric value AS PRINTED; the scale (millions/thousands/%) is in unit.
unit1,284,000Unit of measurement for values in the SAT_FWD_RECON module, e.g., $/share, $M, %, percentage points. Unit as printed in the release (3,284 spellings)
period1,284,043Reporting period label for financial data, e.g., quarter or full year, as free text. point_in_time (a period-end level) / Q / A.
segment538Identifies the business segment or subsidiary name associated with an adjusted item, as reported in the earnings release.
kpi_family1,284,047 Family of kpi_std (26: industrial, retail, airline, saas, banking, energy, ...)
kpi_std1,284,047 Standardized code from kpi_std_map.py (135 codes; 'other' 26%)
unit_std1,284,000 Closed unit set from a spelling map: count / percent / thousands / millions / billions / dollars / dollars_per_unit / days / months / years / hours / ratio / area / weight / energy_volume / distance / other
scale_to_units801,455 Multiplier to base units: 1 (count, dollars), 1e3, 1e6, 1e9; null where no scale applies (percent, ratio, physical units)
satellite 

SAT_ADJ_ITEM_DETAIL

grain exhibit_url x period_index x seq · summarized into NG_ADJUSTMENTS (adj_items_summary)
1,369,595 rows · 22 columns

Every reconciliation line of every release: verbatim label, category code, management's transience wording, which measures the line enters, guidance flag. The label-and-wording layer: per-category AMOUNTS are in NG_ADJUSTMENTS; item-level amounts appear here only where the release printed them (9%).

columnnon-missingdefinition
exhibit_url JOIN KEY1,369,595SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik1,369,595SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate1,359,942Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end1,307,169Headline fiscal period end as printed in the release — convenience key
fiscal_year1,307,207Fiscal year of the headline period — convenience key
fiscal_quarter1,251,399Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q1,369,5951 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a1,369,5951 = this release is the annual spine's release for its firm-year
datadate_a512,701PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source1,369,595Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
period_index1,369,595Index of the period within a filing; a release may report several periods.
seq1,369,595Row order within the release (0 = first item as it appears)
label1,369,593A free-text label describing a specific adjustment item in the statement of adjusted earnings.
category1,369,595Category code identifying the type of non-GAAP adjustment applied to a financial statement line item.
tax_effect_item_m72,823Tax effect item, US$ millions.
mgmt_transience_terms1,369,595Free-text list of terms in earnings release indicating management labels items as transient or non-recurring.
separately_identified1,369,595Flag indicating whether an adjustment item was separately identified in the earnings release. Unit: 1/0 flag.
in_measures1,369,595List of non-GAAP financial measure categories used in earnings press releases, e.g., nongaap_eps, adj_ebitda.
in_guidance1,369,367Flag indicating whether the reported item was included in management's earnings guidance. 1=yes, 0=no.
value_m114,888Value, US$ millions.
value_ps46,073Value, per diluted share (US$).
value412Adjustment to diluted earnings per share from non-GAAP to GAAP, in US$ per diluted share.
satellite 

SAT_UNEXCLUDED_GAINS

grain exhibit_url x seq · summarized into UNEXCLUDED_GAINS (unexcluded_summary)
50,661 rows · 21 columns

Gains left INSIDE the non-GAAP figure (asymmetric exclusion: losses out, gains in), one row per gain (44,720 releases): verbatim label, coded concept plus concept_family (asset_sale_gain / tax_benefit / debt_extinguishment_gain / discontinued_operations / fx_gain / fair_value_gain / investment_gain / insurance_or_litigation_recovery / bargain_purchase_gain / other), value in the printed unit ($M on 97%, per share on 970 rows -> value_ps), and where in the release it appears (income_statement / narrative / cash_flow_statement / highlights / reconciliation / footnote / other). 722 items were trapped in wrapper cells and are exploded since 2026-09-06. Feeds UNEXCLUDED_GAINS.

columnnon-missingdefinition
exhibit_url JOIN KEY50,661SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik50,661SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate47,944Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end14Headline fiscal period end as printed in the release — convenience key
fiscal_year46,251Fiscal year of the headline period — convenience key
fiscal_quarter44,299Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q50,6611 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a50,6611 = this release is the annual spine's release for its firm-year
datadate_a14,504PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source50,661Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
seq50,661Row order within the release (0 = first item as it appears)
label38,471A free-text label describing a specific adjustment item in the statement of adjusted earnings. Verbatim label of the gain
concept38,471The name of the business segment or reporting unit for which financial measures are reported. Coded concept as the extractor wrote it (11k spellings); use concept_family
value35,714Adjustment to diluted earnings per share from non-GAAP to GAAP, in US$ per diluted share. Gain amount in the printed unit (see unit; $M on 97%)
unit38,195Unit of measurement for values in the SAT_FWD_RECON module, e.g., $/share, $M, %, percentage points. $M / /sh (per share) / other currencies as printed
value_ps3,807Value, per diluted share (US$). Per-share amount where the release gives one
where38,471Free text indicating the section of the earnings press release where the unexcluded gain is reported. Where the gain is disclosed: income_statement / narrative / cash_flow_statement / highlights / reconciliation / footnote / other
unexcluded_gains12,186Free text listing non-excluded gains from SEC earnings releases, often as JSON with labels and concepts.
period113Reporting period label for financial data, e.g., quarter or full year, as free text.
period_type24Q=quarterly A=annual
concept_family38,471 Closed family from a spelling map (derived at write time)
satellite 

SAT_MEASURES_LONG

grain exhibit_url x measure · summarized into NG_FAMILY (measures_pivot)
721,469 rows · 28 columns

One row per non-GAAP MEASURE per release and period (721k rows): raw measure_type (156 spellings) plus a coded measure_family (adjusted_ebitda, ebitda, adjusted_operating_income, ffo, affo, fad, ebit, adjusted_ebitdax, ebitdare, free_cash_flow, adjusted_net_income, adjusted_eps, adjusted_gross, other), verbatim label, reconciliation start line and value, stated total, per-share figure, diluted shares, guidance ranges (four canonical columns coalesced from 20 spellings), and the bridge lines as JSON (`adjustments`). The bridge lines are ALSO exploded into SAT_MEASURE_BRIDGE_LINES (2.8M lines). 370 stray columns removed 2026-09-06.

columnnon-missingdefinition
exhibit_url JOIN KEY721,469SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik721,469SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate710,410Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end145,170Headline fiscal period end as printed in the release — convenience key
fiscal_year18,325Fiscal year of the headline period — convenience key
fiscal_quarter659,423Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q721,4691 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a721,4691 = this release is the annual spine's release for its firm-year
datadate_a237,236PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source721,469Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
seq721,469Row order within the release (0 = first item as it appears)
period_type721,456Q=quarterly A=annual
is_guidance721,4521=period row is forward-looking guidance not reported actual earnings
measure_type721,469'type' measure attribute.
measure_label721,448'label' measure attribute.
recon_start_label711,309Reconciliation-table attribute: start label.
recon_start_m699,711Reconciliation-table attribute: start m.
adjustments721,465A list of adjustment items with labels and amounts in US$ millions, used in non-GAAP earnings reconciliations. JSON list of the measure's bridge lines [{label, value_m, ...}]; exploded into SAT_MEASURE_BRIDGE_LINES
measure_total_m704,817'total m' measure attribute.
measure_per_share_reported108,764'per share reported' measure attribute.
diluted_shares_m566,655Diluted shares, US$ millions.
measure_per_share_low209'per share low' measure attribute.
measure_per_share_high210'per share high' measure attribute.
measure_total_low_m2,537'total low m' measure attribute. Low end of a guided measure total ($M), coalesced from five spellings
measure_total_high_m2,729'total high m' measure attribute. High end of a guided measure total ($M), coalesced
recon_start_low_m2,012Reconciliation-table attribute: start low m. Low end of the guided start line ($M), coalesced
recon_start_high_m2,148Reconciliation-table attribute: start high m. High end of the guided start line ($M), coalesced
measure_family721,469'family' measure attribute. Coded family of measure_type (regex spelling map at write time): adjusted_ebitda / ebitda / adjusted_operating_income / ffo / affo / fad / ebit / adjusted_ebitdax / ebitdare / free_cash_flow / adjusted_net_income / adjusted_eps / adjusted_gross / other
satellite 

SAT_MEASURE_BRIDGE_LINES

grain exhibit_url x measure_seq x line_seq · summarized into (none: the per-measure bridge lines, exploded from SAT_MEASURES_LONG.adjustments)
2,823,065 rows · 17 columns

Every line of every measure's reconciliation (2.8M lines), exploded from SAT_MEASURES_LONG.adjustments: exhibit_url x measure_seq x line_seq, verbatim label, value in $M, per share where given, low / high where a range. The per-measure bridge for EBITDA, FFO, free cash flow ...; the identity start + lines = total closes on 98.8% of measures.

columnnon-missingdefinition
exhibit_url JOIN KEY2,823,065SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik2,823,065SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate2,786,499Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end2,684,023Headline fiscal period end as printed in the release — convenience key
fiscal_year2,684,078Fiscal year of the headline period — convenience key
fiscal_quarter2,559,830Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q2,823,0651 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a2,823,0651 = this release is the annual spine's release for its firm-year
datadate_a962,845PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source2,823,065Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
measure_seq2,823,065'seq' measure attribute. seq of the parent measure in SAT_MEASURES_LONG (join on exhibit_url + measure_seq = seq)
line_seq2,823,065 Position of the line in the measure's reconciliation
label2,823,060A free-text label describing a specific adjustment item in the statement of adjusted earnings. Verbatim label of the bridge line
value_m2,807,054Value, US$ millions. Line value, $M (sign as printed)
value_ps768Value, per diluted share (US$). Line value per share where the release gives one
low_m3,722Low, US$ millions. Low end where the line is a guided range
high_m3,835High, US$ millions. High end where the line is a guided range
satellite 

SAT_GUIDANCE_ITEMS

grain exhibit_url x item · summarized into GUIDANCE (guidance_items_summary)
1,099,858 rows · 22 columns

Every guidance item in a release: coded metric (88 codes; revenue, eps_gaap, eps_nongaap, revenue_growth, capex, operating_expenses, net_income, adj_ebitda, tax_rate ... 'other' 19%), verbatim label, basis (gaap / nongaap / operational / other / unclear), point or range with low / high / point AS PRINTED in the printed unit ($M, %, $ = per share, count, industry units), horizon (current_fy 56%, next_quarter 26%, next_fy 11%, long_term 3%), action (initiated / maintained / raised / lowered / narrowed / widened / updated / withdrawn / unclear / other) and the verbatim quote. GUIDANCE_ITEMS_Q is the dated twin (forecast period resolved to a date, one row per item per forecast period, 162k rows) that module GUIDANCE summarizes; both get the same vocabulary rules at write time.

columnnon-missingdefinition
exhibit_url JOIN KEY1,099,858SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik1,099,858SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate1,002,112Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end939,512Headline fiscal period end as printed in the release — convenience key
fiscal_year939,725Fiscal year of the headline period — convenience key
fiscal_quarter944,524Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q1,099,8581 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a1,099,8581 = this release is the annual spine's release for its firm-year
datadate_a239,052PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source1,099,858Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
seq1,099,858Row order within the release (0 = first item as it appears)
metric1,099,858A free-text label identifying the specific financial metric reported in the guidance item.
metric_label1,099,833Verbatim label the filing used for metric.
basis1,099,823Basis indicates whether a financial metric is GAAP, non-GAAP, operational, other, both, or unclear, as reported in earnings guidance. gaap / nongaap / operational (units, production, headcount ...) / other / unclear
point_or_range1,099,837Indicates whether the adjusted item is reported as a single point estimate or a range, free text.
point283,259Point estimate of forward-looking guidance, in US$ millions, from SEC earnings press releases.
low719,373Low end of adjusted item range, in US$ millions, from SEC earnings press releases.
high697,236The highest value in a range of adjusted items, expressed in US$ millions.
unit1,055,678Unit of measurement for values in the SAT_FWD_RECON module, e.g., $/share, $M, %, percentage points. Unit as printed: $M, % (percent), $ (per-share amounts such as EPS), count, bps, $B, industry units; values are NOT rescaled
horizon1,099,786Reporting period horizon label (quarter or fiscal year) for forward-looking financial data, as free text. Guided horizon: current_fy / next_quarter / next_fy / long_term / current_quarter / other free text; GUIDANCE_ITEMS_Q resolves it to a date
action1,099,856Company's stated action regarding its earnings guidance, such as raised, lowered, or maintained, as disclosed in the press release. Stated action on the guidance: initiated / maintained (incl. reaffirmed, reiterated) / raised / lowered / narrowed / widened / updated (incl. revised) / withdrawn / unclear / other (closed vocabulary since 2026-09-06)
quote1,097,088Free text quote from SEC earnings press release providing forward-looking guidance on revenues or earnings per share. Verbatim sentence(s) of the release carrying the guidance item
satellite 

GUIDANCE_ITEMS_Q

grain exhibit_url x forecast period x item · summarized into GUIDANCE (guidance_items_summary)
161,979 rows · 27 columns
columnnon-missingdefinition
exhibit_url JOIN KEY161,979SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik161,979SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
period_end161,979Headline fiscal period end as printed in the release — convenience key
datadate161,979Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_type161,979Q=quarterly A=annual
forecast_period_type161,979Whether the forecast period is a fiscal QUARTER or a fiscal YEAR ('quarter'/'annual'). Required, not cosmetic: for a December-FYE firm the Q4 end and the FY end are the S
announcement_date161,979Date the forecast was ISSUED (the earnings release date, falling back to the SEC filing date). Attached from the flagship on exhibit_url, because guidance rows carry no d
announcement_date_src161,979Which date announcement_date came from: 'press_release', 'sec_filing', or 'none'. String.
press_release_date159,425Date of the earnings release CONTAINING the forecast (when it was issued), not the forecast period. See horizon_days for the distance between them.
sec_filing_date161,509SEC/EDGAR filing date (YYYY-MM-DD) — the EDGAR acceptance date of the 8-K (when it was furnished to the SEC), joined from the 8-K filing index (struct `secadate`) by acce
horizon_days161,979period_end minus announcement_date, i.e. how far ahead the forecast reaches. Median 62 days for quarter forecasts, 237 for annual. Integer days; negative means the guided
metric161,979A free-text label identifying the specific financial metric reported in the guidance item.
metric_label161,975Verbatim label the filing used for metric.
basis161,976Basis indicates whether a financial metric is GAAP, non-GAAP, operational, other, both, or unclear, as reported in earnings guidance.
unit154,051Unit of measurement for values in the SAT_FWD_RECON module, e.g., $/share, $M, %, percentage points.
horizon161,979Reporting period horizon label (quarter or fiscal year) for forward-looking financial data, as free text.
point38,645Point estimate of forward-looking guidance, in US$ millions, from SEC earnings press releases.
low106,993Low end of adjusted item range, in US$ millions, from SEC earnings press releases.
high105,576The highest value in a range of adjusted items, expressed in US$ millions.
point_or_range161,976Indicates whether the adjusted item is reported as a single point estimate or a range, free text.
action161,979Company's stated action regarding its earnings guidance, such as raised, lowered, or maintained, as disclosed in the press release.
anchor_basis161,979Which reported period the categorical horizon was resolved against: 'reported_quarter', or 'reported_annual' where the filing has no quarterly period end. String.
guidance_valued161,9791 if the row carries at least one numeric guided value (point, low or high); 0 if the metric was guided qualitatively. Binary.
guidance_has_reconciliation161,9791=FORWARD non-GAAP guidance reconciled to GAAP (tightened; excl historical)
guidance_unreasonable_effort161,9791=filing invokes the SEC Item 10(e)/Reg-G "unreasonable effort(s)" exemption to omit a forward-looking non-GAAP-to-GAAP guidance reconciliation
guidance_source161,979Where the guidance row came from: 'period_row' (a dedicated guidance row), 'doc_columns' (an explicit disclosed target date), or 'items_derived' (an item from SAT_GUIDANC
period_end_basis161,979How period_end was established: 'disclosed_period_row' (printed in the filing) or 'derived_from_horizon' (resolved from a categorical horizon plus the firm's own fiscal c
satellite 

GUIDANCE_Q

grain exhibit_url x guided period_end · summarized into GUIDANCE (guidance_horizon_slots: gq_/gfy_)
42,243 rows · 1260 columns
columnnon-missingdefinition
exhibit_url JOIN KEY42,243SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
extraction_pass4,199Identifier for the extraction pass that produced the guidance data, e.g., repair, main, or run21_sandwich.
period_index4,199Index of the period within a filing; a release may report several periods.
model42,243Name of the AI model used to generate the financial statement data, e.g., deepseek-v4-pro.
ym42,243Year and month of the SEC earnings press release, formatted as YYYY-MM.
period_type42,243Q=quarterly A=annual
is_guidance42,2431=period row is forward-looking guidance not reported actual earnings
period_end42,200Headline fiscal period end as printed in the release — convenience key
fiscal_year4,198Fiscal year of the headline period — convenience key
gaap_diluted_eps1,110GAAP diluted earnings per share, reported in US$ per diluted share, from SEC earnings press releases.
nongaap_diluted_eps842Non-GAAP diluted earnings per share, as reported in guidance, in US$ per diluted share.
gaap_eps_label1,528Verbatim GAAP EPS row label from filing
nongaap_eps_label1,398Verbatim non-GAAP EPS row label from filing
gaap_eps_basic69GAAP basic EPS as reported
nongaap_eps_basic37Non-GAAP basic EPS as reported
gaap_eps_classb2GAAP diluted EPS Class B shares
dual_class_shares4,1991=filing has dual-class A/B shares
reconciliation_per_share4,1991=adjustment line items stated per share (not just the EPS total)
adjustments_net_of_tax4,1991=adjustments shown net of income taxes (after-tax), no separate tax line
j_noncash_labeled_categories4,199Labels of non-cash adjustments in guidance, as list of strings, e.g., SBC, impairments, tax impacts.
n_footnoted_adjustments4,199Count of adjustment rows carrying an explanatory footnote marker
ebitda_same_as_nongaap4,1991=EBITDA presented as the non-GAAP metric
recon_starts_nongaap4,1981=reconciliation table starts with non-GAAP (reverse direction)
j_recon_sequence4,199A JSON array listing the sequence of reconciliation items from GAAP to non-GAAP EPS, with categories and labels.
nongaap_eps_text587Non-GAAP EPS anchor found in opening text (Step 1)
gaap_eps_text782GAAP EPS anchor found in opening text (Step 1)
text_confirmed_nongaap4,1991=non-GAAP EPS confirmed in press release text (LLM judgment)
text_confirmed_gaap4,1991=GAAP EPS confirmed in press release text (LLM judgment)
gaap_net_income_m666Gaap net income, US$ millions.
nongaap_net_income_m307Nongaap net income, US$ millions.
nongaap_net_income_label422Verbatim label of the non-GAAP/adjusted NET INCOME (total-dollar earnings) line from filing — dollar analogue of nongaap_eps_label (e.g. "Non-GAAP net loss")
diluted_shares_k430Diluted weighted-average shares used in computing diluted EPS, in thousands
basic_shares_k104Basic weighted-average shares used in computing basic EPS, in thousands; null if not reported
adj_01_rent_lease4,140Score1 Rent/lease expense excl. per share
adj_02_net_interest4,140Score1 Net interest expense excl. per share
adj_03_rd4,140Score1 R&D expense excl. per share
adj_04_sbc4,129Score1 Stock-based compensation per share
adj_05a_amort_acq_intang4,138Score1 Amortization of acquired intangibles per share
adj_05b_da_other4,139Score1 Other depreciation and amortization per share
adj_05c_amort_dev_tech4,139Score1 Amortization of developed/acquired technology (COGS-side) per share
adj_06_others4,140Score1 Others/unidentified + undefined residual per share (unidentified reconciling item, not a rounding artifact; rounding-level residual goes to adjust_rounding_differe
adj_07_pension4,140Score2 Pension/post-retirement excl. per share
adj_08_severance4,140Score2 Severance/termination costs per share
adj_09_realized_gains4,139Score2 Realized gains/losses on investments per share
adj_10_inventory_writedown4,139Score2 Inventory write-downs per share
adj_11_tax_impact4,131Score3 Tax impact of non-GAAP excl. per share
adj_12_startup4,140Score3 New initiatives/start-up costs per share
adj_13_equity_income4,140Score4 Equity income unconsolidated subs per share
adj_14_impair_ppe_finite4,139Score4 Impairment PP&E finite-lived intang per share
adj_15_fx4,140Score4 Foreign currency gains/losses per share
adj_16_debt_extinguishment4,140Score4 Debt extinguishment/refinancing per share
adj_17_litigation4,139Score4 Litigation/settlement costs per share
adj_18_fair_value4,138Score4 Unrealized fair value adjustments per share
adj_19_acquisition4,140Score4 Merger/acquisition costs per share
adj_20_ppe_sale4,140Score4 Gains/losses on sale of PP&E per share
adj_21_tax_accounting4,140Score5 Tax/accounting rule changes per share
adj_22_restructuring4,135Score5 Restructuring charges per share
adj_23_discontinued4,140Score5 Discontinued operations per share
adj_24_integration4,140Extended Post-acquisition integration costs per share
adj_25_covid4,140Extended COVID-19/pandemic charges per share
adj_26_unrealized_invst4,140Extended Unrealized investment gains/losses per share
adj_27_ipr_d4,140Extended Acquired in-process R&D write-off per share
adj_28_natural_disaster4,140Extended Natural disaster/catastrophe charges per share
adj_29_supply_chain4,140Extended Supply chain disruption costs per share
adj_30_ai_transform4,140Extended AI/digital transformation costs per share
adj_31_exec_transition4,140Extended Executive/C-suite transition costs per share
adj_32_debt_issuance4,140Extended Debt issuance/financing fees per share
adj_33_crypto4,140Extended Digital-asset impairment (pre-ASU 2023-08) / fair-value remeasurement (ASU 2023-08) per share
adj_34_geopolitical4,140Extended Geopolitical/sanctions/war charges per share
adj_35_fraud4,137Extended Fraud investigation/remediation costs per share
adj_36_dei4,140Extended DEI/diversity initiative costs per share
adj_37_climate_esg4,140Extended Climate transition/ESG (E+G pillar) compliance per share
adj_38_ai_equity_gains4,140Extended Gains/losses on AI-company equity stakes per share
adj_39_tariffs4,140Extended Tariff/trade-policy/duty costs per share
adj_40_cyber4,140Extended Cybersecurity-incident/ransomware/breach costs per share
adj_41_commodity4,140Extended Commodity/energy-price impacts per share
adj_14b_goodwill_impairment4,138Score4 Goodwill impairment/write-down per share
adj_14c_indef_intangible4,139Score4 Indefinite-lived intangible impairment per share
adj_10b_inventory_method4,140Score2 Inventory cost-flow method (LIFO/FIFO) effect per share
adj_44_credit_loss4,140Bad-debt/credit-loss provision (CECL) per share
adj_45_charitable4,140Charitable/philanthropic donations, foundation/relief giving per share
adj_46_noncontrolling_interest4,140Extended Non-controlling/minority-interest adjustment per share
adj_47_preferred_dividends4,140Extended Preferred/participating-security dividend adjustment (EPS-to-common bridge) per share
adj_48_warrant_liability4,139Extended Warrant-liability fair-value remeasurement (SPAC/de-SPAC; post-2018) per share
adj_49_re_depreciation4,140Extended Real-estate depreciation & amortization add-back (REIT FFO/AFFO/FAD) per share
adj_50_divestiture_gain4,140Extended Gain/loss on sale of business or divestiture per share
adj_51_re_rent_adj4,140Extended REIT non-cash rent timing (straight-line/deferred rent) per share
adj_52_maint_capex4,140Extended Recurring/maintenance capex (AFFO/FAD) per share
adj_53_acquired_deferred_rev4,140Extended Acquired deferred-revenue fair-value (purchase accounting) per share
adj_54_environmental4,140Extended Environmental remediation/cleanup per share
adj_55_govt_grant4,140Extended Government grants/ERC/subsidies per share
adj_02_net_interest_m40Score1 Net interest expense excl. total $M
adj_04_sbc_m228Score1 Stock-based compensation total $M
adj_05a_amort_acq_intang_m187Score1 Amortization of acquired intangibles total $M
adj_05b_da_other_m35Score1 Other depreciation and amortization total $M
adj_05c_amort_dev_tech_m17Score1 Amortization of developed/acquired technology (COGS-side) total $M
adj_06_others_m138Score1 Others/unidentified total $M
adj_07_pension_m5Score2 Pension/post-retirement excl. total $M
adj_08_severance_m17Score2 Severance/termination costs total $M
adj_09_realized_gains_m27Score2 Realized gains/losses investments total $M
adj_10_inventory_writedown_m14Score2 Inventory write-downs total $M
adj_11_tax_impact_m187Score3 Tax impact of non-GAAP excl. total $M
adj_12_startup_m5Score3 New initiatives/start-up costs total $M
adj_13_equity_income_m8Score4 Equity income unconsolidated subs total $M
adj_14_impair_ppe_finite_m29Score4 Impairment PP&E finite-lived intang total $M
adj_15_fx_m13Score4 Foreign currency gains/losses total $M
adj_16_debt_extinguishment_m32Score4 Debt extinguishment/refinancing total $M
adj_17_litigation_m38Score4 Litigation/settlement costs total $M
adj_18_fair_value_m18Score4 Unrealized fair value adjustments total $M
adj_19_acquisition_m86Score4 M&A transaction costs total $M
adj_20_ppe_sale_m14Score4 Gains/losses on sale of PP&E total $M
adj_21_tax_accounting_m13Score5 Tax/accounting rule changes total $M
adj_22_restructuring_m163Score5 Restructuring charges total $M
adj_23_discontinued_m6Score5 Discontinued operations total $M
adj_24_integration_m27Extended Post-acquisition integration costs total $M
adj_25_covid_m1Extended COVID-19/pandemic charges total $M
adj_26_unrealized_invst_m2Extended Unrealized investment gains/losses total $M
adj_27_ipr_d_m10Extended Acquired in-process R&D write-off total $M
adj_28_natural_disaster_m4Extended Natural disaster/catastrophe charges total $M
adj_30_ai_transform_m1Extended AI/digital transformation costs total $M
adj_31_exec_transition_m2Extended Executive/C-suite transition costs total $M
adj_32_debt_issuance_m12Extended Debt issuance/financing fees total $M
adj_35_fraud_m8Extended Fraud investigation/remediation costs total $M
adj_40_cyber_m1Extended Cybersecurity-incident/ransomware/breach costs total $M
adj_41_commodity_m2Extended Commodity/energy-price impacts total $M
adj_14b_goodwill_impairment_m34Score4 Goodwill impairment/write-down total $M
adj_14c_indef_intangible_m4Score4 Indefinite-lived intangible impairment total $M
adj_10b_inventory_method_m1Score2 Inventory cost-flow method (LIFO/FIFO) effect total $M
adj_44_credit_loss_m5Bad-debt/credit-loss provision (CECL) total $M
adj_45_charitable_m3Charitable/philanthropic donations, foundation/relief giving total $M
adj_46_noncontrolling_interest_m12Extended Non-controlling/minority-interest adjustment total $M
adj_47_preferred_dividends_m9Extended Preferred/participating-security dividend adjustment total $M
adj_48_warrant_liability_m9Extended Warrant-liability fair-value remeasurement (SPAC/de-SPAC; post-2018) total $M
adj_49_re_depreciation_m12Extended Real-estate depreciation & amortization add-back (REIT FFO/AFFO/FAD) total $M
adj_50_divestiture_gain_m25Extended Gain/loss on sale of business or divestiture total $M
adj_51_re_rent_adj_m2Extended REIT non-cash rent timing total $M
adj_52_maint_capex_m2Extended Recurring/maintenance capex (AFFO/FAD) total $M
adj_53_acquired_deferred_rev_m20Extended Acquired deferred-revenue fair-value total $M
adj_54_environmental_m6Extended Environmental remediation/cleanup total $M
adj_55_govt_grant_m2Extended Government grants/ERC/subsidies total $M
j_adj_labels4,199JSON mapping adjustment line-item codes to their descriptive labels in guidance press releases.
check_sum4,072Ratio of actual to guided EPS, indicating whether company met, beat, or missed guidance.
eps_diff1,802Difference between actual and guided earnings per share, in US$ per diluted share.
layout3,882row or column layout
alt_nongaap_eps11A SECOND non-GAAP EPS candidate found in the release (e.g. the reconciliation table total when the headline differs). Captured so basis choice is auditable.
alt_nongaap_eps_label11Verbatim label of the alternative non-GAAP EPS.
nongaap_eps_deep11Non-GAAP diluted earnings per share guidance, in US$ per share, from SEC earnings press releases.
nongaap_eps_deep_label12Verbatim label the filing used for nongaap eps deep.
adj_deeper5A deeper/more aggressive non-GAAP measure presented beyond the headline one.
adj_deeper_eps11Per-share value of that deeper measure (US$).
adj_deeper_label11Verbatim label of the deeper measure.
total_exclusions_deep14Total per-share exclusions from adjusted guidance, net of tax, in US$ per diluted share.
recon_table_nongaap572Reconciliation-table attribute: table nongaap.
gaap_eps_continuing1,014GAAP earnings per share from continuing operations, per diluted share, in US$.
discontinued_ops_eps1,211Earnings per share from discontinued operations, per diluted share, in US$.
recon_anchor1,022Reconciliation-table attribute: anchor.
recon_start_label1,012Reconciliation-table attribute: start label.
recon_start_value778Reconciliation-table attribute: start value.
recon_starts_gaap1,025Reconciliation-table attribute: starts gaap.
adj_11a_tax_effect_of_adjustments491Tax effect OF the non-GAAP adjustments, per diluted share (US$).
adj_11b_discrete_tax_item427Discrete tax item excluded in its own right, per diluted share (US$).
adj_11_split_method325How the tax line was split between the tax effect of adjustments and discrete tax items.
adj_06_genuine1,272The genuinely-labelled part of the 'other' bucket, per diluted share (US$).
adj_06_rounding1,273The rounding component isolated from the 'other' bucket.
adj_06_plug1,267BALANCING PLUG, per diluted share (US$): the residual that closes sum(adjustments) = non-GAAP EPS - GAAP EPS. Closure is guaranteed by construction, so judge plug SIZE, n
j_adj_item_detail4,192Free text detailing adjustments to guidance items, often as JSON with labels and categories.
cogs_m12Cogs, US$ millions.
cogs_label14Verbatim label the filing used for cogs.
opex_total_m44Opex total, US$ millions.
opex_total_label46Verbatim label the filing used for opex total.
sga_m8Sga, US$ millions.
rd_expense_m3Rd expense, US$ millions.
sm_m1Sm, US$ millions.
ga_m15Ga, US$ millions.
other_opex_m16Other opex, US$ millions.
other_opex_label17Verbatim label the filing used for other opex.
nongaap_opex_m22Nongaap opex, US$ millions.
nongaap_opex_label24Verbatim label the filing used for nongaap opex.
j_recon_sequence_dollar2,406A JSON list of reconciliation line items with categories and labels, used to bridge GAAP to non-GAAP guidance figures.
j_alt_nongaap_eps_items383Free-text JSON array of non-GAAP EPS items, typically FFO per diluted share, with labels and values.
j_adj_deeper_items344Free text list of adjustments to reconcile GAAP to adjusted earnings, with labels and values in US$ millions.
j_adj_06_others_items112Free text listing other adjusted items from guidance, with labels and values in unspecified units.
adj_06_others_is_residual7761=adj_06_others absorbs residual to close per-share EPS gap
gaap_eps_imputed1,917Imputed GAAP earnings per share flag; 1 if GAAP EPS was imputed from guidance, else 0. Unit: 1/0 flag.
gaap_eps_imputed_method24Method used to impute GAAP EPS when not directly disclosed, based on net income, preferred dividends, and diluted shares.
gaap_eps_no_total1,917Flag indicating whether GAAP EPS guidance excludes total items; 1=yes, 0=no.
gaap_eps_column_corrected1,916Flag indicating whether GAAP EPS column was corrected in guidance data; 1=yes, 0=no.
sga_label1Verbatim label the filing used for sga.
exhibit_is_transcript273Flag indicating whether the earnings press release exhibit is a transcript; 1 if yes, 0 if no.
total_exclusions90Total amount excluded from adjusted earnings guidance, in US$ millions or per diluted share, as reported.
j_adj_11_tax_impact_items26Total income tax impact of adjustments, in US$ per diluted share, from guidance.
j_adj_05a_amort_acq_intang_items24Free text listing amortization of acquired intangibles items in guidance, often blank; unit is free text.
total_exclusions_m1Total exclusions, US$ millions.
j_adj_18_fair_value_items1Fair value adjustments for commodity contracts from merger accounting, as disclosed in guidance, in US$ millions.
j_adj_22_restructuring_items26Restructuring items from guidance, as a list of label-value pairs, with values in US$ millions.
j_adj_19_acquisition_items21Free text listing acquisition-related items and their amounts, as disclosed in guidance, with values in US$ millions unless per-share noted.
j_adj_04_sbc_items21List of share-based compensation expense items and amounts from guidance, with labels and values in US$ millions.
j_adj_05b_da_other_items3A list of other items and their values (US$ millions) adjusted for guidance, excluding standard depreciation and amortization.
j_adj_50_divestiture_gain_items3Total gains/losses from divestitures and asset sales, per diluted share, in US$ millions.
j_adj_47_preferred_dividends_items1Free text describing preferred dividend items in guidance, with optional values, from SEC press releases.
j_adj_10_inventory_writedown_items1Inventory writedown items from guidance, with label and value in US$ millions.
n_items_rev_to_ni1Count of income-statement line items strictly between the revenue line and the net income line (income-statement granularity); null if no GAAP income statement
n_items_rev_to_gp1Count of income-statement line items strictly between the revenue line and the gross-profit line (cost lines); null if no gross-profit line
j_adj_17_litigation_items18Flag indicating whether guidance mentions litigation items, with associated expense or recovery amounts in US$ millions.
j_adj_23_discontinued_items1Free text describing discontinued items, e.g., Argentina operations excluding special items, from guidance.
j_adj_49_re_depreciation_items4Free text listing projected depreciation and amortization items with values in US$ millions from guidance.
notes42,243Free text notes explaining adjustments, guidance, or discrepancies in financial measures.
j_adj_02_net_interest_items2A list of adjustments to net interest items, each with a label and value in US$ millions per diluted share.
revenue_label1Verbatim revenue label from filing (e.g. Net revenues, Net sales)
gross_profit_label1Verbatim gross-profit label from filing (e.g. Gross profit, Gross margin); null if not reported
operating_income_label1Verbatim operating-income label from filing (e.g. Operating income, Income from operations); null if not reported
j_adj_05c_amort_dev_tech_items2Guidance for adjusted amortization of development technology items, likely in US$ millions, but no values populated.
j_adj_28_natural_disaster_items1Indicates whether the company disclosed natural disaster items in guidance, as a 1/0 flag.
gaap_net_income_label1Verbatim label the filing used for gaap net income.
j_adj_21_tax_accounting_items2Free text describing tax-related accounting adjustments in guidance, including estimated benefits and excess tax benefits.
j_adj_13_equity_income_items3Adjustments to equity income items from non-consolidated entities, per diluted share, in US$ millions.
j_adj_53_acquired_deferred_rev_items4Fair value adjustment to acquired deferred service revenue, per guidance, in US$ millions.
j_adj_items2Free text listing adjusted items in guidance, often empty; unit: free text.
gaap_net_income_low_m2Low end of gaap net income, US$ millions.
gaap_net_income_high_m2High end of gaap net income, US$ millions.
j_adj_07_pension_m_items1Pension mark-to-market loss items excluded from adjusted earnings guidance, as disclosed in SEC press releases.
guidance_scenario1Guidance attribute: scenario.
estimate_bound1Indicates whether the earnings estimate is the low or high bound in a range.
recon_start_value_high1Reconciliation-table attribute: start value high.
gaap_eps_low1Low end of gaap eps.
gaap_eps_high1High end of gaap eps.
gaap_eps_no_total_method1Indicates the GAAP EPS method used for continuing operations excluding total items, as disclosed in guidance.
gaap_net_income_m_low1Low end of gaap net income m.
gaap_net_income_m_high1High end of gaap net income m.
cik42,243SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
acc_nodash42,243SEC accession number without dashes (join convenience).
period_end_disclosed4,156Period end exactly as printed in the release (before date QA).
datadate42,200Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
gvkey35,726OPTIONAL Compustat GVKEY firm identifier — a crosswalk convenience for buyers who license Compustat/CRSP; NOT required and carries no Compustat data. The dataset is keyed
permno35,593CRSP PERMNO security identifier (crosswalk only).
permco35,486CRSP PERMCO company identifier (crosswalk only).
cusip835,8868-character CUSIP (crosswalk only; no licensed data attached).
ncusip35,886Historical CUSIP from CRSP (crosswalk only).
ibes_ticker35,886I/B/E/S ticker (crosswalk only).
sic33,986SIC industry code.
guidance_valued42,2431 if the row carries at least one numeric guided value (point, low or high); 0 if the metric was guided qualitatively. Binary.
ticker1,110Company ticker
file_cik1,122CIK parsed from the filing exhibit URL during pass-1 extraction — CROSS-CHECK against the authoritative cik (a mismatch flags a co-filer / parse issue); does not override
datadate_reported1,111Exact fiscal period end as the firm states it (= period_end; free SEC, e.g. 2016-01-28 for a 52/53-week filer)
gaap_eps1,122GAAP diluted EPS, rounded to 2 decimals (reporting convention); derived from net income/shares and flagged by gaap_eps_from_calc when the line item is not found
nongaap_eps772Non-GAAP diluted EPS, rounded to 2 decimals (reporting convention); adjustments sum exactly to nongaap_eps - gaap_eps
adjust_rounding_difference1,122Per-share rounding plug so the rounded adjustments sum exactly to nongaap_eps - gaap_eps (cents-level; undefined residuals — unidentified reconciling items, not rounding
gaap_eps_from_calc1,1221=GAAP EPS was NOT found as a line item in the filing and was derived from net income/shares (last-resort fallback; value may have >2 decimals)
nongaap_eps_from_calc1,1221=non-GAAP EPS was NOT found as a line item and was derived from non-GAAP net income/shares
is_most_recent1,1221=most recent ACTUAL (non-guidance) period in this filing (latest period_end, Q preferred over A)
nongaap_eps_type772Type of the headline non-GAAP EPS, from its verbatim label (deterministic; classifies the value, never changes it): non_gaap (label says "non-GAAP"), adjusted_earnings (a
nongaap_eps_is_earnings7721=the headline non-GAAP EPS is an EARNINGS measure (non_gaap/adjusted_earnings/adjusted_ebitda/unlabeled/other); 0=a non-earnings per-share metric wrongly carried as an E
nongaap_eps_label_explicit_nongaap1,1221=the non-GAAP EPS label literally contains "non-GAAP". 0 otherwise.
nongaap_eps_low_confidence1,1221=flag-only guard: the headline non-GAAP EPS is probably NOT a genuine adjusted-earnings figure — it is a non-earnings measure (is_earnings=0), OR differs from GAAP by on
nongaap_eps_gaap_equivalent1,1221=the non-GAAP EPS EQUALS GAAP EPS (within a cent) with NO named adjustment — i.e. it is not a distinct non-GAAP measure even if a benchmark (Bentley MGR_NG) flagged it.
nongaap_mentioned_first_table1,1221=non-GAAP EPS is first row in reconciliation table (=recon_starts_nongaap)
eps_from_calc1,1221=gaap_eps/nongaap_eps derived from net income/shares (table EPS was missing)
adj_06_others_m_is_residual1,1221=adj_06_others_m absorbs residual to close total-dollar income gap
adj_06_others_rounding1,1221=the adj_06_others catch-all is a rounding/residual/balancing PLUG, not a substantive other adjustment (set when a residual was absorbed into it OR its verbatim label is
adjs_sum_clean1,1221=per-share adjs sum to EPS diff with no artificial adj_06_others residual
plug_scale_suspect1,1221=residual plug is implausibly large (>$1/share or >10x the EPS gap) — likely a scale/parse error, not a sign issue
total_exclusions_ps_diff1,122Total per-share exclusions, DIFFERENCE version = nongaap_eps - gaap_eps
total_exclusions_ps_sum1,122Total per-share exclusions, SUM version = sum of the itemized per-share adjustments as extracted (before any residual plug)
total_exclusions_m_diff246Total USD exclusions ($M), DIFFERENCE version = nongaap_net_income_m - gaap_net_income_m (null if a net-income total is missing)
total_exclusions_m_sum394Total USD exclusions ($M), SUM version = sum of the itemized adj_*_m dollar adjustments as extracted (before any residual plug)
adjs_sum_clean_m2461=dollar adjs sum to net income diff with no artificial adj_06_others_m residual
check_ok_m2461=dollar adjustments sum to nongaap_net_income - gaap_net_income
text_matches_table4771=text anchor matches table non-GAAP EPS (within $0.01); null if no text anchor
eps_text_table_conflict1,1221=a stated text EPS anchor exists but the final reported GAAP or non-GAAP EPS disagrees with it by >$0.01 (text/table mismatch -> likely wrong-column read; flagged for re
gaap_net_income429GAAP net income ($M)
nongaap_net_income252Non-GAAP net income ($M) — always imputed (see nongaap_eps_source)
gaap_net_margin262GAAP net profit margin = gaap_net_income / revenue_m (ratio; e.g. 0.152 = 15.2%)
nongaap_net_margin168Non-GAAP net profit margin = nongaap_net_income / revenue_m (ratio)
gaap_eps_precise211PRECISE GAAP EPS = gaap_net_income($M)*1000 / diluted (else basic) shares, unrounded (6 dp)
nongaap_eps_precise163PRECISE non-GAAP EPS = nongaap_net_income($M)*1000 / diluted (else basic) shares, unrounded (6 dp)
precise_shares_k286Share count (thousands) used as the denominator for ALL *_precise columns (= diluted_shares_k, or basic_shares_k when diluted is unavailable)
precise_shares_basis1,122Basis of precise_shares_k: "diluted" (preferred) or "basic" (fallback when diluted missing); blank if neither share count available
adj_02_net_interest_precise30Precise per-share adj_02_net_interest: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_04_sbc_precise93Precise per-share adj_04_sbc: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_05a_amort_acq_intang_precise100Precise per-share adj_05a_amort_acq_intang: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_05b_da_other_precise18Precise per-share adj_05b_da_other: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_05c_amort_dev_tech_precise8Precise per-share adj_05c_amort_dev_tech: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_07_pension_precise1Precise per-share adj_07_pension: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_08_severance_precise3Precise per-share adj_08_severance: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_09_realized_gains_precise4Precise per-share adj_09_realized_gains: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_10_inventory_writedown_precise1Precise per-share adj_10_inventory_writedown: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_11_tax_impact_precise91Precise per-share adj_11_tax_impact: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_12_startup_precise1Precise per-share adj_12_startup: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_13_equity_income_precise2Precise per-share adj_13_equity_income: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_14_impair_ppe_finite_precise8Precise per-share adj_14_impair_ppe_finite: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_15_fx_precise4Precise per-share adj_15_fx: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_16_debt_extinguishment_precise13Precise per-share adj_16_debt_extinguishment: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_17_litigation_precise15Precise per-share adj_17_litigation: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_18_fair_value_precise10Precise per-share adj_18_fair_value: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_19_acquisition_precise41Precise per-share adj_19_acquisition: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_20_ppe_sale_precise6Precise per-share adj_20_ppe_sale: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_21_tax_accounting_precise3Precise per-share adj_21_tax_accounting: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_22_restructuring_precise56Precise per-share adj_22_restructuring: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_23_discontinued_precise1Precise per-share adj_23_discontinued: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_24_integration_precise11Precise per-share adj_24_integration: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_26_unrealized_invst_precise1Precise per-share adj_26_unrealized_invst: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_27_ipr_d_precise1Precise per-share adj_27_ipr_d: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_28_natural_disaster_precise1Precise per-share adj_28_natural_disaster: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_31_exec_transition_precise1Precise per-share adj_31_exec_transition: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_32_debt_issuance_precise9Precise per-share adj_32_debt_issuance: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_35_fraud_precise1Precise per-share adj_35_fraud: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_41_commodity_precise1Precise per-share adj_41_commodity: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_14b_goodwill_impairment_precise7Precise per-share adj_14b_goodwill_impairment: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_44_credit_loss_precise2Precise per-share adj_44_credit_loss: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_45_charitable_precise1Precise per-share adj_45_charitable: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_46_noncontrolling_interest_precise6Precise per-share adj_46_noncontrolling_interest: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_47_preferred_dividends_precise3Precise per-share adj_47_preferred_dividends: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_48_warrant_liability_precise6Precise per-share adj_48_warrant_liability: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_49_re_depreciation_precise8Precise per-share adj_49_re_depreciation: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_50_divestiture_gain_precise10Precise per-share adj_50_divestiture_gain: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_52_maint_capex_precise1Precise per-share adj_52_maint_capex: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_53_acquired_deferred_rev_precise9Precise per-share adj_53_acquired_deferred_rev: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_55_govt_grant_precise1Precise per-share adj_55_govt_grant: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
adj_06_others_precise162Precise per-share adj_06_others: adj_*_m($M) * 1000 / diluted (else basic) shares, unrounded
ebitda_per_share96EBITDA per share: stated value if given, else ebitda_m*1000/shares_k
n_adjustments1,122Count of non-zero named adjustment categories (adj_01-37 excl. adj_06_others)
gaap_only1,1221=GAAP-ONLY reporter: filing presents NO non-GAAP earnings measure of any kind (no non-GAAP EPS, no non-GAAP net income, no named adjustment, no EBITDA/Adjusted EBITDA, n
recon_pershare_only1,1221=adjustments presented per share only (no dollar amounts itemized)
recon_dollar_only1,1221=adjustments presented as total dollars only (not per share)
recon_both1,1221=adjustments presented both per share and as total dollars
recon_none1,1221=no reconciliation table (no period extracted); see llm_status
earnings_surprise38Reported EPS minus consensus_eps, basis- and metric-matched (positive=beat)
consensus_beat381=reported EPS beat consensus (earnings_surprise>0)
gaap_eps_value_count1,122Count of distinct occurrences of the GAAP-EPS value in prose
nongaap_eps_value_count776Count of distinct occurrences of the non-GAAP-EPS value in prose
eps_value_mention_ratio432nongaap_eps_value_count / gaap_eps_value_count
chars_to_gaap_eps_num397Character offset of the FIRST occurrence of the GAAP-EPS NUMBER in the release prose (null if not found)
chars_to_nongaap_eps_num424Character offset of the FIRST occurrence of the non-GAAP-EPS NUMBER in the release prose (null if not found)
nongaap_eps_num_first3651=non-GAAP EPS NUMBER appears before the GAAP EPS number in the prose (deterministic Chen-Gee-Neilson NG_FIRST analog by number position, not term position). Null when va
eps_num_char_gap365chars_to_gaap_eps_num minus chars_to_nongaap_eps_num (>0 = non-GAAP number is earlier/more prominent; the Bowen-Davis-Matsumoto relative-emphasis distance, in characters)
revenue_per_share189Revenue per diluted share derived from revenue_m*1000/diluted_shares_k
operating_income_m253GAAP operating income / operating earnings for most recent period ($M; revenue minus operating expenses, before interest & taxes); read from the same period column as the
operating_eps128Operating earnings per diluted share = operating_income_m*1000/diluted_shares_k (derived in post-processing, after GAAP/non-GAAP EPS resolution); null if operating_income
nongaap_revenue_m62NON-GAAP / adjusted revenue for most recent period ($M; organic / constant-currency / adjusted / core / pro-forma revenue); null if firm reports only GAAP revenue
nongaap_revenue_label1,122Verbatim non-GAAP revenue label (e.g. Organic revenue, Constant-currency revenue, Adjusted revenue); null if none
nongaap_revenue_basis1,122Basis of nongaap_revenue_m: organic / constant_currency / adjusted / core / pro_forma / other; null if none
nongaap_revenue_per_share25Non-GAAP revenue per diluted share = nongaap_revenue_m*1000/diluted_shares_k; null if missing
revenue_growth_pct295As-reported (GAAP) total revenue YoY growth, percent (e.g. 8.5 = +8.5%); null if not stated
organic_revenue_growth_pct69Organic revenue/sales growth (ex-M&A, often ex-FX), percent; null if not stated
cc_revenue_growth_pct38Constant-currency / FX-neutral revenue/sales growth, percent; null if not stated
ffo_m12REIT Funds From Operations ($M; incl. Core/Normalized FFO); null if not a REIT / not reported
ffo_label1,122Verbatim FFO label (FFO / Core FFO / Normalized FFO); null if none
affo_m6REIT Adjusted FFO / FAD / CAD ($M); null if not reported
noi_m4REIT Net Operating Income (property-level, $M); null if not reported
ffo_per_share10FFO per diluted share = ffo_m*1000/diluted_shares_k; null if missing
affo_per_share5AFFO per diluted share = affo_m*1000/diluted_shares_k; null if missing
nongaap_gross_profit_m54Non-GAAP / adjusted gross profit ($M); null if only GAAP gross profit
gross_margin154GAAP gross margin = gross_profit_m / revenue_m (ratio; e.g. 0.62 = 62%)
nongaap_gross_margin54Non-GAAP gross margin = nongaap_gross_profit_m / revenue_m (ratio)
operating_margin250Operating margin = operating_income_m / revenue_m (ratio)
ebitda_margin175EBITDA (Adjusted EBITDA) margin = ebitda_m / revenue_m (ratio)
nongaap_tax_rate_pct90Non-GAAP / adjusted effective tax rate, percent (e.g. 21.5); null if not stated
gaap_tax_rate_pct76GAAP effective tax rate, percent; null if not stated
nongaap_roic_pct2Adjusted / non-GAAP return on invested capital, percent; null if not stated
cfo_per_share113Operating CF per diluted share: cfo_m*1000/diluted_shares_k
cfi_per_share91Investing CF per diluted share: cfi_m*1000/diluted_shares_k
cff_per_share91Financing CF per diluted share: cff_m*1000/diluted_shares_k
fcf_per_share44Free CF per diluted share: fcf_m*1000/diluted_shares_k
net_cash_per_share90Net cash change per diluted share: net_cash_m*1000/diluted_shares_k
adj_01_rent_lease_labels1,122Verbatim source line-item label(s) summed into adj_01_rent_lease, "; "-joined
adj_02_net_interest_labels1,122Verbatim source line-item label(s) summed into adj_02_net_interest, "; "-joined
adj_03_rd_labels1,122Verbatim source line-item label(s) summed into adj_03_rd, "; "-joined
adj_04_sbc_labels1,122Verbatim source line-item label(s) summed into adj_04_sbc, "; "-joined
adj_05a_amort_acq_intang_labels1,122Verbatim source line-item label(s) summed into adj_05a_amort_acq_intang, "; "-joined
adj_05b_da_other_labels1,122Verbatim source line-item label(s) summed into adj_05b_da_other, "; "-joined
adj_05c_amort_dev_tech_labels1,122Verbatim source line-item label(s) summed into adj_05c_amort_dev_tech, "; "-joined
adj_07_pension_labels1,122Verbatim source line-item label(s) summed into adj_07_pension, "; "-joined
adj_08_severance_labels1,122Verbatim source line-item label(s) summed into adj_08_severance, "; "-joined
adj_09_realized_gains_labels1,122Verbatim source line-item label(s) summed into adj_09_realized_gains, "; "-joined
adj_10_inventory_writedown_labels1,122Verbatim source line-item label(s) summed into adj_10_inventory_writedown, "; "-joined
adj_11_tax_impact_labels1,122Verbatim source line-item label(s) summed into adj_11_tax_impact, "; "-joined
adj_12_startup_labels1,122Verbatim source line-item label(s) summed into adj_12_startup, "; "-joined
adj_13_equity_income_labels1,122Verbatim source line-item label(s) summed into adj_13_equity_income, "; "-joined
adj_14_impair_ppe_finite_labels1,122Verbatim source line-item label(s) summed into adj_14_impair_ppe_finite, "; "-joined
adj_15_fx_labels1,122Verbatim source line-item label(s) summed into adj_15_fx, "; "-joined
adj_16_debt_extinguishment_labels1,122Verbatim source line-item label(s) summed into adj_16_debt_extinguishment, "; "-joined
adj_17_litigation_labels1,122Verbatim source line-item label(s) summed into adj_17_litigation, "; "-joined
adj_18_fair_value_labels1,122Verbatim source line-item label(s) summed into adj_18_fair_value, "; "-joined
adj_19_acquisition_labels1,122Verbatim source line-item label(s) summed into adj_19_acquisition, "; "-joined
adj_20_ppe_sale_labels1,122Verbatim source line-item label(s) summed into adj_20_ppe_sale, "; "-joined
adj_21_tax_accounting_labels1,122Verbatim source line-item label(s) summed into adj_21_tax_accounting, "; "-joined
adj_22_restructuring_labels1,122Verbatim source line-item label(s) summed into adj_22_restructuring, "; "-joined
adj_23_discontinued_labels1,122Verbatim source line-item label(s) summed into adj_23_discontinued, "; "-joined
adj_24_integration_labels1,122Verbatim source line-item label(s) summed into adj_24_integration, "; "-joined
adj_25_covid_labels1,122Verbatim source line-item label(s) summed into adj_25_covid, "; "-joined
adj_26_unrealized_invst_labels1,122Verbatim source line-item label(s) summed into adj_26_unrealized_invst, "; "-joined
adj_27_ipr_d_labels1,122Verbatim source line-item label(s) summed into adj_27_ipr_d, "; "-joined
adj_28_natural_disaster_labels1,122Verbatim source line-item label(s) summed into adj_28_natural_disaster, "; "-joined
adj_29_supply_chain_labels1,122Verbatim source line-item label(s) summed into adj_29_supply_chain, "; "-joined
adj_30_ai_transform_labels1,122Verbatim source line-item label(s) summed into adj_30_ai_transform, "; "-joined
adj_31_exec_transition_labels1,122Verbatim source line-item label(s) summed into adj_31_exec_transition, "; "-joined
adj_32_debt_issuance_labels1,122Verbatim source line-item label(s) summed into adj_32_debt_issuance, "; "-joined
adj_33_crypto_labels1,122Verbatim source line-item label(s) summed into adj_33_crypto, "; "-joined
adj_34_geopolitical_labels1,122Verbatim source line-item label(s) summed into adj_34_geopolitical, "; "-joined
adj_35_fraud_labels1,122Verbatim source line-item label(s) summed into adj_35_fraud, "; "-joined
adj_36_dei_labels1,122Verbatim source line-item label(s) summed into adj_36_dei, "; "-joined
adj_37_climate_esg_labels1,122Verbatim source line-item label(s) summed into adj_37_climate_esg, "; "-joined
adj_38_ai_equity_gains_labels1,122Verbatim source line-item label(s) summed into adj_38_ai_equity_gains, "; "-joined
adj_39_tariffs_labels1,122Verbatim source line-item label(s) summed into adj_39_tariffs, "; "-joined
adj_40_cyber_labels1,122Verbatim source line-item label(s) summed into adj_40_cyber, "; "-joined
adj_41_commodity_labels1,122Verbatim source line-item label(s) summed into adj_41_commodity, "; "-joined
adj_14b_goodwill_impairment_labels1,122Verbatim source line-item label(s) summed into adj_14b_goodwill_impairment, "; "-joined
adj_14c_indef_intangible_labels1,122Verbatim source line-item label(s) summed into adj_14c_indef_intangible, "; "-joined
adj_10b_inventory_method_labels1,122Verbatim source line-item label(s) summed into adj_10b_inventory_method, "; "-joined
adj_44_credit_loss_labels1,122Verbatim source line-item label(s) summed into adj_44_credit_loss, "; "-joined
adj_45_charitable_labels1,122Verbatim source line-item label(s) summed into adj_45_charitable, "; "-joined
adj_46_noncontrolling_interest_labels1,122Verbatim source line-item label(s) summed into adj_46_noncontrolling_interest, "; "-joined
adj_47_preferred_dividends_labels1,122Verbatim source line-item label(s) summed into adj_47_preferred_dividends, "; "-joined
adj_48_warrant_liability_labels1,122Verbatim source line-item label(s) summed into adj_48_warrant_liability, "; "-joined
adj_49_re_depreciation_labels1,122Verbatim source line-item label(s) summed into adj_49_re_depreciation, "; "-joined
adj_50_divestiture_gain_labels1,122Verbatim source line-item label(s) summed into adj_50_divestiture_gain, "; "-joined
adj_51_re_rent_adj_labels1,122Verbatim source line-item label(s) summed into adj_51_re_rent_adj, "; "-joined
adj_52_maint_capex_labels1,122Verbatim source line-item label(s) summed into adj_52_maint_capex, "; "-joined
adj_53_acquired_deferred_rev_labels1,122Verbatim source line-item label(s) summed into adj_53_acquired_deferred_rev, "; "-joined
adj_54_environmental_labels1,122Verbatim source line-item label(s) summed into adj_54_environmental, "; "-joined
adj_55_govt_grant_labels1,122Verbatim source line-item label(s) summed into adj_55_govt_grant, "; "-joined
adj_06_others_labels1,122Verbatim source line-item label(s) summed into adj_06_others, "; "-joined
recon_sequence1,122Reconciliation lines in printed top-to-bottom order (category keys, " / "-joined; gaap_eps … nongaap_eps) — the PER-SHARE / primary table order
n_recon_steps1,122Number of steps in the reconciliation sequence (GAAP line + items + non-GAAP total)
recon_sequence_dollar1,122Total-dollar table's printed line order (category keys, ' / '-joined); empty when one combined table or the order matches the per-share table
recon_order_differs1,1221=the total-dollar reconciliation prints its lines in a DIFFERENT order than the per-share reconciliation (so adj_*_position and adj_*_position_m diverge)
adj_01_rent_lease_position11-based row position of adj_01_rent_lease in the PER-SHARE (primary) reconciliation table (null if absent)
adj_01_rent_lease_position_m11-based row position of adj_01_rent_lease in the TOTAL-DOLLAR reconciliation table — can differ from adj_01_rent_lease_position when the firm prints the two tables in a d
adj_02_net_interest_position581-based row position of adj_02_net_interest in the PER-SHARE (primary) reconciliation table (null if absent)
adj_02_net_interest_position_m621-based row position of adj_02_net_interest in the TOTAL-DOLLAR reconciliation table — can differ from adj_02_net_interest_position when the firm prints the two tables in
adj_04_sbc_position2631-based row position of adj_04_sbc in the PER-SHARE (primary) reconciliation table (null if absent)
adj_04_sbc_position_m2661-based row position of adj_04_sbc in the TOTAL-DOLLAR reconciliation table — can differ from adj_04_sbc_position when the firm prints the two tables in a different order
adj_05a_amort_acq_intang_position2631-based row position of adj_05a_amort_acq_intang in the PER-SHARE (primary) reconciliation table (null if absent)
adj_05a_amort_acq_intang_position_m2671-based row position of adj_05a_amort_acq_intang in the TOTAL-DOLLAR reconciliation table — can differ from adj_05a_amort_acq_intang_position when the firm prints the two
adj_05b_da_other_position251-based row position of adj_05b_da_other in the PER-SHARE (primary) reconciliation table (null if absent)
adj_05b_da_other_position_m271-based row position of adj_05b_da_other in the TOTAL-DOLLAR reconciliation table — can differ from adj_05b_da_other_position when the firm prints the two tables in a dif
adj_05c_amort_dev_tech_position211-based row position of adj_05c_amort_dev_tech in the PER-SHARE (primary) reconciliation table (null if absent)
adj_05c_amort_dev_tech_position_m211-based row position of adj_05c_amort_dev_tech in the TOTAL-DOLLAR reconciliation table — can differ from adj_05c_amort_dev_tech_position when the firm prints the two tab
adj_07_pension_position131-based row position of adj_07_pension in the PER-SHARE (primary) reconciliation table (null if absent)
adj_07_pension_position_m131-based row position of adj_07_pension in the TOTAL-DOLLAR reconciliation table — can differ from adj_07_pension_position when the firm prints the two tables in a differe
adj_08_severance_position131-based row position of adj_08_severance in the PER-SHARE (primary) reconciliation table (null if absent)
adj_08_severance_position_m141-based row position of adj_08_severance in the TOTAL-DOLLAR reconciliation table — can differ from adj_08_severance_position when the firm prints the two tables in a dif
adj_09_realized_gains_position321-based row position of adj_09_realized_gains in the PER-SHARE (primary) reconciliation table (null if absent)
adj_09_realized_gains_position_m321-based row position of adj_09_realized_gains in the TOTAL-DOLLAR reconciliation table — can differ from adj_09_realized_gains_position when the firm prints the two table
adj_10_inventory_writedown_position41-based row position of adj_10_inventory_writedown in the PER-SHARE (primary) reconciliation table (null if absent)
adj_10_inventory_writedown_position_m41-based row position of adj_10_inventory_writedown in the TOTAL-DOLLAR reconciliation table — can differ from adj_10_inventory_writedown_position when the firm prints the
adj_11_tax_impact_position2661-based row position of adj_11_tax_impact in the PER-SHARE (primary) reconciliation table (null if absent)
adj_11_tax_impact_position_m2731-based row position of adj_11_tax_impact in the TOTAL-DOLLAR reconciliation table — can differ from adj_11_tax_impact_position when the firm prints the two tables in a d
adj_12_startup_position51-based row position of adj_12_startup in the PER-SHARE (primary) reconciliation table (null if absent)
adj_12_startup_position_m51-based row position of adj_12_startup in the TOTAL-DOLLAR reconciliation table — can differ from adj_12_startup_position when the firm prints the two tables in a differe
adj_13_equity_income_position101-based row position of adj_13_equity_income in the PER-SHARE (primary) reconciliation table (null if absent)
adj_13_equity_income_position_m101-based row position of adj_13_equity_income in the TOTAL-DOLLAR reconciliation table — can differ from adj_13_equity_income_position when the firm prints the two tables
adj_14_impair_ppe_finite_position321-based row position of adj_14_impair_ppe_finite in the PER-SHARE (primary) reconciliation table (null if absent)
adj_14_impair_ppe_finite_position_m331-based row position of adj_14_impair_ppe_finite in the TOTAL-DOLLAR reconciliation table — can differ from adj_14_impair_ppe_finite_position when the firm prints the two
adj_15_fx_position91-based row position of adj_15_fx in the PER-SHARE (primary) reconciliation table (null if absent)
adj_15_fx_position_m91-based row position of adj_15_fx in the TOTAL-DOLLAR reconciliation table — can differ from adj_15_fx_position when the firm prints the two tables in a different order (
adj_16_debt_extinguishment_position381-based row position of adj_16_debt_extinguishment in the PER-SHARE (primary) reconciliation table (null if absent)
adj_16_debt_extinguishment_position_m391-based row position of adj_16_debt_extinguishment in the TOTAL-DOLLAR reconciliation table — can differ from adj_16_debt_extinguishment_position when the firm prints the
adj_17_litigation_position561-based row position of adj_17_litigation in the PER-SHARE (primary) reconciliation table (null if absent)
adj_17_litigation_position_m561-based row position of adj_17_litigation in the TOTAL-DOLLAR reconciliation table — can differ from adj_17_litigation_position when the firm prints the two tables in a d
adj_18_fair_value_position161-based row position of adj_18_fair_value in the PER-SHARE (primary) reconciliation table (null if absent)
adj_18_fair_value_position_m171-based row position of adj_18_fair_value in the TOTAL-DOLLAR reconciliation table — can differ from adj_18_fair_value_position when the firm prints the two tables in a d
adj_19_acquisition_position1171-based row position of adj_19_acquisition in the PER-SHARE (primary) reconciliation table (null if absent)
adj_19_acquisition_position_m1201-based row position of adj_19_acquisition in the TOTAL-DOLLAR reconciliation table — can differ from adj_19_acquisition_position when the firm prints the two tables in a
adj_20_ppe_sale_position251-based row position of adj_20_ppe_sale in the PER-SHARE (primary) reconciliation table (null if absent)
adj_20_ppe_sale_position_m261-based row position of adj_20_ppe_sale in the TOTAL-DOLLAR reconciliation table — can differ from adj_20_ppe_sale_position when the firm prints the two tables in a diffe
adj_21_tax_accounting_position181-based row position of adj_21_tax_accounting in the PER-SHARE (primary) reconciliation table (null if absent)
adj_21_tax_accounting_position_m181-based row position of adj_21_tax_accounting in the TOTAL-DOLLAR reconciliation table — can differ from adj_21_tax_accounting_position when the firm prints the two table
adj_22_restructuring_position2291-based row position of adj_22_restructuring in the PER-SHARE (primary) reconciliation table (null if absent)
adj_22_restructuring_position_m2331-based row position of adj_22_restructuring in the TOTAL-DOLLAR reconciliation table — can differ from adj_22_restructuring_position when the firm prints the two tables
adj_23_discontinued_position151-based row position of adj_23_discontinued in the PER-SHARE (primary) reconciliation table (null if absent)
adj_23_discontinued_position_m151-based row position of adj_23_discontinued in the TOTAL-DOLLAR reconciliation table — can differ from adj_23_discontinued_position when the firm prints the two tables in
adj_24_integration_position281-based row position of adj_24_integration in the PER-SHARE (primary) reconciliation table (null if absent)
adj_24_integration_position_m281-based row position of adj_24_integration in the TOTAL-DOLLAR reconciliation table — can differ from adj_24_integration_position when the firm prints the two tables in a
adj_26_unrealized_invst_position71-based row position of adj_26_unrealized_invst in the PER-SHARE (primary) reconciliation table (null if absent)
adj_26_unrealized_invst_position_m71-based row position of adj_26_unrealized_invst in the TOTAL-DOLLAR reconciliation table — can differ from adj_26_unrealized_invst_position when the firm prints the two t
adj_27_ipr_d_position81-based row position of adj_27_ipr_d in the PER-SHARE (primary) reconciliation table (null if absent)
adj_27_ipr_d_position_m81-based row position of adj_27_ipr_d in the TOTAL-DOLLAR reconciliation table — can differ from adj_27_ipr_d_position when the firm prints the two tables in a different o
adj_28_natural_disaster_position31-based row position of adj_28_natural_disaster in the PER-SHARE (primary) reconciliation table (null if absent)
adj_28_natural_disaster_position_m31-based row position of adj_28_natural_disaster in the TOTAL-DOLLAR reconciliation table — can differ from adj_28_natural_disaster_position when the firm prints the two t
adj_30_ai_transform_position11-based row position of adj_30_ai_transform in the PER-SHARE (primary) reconciliation table (null if absent)
adj_30_ai_transform_position_m11-based row position of adj_30_ai_transform in the TOTAL-DOLLAR reconciliation table — can differ from adj_30_ai_transform_position when the firm prints the two tables in
adj_31_exec_transition_position41-based row position of adj_31_exec_transition in the PER-SHARE (primary) reconciliation table (null if absent)
adj_31_exec_transition_position_m41-based row position of adj_31_exec_transition in the TOTAL-DOLLAR reconciliation table — can differ from adj_31_exec_transition_position when the firm prints the two tab
adj_32_debt_issuance_position131-based row position of adj_32_debt_issuance in the PER-SHARE (primary) reconciliation table (null if absent)
adj_32_debt_issuance_position_m131-based row position of adj_32_debt_issuance in the TOTAL-DOLLAR reconciliation table — can differ from adj_32_debt_issuance_position when the firm prints the two tables
adj_35_fraud_position31-based row position of adj_35_fraud in the PER-SHARE (primary) reconciliation table (null if absent)
adj_35_fraud_position_m31-based row position of adj_35_fraud in the TOTAL-DOLLAR reconciliation table — can differ from adj_35_fraud_position when the firm prints the two tables in a different o
adj_39_tariffs_position11-based row position of adj_39_tariffs in the PER-SHARE (primary) reconciliation table (null if absent)
adj_39_tariffs_position_m11-based row position of adj_39_tariffs in the TOTAL-DOLLAR reconciliation table — can differ from adj_39_tariffs_position when the firm prints the two tables in a differe
adj_40_cyber_position11-based row position of adj_40_cyber in the PER-SHARE (primary) reconciliation table (null if absent)
adj_40_cyber_position_m11-based row position of adj_40_cyber in the TOTAL-DOLLAR reconciliation table — can differ from adj_40_cyber_position when the firm prints the two tables in a different o
adj_41_commodity_position21-based row position of adj_41_commodity in the PER-SHARE (primary) reconciliation table (null if absent)
adj_41_commodity_position_m21-based row position of adj_41_commodity in the TOTAL-DOLLAR reconciliation table — can differ from adj_41_commodity_position when the firm prints the two tables in a dif
adj_14b_goodwill_impairment_position211-based row position of adj_14b_goodwill_impairment in the PER-SHARE (primary) reconciliation table (null if absent)
adj_14b_goodwill_impairment_position_m211-based row position of adj_14b_goodwill_impairment in the TOTAL-DOLLAR reconciliation table — can differ from adj_14b_goodwill_impairment_position when the firm prints t
adj_14c_indef_intangible_position31-based row position of adj_14c_indef_intangible in the PER-SHARE (primary) reconciliation table (null if absent)
adj_14c_indef_intangible_position_m31-based row position of adj_14c_indef_intangible in the TOTAL-DOLLAR reconciliation table — can differ from adj_14c_indef_intangible_position when the firm prints the two
adj_10b_inventory_method_position41-based row position of adj_10b_inventory_method in the PER-SHARE (primary) reconciliation table (null if absent)
adj_10b_inventory_method_position_m41-based row position of adj_10b_inventory_method in the TOTAL-DOLLAR reconciliation table — can differ from adj_10b_inventory_method_position when the firm prints the two
adj_44_credit_loss_position51-based row position of adj_44_credit_loss in the PER-SHARE (primary) reconciliation table (null if absent)
adj_44_credit_loss_position_m51-based row position of adj_44_credit_loss in the TOTAL-DOLLAR reconciliation table — can differ from adj_44_credit_loss_position when the firm prints the two tables in a
adj_46_noncontrolling_interest_position141-based row position of adj_46_noncontrolling_interest in the PER-SHARE (primary) reconciliation table (null if absent)
adj_46_noncontrolling_interest_position_m141-based row position of adj_46_noncontrolling_interest in the TOTAL-DOLLAR reconciliation table — can differ from adj_46_noncontrolling_interest_position when the firm pr
adj_47_preferred_dividends_position81-based row position of adj_47_preferred_dividends in the PER-SHARE (primary) reconciliation table (null if absent)
adj_47_preferred_dividends_position_m81-based row position of adj_47_preferred_dividends in the TOTAL-DOLLAR reconciliation table — can differ from adj_47_preferred_dividends_position when the firm prints the
adj_48_warrant_liability_position81-based row position of adj_48_warrant_liability in the PER-SHARE (primary) reconciliation table (null if absent)
adj_48_warrant_liability_position_m81-based row position of adj_48_warrant_liability in the TOTAL-DOLLAR reconciliation table — can differ from adj_48_warrant_liability_position when the firm prints the two
adj_49_re_depreciation_position171-based row position of adj_49_re_depreciation in the PER-SHARE (primary) reconciliation table (null if absent)
adj_49_re_depreciation_position_m171-based row position of adj_49_re_depreciation in the TOTAL-DOLLAR reconciliation table — can differ from adj_49_re_depreciation_position when the firm prints the two tab
adj_50_divestiture_gain_position331-based row position of adj_50_divestiture_gain in the PER-SHARE (primary) reconciliation table (null if absent)
adj_50_divestiture_gain_position_m341-based row position of adj_50_divestiture_gain in the TOTAL-DOLLAR reconciliation table — can differ from adj_50_divestiture_gain_position when the firm prints the two t
adj_51_re_rent_adj_position11-based row position of adj_51_re_rent_adj in the PER-SHARE (primary) reconciliation table (null if absent)
adj_51_re_rent_adj_position_m11-based row position of adj_51_re_rent_adj in the TOTAL-DOLLAR reconciliation table — can differ from adj_51_re_rent_adj_position when the firm prints the two tables in a
adj_52_maint_capex_position21-based row position of adj_52_maint_capex in the PER-SHARE (primary) reconciliation table (null if absent)
adj_52_maint_capex_position_m21-based row position of adj_52_maint_capex in the TOTAL-DOLLAR reconciliation table — can differ from adj_52_maint_capex_position when the firm prints the two tables in a
adj_53_acquired_deferred_rev_position221-based row position of adj_53_acquired_deferred_rev in the PER-SHARE (primary) reconciliation table (null if absent)
adj_53_acquired_deferred_rev_position_m221-based row position of adj_53_acquired_deferred_rev in the TOTAL-DOLLAR reconciliation table — can differ from adj_53_acquired_deferred_rev_position when the firm prints
adj_54_environmental_position51-based row position of adj_54_environmental in the PER-SHARE (primary) reconciliation table (null if absent)
adj_54_environmental_position_m51-based row position of adj_54_environmental in the TOTAL-DOLLAR reconciliation table — can differ from adj_54_environmental_position when the firm prints the two tables
adj_55_govt_grant_position41-based row position of adj_55_govt_grant in the PER-SHARE (primary) reconciliation table (null if absent)
adj_55_govt_grant_position_m41-based row position of adj_55_govt_grant in the TOTAL-DOLLAR reconciliation table — can differ from adj_55_govt_grant_position when the firm prints the two tables in a d
n_recon_lines_taxonomy1,122OUR merged-taxonomy reconciliation line count: GAAP + distinct adjustment CATEGORIES + non-GAAP (several printed lines mapped to one category count once; e.g. a lone merg
n_recon_lines_printed1,122ACTUAL printed reconciliation line count: GAAP + every printed adjustment sub-line + non-GAAP (the firm-as-printed count; e.g. 3 SBC lines + GAAP + non-GAAP = 5)
n_adj_merged1,122Number of taxonomy categories into which MORE THAN ONE printed reconciliation line was accumulated
recon_merge_map1,122For each merged category: reconstructed printed line numbers + the verbatim labels accumulated into that single taxonomy position (e.g. "adj_04_sbc@L2-4: SBC in COGS / SB
n_adj_present1,122Count of non-zero named adjustment categories present (incl. the tax line)
n_adj_dollars_disclosed1,122Of the present adjustments, how many carry a DISCLOSED dollar amount (adj_*_m); the rest are stated per-share only
adj_dollars_imputed1,1221=at least one present adjustment was stated per-share only (no disclosed $); its dollar amount must be imputed from per-share x diluted_shares_k. The $ TOTAL is still ex
adj_dollars_imputed_cats1,122adj_* category keys stated per-share only (no disclosed dollar amount), "; "-joined
n_adj_pershare_valued1,122Count of adjustment categories carrying a non-zero PER-SHARE value (>= $0.01/sh)
n_adj_dollar_valued1,122Count of adjustment categories carrying a non-zero TOTAL-DOLLAR ($M) value; differs from n_adj_pershare_valued when an item is itemized in $ but aggregated, or too small
adj_basis_asymmetric1,1221=the per-share and total-dollar tables carry a DIFFERENT number of valued adjustment lines (n_adj_pershare_valued != n_adj_dollar_valued)
effective_tax_rate1,122Firm GAAP effective tax rate used to tax-effect the pseudo (income-tax expense / pre-tax income; default 0.21)
adjustments_reversed_ps1,122Per-share sum of the firm's own exclusions that fall OUTSIDE the standard set (rent, net interest, R&D, normal PP&E depreciation) — the over-adjustment the pseudo reverse
adjustments_reversed_m56$M sum of the firm's non-standard exclusions reversed by the pseudo
pseudo_basis1,122built_from_gaap (firm reports no non-GAAP) / completed_nongaap (firm reports non-GAAP; pseudo completes/standardizes it)
adj_04_sbc_pseudo1,122Standardized pretax per-share adjustment for adj_04_sbc used in the pseudo non-GAAP
adj_05a_amort_acq_intang_pseudo1,122Standardized pretax per-share adjustment for adj_05a_amort_acq_intang used in the pseudo non-GAAP
adj_05c_amort_dev_tech_pseudo1,122Standardized pretax per-share adjustment for adj_05c_amort_dev_tech used in the pseudo non-GAAP
adj_07_pension_pseudo1,122Standardized pretax per-share adjustment for adj_07_pension used in the pseudo non-GAAP
adj_08_severance_pseudo1,122Standardized pretax per-share adjustment for adj_08_severance used in the pseudo non-GAAP
adj_09_realized_gains_pseudo1,122Standardized pretax per-share adjustment for adj_09_realized_gains used in the pseudo non-GAAP
adj_10_inventory_writedown_pseudo1,122Standardized pretax per-share adjustment for adj_10_inventory_writedown used in the pseudo non-GAAP
adj_12_startup_pseudo1,122Standardized pretax per-share adjustment for adj_12_startup used in the pseudo non-GAAP
adj_13_equity_income_pseudo1,122Standardized pretax per-share adjustment for adj_13_equity_income used in the pseudo non-GAAP
adj_14_impair_ppe_finite_pseudo1,122Standardized pretax per-share adjustment for adj_14_impair_ppe_finite used in the pseudo non-GAAP
adj_15_fx_pseudo1,122Standardized pretax per-share adjustment for adj_15_fx used in the pseudo non-GAAP
adj_16_debt_extinguishment_pseudo1,122Standardized pretax per-share adjustment for adj_16_debt_extinguishment used in the pseudo non-GAAP
adj_17_litigation_pseudo1,122Standardized pretax per-share adjustment for adj_17_litigation used in the pseudo non-GAAP
adj_18_fair_value_pseudo1,122Standardized pretax per-share adjustment for adj_18_fair_value used in the pseudo non-GAAP
adj_19_acquisition_pseudo1,122Standardized pretax per-share adjustment for adj_19_acquisition used in the pseudo non-GAAP
adj_20_ppe_sale_pseudo1,122Standardized pretax per-share adjustment for adj_20_ppe_sale used in the pseudo non-GAAP
adj_21_tax_accounting_pseudo1,122Standardized pretax per-share adjustment for adj_21_tax_accounting used in the pseudo non-GAAP
adj_22_restructuring_pseudo1,122Standardized pretax per-share adjustment for adj_22_restructuring used in the pseudo non-GAAP
adj_23_discontinued_pseudo1,122Standardized pretax per-share adjustment for adj_23_discontinued used in the pseudo non-GAAP
adj_24_integration_pseudo1,122Standardized pretax per-share adjustment for adj_24_integration used in the pseudo non-GAAP
adj_25_covid_pseudo1,122Standardized pretax per-share adjustment for adj_25_covid used in the pseudo non-GAAP
adj_26_unrealized_invst_pseudo1,122Standardized pretax per-share adjustment for adj_26_unrealized_invst used in the pseudo non-GAAP
adj_27_ipr_d_pseudo1,122Standardized pretax per-share adjustment for adj_27_ipr_d used in the pseudo non-GAAP
adj_28_natural_disaster_pseudo1,122Standardized pretax per-share adjustment for adj_28_natural_disaster used in the pseudo non-GAAP
adj_29_supply_chain_pseudo1,122Standardized pretax per-share adjustment for adj_29_supply_chain used in the pseudo non-GAAP
adj_30_ai_transform_pseudo1,122Standardized pretax per-share adjustment for adj_30_ai_transform used in the pseudo non-GAAP
adj_31_exec_transition_pseudo1,122Standardized pretax per-share adjustment for adj_31_exec_transition used in the pseudo non-GAAP
adj_32_debt_issuance_pseudo1,122Standardized pretax per-share adjustment for adj_32_debt_issuance used in the pseudo non-GAAP
adj_33_crypto_pseudo1,122Standardized pretax per-share adjustment for adj_33_crypto used in the pseudo non-GAAP
adj_34_geopolitical_pseudo1,122Standardized pretax per-share adjustment for adj_34_geopolitical used in the pseudo non-GAAP
adj_35_fraud_pseudo1,122Standardized pretax per-share adjustment for adj_35_fraud used in the pseudo non-GAAP
adj_36_dei_pseudo1,122Standardized pretax per-share adjustment for adj_36_dei used in the pseudo non-GAAP
adj_37_climate_esg_pseudo1,122Standardized pretax per-share adjustment for adj_37_climate_esg used in the pseudo non-GAAP
adj_38_ai_equity_gains_pseudo1,122Standardized pretax per-share adjustment for adj_38_ai_equity_gains used in the pseudo non-GAAP
adj_39_tariffs_pseudo1,122Standardized pretax per-share adjustment for adj_39_tariffs used in the pseudo non-GAAP
adj_40_cyber_pseudo1,122Standardized pretax per-share adjustment for adj_40_cyber used in the pseudo non-GAAP
adj_41_commodity_pseudo1,122Standardized pretax per-share adjustment for adj_41_commodity used in the pseudo non-GAAP
adj_14b_goodwill_impairment_pseudo1,122Standardized pretax per-share adjustment for adj_14b_goodwill_impairment used in the pseudo non-GAAP
adj_14c_indef_intangible_pseudo1,122Standardized pretax per-share adjustment for adj_14c_indef_intangible used in the pseudo non-GAAP
adj_10b_inventory_method_pseudo1,122Standardized pretax per-share adjustment for adj_10b_inventory_method used in the pseudo non-GAAP
adj_44_credit_loss_pseudo1,122Standardized pretax per-share adjustment for adj_44_credit_loss used in the pseudo non-GAAP
adj_45_charitable_pseudo1,122Standardized pretax per-share adjustment for adj_45_charitable used in the pseudo non-GAAP
adj_46_noncontrolling_interest_pseudo1,122Standardized pretax per-share adjustment for adj_46_noncontrolling_interest used in the pseudo non-GAAP
adj_47_preferred_dividends_pseudo1,122Standardized pretax per-share adjustment for adj_47_preferred_dividends used in the pseudo non-GAAP
adj_48_warrant_liability_pseudo1,122Standardized pretax per-share adjustment for adj_48_warrant_liability used in the pseudo non-GAAP
adj_50_divestiture_gain_pseudo1,122Standardized pretax per-share adjustment for adj_50_divestiture_gain used in the pseudo non-GAAP
adj_51_re_rent_adj_pseudo1,122Standardized pretax per-share adjustment for adj_51_re_rent_adj used in the pseudo non-GAAP
adj_53_acquired_deferred_rev_pseudo1,122Standardized pretax per-share adjustment for adj_53_acquired_deferred_rev used in the pseudo non-GAAP
adj_54_environmental_pseudo1,122Standardized pretax per-share adjustment for adj_54_environmental used in the pseudo non-GAAP
adj_55_govt_grant_pseudo1,122Standardized pretax per-share adjustment for adj_55_govt_grant used in the pseudo non-GAAP
gross_up_rate1,122Tax rate t used to convert between gross and net: firm effective_tax_rate when in [0.10,0.35], else statutory (35% pre-FY2018 / 21% from FY2018)
gross_up_method1,122How gross_up_rate was chosen: "etr" (firm effective rate) or "statutory_fallback"
adj_gross_imputed1,1221=the *_gross columns are IMPUTED (firm reported net-of-tax); 0=observed (firm reported gross)
adj_net_imputed1,1221=the *_net columns are IMPUTED (firm reported gross); 0=observed (firm reported net)
adj_01_rent_lease_gross1,122adj_01_rent_lease on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_01_rent_lease_net1,122adj_01_rent_lease on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_02_net_interest_gross1,122adj_02_net_interest on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_02_net_interest_net1,122adj_02_net_interest on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_02_net_interest_gross_m33adj_02_net_interest on a GROSS (pre-tax) basis, $M
adj_02_net_interest_net_m33adj_02_net_interest on a NET (after-tax) basis, $M
adj_03_rd_gross1,122adj_03_rd on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_03_rd_net1,122adj_03_rd on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_04_sbc_gross1,122adj_04_sbc on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_04_sbc_net1,122adj_04_sbc on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_04_sbc_gross_m155adj_04_sbc on a GROSS (pre-tax) basis, $M
adj_04_sbc_net_m155adj_04_sbc on a NET (after-tax) basis, $M
adj_05a_amort_acq_intang_gross1,122adj_05a_amort_acq_intang on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_05a_amort_acq_intang_net1,122adj_05a_amort_acq_intang on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_05a_amort_acq_intang_gross_m144adj_05a_amort_acq_intang on a GROSS (pre-tax) basis, $M
adj_05a_amort_acq_intang_net_m144adj_05a_amort_acq_intang on a NET (after-tax) basis, $M
adj_05b_da_other_gross1,122adj_05b_da_other on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_05b_da_other_net1,122adj_05b_da_other on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_05b_da_other_gross_m20adj_05b_da_other on a GROSS (pre-tax) basis, $M
adj_05b_da_other_net_m20adj_05b_da_other on a NET (after-tax) basis, $M
adj_05c_amort_dev_tech_gross1,122adj_05c_amort_dev_tech on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_05c_amort_dev_tech_net1,122adj_05c_amort_dev_tech on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_05c_amort_dev_tech_gross_m14adj_05c_amort_dev_tech on a GROSS (pre-tax) basis, $M
adj_05c_amort_dev_tech_net_m14adj_05c_amort_dev_tech on a NET (after-tax) basis, $M
adj_07_pension_gross1,122adj_07_pension on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_07_pension_net1,122adj_07_pension on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_07_pension_gross_m4adj_07_pension on a GROSS (pre-tax) basis, $M
adj_07_pension_net_m4adj_07_pension on a NET (after-tax) basis, $M
adj_08_severance_gross1,122adj_08_severance on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_08_severance_net1,122adj_08_severance on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_08_severance_gross_m11adj_08_severance on a GROSS (pre-tax) basis, $M
adj_08_severance_net_m11adj_08_severance on a NET (after-tax) basis, $M
adj_09_realized_gains_gross1,122adj_09_realized_gains on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_09_realized_gains_net1,122adj_09_realized_gains on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_09_realized_gains_gross_m16adj_09_realized_gains on a GROSS (pre-tax) basis, $M
adj_09_realized_gains_net_m16adj_09_realized_gains on a NET (after-tax) basis, $M
adj_10_inventory_writedown_gross1,122adj_10_inventory_writedown on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_10_inventory_writedown_net1,122adj_10_inventory_writedown on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_10_inventory_writedown_gross_m3adj_10_inventory_writedown on a GROSS (pre-tax) basis, $M
adj_10_inventory_writedown_net_m3adj_10_inventory_writedown on a NET (after-tax) basis, $M
adj_12_startup_gross1,122adj_12_startup on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_12_startup_net1,122adj_12_startup on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_12_startup_gross_m3adj_12_startup on a GROSS (pre-tax) basis, $M
adj_12_startup_net_m3adj_12_startup on a NET (after-tax) basis, $M
adj_13_equity_income_gross1,122adj_13_equity_income on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_13_equity_income_net1,122adj_13_equity_income on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_13_equity_income_gross_m6adj_13_equity_income on a GROSS (pre-tax) basis, $M
adj_13_equity_income_net_m6adj_13_equity_income on a NET (after-tax) basis, $M
adj_14_impair_ppe_finite_gross1,122adj_14_impair_ppe_finite on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_14_impair_ppe_finite_net1,122adj_14_impair_ppe_finite on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_14_impair_ppe_finite_gross_m18adj_14_impair_ppe_finite on a GROSS (pre-tax) basis, $M
adj_14_impair_ppe_finite_net_m18adj_14_impair_ppe_finite on a NET (after-tax) basis, $M
adj_15_fx_gross1,122adj_15_fx on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_15_fx_net1,122adj_15_fx on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_15_fx_gross_m5adj_15_fx on a GROSS (pre-tax) basis, $M
adj_15_fx_net_m5adj_15_fx on a NET (after-tax) basis, $M
adj_16_debt_extinguishment_gross1,122adj_16_debt_extinguishment on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_16_debt_extinguishment_net1,122adj_16_debt_extinguishment on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_16_debt_extinguishment_gross_m23adj_16_debt_extinguishment on a GROSS (pre-tax) basis, $M
adj_16_debt_extinguishment_net_m23adj_16_debt_extinguishment on a NET (after-tax) basis, $M
adj_17_litigation_gross1,122adj_17_litigation on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_17_litigation_net1,122adj_17_litigation on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_17_litigation_gross_m29adj_17_litigation on a GROSS (pre-tax) basis, $M
adj_17_litigation_net_m29adj_17_litigation on a NET (after-tax) basis, $M
adj_18_fair_value_gross1,122adj_18_fair_value on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_18_fair_value_net1,122adj_18_fair_value on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_18_fair_value_gross_m11adj_18_fair_value on a GROSS (pre-tax) basis, $M
adj_18_fair_value_net_m11adj_18_fair_value on a NET (after-tax) basis, $M
adj_19_acquisition_gross1,122adj_19_acquisition on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_19_acquisition_net1,122adj_19_acquisition on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_19_acquisition_gross_m64adj_19_acquisition on a GROSS (pre-tax) basis, $M
adj_19_acquisition_net_m64adj_19_acquisition on a NET (after-tax) basis, $M
adj_20_ppe_sale_gross1,122adj_20_ppe_sale on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_20_ppe_sale_net1,122adj_20_ppe_sale on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_20_ppe_sale_gross_m9adj_20_ppe_sale on a GROSS (pre-tax) basis, $M
adj_20_ppe_sale_net_m9adj_20_ppe_sale on a NET (after-tax) basis, $M
adj_21_tax_accounting_gross1,122adj_21_tax_accounting on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_21_tax_accounting_net1,122adj_21_tax_accounting on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_21_tax_accounting_gross_m8adj_21_tax_accounting on a GROSS (pre-tax) basis, $M
adj_21_tax_accounting_net_m8adj_21_tax_accounting on a NET (after-tax) basis, $M
adj_22_restructuring_gross1,122adj_22_restructuring on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_22_restructuring_net1,122adj_22_restructuring on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_22_restructuring_gross_m133adj_22_restructuring on a GROSS (pre-tax) basis, $M
adj_22_restructuring_net_m133adj_22_restructuring on a NET (after-tax) basis, $M
adj_23_discontinued_gross1,122adj_23_discontinued on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_23_discontinued_net1,122adj_23_discontinued on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_23_discontinued_gross_m5adj_23_discontinued on a GROSS (pre-tax) basis, $M
adj_23_discontinued_net_m5adj_23_discontinued on a NET (after-tax) basis, $M
adj_24_integration_gross1,122adj_24_integration on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_24_integration_net1,122adj_24_integration on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_24_integration_gross_m19adj_24_integration on a GROSS (pre-tax) basis, $M
adj_24_integration_net_m19adj_24_integration on a NET (after-tax) basis, $M
adj_25_covid_gross1,122adj_25_covid on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_25_covid_net1,122adj_25_covid on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_25_covid_gross_m1adj_25_covid on a GROSS (pre-tax) basis, $M
adj_25_covid_net_m1adj_25_covid on a NET (after-tax) basis, $M
adj_26_unrealized_invst_gross1,122adj_26_unrealized_invst on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_26_unrealized_invst_net1,122adj_26_unrealized_invst on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_26_unrealized_invst_gross_m2adj_26_unrealized_invst on a GROSS (pre-tax) basis, $M
adj_26_unrealized_invst_net_m2adj_26_unrealized_invst on a NET (after-tax) basis, $M
adj_27_ipr_d_gross1,122adj_27_ipr_d on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_27_ipr_d_net1,122adj_27_ipr_d on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_27_ipr_d_gross_m5adj_27_ipr_d on a GROSS (pre-tax) basis, $M
adj_27_ipr_d_net_m5adj_27_ipr_d on a NET (after-tax) basis, $M
adj_28_natural_disaster_gross1,122adj_28_natural_disaster on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_28_natural_disaster_net1,122adj_28_natural_disaster on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_28_natural_disaster_gross_m1adj_28_natural_disaster on a GROSS (pre-tax) basis, $M
adj_28_natural_disaster_net_m1adj_28_natural_disaster on a NET (after-tax) basis, $M
adj_29_supply_chain_gross1,122adj_29_supply_chain on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_29_supply_chain_net1,122adj_29_supply_chain on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_30_ai_transform_gross1,122adj_30_ai_transform on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_30_ai_transform_net1,122adj_30_ai_transform on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_30_ai_transform_gross_m1adj_30_ai_transform on a GROSS (pre-tax) basis, $M
adj_30_ai_transform_net_m1adj_30_ai_transform on a NET (after-tax) basis, $M
adj_31_exec_transition_gross1,122adj_31_exec_transition on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_31_exec_transition_net1,122adj_31_exec_transition on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_31_exec_transition_gross_m2adj_31_exec_transition on a GROSS (pre-tax) basis, $M
adj_31_exec_transition_net_m2adj_31_exec_transition on a NET (after-tax) basis, $M
adj_32_debt_issuance_gross1,122adj_32_debt_issuance on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_32_debt_issuance_net1,122adj_32_debt_issuance on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_32_debt_issuance_gross_m11adj_32_debt_issuance on a GROSS (pre-tax) basis, $M
adj_32_debt_issuance_net_m11adj_32_debt_issuance on a NET (after-tax) basis, $M
adj_33_crypto_gross1,122adj_33_crypto on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_33_crypto_net1,122adj_33_crypto on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_34_geopolitical_gross1,122adj_34_geopolitical on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_34_geopolitical_net1,122adj_34_geopolitical on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_35_fraud_gross1,122adj_35_fraud on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_35_fraud_net1,122adj_35_fraud on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_35_fraud_gross_m3adj_35_fraud on a GROSS (pre-tax) basis, $M
adj_35_fraud_net_m3adj_35_fraud on a NET (after-tax) basis, $M
adj_36_dei_gross1,122adj_36_dei on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_36_dei_net1,122adj_36_dei on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_37_climate_esg_gross1,122adj_37_climate_esg on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_37_climate_esg_net1,122adj_37_climate_esg on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_38_ai_equity_gains_gross1,122adj_38_ai_equity_gains on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_38_ai_equity_gains_net1,122adj_38_ai_equity_gains on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_39_tariffs_gross1,122adj_39_tariffs on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_39_tariffs_net1,122adj_39_tariffs on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_40_cyber_gross1,122adj_40_cyber on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_40_cyber_net1,122adj_40_cyber on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_40_cyber_gross_m1adj_40_cyber on a GROSS (pre-tax) basis, $M
adj_40_cyber_net_m1adj_40_cyber on a NET (after-tax) basis, $M
adj_41_commodity_gross1,122adj_41_commodity on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_41_commodity_net1,122adj_41_commodity on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_41_commodity_gross_m2adj_41_commodity on a GROSS (pre-tax) basis, $M
adj_41_commodity_net_m2adj_41_commodity on a NET (after-tax) basis, $M
adj_14b_goodwill_impairment_gross1,122adj_14b_goodwill_impairment on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_14b_goodwill_impairment_net1,122adj_14b_goodwill_impairment on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_14b_goodwill_impairment_gross_m21adj_14b_goodwill_impairment on a GROSS (pre-tax) basis, $M
adj_14b_goodwill_impairment_net_m21adj_14b_goodwill_impairment on a NET (after-tax) basis, $M
adj_14c_indef_intangible_gross1,122adj_14c_indef_intangible on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_14c_indef_intangible_net1,122adj_14c_indef_intangible on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_14c_indef_intangible_gross_m3adj_14c_indef_intangible on a GROSS (pre-tax) basis, $M
adj_14c_indef_intangible_net_m3adj_14c_indef_intangible on a NET (after-tax) basis, $M
adj_10b_inventory_method_gross1,122adj_10b_inventory_method on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_10b_inventory_method_net1,122adj_10b_inventory_method on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_10b_inventory_method_gross_m1adj_10b_inventory_method on a GROSS (pre-tax) basis, $M
adj_10b_inventory_method_net_m1adj_10b_inventory_method on a NET (after-tax) basis, $M
adj_44_credit_loss_gross1,122adj_44_credit_loss on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_44_credit_loss_net1,122adj_44_credit_loss on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_44_credit_loss_gross_m4adj_44_credit_loss on a GROSS (pre-tax) basis, $M
adj_44_credit_loss_net_m4adj_44_credit_loss on a NET (after-tax) basis, $M
adj_45_charitable_gross1,122adj_45_charitable on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_45_charitable_net1,122adj_45_charitable on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_45_charitable_gross_m1adj_45_charitable on a GROSS (pre-tax) basis, $M
adj_45_charitable_net_m1adj_45_charitable on a NET (after-tax) basis, $M
adj_46_noncontrolling_interest_gross1,122adj_46_noncontrolling_interest on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_46_noncontrolling_interest_net1,122adj_46_noncontrolling_interest on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_46_noncontrolling_interest_gross_m9adj_46_noncontrolling_interest on a GROSS (pre-tax) basis, $M
adj_46_noncontrolling_interest_net_m9adj_46_noncontrolling_interest on a NET (after-tax) basis, $M
adj_47_preferred_dividends_gross1,122adj_47_preferred_dividends on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_47_preferred_dividends_net1,122adj_47_preferred_dividends on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_47_preferred_dividends_gross_m3adj_47_preferred_dividends on a GROSS (pre-tax) basis, $M
adj_47_preferred_dividends_net_m3adj_47_preferred_dividends on a NET (after-tax) basis, $M
adj_48_warrant_liability_gross1,122adj_48_warrant_liability on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_48_warrant_liability_net1,122adj_48_warrant_liability on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_48_warrant_liability_gross_m6adj_48_warrant_liability on a GROSS (pre-tax) basis, $M
adj_48_warrant_liability_net_m6adj_48_warrant_liability on a NET (after-tax) basis, $M
adj_49_re_depreciation_gross1,122adj_49_re_depreciation on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_49_re_depreciation_net1,122adj_49_re_depreciation on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_49_re_depreciation_gross_m8adj_49_re_depreciation on a GROSS (pre-tax) basis, $M
adj_49_re_depreciation_net_m8adj_49_re_depreciation on a NET (after-tax) basis, $M
adj_50_divestiture_gain_gross1,122adj_50_divestiture_gain on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_50_divestiture_gain_net1,122adj_50_divestiture_gain on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_50_divestiture_gain_gross_m19adj_50_divestiture_gain on a GROSS (pre-tax) basis, $M
adj_50_divestiture_gain_net_m19adj_50_divestiture_gain on a NET (after-tax) basis, $M
adj_51_re_rent_adj_gross1,122adj_51_re_rent_adj on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_51_re_rent_adj_net1,122adj_51_re_rent_adj on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_52_maint_capex_gross1,122adj_52_maint_capex on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_52_maint_capex_net1,122adj_52_maint_capex on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_52_maint_capex_gross_m2adj_52_maint_capex on a GROSS (pre-tax) basis, $M
adj_52_maint_capex_net_m2adj_52_maint_capex on a NET (after-tax) basis, $M
adj_53_acquired_deferred_rev_gross1,122adj_53_acquired_deferred_rev on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_53_acquired_deferred_rev_net1,122adj_53_acquired_deferred_rev on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_53_acquired_deferred_rev_gross_m16adj_53_acquired_deferred_rev on a GROSS (pre-tax) basis, $M
adj_53_acquired_deferred_rev_net_m16adj_53_acquired_deferred_rev on a NET (after-tax) basis, $M
adj_54_environmental_gross1,122adj_54_environmental on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_54_environmental_net1,122adj_54_environmental on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_54_environmental_gross_m4adj_54_environmental on a GROSS (pre-tax) basis, $M
adj_54_environmental_net_m4adj_54_environmental on a NET (after-tax) basis, $M
adj_55_govt_grant_gross1,122adj_55_govt_grant on a GROSS (pre-tax) basis, per share — observed if firm reported gross, else imputed = net/(1-t)
adj_55_govt_grant_net1,122adj_55_govt_grant on a NET (after-tax) basis, per share — observed if firm reported net, else imputed = gross*(1-t)
adj_55_govt_grant_gross_m2adj_55_govt_grant on a GROSS (pre-tax) basis, $M
adj_55_govt_grant_net_m2adj_55_govt_grant on a NET (after-tax) basis, $M
adjustments_gross_ps1,122Total adjustments on a GROSS (pre-tax) basis, per share = sum of adj_*_gross (excludes the tax line)
adjustments_net_ps1,122Total adjustments on a NET (after-tax) basis, per share = sum of adj_*_net
adjustments_gross_m367Total adjustments on a GROSS (pre-tax) basis, $M
adjustments_net_m367Total adjustments on a NET (after-tax) basis, $M
tax_impact_gross_ps1,122Separate tax line in the GROSS view, per share (negative = a deduction): observed adj_11_tax_impact if firm reported gross, else imputed = -wedge*t/(1-t). The NET view em
tax_impact_gross_m174Separate tax line in the GROSS view, $M (negative deduction)
total_noncash_excl_ps616Per-share exclusions of NON-CASH nature (SBC, amortization, impairments, fair-value, etc.); category map CASH_NATURE
total_cash_excl_ps616Per-share exclusions of CASH nature (severance, litigation, deal/integration costs, etc.)
total_cashmixed_excl_ps616Per-share exclusions of MIXED cash nature (restructuring, FX, debt extinguishment — part cash/part non-cash)
total_noncash_excl_m367Total $M exclusions of NON-CASH nature
total_cash_excl_m367Total $M exclusions of CASH nature
total_cashmixed_excl_m367Total $M exclusions of MIXED cash nature
noncash_excl_share615Non-cash share of itemized exclusions = /non-cash/ / (/non-cash/+/cash/+/mixed/), per share (0–1)
total_recurring_excl_ps616Per-share exclusions that are RECURRING by nature (SBC, amortization, R&D, rent, interest, pension); category map RECUR_NATURE
total_nonrecur_excl_ps616Per-share exclusions that are NON-RECURRING by nature (COVID, disaster, IPR&D, debt extinguishment, impairments, deal costs, etc.)
total_recurmixed_excl_ps616Per-share exclusions of MIXED recurrence (restructuring, litigation, fair-value, crypto/warrant remeasurement — recurring for some firms)
total_recurring_excl_m367Total $M recurring-nature exclusions
total_nonrecur_excl_m367Total $M non-recurring-nature exclusions
total_recurmixed_excl_m367Total $M mixed-recurrence exclusions
recurring_excl_share616Recurring share of itemized exclusions = /recurring/ / total, per share (0–1); a high value flags exclusion of normal recurring costs
total_noncash_resolved_ps616Per-share NON-CASH exclusions RESOLVED: non-cash-nature items PLUS any mixed/cash item the filing explicitly labels "non-cash" (noncash_labeled_categories)
total_noncash_resolved_m367Total $M non-cash exclusions resolved (incl. filing-labeled non-cash items)
noncash_labeled_categories1,122adj_* category keys whose row label the FILING explicitly calls "non-cash" ("; "-joined; LLM-extracted; resolves mixed items)
accession_number1,122Full SEC exhibit URL
source_is_txt1,1221=source exhibit is a plain-text .txt filing (space-aligned columns; flash under-values the itemization, so these are routed to pro-think). 0=.htm/.html.
status1,122COMPLETE / PARTIAL / NOT_FOUND
_check_ok1,122Internal build check: the reconciliation identity closed for this row.
_eps_diff1,122Internal build check: non-GAAP EPS minus GAAP EPS.
_check_sum1,122Internal build check: the summed left-hand side of the identity.
url1,122Source URL of the filing exhibit.
press_release_location1,122Dateline city/location of the press release (null if none)
nongaap_mentioned_first1,1221=non-GAAP EPS mentioned before GAAP in headline/first para
first_nongaap_basis1,122Basis of the FIRST non-GAAP measure in the headline/text: per_share / dollar / both (blank if none)
gaap_mentioned_first1,1221=GAAP EPS mentioned before non-GAAP in headline/first para
recent_period_first1,1221=most recent/current period is the first (left-most) data column in the primary table; 0=a prior period is shown first (current period in a later/right column)
nongaap_bulletin1,1221=non-GAAP EPS appears as a bullet point in press release highlights
gaap_bulletin1,1221=GAAP EPS appears as a bullet point in press release highlights
ebitda_exists1,1221=EBITDA or variant mentioned in filing
ebitda_m192Primary EBITDA measure for most recent period ($M)
ebitda_label219Exact label of EBITDA measure (e.g. Adjusted EBITDA, EBITDAX)
ebitda_per_share_stated3EBITDA per share as explicitly stated in filing (null if not stated)
revenue_m535Total revenue/net sales for most recent period ($M)
gross_profit_m154Gross profit for most recent period ($M; revenue minus cost of revenue); null if no gross-profit line is presented
cfo_m233Cash flow from operating activities ($M)
cfi_m175Cash flow from investing activities ($M; typically negative)
cff_m175Cash flow from financing activities ($M)
fcf_m92Free cash flow ($M; typically non-GAAP: operating CF minus capex)
fcf_label1,122Verbatim free cash flow label (e.g. Free cash flow, Adjusted FCF)
net_cash_m167Net change in cash and cash equivalents ($M)
cfo_period_months233Length in months of the period the cash-flow figures (cfo_m/cfi_m/cff_m/fcf_m/net_cash_m) cover, from the statement heading (3/6/9/12); cash-flow statements are cumulativ
alt_earnings_count1,122Count of distinct alternative/adjusted earnings metrics reported in addition to GAAP (EBITDA and Adjusted EBITDA count separately; a metric total and its per-share twin c
alt_earnings_labels1,122Verbatim labels of the alternative earnings metrics, "; "-joined, aligned 1:1 with alt_earnings_values
alt_earnings_values1,122Most-recent-period value of each alternative earnings metric, "; "-joined in filing order, same order as alt_earnings_labels (e.g. "43.9$M; 1.71/sh")
guidance_given1,1221=forward-looking guidance present (any metric, GAAP or non-GAAP)
guidance_metric1,106Forward-guidance metric(s), ;-joined (eps/revenue/ebitda/...)
guidance_covers_eps1,1061=forward guidance includes EPS, 0=guidance but not EPS, .=none
guidance_has_reconciliation1,1221=FORWARD non-GAAP guidance reconciled to GAAP (tightened; excl historical)
guidance_unreasonable_effort1,1221=filing invokes the SEC Item 10(e)/Reg-G "unreasonable effort(s)" exemption to omit a forward-looking non-GAAP-to-GAAP guidance reconciliation
guidance_nongaap_point2,272Non-GAAP EPS guidance point estimate (null if range)
guidance_nongaap_lower22,036Non-GAAP EPS guidance range lower bound
guidance_nongaap_higher21,930Non-GAAP EPS guidance range upper bound
guidance_nongaap_mean512Non-GAAP EPS guidance mean of lower and higher bounds
guidance_gaap_point2,732GAAP EPS guidance point estimate (null if range)
guidance_gaap_lower24,238GAAP EPS guidance range lower bound
guidance_gaap_higher24,104GAAP EPS guidance range upper bound
guidance_gaap_mean537GAAP EPS guidance mean of lower and higher bounds
guidance_revenue_point327Forward REVENUE guidance point estimate ($M; non-GAAP/adjusted preferred; null if range)
guidance_revenue_lower375Forward revenue guidance range lower bound ($M)
guidance_revenue_higher361Forward revenue guidance range upper bound ($M)
guidance_revenue_mean361Forward revenue guidance mean of lower and higher bounds ($M)
guidance_revenue_growth_point94Forward revenue GROWTH-RATE guidance point estimate (percent, e.g. 8.5; used when revenue guided as a growth rate)
guidance_revenue_growth_lower75Forward revenue growth-rate guidance lower bound (percent)
guidance_revenue_growth_higher63Forward revenue growth-rate guidance upper bound (percent)
guidance_revenue_growth_mean63Forward revenue growth-rate guidance mean of bounds (percent)
guidance_ebitda_point70Forward EBITDA guidance point estimate ($M; Adjusted EBITDA preferred; null if range)
guidance_ebitda_lower102Forward EBITDA guidance range lower bound ($M)
guidance_ebitda_higher101Forward EBITDA guidance range upper bound ($M)
guidance_ebitda_mean101Forward EBITDA guidance mean of lower and higher bounds ($M)
guidance_organic_growth_point32Forward ORGANIC / constant-currency revenue/sales GROWTH guidance point estimate (percent)
guidance_organic_growth_lower35Forward organic/constant-currency growth guidance lower bound (percent)
guidance_organic_growth_higher34Forward organic/constant-currency growth guidance upper bound (percent)
guidance_organic_growth_mean34Forward organic/constant-currency growth guidance mean of bounds (percent)
consensus_mentioned1,1221=press release explicitly compares EPS to an analyst consensus/estimate
consensus_source1,122Consensus provider: I/B/E/S, First Call, Thomson Reuters, Zacks, FactSet, etc.
consensus_metric1,122Basis of compared figure: gaap or nongaap
consensus_basis1,122Share basis of comparison: diluted or basic
consensus_eps38Analyst consensus/forecast EPS value stated in the release
consensus_eps_reported27Company reported EPS figure stated alongside the consensus (prose)
consensus_direction1,122beat / miss / meet as worded in the release
compared_to_year_ago1,1221=release compares EPS to its own prior-year (year-ago) value
eps_year_ago495Prior-year EPS value the release compares against (not a consensus)
nongaap_disclaimer1,1221=release includes Reg-G cautionary language (non-GAAP supplemental, not a substitute for GAAP)
earnings_call_mentioned1,1221=release announces an earnings conference call/webcast
call_date1,122Earnings conference call date (YYYY-MM-DD)
call_time_et1,122Call time converted to Eastern Time (24-hour HH:MM)
call_timezone_stated1,122Time zone as written in the release: ET/CT/MT/PT
call_webcast_url1,122Verbatim website/URL for the earnings call or webcast / IR events page (null if none given)
call_same_day7561=conference call is the same day as the press release
header_text1,122Verbatim press release headline/title
header_describes_performance1,1221=headline characterizes performance (not just announces results)
header_tone1,122Headline tone: positive / negative / mixed / neutral
header_performance_type1,122Primary performance type in headline: revenue/earnings/growth/record/margin/cash_flow/loss/guidance/operational/mixed/none
nongaap_justification_provided1,1221=release gives a reason/benefit for using non-GAAP or excluding items
nongaap_justification_type1,121Primary rationale: investor_usefulness/management_use/comparability/core_operations/non_recurring/other/none
bulletin_count1,122Number of highlight bullet points in the release (LLM)
bulletins_used1,1221=release uses highlight bullet points
bulletin_word_ratio1,122bulletin_count / prose word count (tables excluded)
bulletin_tone1,122Overall tone of the bullets: positive/negative/neutral/mixed/none
bulletin_order_fav_to_less1,1221=bullets ordered most-favorable to least-favorable
bulletin_order_basis1,122What the bullet order is based on: favorability/magnitude/chronological/metric_importance/segment/mixed/none
bulletin_spin_direction1,122Bullet positivity vs actual results: bullets_overstate/consistent/bullets_understate/none
bulletin_spin_degree1,122Degree of bullet-vs-results discrepancy: none/low/moderate/high
alt_earnings_values_pershare1,122Per-diluted-share value of each alternative earnings metric (/sh metrics pass through, $M metrics = value*1000/most-recent diluted_shares_k), "; "-joined in the same orde
guidance_period_end1,122On a REPORTED row: the period the firm's guidance TARGETS (the nearest forward QUARTER it guides to), lifted from the LLM-extracted is_guidance rows so the reported row i
guidance_datadate1,122guidance_period_end snapped to nearest calendar month-end (same convention as datadate) — link a firm's guidance to the future ACTUAL via cik+guidance_datadate.
guidance_period_type1,122Q or A — horizon of the primary guidance (Q if any quarterly guidance, else A).
guidance_annual_period_end1,122The ANNUAL (full-year) period the guidance targets, when the firm also gives FY guidance alongside the quarter; null otherwise.
cshfdq1,016Compustat diluted share count, retained ONLY as a crosswalk reference; not used for any shipped EPS since 2026-08-20.
cshprq1,016Compustat basic share count, crosswalk reference only.
shares_m1,016Diluted share count used for per-share conversion, in millions.
imputed_share_source1,122Origin of the share count when the filing printed none: 'gaap_ni_over_gaap_eps' (derived from the filing) or 'not_computable_from_filing'.
raw_nongaap_eps763Non-GAAP EPS as first read, before cleaning rules.
raw_nongaap_ni_m249Non-GAAP net income as first read from the filing, US$ millions, before the eligibility gating that populates nongaap_net_income.
raw_gaap_eps1,108GAAP EPS as first read, before cleaning rules.
raw_gaap_ni_m425GAAP net income as first read, US$ millions, before gating.
ni_dollars_only1,1221 if the release reconciled in DOLLARS only and printed no per-share figure.
guidance_ni_dollars_only1,122Guidance attribute: ni dollars only.
nongaap_eps_incl_imputed772(derived from nongaap_eps)
gaap_eps_incl_imputed1,122(derived from gaap_eps)
adj_ps_imputed1,1221 if per-share adjustment amounts required an imputed share count.
adj_01_rent_lease_ps_incl_imputed1,122(derived from adj_01_rent_lease)
imputed_adj_02_net_interest_ps1(derived from adj_02_net_interest)
adj_02_net_interest_ps_incl_imputed1,122(derived from adj_02_net_interest)
adj_03_rd_ps_incl_imputed1,122(derived from adj_03_rd)
imputed_adj_04_sbc_ps1(derived from adj_04_sbc)
adj_04_sbc_ps_incl_imputed1,122(derived from adj_04_sbc)
imputed_adj_05a_amort_acq_intang_ps1(derived from adj_05a_amort_acq_intang)
adj_05a_amort_acq_intang_ps_incl_imputed1,122(derived from adj_05a_amort_acq_intang)
imputed_adj_05b_da_other_ps1(derived from adj_05b_da_other)
adj_05b_da_other_ps_incl_imputed1,122(derived from adj_05b_da_other)
adj_05c_amort_dev_tech_ps_incl_imputed1,122(derived from adj_05c_amort_dev_tech)
adj_07_pension_ps_incl_imputed1,122(derived from adj_07_pension)
adj_08_severance_ps_incl_imputed1,122(derived from adj_08_severance)
adj_09_realized_gains_ps_incl_imputed1,122(derived from adj_09_realized_gains)
adj_10_inventory_writedown_ps_incl_imputed1,122(derived from adj_10_inventory_writedown)
adj_11_tax_impact_ps_incl_imputed1,122(derived from adj_11_tax_impact)
adj_12_startup_ps_incl_imputed1,122(derived from adj_12_startup)
imputed_adj_13_equity_income_ps1(derived from adj_13_equity_income)
adj_13_equity_income_ps_incl_imputed1,122(derived from adj_13_equity_income)
adj_14_impair_ppe_finite_ps_incl_imputed1,122(derived from adj_14_impair_ppe_finite)
imputed_adj_15_fx_ps1(derived from adj_15_fx)
adj_15_fx_ps_incl_imputed1,122(derived from adj_15_fx)
imputed_adj_16_debt_extinguishment_ps1(derived from adj_16_debt_extinguishment)
adj_16_debt_extinguishment_ps_incl_imputed1,122(derived from adj_16_debt_extinguishment)
imputed_adj_17_litigation_ps1(derived from adj_17_litigation)
adj_17_litigation_ps_incl_imputed1,122(derived from adj_17_litigation)
imputed_adj_18_fair_value_ps1(derived from adj_18_fair_value)
adj_18_fair_value_ps_incl_imputed1,122(derived from adj_18_fair_value)
imputed_adj_19_acquisition_ps2(derived from adj_19_acquisition)
adj_19_acquisition_ps_incl_imputed1,122(derived from adj_19_acquisition)
adj_20_ppe_sale_ps_incl_imputed1,122(derived from adj_20_ppe_sale)
adj_21_tax_accounting_ps_incl_imputed1,122(derived from adj_21_tax_accounting)
imputed_adj_22_restructuring_ps1(derived from adj_22_restructuring)
adj_22_restructuring_ps_incl_imputed1,122(derived from adj_22_restructuring)
adj_23_discontinued_ps_incl_imputed1,122(derived from adj_23_discontinued)
adj_24_integration_ps_incl_imputed1,122(derived from adj_24_integration)
adj_25_covid_ps_incl_imputed1,122(derived from adj_25_covid)
adj_26_unrealized_invst_ps_incl_imputed1,122(derived from adj_26_unrealized_invst)
adj_27_ipr_d_ps_incl_imputed1,122(derived from adj_27_ipr_d)
adj_28_natural_disaster_ps_incl_imputed1,122(derived from adj_28_natural_disaster)
adj_29_supply_chain_ps_incl_imputed1,122(derived from adj_29_supply_chain)
adj_30_ai_transform_ps_incl_imputed1,122(derived from adj_30_ai_transform)
adj_31_exec_transition_ps_incl_imputed1,122(derived from adj_31_exec_transition)
imputed_adj_32_debt_issuance_ps1(derived from adj_32_debt_issuance)
adj_32_debt_issuance_ps_incl_imputed1,122(derived from adj_32_debt_issuance)
adj_33_crypto_ps_incl_imputed1,122(derived from adj_33_crypto)
adj_34_geopolitical_ps_incl_imputed1,122(derived from adj_34_geopolitical)
adj_35_fraud_ps_incl_imputed1,122(derived from adj_35_fraud)
adj_36_dei_ps_incl_imputed1,122(derived from adj_36_dei)
adj_37_climate_esg_ps_incl_imputed1,122(derived from adj_37_climate_esg)
adj_38_ai_equity_gains_ps_incl_imputed1,122(derived from adj_38_ai_equity_gains)
adj_39_tariffs_ps_incl_imputed1,122(derived from adj_39_tariffs)
adj_40_cyber_ps_incl_imputed1,122(derived from adj_40_cyber)
adj_41_commodity_ps_incl_imputed1,122(derived from adj_41_commodity)
adj_14b_goodwill_impairment_ps_incl_imputed1,122(derived from adj_14b_goodwill_impairment)
adj_14c_indef_intangible_ps_incl_imputed1,122(derived from adj_14c_indef_intangible)
adj_10b_inventory_method_ps_incl_imputed1,122(derived from adj_10b_inventory_method)
adj_44_credit_loss_ps_incl_imputed1,122(derived from adj_44_credit_loss)
adj_45_charitable_ps_incl_imputed1,122(derived from adj_45_charitable)
imputed_adj_46_noncontrolling_interest_ps1(derived from adj_46_noncontrolling_interest)
adj_46_noncontrolling_interest_ps_incl_imputed1,122(derived from adj_46_noncontrolling_interest)
imputed_adj_47_preferred_dividends_ps1(derived from adj_47_preferred_dividends)
adj_47_preferred_dividends_ps_incl_imputed1,122(derived from adj_47_preferred_dividends)
adj_48_warrant_liability_ps_incl_imputed1,122(derived from adj_48_warrant_liability)
imputed_adj_49_re_depreciation_ps1(derived from adj_49_re_depreciation)
adj_49_re_depreciation_ps_incl_imputed1,122(derived from adj_49_re_depreciation)
imputed_adj_50_divestiture_gain_ps1(derived from adj_50_divestiture_gain)
adj_50_divestiture_gain_ps_incl_imputed1,122(derived from adj_50_divestiture_gain)
adj_51_re_rent_adj_ps_incl_imputed1,122(derived from adj_51_re_rent_adj)
adj_52_maint_capex_ps_incl_imputed1,122(derived from adj_52_maint_capex)
adj_53_acquired_deferred_rev_ps_incl_imputed1,122(derived from adj_53_acquired_deferred_rev)
adj_54_environmental_ps_incl_imputed1,122(derived from adj_54_environmental)
adj_55_govt_grant_ps_incl_imputed1,122(derived from adj_55_govt_grant)
imputed_adj_06_others_ps2(derived from adj_06_others)
adj_06_others_ps_incl_imputed1,122(derived from adj_06_others)
adj_01_rent_lease_position_ps_incl_imputed1(derived from adj_01_rent_lease_position)
adj_02_net_interest_position_ps_incl_imputed58(derived from adj_02_net_interest_position)
adj_04_sbc_position_ps_incl_imputed263(derived from adj_04_sbc_position)
imputed_adj_05a_amort_acq_intang_position_ps1(derived from adj_05a_amort_acq_intang_position)
adj_05a_amort_acq_intang_position_ps_incl_imputed263(derived from adj_05a_amort_acq_intang_position)
adj_05b_da_other_position_ps_incl_imputed25(derived from adj_05b_da_other_position)
adj_05c_amort_dev_tech_position_ps_incl_imputed21(derived from adj_05c_amort_dev_tech_position)
adj_07_pension_position_ps_incl_imputed13(derived from adj_07_pension_position)
adj_08_severance_position_ps_incl_imputed13(derived from adj_08_severance_position)
adj_09_realized_gains_position_ps_incl_imputed32(derived from adj_09_realized_gains_position)
adj_10_inventory_writedown_position_ps_incl_imputed4(derived from adj_10_inventory_writedown_position)
adj_11_tax_impact_position_ps_incl_imputed266(derived from adj_11_tax_impact_position)
adj_12_startup_position_ps_incl_imputed5(derived from adj_12_startup_position)
adj_13_equity_income_position_ps_incl_imputed10(derived from adj_13_equity_income_position)
adj_14_impair_ppe_finite_position_ps_incl_imputed32(derived from adj_14_impair_ppe_finite_position)
imputed_adj_15_fx_position_ps1(derived from adj_15_fx_position)
adj_15_fx_position_ps_incl_imputed9(derived from adj_15_fx_position)
adj_16_debt_extinguishment_position_ps_incl_imputed38(derived from adj_16_debt_extinguishment_position)
adj_17_litigation_position_ps_incl_imputed56(derived from adj_17_litigation_position)
adj_18_fair_value_position_ps_incl_imputed16(derived from adj_18_fair_value_position)
imputed_adj_19_acquisition_position_ps1(derived from adj_19_acquisition_position)
adj_19_acquisition_position_ps_incl_imputed117(derived from adj_19_acquisition_position)
adj_20_ppe_sale_position_ps_incl_imputed25(derived from adj_20_ppe_sale_position)
adj_21_tax_accounting_position_ps_incl_imputed18(derived from adj_21_tax_accounting_position)
imputed_adj_22_restructuring_position_ps1(derived from adj_22_restructuring_position)
adj_22_restructuring_position_ps_incl_imputed229(derived from adj_22_restructuring_position)
adj_23_discontinued_position_ps_incl_imputed15(derived from adj_23_discontinued_position)
adj_24_integration_position_ps_incl_imputed28(derived from adj_24_integration_position)
adj_26_unrealized_invst_position_ps_incl_imputed7(derived from adj_26_unrealized_invst_position)
adj_27_ipr_d_position_ps_incl_imputed8(derived from adj_27_ipr_d_position)
adj_28_natural_disaster_position_ps_incl_imputed3(derived from adj_28_natural_disaster_position)
adj_30_ai_transform_position_ps_incl_imputed1(derived from adj_30_ai_transform_position)
adj_31_exec_transition_position_ps_incl_imputed4(derived from adj_31_exec_transition_position)
adj_32_debt_issuance_position_ps_incl_imputed13(derived from adj_32_debt_issuance_position)
adj_35_fraud_position_ps_incl_imputed3(derived from adj_35_fraud_position)
adj_39_tariffs_position_ps_incl_imputed1(derived from adj_39_tariffs_position)
adj_40_cyber_position_ps_incl_imputed1(derived from adj_40_cyber_position)
adj_41_commodity_position_ps_incl_imputed2(derived from adj_41_commodity_position)
adj_14b_goodwill_impairment_position_ps_incl_imputed21(derived from adj_14b_goodwill_impairment_position)
adj_14c_indef_intangible_position_ps_incl_imputed3(derived from adj_14c_indef_intangible_position)
adj_10b_inventory_method_position_ps_incl_imputed4(derived from adj_10b_inventory_method_position)
adj_44_credit_loss_position_ps_incl_imputed5(derived from adj_44_credit_loss_position)
adj_46_noncontrolling_interest_position_ps_incl_imputed14(derived from adj_46_noncontrolling_interest_position)
adj_47_preferred_dividends_position_ps_incl_imputed8(derived from adj_47_preferred_dividends_position)
adj_48_warrant_liability_position_ps_incl_imputed8(derived from adj_48_warrant_liability_position)
adj_49_re_depreciation_position_ps_incl_imputed17(derived from adj_49_re_depreciation_position)
adj_50_divestiture_gain_position_ps_incl_imputed33(derived from adj_50_divestiture_gain_position)
adj_51_re_rent_adj_position_ps_incl_imputed1(derived from adj_51_re_rent_adj_position)
adj_52_maint_capex_position_ps_incl_imputed2(derived from adj_52_maint_capex_position)
adj_53_acquired_deferred_rev_position_ps_incl_imputed22(derived from adj_53_acquired_deferred_rev_position)
adj_54_environmental_position_ps_incl_imputed5(derived from adj_54_environmental_position)
adj_55_govt_grant_position_ps_incl_imputed4(derived from adj_55_govt_grant_position)
adj_01_rent_lease_net_ps_incl_imputed1,122(derived from adj_01_rent_lease_net)
imputed_adj_02_net_interest_net_ps1(derived from adj_02_net_interest_net)
adj_02_net_interest_net_ps_incl_imputed1,122(derived from adj_02_net_interest_net)
adj_03_rd_net_ps_incl_imputed1,122(derived from adj_03_rd_net)
imputed_adj_04_sbc_net_ps1(derived from adj_04_sbc_net)
adj_04_sbc_net_ps_incl_imputed1,122(derived from adj_04_sbc_net)
imputed_adj_05a_amort_acq_intang_net_ps1(derived from adj_05a_amort_acq_intang_net)
adj_05a_amort_acq_intang_net_ps_incl_imputed1,122(derived from adj_05a_amort_acq_intang_net)
imputed_adj_05b_da_other_net_ps1(derived from adj_05b_da_other_net)
adj_05b_da_other_net_ps_incl_imputed1,122(derived from adj_05b_da_other_net)
adj_05c_amort_dev_tech_net_ps_incl_imputed1,122(derived from adj_05c_amort_dev_tech_net)
adj_07_pension_net_ps_incl_imputed1,122(derived from adj_07_pension_net)
adj_08_severance_net_ps_incl_imputed1,122(derived from adj_08_severance_net)
adj_09_realized_gains_net_ps_incl_imputed1,122(derived from adj_09_realized_gains_net)
adj_10_inventory_writedown_net_ps_incl_imputed1,122(derived from adj_10_inventory_writedown_net)
adj_12_startup_net_ps_incl_imputed1,122(derived from adj_12_startup_net)
imputed_adj_13_equity_income_net_ps1(derived from adj_13_equity_income_net)
adj_13_equity_income_net_ps_incl_imputed1,122(derived from adj_13_equity_income_net)
adj_14_impair_ppe_finite_net_ps_incl_imputed1,122(derived from adj_14_impair_ppe_finite_net)
imputed_adj_15_fx_net_ps1(derived from adj_15_fx_net)
adj_15_fx_net_ps_incl_imputed1,122(derived from adj_15_fx_net)
imputed_adj_16_debt_extinguishment_net_ps1(derived from adj_16_debt_extinguishment_net)
adj_16_debt_extinguishment_net_ps_incl_imputed1,122(derived from adj_16_debt_extinguishment_net)
imputed_adj_17_litigation_net_ps1(derived from adj_17_litigation_net)
adj_17_litigation_net_ps_incl_imputed1,122(derived from adj_17_litigation_net)
imputed_adj_18_fair_value_net_ps1(derived from adj_18_fair_value_net)
adj_18_fair_value_net_ps_incl_imputed1,122(derived from adj_18_fair_value_net)
imputed_adj_19_acquisition_net_ps2(derived from adj_19_acquisition_net)
adj_19_acquisition_net_ps_incl_imputed1,122(derived from adj_19_acquisition_net)
adj_20_ppe_sale_net_ps_incl_imputed1,122(derived from adj_20_ppe_sale_net)
adj_21_tax_accounting_net_ps_incl_imputed1,122(derived from adj_21_tax_accounting_net)
imputed_adj_22_restructuring_net_ps1(derived from adj_22_restructuring_net)
adj_22_restructuring_net_ps_incl_imputed1,122(derived from adj_22_restructuring_net)
adj_23_discontinued_net_ps_incl_imputed1,122(derived from adj_23_discontinued_net)
adj_24_integration_net_ps_incl_imputed1,122(derived from adj_24_integration_net)
adj_25_covid_net_ps_incl_imputed1,122(derived from adj_25_covid_net)
adj_26_unrealized_invst_net_ps_incl_imputed1,122(derived from adj_26_unrealized_invst_net)
adj_27_ipr_d_net_ps_incl_imputed1,122(derived from adj_27_ipr_d_net)
adj_28_natural_disaster_net_ps_incl_imputed1,122(derived from adj_28_natural_disaster_net)
adj_29_supply_chain_net_ps_incl_imputed1,122(derived from adj_29_supply_chain_net)
adj_30_ai_transform_net_ps_incl_imputed1,122(derived from adj_30_ai_transform_net)
adj_31_exec_transition_net_ps_incl_imputed1,122(derived from adj_31_exec_transition_net)
imputed_adj_32_debt_issuance_net_ps1(derived from adj_32_debt_issuance_net)
adj_32_debt_issuance_net_ps_incl_imputed1,122(derived from adj_32_debt_issuance_net)
adj_33_crypto_net_ps_incl_imputed1,122(derived from adj_33_crypto_net)
adj_34_geopolitical_net_ps_incl_imputed1,122(derived from adj_34_geopolitical_net)
adj_35_fraud_net_ps_incl_imputed1,122(derived from adj_35_fraud_net)
adj_36_dei_net_ps_incl_imputed1,122(derived from adj_36_dei_net)
adj_37_climate_esg_net_ps_incl_imputed1,122(derived from adj_37_climate_esg_net)
adj_38_ai_equity_gains_net_ps_incl_imputed1,122(derived from adj_38_ai_equity_gains_net)
adj_39_tariffs_net_ps_incl_imputed1,122(derived from adj_39_tariffs_net)
adj_40_cyber_net_ps_incl_imputed1,122(derived from adj_40_cyber_net)
adj_41_commodity_net_ps_incl_imputed1,122(derived from adj_41_commodity_net)
adj_14b_goodwill_impairment_net_ps_incl_imputed1,122(derived from adj_14b_goodwill_impairment_net)
adj_14c_indef_intangible_net_ps_incl_imputed1,122(derived from adj_14c_indef_intangible_net)
adj_10b_inventory_method_net_ps_incl_imputed1,122(derived from adj_10b_inventory_method_net)
adj_44_credit_loss_net_ps_incl_imputed1,122(derived from adj_44_credit_loss_net)
adj_45_charitable_net_ps_incl_imputed1,122(derived from adj_45_charitable_net)
imputed_adj_46_noncontrolling_interest_net_ps1(derived from adj_46_noncontrolling_interest_net)
adj_46_noncontrolling_interest_net_ps_incl_imputed1,122(derived from adj_46_noncontrolling_interest_net)
imputed_adj_47_preferred_dividends_net_ps1(derived from adj_47_preferred_dividends_net)
adj_47_preferred_dividends_net_ps_incl_imputed1,122(derived from adj_47_preferred_dividends_net)
adj_48_warrant_liability_net_ps_incl_imputed1,122(derived from adj_48_warrant_liability_net)
imputed_adj_49_re_depreciation_net_ps1(derived from adj_49_re_depreciation_net)
adj_49_re_depreciation_net_ps_incl_imputed1,122(derived from adj_49_re_depreciation_net)
imputed_adj_50_divestiture_gain_net_ps1(derived from adj_50_divestiture_gain_net)
adj_50_divestiture_gain_net_ps_incl_imputed1,122(derived from adj_50_divestiture_gain_net)
adj_51_re_rent_adj_net_ps_incl_imputed1,122(derived from adj_51_re_rent_adj_net)
adj_52_maint_capex_net_ps_incl_imputed1,122(derived from adj_52_maint_capex_net)
adj_53_acquired_deferred_rev_net_ps_incl_imputed1,122(derived from adj_53_acquired_deferred_rev_net)
adj_54_environmental_net_ps_incl_imputed1,122(derived from adj_54_environmental_net)
adj_55_govt_grant_net_ps_incl_imputed1,122(derived from adj_55_govt_grant_net)
adj_06_genuine_m265The genuinely-labelled part of the 'other' bucket, US$ millions.
adj_06_plug_m2Balancing plug in US$ millions (see adj_06_plug).
implied_shares_suspect1,1221 if shares implied by GAAP NI / GAAP EPS diverge from the reported count.
fw_label1,122Verbatim label the filing used for fw.
press_pre_period1,122Flag indicating whether the press release includes a pre-period non-GAAP financial measure. 1=yes, 0=no.
nongaap_explicit1,122Flag indicating whether a company explicitly disclosed non-GAAP financial measures in its earnings press release. Unit: 1/0 flag.
sec_filing_date_source1,122Where the EDGAR filing date came from (metadata vs submissions API).
press_release_date_typo1,1221=the press_release_date is a TYPO (REPORTED periods only; guidance rows excluded): it precedes period_end (impossible — a release cannot predate the quarter it reports)
press_release_date_corrected1,097press_release_date with typos repaired: = sec_filing_date when press_release_date_typo=1, else = press_release_date.
period_end_suspect1,1221=on a REPORTED period (is_guidance=0), BOTH press_release_date AND sec_filing_date precede period_end — i.e. the period_end is the likely error. Guidance rows are EXCLUD
preliminary_estimate1,122Flag indicating whether the non-GAAP figure is a preliminary estimate, with 1 for yes and 0 for no.
preliminary_estimate_source1,122Source of preliminary non-GAAP estimate, indicating rule or flag used to derive the value.
item_2_021,122Flag indicating whether the press release contains forward-looking guidance under SEC item 2.02. Unit: 1/0 flag.
item_2_02_source1,122Free text identifying the source of the guidance item, e.g., run1_flags or metadata_items.
has_income_stmt1,1221=filing includes an income statement (statement of operations/income)
has_income_stmt_source1,1221 if the filing contains income stmt source.
ann_gni332Annual GAAP net income used by the decumulation guard.
q13_ni_sum963Sum of non-GAAP net income for quarter 13, in US$ millions.
q13_nq963Number of non-GAAP adjustments in quarter 1, count.
annual_leak_raw1,122Raw (pre-correction) annual-leak measurement.
period_type_corrected1,122(derived from period_type)
guidance_pt_verdict1,122Guidance attribute: pt verdict.
annual_leak1,122Decumulation guard: annual-basis value detected leaking into a quarterly row.
dedup_keep1,1221 if this row survives Rule D dedup (non-preliminary, has an income statement, earliest date).
nongaap_eps_x1000_suspect1,122(derived from nongaap_eps)
nongaap_eps_corrected772(derived from nongaap_eps)
gaap_eps_x1000_suspect1,122(derived from gaap_eps)
gaap_eps_corrected1,122(derived from gaap_eps)
in_item202_sample1,122Flag indicating whether the company reported a non-GAAP item in its earnings release; 1=yes, 0=no.
compustat_match1,1221 if the firm-quarter matched Compustat on cik+datadate (crosswalk only; no Compustat values are stored).
compustat_nonmatch_reason1,122Why a Compustat match failed.
crsp_match1,1221 if the firm-quarter matched CRSP (crosswalk only).
ibes_match1,122Flag indicating whether the company's guidance matches IBES consensus estimates; 1=yes, 0=no.
nongaap_justification_text1,122Verbatim justification sentence/phrase (null if none)
measure_ng_earnings_present1,1221=filing presents a non-GAAP earnings whose label literally says "non-GAAP" for the most-recent period; else 0.
measure_ng_earnings_label1,122Verbatim filing label of the ng_earnings measure (so researchers see exactly what was taken). Blank if absent.
measure_ng_earnings_basis1,122Disclosed basis of ng_earnings: per_share_only / total_only / both / none (what the FILING printed, recorded before any derivation).
measure_ng_earnings_per_share218ng_earnings per share — reported if printed, else DERIVED = total_m*1000/diluted_shares_k (see _per_share_reported).
measure_ng_earnings_total_m213ng_earnings total in $M — reported if printed, else DERIVED = per_share*diluted_shares_k/1000 (see _total_reported).
measure_ng_earnings_per_share_reported1,1221=ng_earnings_per_share was printed in the filing; 0=derived by us from diluted shares.
measure_ng_earnings_total_reported1,1221=ng_earnings_total_m was printed in the filing; 0=derived by us from diluted shares.
measure_adj_earnings_present1,1221=filing presents a adjusted/core/underlying/pro-forma earnings NOT labeled "non-GAAP" or EBITDA for the most-recent period; else 0.
measure_adj_earnings_label1,122Verbatim filing label of the adj_earnings measure (so researchers see exactly what was taken). Blank if absent.
measure_adj_earnings_basis1,122Disclosed basis of adj_earnings: per_share_only / total_only / both / none (what the FILING printed, recorded before any derivation).
measure_adj_earnings_per_share132adj_earnings per share — reported if printed, else DERIVED = total_m*1000/diluted_shares_k (see _per_share_reported).
measure_adj_earnings_total_m155adj_earnings total in $M — reported if printed, else DERIVED = per_share*diluted_shares_k/1000 (see _total_reported).
measure_adj_earnings_per_share_reported1,1221=adj_earnings_per_share was printed in the filing; 0=derived by us from diluted shares.
measure_adj_earnings_total_reported1,1221=adj_earnings_total_m was printed in the filing; 0=derived by us from diluted shares.
measure_adj_ebitda_present1,1221=filing presents a EBITDA-family measure (EBITDA, Adjusted EBITDA, EBIT, OIBDA, EBITDAX, EBITDAR) for the most-recent period; else 0.
measure_adj_ebitda_label1,122Verbatim filing label of the adj_ebitda measure (so researchers see exactly what was taken). Blank if absent.
measure_adj_ebitda_basis1,122Disclosed basis of adj_ebitda: per_share_only / total_only / both / none (what the FILING printed, recorded before any derivation).
measure_adj_ebitda_per_share84adj_ebitda per share — reported if printed, else DERIVED = total_m*1000/diluted_shares_k (see _per_share_reported).
measure_adj_ebitda_total_m119adj_ebitda total in $M — reported if printed, else DERIVED = per_share*diluted_shares_k/1000 (see _total_reported).
measure_adj_ebitda_per_share_reported1,1221=adj_ebitda_per_share was printed in the filing; 0=derived by us from diluted shares.
measure_adj_ebitda_total_reported1,1221=adj_ebitda_total_m was printed in the filing; 0=derived by us from diluted shares.
measure_fcf_present1,1221=filing presents a free cash flow / cash-flow-per-share / distributable cash (a CASH-FLOW measure, not earnings) for the most-recent period; else 0.
measure_fcf_label1,122Verbatim filing label of the fcf measure (so researchers see exactly what was taken). Blank if absent.
measure_fcf_basis1,122Disclosed basis of fcf: per_share_only / total_only / both / none (what the FILING printed, recorded before any derivation).
measure_fcf_per_share43fcf per share — reported if printed, else DERIVED = total_m*1000/diluted_shares_k (see _per_share_reported).
measure_fcf_total_m61fcf total in $M — reported if printed, else DERIVED = per_share*diluted_shares_k/1000 (see _total_reported).
measure_fcf_per_share_reported1,1221=fcf_per_share was printed in the filing; 0=derived by us from diluted shares.
measure_fcf_total_reported1,1221=fcf_total_m was printed in the filing; 0=derived by us from diluted shares.
measure_revenue_present1,1221=filing presents a non-GAAP / adjusted / organic / constant-currency revenue (not earnings) for the most-recent period; else 0.
measure_revenue_label1,122Verbatim filing label of the revenue measure (so researchers see exactly what was taken). Blank if absent.
measure_revenue_basis1,122Disclosed basis of revenue: per_share_only / total_only / both / none (what the FILING printed, recorded before any derivation).
measure_revenue_per_share25revenue per share — reported if printed, else DERIVED = total_m*1000/diluted_shares_k (see _per_share_reported).
measure_revenue_total_m33revenue total in $M — reported if printed, else DERIVED = per_share*diluted_shares_k/1000 (see _total_reported).
measure_revenue_per_share_reported1,1221=revenue_per_share was printed in the filing; 0=derived by us from diluted shares.
measure_revenue_total_reported1,1221=revenue_total_m was printed in the filing; 0=derived by us from diluted shares.
measure_families_present_count1,122Count of the five non-GAAP measure families present in the filing (0-5).
measure_alt_earnings_present1,1221=at least one ALTERNATIVE-EARNINGS family present (ng_earnings/adj_earnings/adj_ebitda).
measure_nonearnings_present1,1221=at least one non-earnings non-GAAP MEASURE present (fcf/revenue).
eps_in_filing7721 if the stated NON-GAAP EPS appears verbatim in the filing text (anti-fabrication).
ni_in_filing2521 if the stated non-GAAP net income appears verbatim in the filing text.
term_nongaap_in_filing7721 if the phrase 'non-GAAP' appears anywhere in the filing.
html_nongaap_headline1,1221=a non-GAAP figure appears in the HTML headline/title
html_gaap_headline1,1221=a GAAP figure appears in the HTML headline/title
html_nongaap_bold1,1221=a non-GAAP figure is bolded anywhere in the release
html_gaap_bold1,1221=a GAAP figure is bolded anywhere in the release
html_nongaap_bold_first1,1221=the first bolded earnings figure is non-GAAP (vs GAAP)
html_image_based1,1221=release is image/PDF-based (little extractable HTML text)
html_bold_words1,122Count of bolded words in the release HTML
html_bold_mechanisms930Which HTML mechanisms produced the bold detection (tag, style, class).
html_total_words1,122Total word count of the release HTML
html_bold_ratio1,122Bolded words / total words (bold emphasis intensity)
html_bold_number_types85Types of figures that are bolded ("; "-joined)
html_bold_nongaap_eps1,1221=non-GAAP EPS is bolded
html_bold_gaap_eps1,1221=GAAP EPS is bolded
html_bold_ebitda1,1221=an EBITDA figure is bolded
html_bold_revenue1,1221=a revenue figure is bolded
html_bold_cashflow1,1221=a cash-flow figure is bolded
html_bulletin_number_types46Types of figures appearing in highlight bullets ("; "-joined)
html_bulletin_nongaap_eps1,1221=non-GAAP EPS appears in a highlight bullet
html_bulletin_gaap_eps1,1221=GAAP EPS appears in a highlight bullet
html_bulletin_ebitda1,1221=an EBITDA figure appears in a highlight bullet
html_bulletin_revenue1,1221=a revenue figure appears in a highlight bullet
html_bulletin_cashflow1,1221=a cash-flow figure appears in a highlight bullet
text_words_to_gaap_eps520Word offset from start of release text to the first GAAP-EPS mention
text_words_to_nongaap_eps592Word offset from start of release text to the first non-GAAP-EPS mention
text_words_nongaap_minus_gaap430text_words_to_nongaap_eps minus text_words_to_gaap_eps (negative=non-GAAP first)
filing_word_count1,122Total word count of the filing text
recon_table_word_position570Word position (offset) of the reconciliation table within the filing
recon_table_decile570Decile (1-10) of the reconciliation table position within the filing
call_decile827Decile (1-10) of the earnings-call announcement position within the filing
number_count1,122Count of numeric tokens in the filing text
number_word_ratio1,122Numeric tokens / total words (quantitative density)
word_count_increase1,122Occurrences of "increase" in the filing text
word_count_decrease1,122Occurrences of "decrease" in the filing text
word_count_decline1,122Occurrences of "decline" in the filing text
word_count_grow1,122Occurrences of "grow/growth" in the filing text
word_count_expect1,122Occurrences of "expect" in the filing text
pos_neg_word_ratio416Positive-tone vs negative-tone word ratio in the filing text
eps_mentions_gaap1,122Count of GAAP-EPS mentions in the filing text
eps_mentions_nongaap1,122Count of non-GAAP-EPS mentions in the filing text
eps_mention_ratio597Non-GAAP-EPS mentions / GAAP-EPS mentions
nongaap_term_count1,122Count of the term "non-GAAP" in the full filing text
mentions_nongaap_term1,1221=the term "non-GAAP" appears at least once
gaap_term_count1,122Count of standalone "GAAP" (excludes the GAAP inside "non-GAAP")
prose_backfilled1,1221 if the text-position fields were recomputed by the prose backfill pass.
guidance_source42,243Where the guidance row came from: 'period_row' (a dedicated guidance row), 'doc_columns' (an explicit disclosed target date), or 'items_derived' (an item from SAT_GUIDANC
period_end_basis42,243How period_end was established: 'disclosed_period_row' (printed in the filing) or 'derived_from_horizon' (resolved from a categorical horizon plus the firm's own fiscal c
guidance_action38,044Guidance attribute: action.
press_release_date38,836Date of the earnings release CONTAINING the forecast (when it was issued), not the forecast period. See horizon_days for the distance between them.
sec_filing_date39,114SEC/EDGAR filing date (YYYY-MM-DD) — the EDGAR acceptance date of the 8-K (when it was furnished to the SEC), joined from the 8-K filing index (struct `secadate`) by acce
announcement_date39,300Date the forecast was ISSUED (the earnings release date, falling back to the SEC filing date). Attached from the flagship on exhibit_url, because guidance rows carry no d
announcement_date_src39,300Which date announcement_date came from: 'press_release', 'sec_filing', or 'none'. String.
horizon_days39,283period_end minus announcement_date, i.e. how far ahead the forecast reaches. Median 62 days for quarter forecasts, 237 for annual. Integer days; negative means the guided
forecast_period_type42,243Whether the forecast period is a fiscal QUARTER or a fiscal YEAR ('quarter'/'annual'). Required, not cosmetic: for a December-FYE firm the Q4 end and the FY end are the S
has_subpenny_adjustment1,1351 if the filing contains subpenny adjustment.
n_subpenny_adjustments1,135Count of subpenny adjustments.
subpenny_adjustments_m1,135Subpenny adjustments, US$ millions.
subpenny_labels1,135Semicolon-separated list of non-GAAP adjustment labels, each with a numeric code and position type, from earnings press releases.
recon_quality1,135Reconciliation-table attribute: quality.
plug_share12Non-GAAP earnings per diluted share, expressed in US$ per share, as reported in SEC press releases.
recon_quality_m1,135Reconciliation-table attribute: quality m.
plug_share_m2Plug share, US$ millions.
satellite 

SAT_FWD_RECON

grain exhibit_url x seq · summarized into FWD_RECON (fwd_recon_summary)
168,591 rows · 26 columns

Every line of a forward (guidance) reconciliation, 44,570 releases: label, category code, point value ($M or per share), or a printed range (low / high, printed WITHOUT a unit: range_unit_inferred reads the unit off the same release's point items; module FWD_RECON's fr_range_unit reads it off the guided measure's name — the two agree on 82% where both decide). Thin but genuine: horizon / period (the guided period label), unit (explicit on 0.1%), low_ps / high_ps (explicit per-share ranges).

columnnon-missingdefinition
exhibit_url JOIN KEY168,591SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik168,591SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate159,641Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end42Headline fiscal period end as printed in the release — convenience key
fiscal_year11Fiscal year of the headline period — convenience key
fiscal_quarter152,504Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q168,5911 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a168,5911 = this release is the annual spine's release for its firm-year
datadate_a33,818PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source168,591Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
seq168,591Row order within the release (0 = first item as it appears)
label168,591A free-text label describing a specific adjustment item in the statement of adjusted earnings.
category168,591Category code identifying the type of non-GAAP adjustment applied to a financial statement line item.
value_m71,833Value, US$ millions.
value_ps56,141Value, per diluted share (US$).
point_or_range166,917Indicates whether the adjusted item is reported as a single point estimate or a range, free text.
low76,135Low end of adjusted item range, in US$ millions, from SEC earnings press releases.
high75,819The highest value in a range of adjusted items, expressed in US$ millions.
horizon4,869Reporting period horizon label (quarter or fiscal year) for forward-looking financial data, as free text. Guided period label as printed (e.g. 'FY 2018', 'Q2 2021'); filled on 2.9% of lines
low_ps150Low, per diluted share (US$). Explicit per-share low bound where the extractor separated per-share ranges (0.1%)
high_ps149High, per diluted share (US$). Explicit per-share high bound (0.1%)
point349Point estimate of forward-looking guidance, in US$ millions, from SEC earnings press releases. Point estimate written to a separate field on 0.2% of lines (normally value_m / value_ps)
period3,236Reporting period label for financial data, e.g., quarter or full year, as free text. Alternative guided period label the extractor used on 1.9% of lines (A / Q / 'FY 2019')
unit190Unit of measurement for values in the SAT_FWD_RECON module, e.g., $/share, $M, %, percentage points. Explicit unit printed with the line ('%', '$M', 'percentage_points') on 0.1% of lines
period_type40Q=quarterly A=annual
range_unit_inferred49,179 Unit of low / high on range rows, inferred from the SAME release's point items: $/share (only per-share points), $M (only $M points), mixed, unknown (no point item); derived at write time, values untouched
satellite 

SAT_ATTRIBUTIONS

grain exhibit_url x seq · summarized into NARRATIVE (attributions_summary)
1,873,076 rows · 20 columns

Every causal attribution in a release: the outcome named (free text, plus a coded outcome_family), its direction, the coded cause (execution, customer_demand, one_time_item, macro, pricing, acquisition, mix, investment, fx, employees, restructuring, productivity, weather, regulation, seasonality, supply_chain, competition, other), the verbatim cause, internal/external attribution, controllability (high / medium / low) and the speaker (narrative / ceo / cfo / other_mgmt / chair_board). Vocabulary tails normalised at write time (2026-09-06).

columnnon-missingdefinition
exhibit_url JOIN KEY1,873,076SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik1,873,076SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate1,790,608Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end1,714,580Headline fiscal period end as printed in the release — convenience key
fiscal_year1,714,854Fiscal year of the headline period — convenience key
fiscal_quarter1,654,178Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q1,873,0761 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a1,873,0761 = this release is the annual spine's release for its firm-year
datadate_a420,002PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source1,873,076Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
seq1,873,076Row order within the release (0 = first item as it appears)
outcome1,873,074The outcome variable names the financial metric being reported in the press release, such as revenue or earnings.
outcome_direction1,873,071Direction of company's financial outcome relative to prior period, as stated in earnings press release; values: up, down, flat, mixed, neutral.
cause1,873,073Free-text or coded reason for a financial statement line-item change, as disclosed in SEC earnings press releases.
cause_verbatim1,873,074Free text verbatim explanation from management for a change in financial results, as quoted in the press release.
attribution1,873,014Source of revenue or expense attribution, categorized as external, internal, both, mixed, other, or narrative.
controllability1,873,072A categorical rating of management's perceived control over financial outcomes, with values like low, high, medium, mixed, or moderate.
speaker1,872,986Role of the speaker in the earnings call, categorized as narrative, CEO, CFO, other management, board chair, or other executive.
period_type10Q=quarterly A=annual
outcome_family1,873,074 Derived at write time from the free-text outcome by regex: eps / net_interest / ebitda / cash_flow / margin / operating_income / net_income / costs / tax / credit / volume_demand / revenue / other (first match wins, see satellite_hygiene.OUTCOME_FAMILY)
satellite 

SAT_SUPERLATIVES

grain exhibit_url x seq · summarized into NARRATIVE (superlatives_summary)
985,085 rows · 15 columns

Every superlative / record claim in a release (985k claims, 254k releases): the term as printed (22k spellings) plus term_std (record / leadership / excellence / strength / magnitude / achievement / other, derived at write time), the metric it attaches to (free text) and the verbatim phrase. Feeds NARRATIVE (sup_n, sup_terms, sup_metrics).

columnnon-missingdefinition
exhibit_url JOIN KEY985,085SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik985,085SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate880,635Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end844,402Headline fiscal period end as printed in the release — convenience key
fiscal_year844,562Fiscal year of the headline period — convenience key
fiscal_quarter812,064Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q985,0851 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a985,0851 = this release is the annual spine's release for its firm-year
datadate_a223,180PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source985,085Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
seq985,085Row order within the release (0 = first item as it appears)
term985,085Free text describing a superlative term used in the press release, such as 'record' or 'strongest'. Superlative term as printed ('strong', 'record', 'leading' ...)
metric985,056A free-text label identifying the specific financial metric reported in the guidance item. What the claim attaches to, free text ('results', 'revenue', 'balance sheet')
quote985,083Free text quote from SEC earnings press release providing forward-looking guidance on revenues or earnings per share. Verbatim phrase carrying the claim
term_std985,085 Closed vocabulary from a spelling map: record (record, highest, best, all-time) / leadership (leading, largest, premier, best-in-class, first) / excellence (excellent, outstanding, exceptional, unprecedented) / strength (strong, solid, robust) / magnitude (significant, substantial) / achievement (milestone, award) / other
satellite 

SAT_ADJ_REASONING

grain exhibit_url x seq · summarized into NG_RATIONALE (reasoning_summary)
384,006 rows · 15 columns

One row per excluded item with the reason management gives: verbatim reason and a coded reason_type (not_indicative_of_core, non_recurring, non_cash, unusual_or_infrequent, comparability, management_uses, acquisition_related, other, varies_with_external_factors, investor_usefulness; several joined by ';'). Nested wrapper cells (4,205 releases, 13,433 items) are exploded into rows since 2026-09-06.

columnnon-missingdefinition
exhibit_url JOIN KEY384,006SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik384,006SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate376,171Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end356,889Headline fiscal period end as printed in the release — convenience key
fiscal_year356,903Fiscal year of the headline period — convenience key
fiscal_quarter350,455Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q384,0061 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a384,0061 = this release is the annual spine's release for its firm-year
datadate_a93,177PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source384,006Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
seq384,006Row order within the release (0 = first item as it appears)
item384,004Free text describing adjustments or charges in earnings press releases, used for non-GAAP reconciliation.
category384,004Category code identifying the type of non-GAAP adjustment applied to a financial statement line item.
reason384,004Free text explaining the rationale for a pro forma adjustment to financial statement line items.
reason_type384,004Categorizes the reason management provides for adjusting reported financial results, such as non-cash or non-recurring items.
satellite 

SAT_ADJ_TRANSPARENCY

grain exhibit_url x category · summarized into NG_RATIONALE (transparency_summary)
962,711 rows · 35 columns

One row per release x period type x adjustment category: is the category explained (has_rationale), the rationale text and its specificity grade, the category's recurrence history at the firm, and the contradiction flags. Report the WITHIN-FILING unexplained rate (35.4% of categories in filings that explain at least one) — never the pooled rate. unexplained_adjustment (= 1 - has_rationale), rationale_text_present (= has_rationale) and rationale_is_boilerplate (= specificity == boilerplate) were removed as exact derivatives on 2026-09-06.

columnnon-missingdefinition
exhibit_url JOIN KEY962,711SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik962,711SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate914,826Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end915,648Headline fiscal period end as printed in the release — convenience key
fiscal_year915,678Fiscal year of the headline period — convenience key
fiscal_quarter883,488Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q962,7111 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a962,7111 = this release is the annual spine's release for its firm-year
datadate_a246,931PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source962,711Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
period_type914,826Q=quarterly A=annual
category962,711Category code identifying the type of non-GAAP adjustment applied to a financial statement line item.
n_items962,711Count of items. Number of reconciliation lines in this category
items962,709A list of items and categories describing adjustments to reconcile GAAP net income to non-GAAP measures. Verbatim labels of the lines in this category, ';'-joined
has_rationale962,7111 if the filing contains rationale. 1 = the filing gives a reason for excluding this category (any rationale text)
reason_type_set292,166 Coded reason types found for the category, ';'-joined (vocabulary as in SAT_ADJ_REASONING.reason_type)
n_rationales292,166Count of rationales. Number of distinct rationale sentences for the category
rationale_text292,166 Verbatim rationale text (first / longest) for the category
rationale_text_is_common962,711 1 = the rationale text is a common boilerplate sentence (appears in >= 5 other filings, see max_text_freq)
max_text_freq292,166 Number of filings in the corpus that use the identical rationale sentence
claims_nonrecurring962,711 1 = the coded reason set claims the item is non-recurring / unusual / infrequent
text_claims_nonrecurring962,711 1 = the verbatim rationale text itself uses non-recurring wording
nonrecurring_claim_contradicted962,711 1 = claims_nonrecurring and the same category was excluded in the firm's immediately prior filing
prior_filings914,826 Number of the firm's earlier filings in the corpus
prior_n_with_category914,826 How many of those earlier filings excluded this category
prior_period_same_category962,711 1 = the immediately prior filing excluded this category
category_recurrence_rate886,642 prior_n_with_category / prior_filings: share of the firm's earlier filings that excluded this category
recurring_item_described_as_nonrecurring962,711 1 = claims_nonrecurring and category_recurrence_rate >= 0.5 (the category recurred in at least half of the firm's prior filings)
prior_reason_type_set253,621 reason_type_set the firm gave for the same category in its prior filing
rationale_changed_from_prior_period962,711 1 = the coded reason set differs from the prior filing's for the same category
specificity286,388 LLM specificity grade of the rationale: boilerplate / partially_specific / firm_and_period_specific (22.3% firm-and-period specific)
consistent_with_adjustment286,388 LLM verdict: does the stated reason fit the item excluded (true / false / unclear)
explains_why_gaap_insufficient286,388 LLM verdict: does the rationale say why GAAP is insufficient (true on 7.3%)
misleading_risk286,388 LLM grade of misleading risk of the rationale: high / low / none
filing_explains_any962,711 1 = the filing explains at least one of its categories (denominator of the within-filing unexplained rate)
satellite 

SAT_FCF_TRANSPARENCY

grain exhibit_url x measure · summarized into FREE_CF (fcf_row)
53,331 rows · 29 columns

One row per free-cash-flow measure per release (37,792 releases): start line and value, adjustment lines and their sum, stated total, whether the identity closes (98.8%), and twelve transparency judgements (true / false / unclear / not_applicable). Module FREE_CF carries the first measure under readable fcf_tr_* names; the mapping is in each column note.

columnnon-missingdefinition
exhibit_url JOIN KEY53,331SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik53,331SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate52,689Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end50,244Headline fiscal period end as printed in the release — convenience key
fiscal_year50,247Fiscal year of the headline period — convenience key
fiscal_quarter49,989Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q53,3311 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a53,3311 = this release is the annual spine's release for its firm-year
datadate_a18,409PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source53,331Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
measure_label53,331'label' measure attribute. Verbatim label of the free-cash-flow measure (first FCF measure of the release) (module FREE_CF name: fcf_tr_measure_label)
recon_start_label52,855Reconciliation-table attribute: start label. Verbatim label of the line the FCF reconciliation starts from (module FREE_CF name: fcf_tr_start_label)
recon_start_m51,858Reconciliation-table attribute: start m. Value of the starting line, $M (module FREE_CF name: fcf_tr_start_m)
adjustments_sum_m53,331Adjustments sum, US$ millions. Sum of the adjustment lines, $M (module FREE_CF name: fcf_tr_adjustments_sum_m)
measure_total_m52,318'total m' measure attribute. Stated free cash flow of that measure, $M (module FREE_CF name: fcf_tr_measure_total_m)
n_adjustment_lines53,331Count of adjustment lines. Number of adjustment lines in the FCF reconciliation (module FREE_CF name: fcf_tr_n_adjustment_lines)
starts_from_operating_cash_flow53,331 1 = the reconciliation starts from operating cash flow (module FREE_CF name: fcf_tr_starts_from_cfo)
starts_from_earnings_measure53,331 1 = the reconciliation starts from an earnings measure (EBITDA, net income) instead of cash flow (module FREE_CF name: fcf_tr_starts_from_earnings)
fcf_label_consistent_with_calculation46,337 1 = the label (free cash flow, adjusted FCF ...) is consistent with the calculation shown (module FREE_CF name: fcf_tr_label_consistent)
deducts_capex53,331 1 = the free-cash-flow calculation deducts capital expenditures (module FREE_CF name: fcf_tr_deducts_capex)
deducts_more_than_capex53,331 1 = the calculation deducts more than capex (dividends, debt service, leases ...) (module FREE_CF name: fcf_tr_deducts_more_than_capex)
recon_identity_closes51,825Reconciliation-table attribute: identity closes. 1 = start line plus adjustments equals the stated free cash flow (module FREE_CF name: fcf_tr_identity_closes)
capex_definition_explained53,190 1 = the release explains what it counts as capex (module FREE_CF name: fcf_tr_capex_defined)
maintenance_vs_growth_capex_explained53,190 1 = maintenance versus growth capex is distinguished (module FREE_CF name: fcf_tr_maint_vs_growth_explained)
additional_FCF_adjustments_explained53,190 1 = adjustments beyond capex are explained (module FREE_CF name: fcf_tr_extra_adjustments_explained)
mandatory_cash_expenditures_omitted53,190 1 = mandatory cash expenditures are omitted from the calculation (module FREE_CF name: fcf_tr_mandatory_omitted)
explanation_of_available_for_discretionary_use53,190 1 = the release explains whether the cash is available for discretionary use (module FREE_CF name: fcf_tr_discretionary_use_explained)
debt_service_or_other_nondiscretionary_cash_needs_acknowledged53,190 1 = debt service or other non-discretionary cash needs are acknowledged (module FREE_CF name: fcf_tr_nondiscretionary_needs_acknowledged)
fcf_usefulness_explained53,190 1 = the release explains why free cash flow is useful (module FREE_CF name: fcf_tr_usefulness_explained)
satellite 

SAT_PROMINENCE

grain exhibit_url x period · summarized into NG_PROMINENCE (quarter row / prominence_of_release)
172,831 rows · 22 columns

The eleven SEC C&DI 102.10 undue-prominence indicators for every release that presents a non-GAAP figure (172,831 releases), each 0/1, and their count (undue_prominence_score, 0-11; any indicator fires on 86%). Feeds NG_PROMINENCE. undue_prominence_any (= score > 0) and the constant period_type removed 2026-09-06.

columnnon-missingdefinition
exhibit_url JOIN KEY172,831SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik172,831SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate172,831Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end163,927Headline fiscal period end as printed in the release — convenience key
fiscal_year163,926Fiscal year of the headline period — convenience key
fiscal_quarter172,831Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q172,8311 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a172,8311 = this release is the annual spine's release for its firm-year
datadate_a42,977PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source172,831Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
up_headline_ng_only172,831SEC C&DI 102.10 prominence indicator: headline ng only. 1 = the headline names only the non-GAAP figure (no GAAP counterpart)
up_bulletin_ng_only172,831SEC C&DI 102.10 prominence indicator: bulletin ng only. 1 = the bullet points name only non-GAAP figures
up_ng_before_gaap172,831SEC C&DI 102.10 prominence indicator: ng before gaap. 1 = the non-GAAP figure is mentioned before the GAAP figure in the text
up_ng_bold_only172,831SEC C&DI 102.10 prominence indicator: ng bold only. 1 = only the non-GAAP figure is in bold
up_table_ng_first172,831SEC C&DI 102.10 prominence indicator: table ng first. 1 = the first table leads with the non-GAAP measure
up_no_recon172,831SEC C&DI 102.10 prominence indicator: no recon. 1 = no GAAP-to-non-GAAP reconciliation in the release
up_ng_income_stmt172,831SEC C&DI 102.10 prominence indicator: ng income stmt. 1 = a full non-GAAP income statement is presented
up_perf_language172,831SEC C&DI 102.10 prominence indicator: perf language. 1 = performance language ('record', 'strong') is attached to the non-GAAP figure
up_pershare_violation172,831SEC C&DI 102.10 prominence indicator: pershare violation. 1 = a liquidity or EBITDA measure is presented per share
up_not_supplemental172,831SEC C&DI 102.10 prominence indicator: not supplemental. 1 = non-GAAP is not framed as supplemental to GAAP
up_no_explanation172,831SEC C&DI 102.10 prominence indicator: no explanation. 1 = no explanation of why the non-GAAP measure is useful
undue_prominence_score172,831Count of SEC C&DI 102.10 undue-prominence indicators triggered by the release, 0 to 11. Higher = the non-GAAP measure is presented more prominently than the GAAP one. Number of the eleven indicators that fire (0-11)
satellite 

SAT_XBRL_FACTS_LONG

grain cik x datadate x statement x tag x period · summarized into FILING_10Q (*_xbrl companions via the distiller and xbrl_extra_companions)
58,922,025 rows · 12 columns

Every undimensioned fact on the three statements and the cover page of the matched 10-Q / 10-K (58.9M facts, 168k filings, 2009-2026), from the sec-api XBRL-to-JSON cache through distill_xbrl_json.py (stage 43): cik x datadate x accession x statement x tag x period, value as filed with decimals and unit (unit spellings unified 2026-09-06). Source of the *_xbrl companion columns in FILING_10Q; formal-filing values are companions to the press-release values, never blended. Keyed by cik + datadate (no exhibit_url: 10-Q/10-K grain).

columnnon-missingdefinition
cik58,922,025SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate58,922,025Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
xbrl_accession58,922,025 Accession number of the 10-Q / 10-K
statement58,922,025 StatementsOfIncome / BalanceSheets / StatementsOfCashFlows / CoverPage / ... (7 values)
tag58,922,025No data available; variable is empty in this dataset. us-gaap / dei element name as filed (19k distinct)
period_start41,452,799 Context start date (null for instants)
period_end58,921,982Headline fiscal period end as printed in the release — convenience key Context end date (instant date for balance-sheet facts)
is_instant58,922,025 True = point-in-time fact (balance sheet), False = duration (flows)
duration_days41,452,799 Length of the duration context in days (90 = quarter, 364/365 = year, 272 = nine months)
value58,922,025Adjustment to diluted earnings per share from non-GAAP to GAAP, in US$ per diluted share. Fact value AS FILED (full units, e.g. dollars, not $M)
decimals58,922,025 XBRL decimals attribute as filed ('-3' = thousands precision)
unit58,922,025Unit of measurement for values in the SAT_FWD_RECON module, e.g., $/share, $M, %, percentage points. Unit as filed, unified: USD / SHARES / PURE / USD_PER_SHARE ...
satellite 

SAT_EPSLESS_FILINGS

grain exhibit_url x period_index · summarized into DISCLOSURE (has_epsless_release / link)
28,183 rows · 32 columns

The 22,914 releases that extracted fine but carry NO EPS (monthly updates, revenue-only releases, trusts, REIT FFO-only releases): what they do contain (headline revenue, GAAP net income, adjustment categories, rationale, per-share mentions) and whether the same firm-quarter has another release on the spine. Absent from the master because the master keeps EPS-bearing rows. A re-extraction pretest on the 4,776 reextract_candidate rows was NEGATIVE (1 of 50 recovered): do not run it.

columnnon-missingdefinition
exhibit_url JOIN KEY28,183SEC 8-K Exhibit 99.1 URL of the press release — the UNIQUE FILING KEY; merge to the spine on this column (one spine row -> many satellite rows)
cik28,183SEC Central Index Key of the filer (from the URL path) — convenience key, repeats on every row of the release
datadate28,129Month-end of the release's headline quarter (= PANEL_SPINE_Q key) — convenience key, not unique
period_end28,129Headline fiscal period end as printed in the release — convenience key
fiscal_year28,179Fiscal year of the headline period — convenience key
fiscal_quarter0Fiscal quarter (1-4) of the headline period from the spine; NA off the spine — convenience key
on_spine_q28,1831 = this release is the Rule-D winning release of its PANEL_SPINE_Q row (the rows the quarterly modules were built from)
on_spine_a28,1831 = this release is the annual spine's release for its firm-year
datadate_a0PANEL_SPINE_A key (fiscal-year end) when on_spine_a = 1
key_source28,183Where the headline keys came from: spine_q_winner / release_row_q_dedup_loser / release_row_a / epsless_row / url_only (cik only)
period_index28,183Index of the period within a filing; a release may report several periods.
ticker16,327Company ticker
period_type28,182Q=quarterly A=annual
press_release_date23,230Press-release / earnings-release date (YYYY-MM-DD) — the date stated IN the press release (when the company announced).
ym28,121Year and month of the SEC earnings press release, formatted as YYYY-MM.
header_text26,958Verbatim press release headline/title
revenue_m_headline22,461 Revenue ($M) read from the headline / first period row of the release
gaap_eps_basic1,121GAAP basic EPS as reported
nongaap_diluted_eps1,185Non-GAAP diluted earnings per share, as reported in guidance, in US$ per diluted share.
gaap_net_income_m23,195Gaap net income, US$ millions.
nongaap_net_income_m2,980Nongaap net income, US$ millions.
diluted_shares_k331Diluted weighted-average shares used in computing diluted EPS, in thousands
basic_shares_k532Basic weighted-average shares used in computing basic EPS, in thousands; null if not reported
has_any_eps28,1831 if the filing contains any eps.
n_adj_categories10,326Count of adj categories.
adj_categories10,326 Adjustment category codes found in the release, ';'-joined (n_adj_categories distinct, n_adj_items lines)
n_adj_items10,326Count of adj items.
has_rationale_any10,3261 if the filing contains rationale any. 1 = the release explains at least one adjustment
spine_has_other_release10,579 1 = the firm-quarter already has an EPS-bearing release on the spine (this one is a second release for the quarter); 0 = this release is the only one
per_share_mentions28,182 Number of 'per share' mentions in the release text (a release with many is a candidate for having EPS the extractor missed; pretest says it rarely does)
reextract_candidate28,183 1 = flagged for possible re-extraction (per_share_mentions high and no other release); pretest NEGATIVE, kept only as documentation
extraction_pass28,183Identifier for the extraction pass that produced the guidance data, e.g., repair, main, or run21_sandwich. Extraction pass that produced the row (main / repair / update tag)
Generated by build_catalog_page.py from MODA_REGISTRY.csv · PressReleaseAnalytics