Just to synthesize the other two answers together a bit and "join-the-dots".
Setting the Scene
Since 2011 SNB had decided that it wanted to prevent the CHF from strengthening past 1.2 CHF per EUR. In order to do this it had to do either or both of:
- Discourage people from buying CHF. One way to try do this is to keep rates low.
- Sell CHF by the bucket load.
Keeping rates low at the short end is easy enough - that's the base rate. But that was scuppered by the low EUR short rates. Keeping rates low at the long end is trickier, but can be done by not issuing too many bonds.
Selling CHF is fine, but that means buying other currencies. By the end of December the SNB had bought 85% of GDP worth of foreign currencies.
At this point the SNB decided that it did not want to keep expanding the balance sheet. Why it decided this is a different question (as the question points out). The question is how to end a cap once you hold a huge Euro position.
The Sudden Act
Once the SNB had decided it could not defend the cap, it had three ways it could act.
- Stop supporting the cap, but not tell anyone
- Tell people at the same time that it stops supporting the cap
- Tell people before it stops supporting the cap (or as in your example, schedule a reducing cap).
The third case would have almost certainly bankrupted the SNB. If they had, as you suggest, let everyone know in advance what was going to happen, then everyone in the world would just arbitrage the situation into the ground. Everyone would just buy CHF from the SNB at the cheap rate while they support the cap, and sell as soon as the cap is dropped.
The first case is a little dishonest, and would almost certainly get found out (the worst kind of dishonesty!). As soon as they stopped supporting the cap, the FX rate would drift slowly down from 1.2. Once people realised that this was not "supposed to happen" and therefore the SNB must have stopped defending it, then it would probably snap anyway. There are two dubious plus sides to this approach I see though
- The SNB could have started offloading some of its 85% holdings before the market realised. This is called front running and market abuse, and would land a stock trader in jail, but for a central bank trading FX, it would not technically come under any legal challenge (at the moment...).
- The reputational damage to the SNB would be huge, which would go some way to undermine investment in the country, causing a weakening in the CHF!
As you can see this would be a rather dubious strategy, but I have often wondered if Thomas Jordan (chairman of SNB) could simply address the world with underpants on his head and his willy hanging out as a way to depress the CHF.
The strategy they opted for was the "ripping off a bandaid" style. The sudden shock is estimated to have cost the SNB about 13% of GDP due to all those foreign holdings. Since the SNB made a massive profit in 2014 (see: http://www.bloomberg.com/news/2015-01-09/snb-sees-2014-profit-of-38-billion-francs-resumes-dividend.html) it probably saw this as an opportunity to get out before things got any worse. Hold out longer and have 100+% GDP in foreign currency, and the bank might not have survived the jolt itself.