# Get Performance Report in Graphql

This query returns performance metrics for one or more portfolio registers.

[![Screenshot 2025-12-16 at 19.46.38.png](https://docs.finmars.com/uploads/images/gallery/2025-12/scaled-1680-/screenshot-2025-12-16-at-19-46-38.png)](https://docs.finmars.com/uploads/images/gallery/2025-12/screenshot-2025-12-16-at-19-46-38.png)

---

### GraphQL Query

```graphql
query GetPerformanceReport {
  performance_report(
    input: {
      end_date: "2024-05-01"
      registers: ["CH-BND-20394857"]
    }
  ) {
    begin_nav
    end_nav
    grand_absolute_pl
    grand_cash_flow
    grand_cash_flow_weighted
    grand_cash_inflow
    grand_cash_outflow
    grand_nav
    grand_return
  }
}
```

---

## Input Fields

### `<span class="editor-theme-code">end_date</span>`

```graphql
end_date: "2024-05-01"
```

- Report end date
- Required field
- ISO date format

---

### `<span class="editor-theme-code">registers</span>`

```graphql
registers: ["CH-BND-20394857"]
```

- List of portfolio register user codes
- At least one register is required
- Supports multiple registers

---

## Output Fields

### NAV Values

- `<span class="editor-theme-code">begin_nav</span>`<span style="white-space: pre-wrap;"> — NAV at period start</span>
- `<span class="editor-theme-code">end_nav</span>`<span style="white-space: pre-wrap;"> — NAV at period end</span>
- `<span class="editor-theme-code">grand_nav</span>`<span style="white-space: pre-wrap;"> — aggregated NAV</span>

---

### Cash Flow Metrics

- `<span class="editor-theme-code">grand_cash_flow</span>`
- `<span class="editor-theme-code">grand_cash_flow_weighted</span>`
- `<span class="editor-theme-code">grand_cash_inflow</span>`
- `<span class="editor-theme-code">grand_cash_outflow</span>`

---

### Performance Metrics

- `<span class="editor-theme-code">grand_absolute_pl</span>`<span style="white-space: pre-wrap;"> — absolute profit or loss</span>
- `<span class="editor-theme-code">grand_return</span>`<span style="white-space: pre-wrap;"> — total return</span>

---

## Python Code

```python
import requests

url = "https://<domain_name>/<realm_code>/<space_code>/graphql/"

headers = {
    "Authorization": "Bearer <access_token>",
    "Content-Type": "application/json"
}

payload = {
    "query": """
    query GetPerformanceReport {
      performance_report(
        input: {
          end_date: "2024-05-01"
          registers: ["CH-BND-20394857"]
        }
      ) {
        begin_nav
        end_nav
        grand_absolute_pl
        grand_cash_flow
        grand_cash_flow_weighted
        grand_cash_inflow
        grand_cash_outflow
        grand_nav
        grand_return
      }
    }
    """
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
```

## Notes

- <span style="white-space: pre-wrap;">This is a </span>**calculated report**
- No pagination
- <span style="white-space: pre-wrap;">Uses </span>`<span class="editor-theme-code">input</span>`<span style="white-space: pre-wrap;">, not </span>`<span class="editor-theme-code">filters</span>`
- Default calculation method is applied if not provided
- Execution time depends on data volume