Portfolio Snapshots
Snapshots capture a point-in-time view of your portfolio, including total value, cash balance, and details for each tracked asset. They enable performance tracking, historical analysis, and power the Dashboard charts. Each snapshot is stored as a row in the "Snapshots" sheet.
What Is Included in a Snapshot?
- Portfolio Totals: Total portfolio value and cash balance.
- Asset Details: For each asset with "Take Snapshot" checked in the Asset Configuration:
- Current price.
- Number of shares or holdings.
- Position value (e.g., for stocks, includes shares plus any associated options).
- Custom Data: Any additional key-value pairs defined in the Configuration sheet (e.g., exchange rates).
- Timestamps: Date and time of the snapshot.
Note: Untick "Take Snapshot" for assets you don't want included to reduce data volume.
Note 2: If you have created snapshot data for an asset and you decide to untick the "Take Snapshot", the values from the last snapshot will be copied over into the new snapshots.
Tip: Make sure to make backups of your Google Sheet to avoid losing historical snapshot data of your portfolio.
Charts assume one snapshot per day for accurate performance calculations. If you take multiple snapshots daily, adjust the "Num days" in Chart Configuration accordingly.
Creating a Manual Snapshot
To take a snapshot manually:
- Click on the menu: Snapshots > Create assets snapshot.
- A new row will be added to the "Snapshots" sheet with the current data.
Note: Snapshots are just normal Google Sheets rows. If you don't need a snapshot, simply delete the row. The same applies to columns—you can delete the 3 columns of an asset to completely remove that asset's snapshots without affecting other assets' snapshots.
The only thing that needs to stay consistent is that the first column is the timestamp and the second column is the portfolio total value.
Setting Up Daily Automated Snapshots
Automate snapshots for consistent daily tracking:
- Configure the Hour: In the Configuration sheet, under "General Configuration," set
daily_snapshot_hourto a 24-hour format value (e.g., 14 for 2 PM). This is in GMT—adjust for your timezone (e.g., 16:00 in New York is 20:00 or 21:00 GMT, depending on daylight saving). - Set Up the Trigger: Click Snapshots > Setup snapshots trigger. This creates a daily Google Apps Script trigger to run at the specified hour.
Example: For 9 AM EST (which is 14:00 GMT), set to 14.
The snapshot hour is in GMT. Double-check your timezone conversion to avoid missed snapshots.
Removing the Daily Snapshot Trigger
To stop automated snapshots:
- Click Snapshots > Delete snapshot trigger.
If uninstalling the add-on, remove the trigger first to prevent continued executions.
Adding Custom Values to Snapshots
Include extra data like exchange rates or market indices:
- Go to the Configuration sheet, under "Snapshot Custom Data."
- Add key-value pairs:
- Key: A unique ID (e.g., "usdeur").
- Value: A formula or static value (e.g.,
=GOOGLEFINANCE("USDEUR")).
Example: To track USD/EUR rate, set Key to "usdeur" and Value to =GOOGLEFINANCE("USDEUR"). This adds a column in the Snapshots sheet.
Handling Multi-Currency Snapshots
For portfolios with multiple currencies, add exchange rate configurations to ensure accurate conversions. Refer to the Multi-Currencies documentation for setup details, including adding xchange_rate_<CURRENCY> entries.
Tip: This ensures snapshots reflect true base-currency values.
Troubleshooting Snapshots
- Snapshots not triggering: Verify the hour is in GMT and the trigger is set.
- Missing data: Ensure assets have "Take Snapshot" checked and prices are updated.