# Returns

The **Returns** provides a central interface for viewing, managing, and exporting portfolio return data. It consolidates both automated feeds (from connected data sources) and manually uploaded returns, giving portfolio managers, analysts, and client teams a single source of truth.

The main grid displays all return series, with the following key fields:

* **Model Code** – Unique identifier for each model/portfolio.
* **Model Name** – Human-readable name of the portfolio.
* **Entity** – The owning or reporting entity.
* **Latest Date** – Most recent return available in the dataset.
* **First Date** – Inception date or earliest available return.

**Performance Columns** (automatically calculated over rolling windows):

* **1M, 3M, 6M** – Monthly performance windows varies from 1 month, 3 months and 6 months.
* **1Y, 2Y, 3Y, 5Y** – Annualised returns over standard look-backs from 1 Year to 5 Years.
* **Inception** – Cumulative performance since the first recorded date.

### Data Ingestion

We provide two complementary ingestion methods:

1. **Automated (Synced) Returns**
2. **Manual (Uploaded) Returns**

This dual workflow ensures flexibility — allowing most models to update seamlessly through pipelines, while still giving users control to add or override returns when required.

#### Automated (Synced) Returns

Automated ingestion is the primary workflow where are pulled directly from **data pipelines** and **platform integrations** (e.g., custodians, platforms, or external benchmarks).

* **Source of truth** – Pipelines enforce consistent calculation rules and date alignment.
* **Freshness** – Updates are processed nightly (or as per client setup), ensuring the *Latest Date* column is always current.
* **Audit trail** – Each data sync is logged within **Data Workflows**, giving full visibility into when and how returns were ingested.
* **Validation** – Automated checks flag missing periods, duplicate entries, or misaligned inception dates before syncing to the database.

#### Manual (Uploaded) Returns

{% content-ref url="returns/upload-custom-returns" %}
[upload-custom-returns](https://quant-reports.gitbook.io/docs/data/returns/upload-custom-returns)
{% endcontent-ref %}

Manual uploads allow flexibility when automated feeds are unavailable or when custom adjustments are required.

* **Upload Methods** – Users can upload via XLS files of return values directly through the interface. We provide both Long and Wide sample files for you to download and fill the data there.
* **Validation Rules** –
  * Must match an existing **Model Code**.
  * Dates must be continuous and valid.
  * Uploaded returns cannot overlap or duplicate synced data.
  * Returns must be cumulative or periodic, depending on configuration.
* **Override Capability** – Manual uploads can overwrite synced values if an override is explicitly required.
* **Audit Trail** – Each upload is tagged with the user, timestamp, and file reference for compliance purposes.
