RanglerDeveloper
Financial data

Periods, derived quarters, and restatements

Store financial periods correctly across calendar and fiscal reporting, cumulative interim values, derived periods, and restated comparatives.

Period labels are presentation. Use the typed period fields when you compare, deduplicate, or persist financial data.

Calendar and fiscal identity

Each period can carry both calendar and fiscal coordinates:

FieldUse
period_end_dateExact accounting period end date.
calendar_year, calendar_quarterPlacement on the calendar.
fiscal_year, fiscal_quarterPlacement in the issuer's fiscal calendar when known.
period_typeCompact type such as FY, Q1, H1, 9M, or TTM.
duration_monthsNumber of months covered by a flow period.
income_basisSource duration such as 3M, 6M, 9M, or 12M.

Do not assume Q1 means January through March. An issuer with a non-calendar year can have a different fiscal quarter for the same calendar end date.

Example: a June year-end

For a company whose financial year ends on 30 June, the first quarter of fiscal year 2026 ends on 30 September 2025:

{
  "period_id": "q1_2025-09-30",
  "period_end_date": "2025-09-30",
  "calendar_year": 2025,
  "calendar_quarter": 3,
  "fiscal_year": 2026,
  "fiscal_quarter": 1,
  "reporting_period": "Q1 2026",
  "period_type": "Q1"
}

Use the calendar fields to place the date on a normal calendar. Use the fiscal fields to compare periods using the issuer's accounting year.

Query period families

Use period_family when you need a precise duration family:

GET /v1/financials/statements?ticker=ACCESSCORP&country_code=NG&period_family=annual,quarterly

Supported families are annual, quarterly, semi_annual, nine_month, and trailing. The older granularity parameter is a broader filter kept for compatibility.

Reported and derived periods

is_derived_period=false means Rangler selected a period represented directly by the filing data. is_derived_period=true means Rangler assembled the period from other periods, such as a standalone quarter or trailing twelve months.

The period flag and metric origin answer different questions:

  • is_derived_period classifies the period.
  • metric_origins[metric_key] classifies one value.
  • sources[metric_key].derivation identifies operands and the operation when available.

For example, an issuer may disclose six-month cumulative revenue. Rangler can derive the second standalone quarter by subtracting the first quarter. That returned metric has origin derived_period; its source contains both operands.

Never infer quarterization by subtracting values again when is_derived_period or metric_origins already says Rangler performed it.

Restated comparatives

A later filing can restate one or more comparative values without changing the accounting period itself.

{
  "period_id": "fy_2024-12-31",
  "period_end_date": "2024-12-31",
  "is_restated": true,
  "restated_metrics": ["profit_after_tax", "total_equity"]
}

is_restated=true means at least one returned metric is restated. Only the keys in restated_metrics should be labelled restated.

Stable local keys

period_id is stable within the selected company and reporting lane, not globally. A durable local key should include:

company_id + scope + scope_label + selected_reported_currency + period_id + metric_key

When a refresh returns the same key with a restated metric, update the value and source together. Do not identify standardized financial records by cell_id or filing_id; those identify the filing source and can change when a later filing supplies the accepted comparative value.

Printed and standardized values

Standardized metrics use consistent names and base-unit values. Exact reported tables keep the issuer's printed representation:

{
  "raw_text": "824,754",
  "raw_numeric_value": 824754.0,
  "scaled_numeric_value": 824754000000.0,
  "display_currency": "NGN"
}

Use standardized values for cross-company analysis. Use raw_text, the reported column's value_scale, and the filing source when you need to reproduce the filing.

On this page