# Real GDP: Real GDP by state: State and local — Michigan (chained 2017 USD mn)

Real GDP: Real GDP by state: State and local — Michigan (chained 2017 USD mn) was 45,857 chained 2017 USD mn in 2025, up 2.5% from 2024.
That is the highest reading since 2012.
Over the past ten years it has ranged from 41,788 chained 2017 USD mn (2020) to 45,857 chained 2017 USD mn (2025), averaging 43,404 chained 2017 USD mn.

- Source agency: U.S. Bureau of Economic Analysis (Regional Economic Accounts)
- Makrognosis code: `US-MI.GDP.A.NSA.IND-BEA86`
- Frequency: annual
- Units: chained 2017 USD mn
- Coverage: 1997-01-01 to 2025-01-01 (29 observations)
- Page: https://makrognosis.robomacro.com/data/united-states/real-gdp-real-gdp-by-state-state-and-local-michigan-chained-2017-usd-mn-us-mi-gdp-a-nsa-ind-bea86

## Recent data

| Period | Value |
|---|---:|
| 2025 | 45,857 chained 2017 USD mn |
| 2024 | 44,749 chained 2017 USD mn |
| 2023 | 44,034 chained 2017 USD mn |
| 2022 | 42,423 chained 2017 USD mn |
| 2021 | 41,931 chained 2017 USD mn |
| 2020 | 41,788 chained 2017 USD mn |
| 2019 | 43,662 chained 2017 USD mn |
| 2018 | 42,889 chained 2017 USD mn |
| 2017 | 43,373 chained 2017 USD mn |
| 2016 | 42,938 chained 2017 USD mn |
| 2015 | 43,800 chained 2017 USD mn |
| 2014 | 43,857 chained 2017 USD mn |
| 2013 | 44,974 chained 2017 USD mn |
| 2012 | 46,056 chained 2017 USD mn |
| 2011 | 47,631 chained 2017 USD mn |
| 2010 | 49,827 chained 2017 USD mn |
| 2009 | 50,009 chained 2017 USD mn |
| 2008 | 51,473 chained 2017 USD mn |
| 2007 | 51,289 chained 2017 USD mn |
| 2006 | 52,872 chained 2017 USD mn |
| 2005 | 54,422 chained 2017 USD mn |
| 2004 | 53,476 chained 2017 USD mn |
| 2003 | 54,851 chained 2017 USD mn |
| 2002 | 55,618 chained 2017 USD mn |

## API

```
curl -H "X-API-Key: $MAKROGNOSIS_KEY" \
  "https://makrognosis.robomacro.com/v1/series/US-MI.GDP.A.NSA.IND-BEA86"

# Python
import requests
r = requests.get("https://makrognosis.robomacro.com/v1/series/US-MI.GDP.A.NSA.IND-BEA86",
                 headers={"X-API-Key": KEY})
obs = r.json()["observations"]
```
