# Stamping a Portfolio

vBase enables investors, allocators, and researchers to build a globally credible live performance record by [stamping](/overview/what-is-a-stamp.md) portfolio rebalance weights.

To ensure accurate parsing, uploads via the [Portfolio Stamping](https://app.vbase.com/stamp/?method=portfolio) interface must follow a simple standard format. To stamp a file of arbitrary structure, use the [File Stamping](https://app.vbase.com/stamp/?method=file) interface.

## What counts as a valid portfolio upload?

A portfolio must provide:

| Requirement              | Description                                          |
| ------------------------ | ---------------------------------------------------- |
| **Symbols**              | Valid tickers or identifiers                         |
| **Weights**              | Numeric values (long/short), decimals or percentages |
| **One row per security** | No multi-line entries                                |

You may paste directly into the textbox, upload a CSV file, or drag & drop a CSV into the textbox.

vBase accepts comma, semicolon, or tab delimiters, with comma as the default. Mixing different delimiters within the same file will cause an Invalid Structure error.

**Minimal Example (ready for paste)**\
symbol,weight\
AAPL,0.50\
MSFT,-0.20\
SPY,0.70

## Assigning Portfolio to a Collection

Every portfolio stamp must belong to a **Portfolio Collection**.

> 📌 A Collection organizes portfolio stamps into a verifiable investment strategy or signal.

You can add new collections by clicking the + icon next to the collection dropdown or [in your account](https://app.vbase.com/profile/#collections)

## Optional column headers

Headers are not required — but if included, they must **map to known names**.

**Valid symbol column names** id,symbol,identifier,sym,symbol,ticker,ticker\_symbol,security,asset,instrument,stock ticker,figi,isin,bbgid,bbg\_ticker,bloomberg\_id

**Valid weight column names** wt,w,weight,weight\_pct,weight\_percent,weighting,percentage,pct,allocation,exposure,position,% of book,portfolio\_weight,allocation\_pct,allocation\_percent

> If headers are missing, vBase assumes: **Column 1 = Symbol**, **Column 2 = Weight**

## Weight parsing rules

*We standardize all values before stamping*

vBase normalizes:

| Input   | Normalized Result |
| ------- | ----------------: |
| `0.25`  |              0.25 |
| `.25`   |              0.25 |
| `0,25`  |              0.25 |
| `25%`   |              0.25 |
| `-2.5%` |            -0.025 |
| `(25%)` |             -0.25 |

> ⚠️ If both comma **and** dot decimals are used to designate decimals, this is is ambiguous and the upload will be rejected

## Portfolio Normalization

Before stamping, vBase automatically:

* Strips spaces, parentheses, thousands separators
* Converts percentages → decimals
* Converts European decimal formatting to US style
* Sums weights of duplicate tickers
* Validates structure & data types

📌 Only a fingerprint of the **Normalized CSV** is stamped — not the original.

## Storage

You can download the normalized CSV file on the confirmation page, or anytime via your account's [Stamped File Storage](https://app.vbase.com/profile/#user_data_storage).

Any copy of these stamped, normalized CSV files [verifies your portfolio track record](/overview/what-vbase-verifies.md) by showing that your history of rebalances is timestamped, complete and impartially presented.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.vbase.com/use-case-how-tos/stamping-portfolios.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
