# Historical FX Chart > Chart exchange rates over time from ECB data: min, max, average, change, volatility and CSV export. Pick a base currency, one or more quote currencies and a date range (back to 1999). The tool loads the ECB’s daily euro reference rates, builds the cross rates, draws a line chart (indexed to 100 to compare several pairs) and reports start, end, minimum, maximum, average, change and annualised volatility, with a CSV download. Part of usefulweb.site (https://usefulweb.site/). Results are deterministic calculations from the inputs and the listed assumptions; the API returns exactly what the web page shows. ## Use it - Human interface: https://historicalfxchart.usefulweb.site/ (interactive tool at https://historicalfxchart.usefulweb.site/tool) - JSON API: POST https://historicalfxchart.usefulweb.site/api/v1/calculate with a JSON object of inputs (schema: https://historicalfxchart.usefulweb.site/api/v1/tool) - OpenAPI: https://historicalfxchart.usefulweb.site/openapi.json - MCP (Streamable HTTP): https://historicalfxchart.usefulweb.site/mcp - tool `historical_fx_chart` ## Inputs - base (text, required): Base currency - The rate shows how many units of the quote currency one unit of the base buys. - quotes (text, required): Quote currencies - Up to 6 ISO codes, comma-separated. - start (date): From - Default: one year before the end date. Earliest 1999-01-04. - end (date): To - Default: today. - normalise (select): Index to 100 at the start - png (boolean): Also create a PNG image ## Method - Daily reference rates (units per euro) are loaded from the ECB Data Portal SDMX API as CSV (series D..EUR.SP00.A, only the requested currencies and dates) and cached; ranges ending more than a week ago are cached permanently, recent ranges per day. - Cross rate base/quote on each publication day = rate(quote) ÷ rate(base); days where either leg is missing are skipped. EUR legs are 1. - Statistics: first and last observation, minimum and maximum with dates, arithmetic mean, change = last ÷ first − 1, annualised volatility = standard deviation of daily log returns × √252. - Indexed view: every pair divided by its first value × 100, so pairs with very different levels (e.g. JPY and GBP) can be compared. ## Limits - Reference rates for information; they are not the rates at which you could have traded.