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:
| Field | Use |
|---|---|
period_end_date | Exact accounting period end date. |
calendar_year, calendar_quarter | Placement on the calendar. |
fiscal_year, fiscal_quarter | Placement in the issuer's fiscal calendar when known. |
period_type | Compact type such as FY, Q1, H1, 9M, or TTM. |
duration_months | Number of months covered by a flow period. |
income_basis | Source 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,quarterlySupported 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_periodclassifies the period.metric_origins[metric_key]classifies one value.sources[metric_key].derivationidentifies 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_keyWhen 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.