Skip to main content
Sacra surfaces revenue data through two distinct but complementary structures: revenue datasets, which are Sacra’s own revenue models for each company, and metric observations, which are individual datapoints cited to published sources. Both are available through the API and serve different use cases. To work with datasets in code, see Working with Datasets & Revenue Data.

Revenue datasets

A revenue dataset is Sacra’s internal revenue model for a company. It represents a complete, normalized time series of revenue — year by year from the company’s earliest tracked period through the current month — with no gaps. The purpose of the dataset is to give you a single clean series you can plot, compare, or sync without needing to reconcile inconsistent data from multiple sources. Sacra fills gaps using its own estimates, clearly distinguished from observed figures.

Structure

Each dataset has a data_type that determines what the values represent:

Datapoint periods

Each datapoint in a dataset has a date that encodes its period type:
  • December 31 — a full year-end figure for that calendar year.
  • Any other month-end — a year-to-date figure through that month.
A revenue value dated 2024-04-30 means cumulative revenue from January 2024 through April 2024 — not a trailing 12-month figure. A value dated 2024-12-31 means the full-year total.
If the date falls on December 31, treat it as a full-year figure. Any other month-end date is year-to-date.

How revenue types interact with periods

Revenue reflects total amounts generated — either for the full year (year-end) or from January 1 through the given month (year-to-date). It does not represent a trailing 12-month window. Run Rate Revenue is a forward-looking annualized figure regardless of period type, roughly the most recent month’s revenue multiplied by 12. A run rate dated June 2025 implies June 2025 revenue × 12. Recurring Revenue (ARR) applies specifically to subscription businesses — it’s the annual recurring revenue as of the given date, based on contracted subscription value rather than an annualization of recent revenue.

Metric observations

A metric observation is a single revenue or growth datapoint that Sacra has extracted and cited to a specific published source — a news article, earnings call, SEC filing, or industry report from a trusted publication. Where datasets give you a complete modeled series, observations give you the raw evidence behind specific claims. Each observation is precise, sourced, and structured for programmatic use.

Structure

Each observation has a metric_definition describing what is being measured and a measurement carrying the numeric claim: metric_definition measurement

Numeric shapes

amount, low, and high are raw numeric values with no symbols. Display formatting comes from unit_kind (and currency_code when unit_kind is currency) combined with measurement.type.

Citations

Every observation includes a citations object with the sources backing the claim:
  • citations.sources[] — deduplicated list of source URLs, each with an optional quote field containing the extracted text that supports the datapoint
  • citations.summary.count — number of unique sources for this observation
quote: null does not mean the source is invalid — SEC filing URLs are included by default even without an extracted quote.

Growth observations

Growth rows (view: "growth") require a comparison_window_end_date to define the baseline: For growth rows, unit_kind: "percent" means percentage growth (e.g. 55 = 55%) and unit_kind: "multiple" means an x-multiple (e.g. 3.7 = 3.7×).

Common patterns

Forward metrics are point-in-time. For run_rate_revenue and recurring_revenue, the datapoint is an anchored forward-looking view as of the given date. base_forward carries the annualized or monthly framing; base_period is commonly null for these. growth_period_length above 1 indicates a multi-period cumulative growth window rather than a single prior period comparison. growth_period: year with growth_period_length: 3 means a 3-year CAGR-style window; growth_period: month with growth_period_length: 6 means a 6-month CMGR-style window. Scoped datapoints have both scope_name and scope_type set, indicating the figure applies to a product line or business segment rather than the whole company. If both are null, the datapoint is company-level. YTD-vs-YTD growth (growth_period: ytd) compares two year-to-date windows: the current YTD anchored by end_date and the prior YTD anchored by comparison_window_end_date.

Field roles at a glance

Null handling