Every Thursday morning at 09:00 CET, the Swiss National Bank quietly releases a number that FX traders watch as closely as any policy rate decision: the weekly total of sight deposits held by domestic banks at the SNB. The number itself looks mundane — a balance sheet line item measured in billions of Swiss francs. What it reveals is anything but. Sight deposits are the SNB's operational fingerprint. When they rise sharply, the SNB has been buying foreign currency, flooding the Swiss banking system with newly created CHF. When they hold steady or fall, the SNB is standing aside.
No other central bank in the G10 uses its balance sheet so visibly and so deliberately as a primary FX intervention tool. For CHF traders, the weekly sight deposit release is a near-real-time intervention signal that turns an otherwise opaque operation into a traceable, quantifiable event.
Core Takeaway
SNB sight deposits are the most transparent real-time proxy for CHF intervention available to markets. A surge of CHF 5–15 billion or more week-on-week signals active SNB FX buying. A plateau or drawdown signals the SNB is no longer in the market. CHF traders use this series to track intervention intensity, estimate balance sheet capacity, and anticipate currency regime shifts.
What Sight Deposits Are and Why They Are Unique
When the SNB intervenes in the FX market — buying euros, dollars, or other foreign currency to weaken the CHF — it pays for that foreign currency by crediting Swiss franc deposits directly into the reserve accounts that domestic commercial banks hold at the central bank. These accounts are the sight deposits: overnight balances that banks can access on demand. Unlike the SNB's negative rate deposits or term accounts, sight deposits earn either zero or the overnight policy rate and are the most liquid form of central bank money in the Swiss system.
The mechanics are straightforward. The SNB buys, say, EUR 10 billion in the interbank FX market. To pay for those euros, it creates CHF 10 billion and credits the counterparty banks' accounts at the SNB. Total sight deposits rise by roughly that amount. The foreign currency purchased goes into the SNB's reserve portfolio, and the newly created francs sit in the domestic banking system as reserves. Sight deposits are therefore a direct, near-real-time record of the Swiss franc the SNB has injected into the financial system through FX operations.
This transparency is largely accidental — an artifact of how the SNB reports its weekly balance sheet. But it has become the single most closely watched leading indicator of SNB market activity, ahead of the quarterly BIS FX intervention reporting that most central banks rely on for external surveillance.
Technical Note: What Sight Deposits Capture
The SNB's weekly sight deposit release covers deposits held at the SNB by domestic banks (Girokonto balances). It excludes deposits held by foreign central banks, foreign commercial banks, and international organisations. The domestic bank total is the component that tracks SNB FX intervention most directly, since interbank FX purchases are settled through the domestic reserve account system.
Historical Landscape: Three Eras of SNB Activism
Understanding the current sight deposit level requires knowing what came before. The series has moved through three distinct regimes in the past 15 years, each associated with a different phase of SNB FX policy.
Era 1: The EUR/CHF Floor (2011–2015)
The most aggressive phase of SNB FX intervention began in September 2011, when the SNB announced a minimum exchange rate floor of 1.20 for EUR/CHF. The floor was a unilateral commitment to prevent any further CHF appreciation below that level. To defend it, the SNB had to stand ready to buy unlimited quantities of foreign currency — primarily euros — whenever EUR/CHF threatened to fall below 1.20.
Over the three-and-a-half years the floor was in effect, sight deposits expanded from roughly CHF 30 billion to over CHF 300 billion, a tenfold increase. By early 2015 the SNB's balance sheet had grown to the equivalent of more than 80% of Swiss GDP — extraordinary by any international comparison. The deposit accumulation was essentially an accounting identity: every euro the SNB bought to defend the floor appeared as a corresponding CHF credit in the domestic banking system.
SNB Sight Deposits — Weekly Total (CHF billions)
The three eras of SNB FX activism are visible in the shape of this series: steady pre-2011 levels, the explosive EUR/CHF-floor expansion through 2015, the 2015 shock plateau, and the renewed surge through 2021–22 as COVID and global risk-off pressures pushed the CHF higher.
Era 2: The 2015 Shock and Its Aftermath
On 15 January 2015, the SNB abruptly removed the EUR/CHF floor without warning — a decision that sent shockwaves through global FX markets. EUR/CHF fell nearly 20% in minutes, one of the largest single-day moves in a major currency pair since the floating rate era began. Sight deposits, which had reached roughly CHF 320 billion at the time, did not immediately decline — the CHF that had been created during the floor era remained in the system regardless of the policy change.
In the years following, sight deposits drifted modestly higher and then largely plateaued through 2018–2019 around CHF 540–580 billion, reflecting continued but more modest intervention activity as the SNB worked to prevent the franc from becoming "highly valued" — the phrase the SNB uses to justify discretionary FX purchases even without a formal floor. The SNB also deployed negative interest rates (–0.75% on sight deposit balances above exemption thresholds) to discourage speculative franc inflows, adding an interest rate disincentive to the FX toolkit.
Era 3: COVID, Inflation, and the 2022 Pivot
The COVID-19 crisis in 2020 triggered another wave of safe-haven inflows into CHF, pushing EUR/CHF dangerously close to the 1.05 range. The SNB responded with aggressive FX purchases, and sight deposits surged from around CHF 580 billion to over CHF 720 billion by mid-2021 — a CHF 140 billion expansion in roughly 18 months. At its peak, the SNB's reserve portfolio exceeded CHF 1 trillion, an amount larger than Swiss GDP.
The regime shifted again in 2022. As global inflation surged, the SNB reversed its intervention stance. Rather than weakening the franc, it began allowing or even encouraging CHF appreciation as a tool to reduce imported inflation — a complete reversal of the prior decade's posture. Sight deposits began to decline as the SNB stopped buying foreign currency and, in some periods, sold it. The policy rate moved out of negative territory in June 2022 for the first time since 2014.
Regime Shift Signal — What the 2022 Pivot Taught Traders
When SNB sight deposits began declining in 2022 — a historically unusual event — it was an early and accurate signal that the SNB was not just standing aside but was actively selling foreign currency to support the franc against inflation. The deposit drawdown preceded explicit SNB communication by several weeks and confirmed to macro traders that a new CHF-positive regime was underway. Monitoring the direction of change in sight deposits, not just the level, is critical for identifying regime transitions early.
Reading the Weekly Number: What Traders Watch
The practical challenge with sight deposits is separating signal from noise. The series is volatile week to week because not all fluctuations reflect FX intervention — short-term liquidity management, seasonal factors, and domestic credit operations can cause modest moves. The following framework helps traders identify which changes are meaningful.
Weekly Change in Sight Deposits (CHF billions) — Signal vs Noise
Weekly changes of less than CHF 2–3 billion are within the normal operating range and do not typically signal intervention. Changes of CHF 5 billion or more, particularly during periods of EUR/CHF stress, are the threshold where market participants start attributing the move to deliberate SNB FX action.
The Intervention Threshold Framework
- Weekly change under CHF 2–3 billion: Normal operating variance. No intervention signal. Background liquidity management and repo operations can account for these moves.
- Weekly change of CHF 3–8 billion: Ambiguous zone. Warrants closer attention, particularly if EUR/CHF has been moving toward SNB sensitivity levels. Check EUR/CHF spot behaviour in the same week for confirmation.
- Weekly change above CHF 8–10 billion: Strong intervention signal, particularly if it coincides with EUR/CHF stress, global risk-off events, or CHF approaching "highly valued" territory by SNB assessment standards. During the COVID surge, weekly increases reached CHF 10–20 billion in peak stress periods.
- Sustained weekly declines: Signals the SNB is either selling FX reserves or running down the balance sheet. Associated with the 2022 inflation-driven CHF-supportive regime.
Correlating Sight Deposits with EUR/CHF
The relationship between sight deposits and EUR/CHF is the core analytical framework for CHF intervention traders. In a defensive-intervention regime — where the SNB is trying to prevent CHF from strengthening — the correlation is negative: when EUR/CHF falls (CHF strengthens), sight deposits tend to rise as the SNB buys euros. When EUR/CHF stabilises or recovers, the pace of deposit accumulation slows.
EUR/CHF vs Sight Deposit Level — Dual-Axis View
During intervention periods, EUR/CHF and sight deposits tend to move in opposite directions. As EUR/CHF falls (CHF appreciation pressure), sight deposits rise as the SNB buys foreign currency. This relationship weakens or inverts when the SNB's stance shifts to allowing or encouraging CHF strength.
Sight Deposits, the SNB Balance Sheet, and FX Reserves
Sight deposits are the domestic liability side of the SNB's FX intervention. The counterpart on the asset side is the foreign exchange reserve portfolio — the accumulated euros, dollars, pounds, and yen that the SNB has purchased over time. Tracking both sides of this balance gives a richer picture of the SNB's overall capacity and commitment.
The SNB's FX reserve portfolio, which at its peak exceeded CHF 1 trillion, is one of the largest in the world relative to GDP. The SNB invests these reserves primarily in high-grade government bonds and equities — a portfolio so large that the SNB's quarterly investment returns are regularly reported as economic news. In periods where the SNB has been aggressively intervening, the reserve portfolio has grown at a pace that exceeded the entire market capitalisation of many mid-sized economies.
curl "https://fxmacrodata.com/api/v1/announcements/chf/sight_deposits?api_key=YOUR_API_KEY&start=2020-01-01"
{
"data": [
{
"date": "2024-04-11",
"val": 472800,
"announcement_datetime": "2024-04-11T07:00:00+00:00"
},
{
"date": "2024-04-04",
"val": 471500,
"announcement_datetime": "2024-04-04T07:00:00+00:00"
},
{
"date": "2024-03-28",
"val": 470200,
"announcement_datetime": "2024-03-28T07:00:00+00:00"
}
]
}
The SNB balance sheet (snb_balance_sheet) and FX reserves (fx_reserves) provide the monthly counterpart to the weekly sight deposit signal. Aligning these three series reveals the full picture: how much the SNB has deployed, how fast the reserve portfolio is growing or shrinking, and how the liability side (sight deposits) tracks the asset side (reserves).
SNB Balance Sheet vs FX Reserves (CHF billions, monthly)
The SNB's total balance sheet closely tracks its FX reserve portfolio. Both expanded dramatically during the EUR/CHF floor era and the COVID intervention cycle, and both began shrinking in 2022 as the SNB shifted to a CHF-supportive stance. Monthly FX reserve data lags sight deposits by several weeks but provides precise reserve composition detail.
import requests
BASE = "https://fxmacrodata.com/api/v1"
KEY = "YOUR_API_KEY"
def get(path, **params):
r = requests.get(f"{BASE}{path}", params={"api_key": KEY, **params})
r.raise_for_status()
return r.json()["data"]
# Weekly sight deposit signal (high frequency intervention proxy)
sight_deposits = get("/announcements/chf/sight_deposits", start="2022-01-01")
# Monthly balance sheet (total SNB assets)
balance_sheet = get("/announcements/chf/snb_balance_sheet", start="2022-01-01")
# Monthly FX reserves (foreign asset portfolio)
fx_reserves = get("/announcements/chf/fx_reserves", start="2022-01-01")
# Print the latest sight deposit reading
latest = sight_deposits[0]
prior = sight_deposits[1]
chg = latest["val"] - prior["val"]
print(f"Week ending {latest['date']}: sight deposits = CHF {latest['val']:,.0f}mn")
print(f"Change from prior week: CHF {chg:+,.0f}mn")
The Policy Rate Connection: Negative Rates as an Intervention Complement
Sight deposits do not exist in isolation from the SNB policy rate. For most of the 2015–2022 period, the SNB charged a negative interest rate on sight deposit balances above an exemption threshold. The purpose was twofold: to discourage speculative inflows into CHF (making it expensive to hold francs) and to reduce the cost of the massive balance sheet expansion by making excess reserves a liability-generating rather than a return-generating position for the banking system.
Negative sight deposit rates created a feedback loop that reinforced the FX intervention strategy. A bank receiving CHF from an SNB FX purchase faced an immediate cost for holding those francs — incentivising it to deploy the liquidity elsewhere, preferably outside Switzerland, which itself would exert mild depreciation pressure on the franc. The combination of unlimited FX purchase capacity and negative rates on the proceeds was the SNB's unique policy cocktail for a decade.
curl "https://fxmacrodata.com/api/v1/announcements/chf/policy_rate?api_key=YOUR_API_KEY&start=2014-01-01"
{
"data": [
{
"date": "2024-09-26",
"val": 1.0,
"announcement_datetime": "2024-09-26T07:30:00+00:00"
},
{
"date": "2024-06-20",
"val": 1.25,
"announcement_datetime": "2024-06-20T07:30:00+00:00"
},
{
"date": "2023-09-21",
"val": 1.75,
"announcement_datetime": "2023-09-21T07:30:00+00:00"
},
{
"date": "2022-09-22",
"val": 0.5,
"announcement_datetime": "2022-09-22T07:30:00+00:00"
},
{
"date": "2022-06-16",
"val": -0.25,
"announcement_datetime": "2022-06-16T07:30:00+00:00"
},
{
"date": "2015-01-15",
"val": -0.75,
"announcement_datetime": "2015-01-15T10:00:00+00:00"
}
]
}
SNB Policy Rate History — From Negative to Positive
The SNB held rates negative from January 2015 until June 2022 — the longest negative rate period of any G10 central bank. The combination of negative rates and FX intervention was the core CHF-weakening strategy. The rate normalisation cycle beginning in 2022 coincided with a sharp decline in FX purchases and a drawdown in the sight deposit total.
Sight Deposits in Practice: A Signal Framework for CHF Traders
The following framework integrates sight deposits with the broader CHF macro context to help traders identify intervention risk, regime shifts, and positioning opportunities.
Signal 1 — Intervention Active
Condition: Weekly sight deposit increase ≥ CHF 5–8 billion AND EUR/CHF falling (CHF appreciating).
Interpretation: SNB is actively buying foreign currency. CHF short positions face tail risk of sustained SNB opposition. The intervention may persist for several weeks. EUR/CHF downside is capped while this signal is active.
Action: Reduce CHF long exposure or size down, especially if sight deposits are rising for 3+ consecutive weeks.
Signal 2 — Intervention Pausing
Condition: Weekly sight deposit changes flatten to below CHF 2 billion for 2–3 consecutive weeks after a period of rapid accumulation.
Interpretation: SNB is standing aside, possibly because EUR/CHF has recovered to more comfortable levels or the trigger event (risk-off episode) has passed.
Action: CHF appreciation pressure may return if the underlying fundamental driver (safe-haven demand, rate differential) remains. Monitor EUR/CHF for renewed pressure that could restart purchases.
Signal 3 — Regime Inversion (CHF-Positive Stance)
Condition: Weekly sight deposits declining for 4+ consecutive weeks, particularly if accompanied by SNB communication describing CHF as a tool against inflation.
Interpretation: SNB has shifted from CHF-weakening to CHF-supportive or CHF-neutral stance. This is the 2022 regime. The prior decade of intervention logic is inverted.
Action: Fade the systematic CHF-sell bias. The tail risk of intervention-driven snapbacks that characterised 2011–2021 is reduced in this regime.
Building a Sight Deposit Monitor
Combining the weekly sight deposit release with FX spot data enables a practical real-time intervention monitor. The following Python snippet pulls both series and computes the rolling 4-week change in sight deposits alongside EUR/CHF spot:
import requests
import statistics
BASE = "https://fxmacrodata.com/api/v1"
KEY = "YOUR_API_KEY"
def get(path, **params):
r = requests.get(f"{BASE}{path}", params={"api_key": KEY, **params})
r.raise_for_status()
return r.json()["data"]
# Fetch the last 12 weeks of sight deposit data
sd = get("/announcements/chf/sight_deposits", start="2024-01-01")
# Compute weekly and 4-week rolling changes
for i in range(min(8, len(sd) - 4)):
week_chg = sd[i]["val"] - sd[i+1]["val"]
four_wk_chg = sd[i]["val"] - sd[i+4]["val"]
print(
f"{sd[i]['date']} "
f"Level: {sd[i]['val']:>10,.0f} "
f"WoW: {week_chg:>+8,.0f} "
f"4W: {four_wk_chg:>+8,.0f}"
)
What CHF Traders Should Watch in 2025–2026
The SNB completed an easing cycle through 2024–2025, bringing the policy rate down from 1.75% to around 0.25–0.50% as inflation returned to the 0–2% target. With rates near zero again, the SNB is closer to the boundary where negative rates become a policy option once more — and by extension, where the FX intervention toolkit could be reactivated more aggressively.
The key tensions to monitor:
- EUR/CHF direction: A sustained EUR/CHF decline toward 0.92–0.93 historically triggers intervention discussion. The SNB has not articulated an explicit floor since 2015, but its quarterly assessments consistently reference exchange rate valuation as a policy input.
- Global risk-off events: CHF is the premier safe-haven currency alongside JPY and gold. Any significant global stress episode — geopolitical shock, financial market dislocation, or recession scare — tends to generate CHF inflows that the SNB may need to counter. The sight deposit release in the week following any major risk-off event is critical to watch.
- Inflation differential: If Swiss inflation falls further below euro-area inflation, the case for tolerating or encouraging CHF appreciation weakens. Conversely, if euro-area inflation reaccelerates, an appreciating CHF gives Switzerland a relative price advantage that the SNB may be less motivated to suppress.
- Balance sheet capacity: The SNB's FX reserve portfolio has been gradually declining from its 2021 peak. The rate of decline — visible in the monthly fx_reserves data — gives a sense of whether the SNB is running down the portfolio actively or simply allowing it to shrink through valuation effects.
CHF Signal Dashboard — Key Indicators at a Glance
A composite view of the five key CHF intervention signals: sight deposit trend, EUR/CHF level, policy rate proximity to zero, FX reserve trajectory, and global risk appetite. When multiple signals align, intervention risk rises sharply.
Accessing CHF Data with FXMacroData
FXMacroData surfaces the full CHF intervention toolkit through a consistent REST API. All the signals described above — weekly sight deposits, monthly balance sheet, monthly FX reserves, and the policy rate history — are available from a single endpoint family with the same response schema.
Key CHF endpoints for intervention monitoring:
- sight_deposits — weekly SNB Girokonto balances, the primary intervention signal (CHF millions)
- snb_balance_sheet — monthly total SNB assets, the cumulative intervention measure (CHF millions)
- fx_reserves — monthly official foreign exchange reserves, the asset-side counterpart (CHF millions)
- policy_rate — SNB quarterly policy rate decision, providing the rate context for the FX stance
- inflation — monthly Swiss CPI, for assessing whether the SNB is in CHF-tolerating or CHF-suppressing mode
- trade_weighted_index — NEER index measuring CHF's broad competitiveness, the SNB's preferred exchange rate gauge
All endpoints follow the same request structure:
curl "https://fxmacrodata.com/api/v1/announcements/chf/{indicator}?api_key=YOUR_API_KEY&start=YYYY-MM-DD"
For a complete CHF intervention dashboard in Python:
import requests
from datetime import date, timedelta
BASE = "https://fxmacrodata.com/api/v1"
KEY = "YOUR_API_KEY"
START = (date.today() - timedelta(days=730)).strftime("%Y-%m-%d")
def get(path, **params):
r = requests.get(f"{BASE}{path}", params={"api_key": KEY, **params})
r.raise_for_status()
return r.json()["data"]
# Pull all key CHF intervention signals
sight_deposits = get("/announcements/chf/sight_deposits", start=START)
balance_sheet = get("/announcements/chf/snb_balance_sheet",start=START)
fx_reserves = get("/announcements/chf/fx_reserves", start=START)
policy_rate = get("/announcements/chf/policy_rate", start=START)
inflation = get("/announcements/chf/inflation", start=START)
# Quick intervention risk assessment
latest_sd = sight_deposits[0]["val"]
prior_sd = sight_deposits[1]["val"]
wow_change = latest_sd - prior_sd
four_wk_chg = latest_sd - sight_deposits[4]["val"] if len(sight_deposits) > 4 else None
print(f"Sight deposits: {latest_sd:,.0f} mn CHF")
print(f"WoW change: {wow_change:+,.0f} mn CHF")
if four_wk_chg is not None:
print(f"4-week change: {four_wk_chg:+,.0f} mn CHF")
print(f"Policy rate: {policy_rate[0]['val']}%")
print(f"Latest CPI: {inflation[0]['val']}% YoY")
if wow_change > 8000:
print("\n⚠ Intervention signal: Large weekly inflow (>CHF 8bn) — SNB likely active")
elif wow_change > 3000:
print("\n⚡ Watch zone: Moderate inflow — monitor EUR/CHF direction for confirmation")
elif wow_change < -3000:
print("\n✓ CHF-supportive regime: SNB drawing down deposits — likely selling FX reserves")
else:
print("\n– No active signal: Normal operating variance")