This page documents where ForexFin's numbers come from, how often they refresh, and the data structures behind each tool. It is the operational companion to the methodology page, which covers the formulas. ForexFin does not yet expose a public API; this is reference documentation for anyone — human or machine — citing or auditing the data.
Trader receivers: order payload reference (fields, signature check, guard rules).
Every calculator is a self-contained static HTML page whose math runs in the browser; no server round-trip is needed to compute a result. Market-data pages (currency strength, correlation, DXY, gold, oil, indices, crypto, yields, calendar, COT, and the weekly reports) are pre-rendered server-side: a set of small Node.js workers poll the data sources on a fixed cadence, cache the results in a local SQLite database, and write fully-formed HTML — including a quotable answer block and a citation line — back to disk atomically. The crawler-visible page is therefore always complete and dated, with no dependence on client-side JavaScript.
| Source | Used for | Notes |
|---|---|---|
ECB reference rates (via frankfurter.dev) | Calculator conversion and worked answers, currency strength, the correlation matrix, the synthetic DXY and the weekly reports | Official daily reference rates, published once per business day around 16:00 CET. |
| Bank of Canada daily exchange rates | Fallback for the synthetic DXY | Official daily rates, published once per business day. |
| U.S. Department of the Treasury | US Treasury yield curve | Daily par yield curve, published after the US close. Public domain. |
| CFTC (Commitments of Traders) | Weekly large-speculator positioning | Public-domain regulatory data, released Fridays for the preceding Tuesday. |
Gold, oil, crypto, the equity indices, the economic calendar and price alerts are paused while ForexFin changes its market-data provider. Those pages say so rather than show older figures.
| Surface | Cadence |
|---|---|
| Calculators and their answer blocks (conversion rates) | Daily (ECB reference rates, published around 16:00 CET on business days) |
| Currency strength | Daily: the last two ECB reference days |
| Correlation matrix | Recomputed every 4 hours from ECB daily reference rates (14, 30, 60 and 90-session windows) |
| DXY, gold, oil, indices, crypto (spot) | Every 5 minutes (crypto 7 days a week); daily closes and moving averages daily |
| Treasury yields, economic calendar | Daily |
| COT positioning | Weekly (after the CFTC release) |
| Weekly Strength & Volatility Reports | Rebuilt every 6 hours; only the current (still-forming) week changes — settled weeks are immutable once closed |
The local cache holds a small number of normalized tables, all keyed for idempotent upserts:
(symbol, date) with the closing price. The base series
for strength, correlation, volatility and the moving averages.Internally, FX rates are normalized to a single canonical shape — units of each currency per one USD — so that every source path feeds the math identically and the source can switch without changing results.
The spread-cost figure accounts for three factors, in order:
0.01 for JPY pairs, 0.0001 otherwise).The spread is treated as a full cost paid on entry; commissions, if any, are separate and not assumed.
Every market-data page carries an explicit as-of stamp. Live spot surfaces stamp the UTC minute of the last poll; end-of-day surfaces stamp the date of the close used. The weekly reports pin their as-of to the data's closing date so that a settled week renders identically forever — its numbers never change after the week closes. If a data source is temporarily unavailable, the page serves the last good cached value rather than a blank, and the as-of reflects that cached timestamp.
A concise site summary for language models lives at /llms.txt.
Formulas are documented on the methodology page; the published data archive is under
/reports/.