HomeGuides › SEC companyfacts EPS gotchas: YTD, Q4, restatements, and splits

SEC companyfacts EPS gotchas: YTD, Q4, restatements, and splits

The SEC companyfacts JSON endpoint returns every GAAP fact a company has ever filed. Turning that raw XBRL into a clean quarterly EPS series is harder than it looks. Here are the gotchas that trip up DIY pipelines — and how Aegwah handles each one.

YTD vs quarterly periods

Many filers report EPS with a frame of CY####Q# (quarterly) but others use cumulative year-to-date frames like CY####Q#I (interim/YTD). A Q2 YTD value covers six months, not three. You must subtract prior YTD periods to isolate the single quarter — and handle fiscal calendars that do not align with calendar quarters.

Q4 is rarely a standalone 10-Q

Most companies file a 10-K for the full fiscal year instead of a separate Q4 10-Q. EDGAR companyfacts often has annual EPS but no explicit Q4 quarterly fact. The standard industry approach (used by Compustat and FactSet) is:

Q4 EPS = Full-Year EPS − (Q1 + Q2 + Q3)

Derived Q4 rows must be flagged so consumers know the value was computed, not read directly from a filing. Aegwah sets _computed_q4: true on these records.

Restatements create duplicate periods

When a company restates earnings, EDGAR XBRL eventually contains multiple accession numbers for the same fiscal period — each with a different value. A naive "take the latest" approach silently overwrites history. Aegwah keeps the most recent filing as canonical and flags restated records with eps_restatement: true, plus eps_restatement_count and eps_restatement_delta so you can apply your own point-in-time policy.

Stock splits break historical comparability

A 4-for-1 split makes pre-split EPS look 4× too large unless you retroactively adjust earlier quarters. Aegwah applies yfinance split factors to normalize all pre-split periods, so a 2015 EPS and a 2024 EPS are on the same per-share basis.

Concept name variation

Not every company tags diluted EPS as EarningsPerShareDiluted. Financials may use IncomeLossFromContinuingOperationsPerDilutedShare; some use EarningsPerShareBasicAndDiluted when basic equals diluted. Aegwah maps 4+ known concept variants in priority order.

Want to see the finished output? Download the free sample ZIP (10 tickers, 5 years) or browse live data at /data/AAPL.

Get institutional-quality earnings data

502 tickers · 16+ years of GAAP EPS · ZIP + REST API. From $30/month.

View plans → Free sample ZIP →

Research / data documentation only. Not investment advice. Aegwah is a dataset product.