# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Use one source per stock symbol</strong></td><td>Alpha Vantage returns data for one ticker per API call. Set up a separate Coupler.io source in the data flow for each symbol and consolidate on the Data sets step.</td></tr><tr><td><strong>Start with compact output, then switch to full</strong></td><td>Use compact output (last 100 data points) when testing a new data flow — it's faster and uses fewer API calls. Once you've confirmed the setup is correct, switch to full output to backfill the complete history.</td></tr><tr><td><strong>Use adjusted entities for return calculations</strong></td><td>If you're calculating investment returns, always use adjusted entities (daily adjusted, weekly adjusted, monthly adjusted). Raw prices can be misleading after dividend payments or stock splits.</td></tr><tr><td><strong>Include the exchange suffix for non-US stocks</strong></td><td>For international equities, always append the exchange code to your symbol (e.g., <code>TSCO.LON</code>, <code>SAP.XETRA</code>). Without it, Alpha Vantage may return data for the wrong security or nothing at all.</td></tr></tbody></table>

## Data refresh and scheduling

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Match your schedule to your data type</strong></td><td>Daily data only updates once per trading day, so scheduling more frequently than daily wastes API calls. For intraday data, you can schedule more frequent refreshes — but watch your rate limits on free plans.</td></tr><tr><td><strong>Stagger multiple data flows</strong></td><td>If you're tracking several tickers, space out your data flows schedules. Running them all at the same time can exhaust your free-tier API quota instantly.</td></tr><tr><td><strong>Run a manual test first</strong></td><td>Always do a manual run before activating a schedule. This confirms your symbol, entity, and parameters are correct before automated runs consume your daily API request allowance.</td></tr></tbody></table>

## Performance optimization

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Use Quotes for live dashboards</strong></td><td>If you only need the current price and daily change, use the Quotes entity instead of pulling a full time series. It's a single lightweight call and returns exactly what most real-time dashboards need.</td></tr><tr><td><strong>Limit full history pulls to one-time backfills</strong></td><td>Full output can return years of daily data. Pull it once to populate your historical dataset, then switch to compact for ongoing scheduled refreshes to keep things efficient.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
Free Alpha Vantage accounts have a hard limit of 25 API requests per day. Each data flow run counts as one request. If you have more than 25 data flows or run then too frequently, your daily quota will be exhausted and all imports will fail until the next day.
{% endhint %}

{% columns %}
{% column %}
**Do**

* Use one source per ticker
* Stagger schedules across multiple data flows
* Use compact output for regular scheduled refreshes
* Use adjusted entities when calculating returns
* Test with a manual run before activating a schedule
  {% endcolumn %}

{% column %}
**Don't**

* Run all data flows simultaneously on a free API key
* Use the full output on every scheduled refresh unnecessarily
* Compare unadjusted prices to adjusted charts and expect them to match
* Forget the exchange suffix for non-US stock symbols
* Set intraday importers to refresh more often than your chosen interval
  {% endcolumn %}
  {% endcolumns %}
