> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rangler.co/llms.txt
> Use this file to discover all available pages before exploring further.

# 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:

```json theme={null}
{
  "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 `periodType` to select one or more duration families:

```http theme={null}
GET /v1/company/financials/income-statement/standardized?company=ACCESSCORP&countryCode=NG&periodType=annual,quarterly
```

Supported values are `annual`, `quarterly`, `semi-annual`, `ytd`, `ltm`, and `latest`. `quarterly` returns standalone quarters, including quarters calculated from cumulative filings. `ytd` keeps the reported 3M, 6M, and 9M cumulative periods. Add `latest` to return only the newest requested period.

## 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.

```json theme={null}
{
  "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:

```text theme={null}
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:

```json theme={null}
{
  "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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.