# Adjustment Factor

Daily adjustment factors, one row per stock per trading day, used to convert unadjusted quotes into forward- or backward-adjusted prices. This endpoint returns raw factors and does not choose the forward-adjustment anchor for the caller.

`GET /v2/market/adj-factor`

## Formulas and anchor

Let `P(t)` be the unadjusted price and `F(t)` the factor on date `t`. Choose anchor trading date `T` as the last trading day on or before the target `end_date`; when omitted, use the latest available trading day.

```
Unadjusted price = P(t)
Forward-adjusted price = P(t) × F(t) / F(T)
Backward-adjusted price = P(t) × F(t)
```

Forward adjustment guarantees `adjusted_price(T) = P(T)`. The same historical date can have a different absolute forward-adjusted price under a different anchor. Apply these formulas to open, high, low, and close, not to volume or turnover. Recompute cached forward-adjusted series after a corporate action or factor revision.

The `*_qfq` fields from `technical-factors` are snapshots using the latest anchor available at the source's last refresh. For a historical anchor or strict reproducibility, calculate from unadjusted daily prices and this endpoint's factors.

## Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `symbol` | string | No | Stock code, e.g. 000001.SZ |
| `start_date` | string | No | Start date (YYYYMMDD) |
| `end_date` | string | No | End date (YYYYMMDD) |
| `trade_date` | string | No | Trading date YYYYMMDD (single day) |

## Response Fields

| Field | Type | Description |
| --- | --- | --- |
| `symbol` | string | Stock code |
| `trade_date` | string | Trading date |
| `adj_factor` | number | Adjustment factor |

## API Example

cURL

```
curl -H "X-API-Key: YOUR_KEY" \
  "https://asharehub.com/v2/market/adj-factor?symbol=000001.SZ"
```

Python SDK

```
from asharehub import AShareHub

client = AShareHub(api_key="YOUR_KEY")
df = client.adj_factor(symbol="000001.SZ")
print(df.head())
```

## Sample Data

returns a pandas.DataFrame

| symbol | trade_date | adj_factor |
| --- | --- | --- |
| 000001.SZ | 20260626 | 139.008 |
| 000001.SZ | 20260625 | 139.008 |
| 000001.SZ | 20260624 | 139.008 |

## Why can a previously downloaded adjusted price change?

A different anchor factor changes every forward-adjusted price in the series. Save the raw [daily prices](https://asharehub.com/en/docs/market-daily), the factor snapshot and the chosen anchor date together. A later corporate action or upstream correction can require recalculating cached prices. A missing factor is not a factor of 1: check date alignment before calculating.

## Factor source

See [Tushare's adjustment-factor reference](https://tushare.pro/document/2?doc_id=28) for the upstream series. The formulas and public `symbol` contract on this page describe AShareHub usage. The [technical-factor endpoint](https://asharehub.com/en/docs/technical-factors) is an alternative for precomputed indicators; use raw bars and factors when a historical anchor must be reproducible.
