# Earnings Forecast

Earnings pre-announcements (forecasts) that listed companies release ahead of formal periodic reports per exchange rules, including the forecast type (increase, decline, turnaround to profit, first loss, continued loss, slight increase/decrease, uncertain), the upper and lower bounds of forecast net profit, year-over-year change magnitude, and the reasons for the change. Disclosed before official statements, these are a leading signal of fundamentals. Commonly used for event-driven strategies, earnings-expectation tracking, and pre-report positioning. Note that forecasts are range estimates and may be revised.

`GET /v2/financials/forecast`

## 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) |
| `period` | string | No | Report period YYYYMMDD, e.g. 20231231 |
| `type` | string | No | Forecast type (预增/预减/扭亏/...) |

## Key Response Fields

| Field | Description |
| --- | --- |
| `type` | Forecast type (预增/预减/扭亏/首亏/续亏/略增/略减) |
| `p_change_min / p_change_max` | Net profit change range % |
| `net_profit_min / net_profit_max` | Forecast net profit range (10k CNY) |
| `summary / change_reason` | Summary and reason for change |

## API Example

cURL

```
curl -H "X-API-Key: YOUR_KEY" \
  "https://asharehub.com/v2/financials/forecast"
```

Python SDK

```
from asharehub import AShareHub

client = AShareHub(api_key="YOUR_KEY")
df = client.forecast()
print(df.head())
```

## Sample Data

returns a pandas.DataFrame

| symbol | ann_date | end_date | type | p_change_min | p_change_max | net_profit_min | net_profit_max | last_parent_net | first_ann_date | … +2 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 300671.SZ | 20260626 | 20260630 | 扭亏 | 351.63 | 407.54 | 9000 | 11000 | -3576.75 | 20260626 | … |
| 300867.SZ | 20260626 | 20260630 | 预增 | 55 | 80 | 17787 | 20656 | 11475.64 | 20260626 | … |
| 300221.SZ | 20260626 | 20260630 | 预增 | 82 | 95 | 8700 | 9300 | 4778 | 20260626 | … |
