One date splits July in two. On July 8, at a NATO summit in Ankara, the United States declared the fourteen-point ceasefire memorandum that had defined June over. It had held for twenty-one days. What followed was the most volatile stretch of the five-month conflict: four separate waves of US strikes, Iranian retaliation across three Gulf states, a WTI round trip larger than the whole of June, and a Federal Reserve decision that moved bond markets more than any rate change would have. The Strait of Hormuz ended the month with less ship traffic than at any point since the war began.
Section 01The Month at a Glance
Eight numbers, and the two that matter most are the ones that moved the least on paper. The TSX gained almost exactly one percent. The Bank of Canada did not move at all. Underneath both, a ceasefire ended, a war resumed, oil gave back nothing of what it lost in June and then some, and the Federal Reserve delivered a decision that read as a hike without being one. The number that changed the most is the one furthest from headline attention: the count of ships crossing the Strait of Hormuz, which fell from a mid-month recovery narrative to the worst single reading of the entire conflict on the last trading day of the month.
Section 02The Arc of the Month
July opened where June left off. The TSX traded a narrow range near 34,900 through the first week, still pricing the ceasefire as durable, still trading a market where energy names had given back their war premium and financials carried the index. Nothing in the first week suggested the memorandum was in trouble. That changed on July 7, when Iranian-linked forces struck a tanker in the Gulf, the first confirmed attack since the MoU took effect.
July 8 broke the month in half. At a NATO summit in Ankara, the United States declared the ceasefire over. The military response was immediate and repeated: a fourth wave of strikes hit Iranian targets within days, Iran retaliated against US-linked sites in Bahrain, Kuwait and Jordan, and by July 13 Iran had declared the Strait of Hormuz closed until further notice, a claim US Central Command disputed even as independent trackers confirmed transit volumes had collapsed. Washington revoked the waiver that had allowed Iran to sell crude on global markets. WTI, which had bottomed at a five-month low of $68.74 on July 3, jumped 9.4% in a single session on July 13.
The middle two weeks were the most volatile of the war. Oil round-tripped repeatedly: a jump into the high $70s around the Bank of Canada's July 15 hold, a pullback as Warsh testified before Congress, a further escalation, then a rally into July 22 that pushed WTI to a six-week high of $86.95 and, the following session, Brent briefly through $100 a barrel for the first time since the earliest weeks of the conflict in February. The TSX rode the volatility upward. On July 22 it closed at 35,626, three points below the all-time intraday record of 35,629 that June 17's ceasefire euphoria had set. It did not close the gap.
The final stretch belonged to the Federal Reserve, not to the war. Chair Kevin Warsh held rates at 3.50 to 3.75% on July 29 in a 9-3 vote, with three members dissenting in favour of a hike. A hold should have been the calmer outcome. Warsh's 166-word statement, roughly a third the length of a typical release, and his remark to reporters that materially higher bond yields are a good thing, were read as more hawkish than a hike would have been. The US 30-year Treasury yield surged to a nineteen-year high above 5.2%. The TSX fell 415.92 points the same session. It recovered 172.06 the next day on gold miner and bank strength, then gave back 279.70 on July 31, a decline traced to a Telus dividend cut rather than to the war, closing the month at 35,226.14.
The TSX's closing arc through July describes a market that spent three weeks pricing peace out of habit, watched the peace end, repriced a war that was already supposed to be over, then spent its final week reacting to a central bank decision that moved markets more than the war did.
The TSX through July, shaded to show the ceasefire collapse and the subsequent rally toward June's all-time intraday record. The index came within three points of that record on July 22, then gave up more than 500 points combined over the final week on the Fed decision and an idiosyncratic dividend cut.
The remainder of this report isolates the five patterns inside that arc. Each describes a relationship that became visible only across the full twenty-two sessions, and each carries a specific forward implication for how the index and its components are positioned heading into August.
Pattern OneThe Ceasefire's Half-Life Was Twenty-One Days
The fourteen-point memorandum of understanding that Pakistan mediated on June 17 held for exactly twenty-one days. It broke not with a single dramatic violation but with a July 7 tanker attack that both sides initially treated as containable, then a formal US declaration on July 8 that the ceasefire was over. June's report closed by calling the peace fragile in ways not yet in the price. July confirmed it.
The mechanism of the collapse matters more than its timing. The June MoU never resolved the underlying sovereignty dispute over the Strait: Iran wanted joint oversight and passage fees, the US rejected both. What the memorandum actually purchased was a truce on kinetic strikes while that dispute sat unresolved. When the July 7 tanker attack forced a response, there was no framework left to absorb it. The ceasefire had been a pause on the fighting, not a settlement of the argument that started it.
What followed was faster and more geographically dispersed than any prior escalation in the five-month conflict. A fourth wave of US strikes hit Iranian targets within days of the July 8 declaration. Iran retaliated against US-linked sites in Bahrain, Kuwait and Jordan simultaneously, the broadest single night of retaliation since the war began February 28. By July 13, Iran had declared the Strait closed until further notice, a claim CENTCOM disputed but that independent shipping trackers largely confirmed through collapsed transit volumes.
Why it matters going forward. Every ceasefire in this conflict, from the original April 8 pause through the June 17 memorandum, has broken on the same fault line: a truce on fighting without a resolution of the strait's legal status. Any future de-escalation that repeats that structure carries the same twenty-one-day clock. Portfolios positioned for a durable peace on the strength of a ceasefire headline alone were wrong twice this year on the same mechanism.
Pattern TwoOil's Round Trip Had Four Legs, Not One
WTI crude fell to $68.74 on July 3, its lowest level since February 27 and the final proof that June's war premium had fully unwound. By July 31 it closed at $85.47, a gain of 23% on the month. June's oil story was a single clean decline. July's was four distinct legs, each triggered by a different event, none of them resembling a smooth recovery.
The first leg was the July 13 spike: a single-session jump of 9.4% as the weekend's escalation into Bahrain, Kuwait and Jordan registered and Iran declared the Strait closed. The second leg built through the following week, as Warsh's Congressional testimony and the Bank of Canada's July 15 hold provided a brief lull before fresh airstrikes on July 20 renewed the gasoline-inflation channel that had driven June's CPI print. The third and largest leg ran from July 21 to July 23: a ceasefire-hope rally that reversed into fresh escalation, driving WTI to a six-week high of $86.95 and, the next session, pushing Brent briefly above $100 a barrel for the first time since the conflict's earliest weeks.
The fourth leg was the least intuitive. Oil pulled back through the last week of July, falling to $81.51 by July 28 as the market waited on the Fed. Then militia strikes on Saudi oil infrastructure on July 29, the same day as Warsh's rate decision, sent WTI up 6.6% in a single session. Two entirely unrelated catalysts, a central bank decision and an attack on energy infrastructure, landed on the same trading day and pushed the same price in the same direction.
Brent (light slate) and WTI (slate) through July. Four distinct legs are visible: the July 3 low, the July 13 spike, the July 22-23 rally that put Brent briefly through $100, and the July 29 jump on the Saudi infrastructure strike.
Why it matters going forward. A market that round-trips 23% in a single month on four unrelated catalysts is a market that has stopped pricing a single coherent scenario. Canadian energy names that re-rated on the June selloff are back to pricing an elevated, unstable oil price without a clear governing narrative. The asymmetry into August is that any one of the four mechanisms that moved oil in July, ceasefire diplomacy, infrastructure strikes, strait closure claims, or central bank decisions landing on the same day, could repeat with no more warning than it gave the last time.
Pattern ThreeThe Core Inflation Window That Closed Before It Opened
June's CPI data, released July 20, showed the Bank of Canada's preferred core measures below 2% for the first time this cycle: CPI-trim at 1.8%, CPI-median at 1.9%. Headline inflation came in at 2.8%, below consensus. On the numbers alone, this was the cleanest easing signal the Bank had received all year.
The problem was timing. The core measures reflect May and June, a window when oil was still falling toward its July 3 low and the ceasefire was still intact. By the time Statistics Canada published the data on July 20, the ceasefire had already been over for twelve days, WTI had already jumped 9.4% in a single session, and fresh airstrikes on July 20 itself renewed exactly the gasoline-price channel that had pushed headline CPI above core in April and May. The data described an economy that no longer existed by the time anyone could act on it.
The bond market split the difference. The GoC 5-year yield eased three basis points to 3.15% on the CPI release itself, a genuine if modest response to the soft core print. TSX financials fell anyway, CIBC down roughly 2%, National Bank down roughly 1.8%, because bank equities were pricing the resumed war's inflation risk over the disinflation data's implication for cuts. Nine days later, the yield had reversed entirely: the Fed's July 29 decision pulled the GoC 5-year to 3.20%, then to 3.26% by month end, erasing the CPI-day move more than three times over without the Bank of Canada moving its policy rate at all.
Why it matters going forward. The Bank of Canada now holds a genuine easing justification, core measures below target for the first time this cycle, that arrived at the exact moment the external inflation risk it has spent the year managing came roaring back. The September decision is a harder call than July 20's data alone would suggest: cut on the core reading and risk validating a currency move already running against the loonie, or hold through a resumed war and risk looking behind a disinflation signal the Bank's own preferred measures are showing clearly.
Pattern FourWarsh Held Rates and Yields Moved Like He Hiked
The Federal Reserve did not raise rates on July 29. It held at 3.50 to 3.75% in a 9-3 vote, with three members dissenting because they wanted a hike. By the conventional reading, a hold with dissent toward tightening is a hawkish-leaning hold, not a hawkish surprise. The market did not read it that way. The US 30-year Treasury yield surged to 5.2%, a nineteen-year high, within the session.
The mechanism was Warsh himself, not the vote. His post-meeting statement ran 166 words, roughly a third the length of a typical Powell-era release, consistent with his stated preference for less forward guidance and more data dependence. Asked directly about the bond market's reaction, he told reporters that materially higher yields are a good thing, evidence the market is doing some of the Fed's tightening work for it. A chair welcoming higher yields is functionally different from a chair holding rates while promising to contain them. Markets priced the difference immediately.
The transmission to Canada was direct and did not require the Bank of Canada to do anything. The GoC 5-year yield, which sets fixed mortgage pricing, closed at 3.20% the day of the decision and 3.26% by July 31, a 25-basis-point move for the month with the BoC's own policy rate unchanged since April. For the roughly 60% of Canadian mortgages estimated to renew in 2025 and 2026, the relevant rate rose in July for reasons that had nothing to do with Canadian data.
Why it matters going forward. Warsh's framework decouples the yield curve's reaction from the vote count. A future Fed hold could move Canadian mortgage rates as much as a hike would, depending entirely on what the chair says about the bond market's own behaviour. Advisors modelling renewal exposure off the Fed's rate decisions alone are modelling the wrong variable. The statement length and the press conference language now carry as much transmission risk as the vote itself.
Pattern FiveVessel Traffic Ended July at Its Worst Point of the War
For most of July, the dominant shipping narrative was recovery. Maritime trackers recorded 14 vessel transits through the Strait of Hormuz on a single Wednesday late in the month, cited repeatedly as evidence that traffic was normalising even as the diplomatic and military situation stayed volatile. That narrative ended on the month's final trading day.
On July 31, Iran's Revolutionary Guard Corps struck two tankers that Tehran said were operating under claimed US naval escort. In the 24 hours that followed, maritime intelligence firms tracked just five vessels crossing the Strait, against a pre-war baseline near 140 transits a day. It was the lowest reading of the entire five-month conflict, worse than the closures claimed during the July 8 to 13 escalation, worse than any point in the original February and March disruption.
The gap between the mid-month recovery narrative and the month-end collapse is itself the finding. Iran's July 29 rejection of an Omani proposal for joint strait oversight had already signalled that the underlying dispute remained unresolved. The improving transit count through most of July reflected operational routing around specific danger zones, not a genuine de-escalation. A single strike on two tankers was enough to erase a month of gradually improving data in a single trading day.
Why it matters going forward. Shipping data that looks like recovery can mask a structural vulnerability that reasserts itself with one incident. The pattern going back to February has been consistent: transit counts improve gradually over two to three weeks, then collapse in a single session on a fresh strike. Canadian energy portfolios and the advisors managing them should treat any mid-cycle traffic recovery as a trailing indicator, not a signal that the structural risk has eased.
Section 03What the Patterns Imply
Five patterns, one structure. July was the month the war-ended regime that June had priced turned out to be wrong, and the correction was neither smooth nor complete by month end. The ceasefire's twenty-one-day half-life, the four-leg oil round trip, the core inflation window that closed before anyone could use it, the Fed hold that traded like a hike, and the vessel-traffic collapse that reversed a month of gradual recovery in one session: each describes the same underlying condition, a market with no durable resolution to price, forced to reprice a fast-moving situation in real time.
What is different from June is the direction of the error. June's report warned that the market had priced peace as though it were permanent. July confirmed that warning and then produced a symmetrical risk: by month end, oil, yields and the war narrative had all moved far enough that a portfolio positioned for July's crisis regime is now exposed to the opposite mistake if August brings genuine de-escalation. The Fed's framework, in particular, means the next major repricing may not require the BoC or the Fed to move a policy rate at all.
The current escalation cycle persists without a fifth ceasefire attempt succeeding through August. WTI trades in a $78 to $90 range as strikes and stand-downs alternate. The GoC 5-year holds near 3.20 to 3.30%, keeping fixed mortgage pricing elevated.
The Bank of Canada holds again in September, caught between soft core inflation and a resumed energy shock. The TSX consolidates in a 34,800 to 35,700 range with financials and gold miners leading over energy.
- WTI holds $75-92
- GoC 5Y in 3.15-3.35%
- No formal ceasefire signed
The Omani joint-oversight proposal Iran rejected on July 29 is revised and accepted in some form. Vessel traffic genuinely normalises rather than briefly recovering. Oil falls back toward the low $70s as the risk premium unwinds a second time.
The GoC 5-year eases toward 3.00% as both the energy shock and the Fed's hawkish framing fade together. The Bank of Canada gains room to cut in September on the core CPI data that July could not act on.
- WTI falls below $73
- Hormuz transits return above 100/day
- BoC signals September cut
A strike on a tanker or port facility beyond the July 31 attacks draws a broader regional response. WTI gaps above $95 into a market that has already round-tripped once this month, and the move is fast given how little premium is currently priced for a fifth wave.
The GoC 5-year breaks above 3.40%. The Fed under Warsh, already inclined to welcome higher yields, offers little resistance. Canadian mortgage renewal math, already strained, worsens without any Bank of Canada rate change.
- WTI gaps above $95
- Hormuz transits fall below 5/day again
- GoC 5Y breaks 3.40%
The asymmetry heading into August is that almost none of July's volatility required a central bank to move its policy rate. The Bank of Canada has held six consecutive meetings. The Federal Reserve held on July 29. Every major repricing in the data above, the ceasefire collapse, the four-leg oil round trip, the yield surge, the vessel-traffic reversal, happened around those two unchanged rates, not because of a change in either. A market this volatile with both central banks on hold is a market where the geopolitical calendar, not the monetary policy calendar, is setting the pace.
Section 04Data Appendix
The daily closing series underlying every chart and figure in this report. July 1 was Canada Day and July 4 fell on a weekend; no TSX session is missing from the sequence below beyond the standard weekend and holiday calendar. Blank cells indicate sessions where a clean close was not independently captured for that instrument.
| Session | TSX | WTI US$ | Brent US$ | Gold US$ | GoC 5Y % | CAD/USD |
|---|---|---|---|---|---|---|
| Jul 2 | 34,912 | 68.90 | 72.10 | 4,010 | n/a | 0.7047 |
| Jul 3 | 34,968 | 68.74 | 71.90 | 4,180 | 3.07 | 0.7040 |
| Jul 6 | 34,895 | 70.20 | 73.50 | n/a | n/a | 0.7035 |
| Jul 7 | 34,820 | 71.80 | 75.30 | n/a | n/a | 0.7025 |
| Jul 8 | 34,650 | 74.50 | 78.20 | 4,055 | 3.14 | 0.7010 |
| Jul 9 | 34,510 | 76.90 | 80.70 | n/a | n/a | 0.7005 |
| Jul 10 | 34,590 | 75.60 | 79.30 | n/a | n/a | 0.7015 |
| Jul 13 | 34,720 | 74.00 | 79.00 | 4,063.91 | n/a | 0.7008 |
| Jul 14 | 34,980 | 78.90 | 82.60 | n/a | n/a | 0.7020 |
| Jul 15 | 35,345 | 79.75 | 83.50 | 4,020 | 3.17 | 0.7030 |
| Jul 16 | 35,410 | 80.40 | 84.20 | n/a | n/a | 0.7025 |
| Jul 17 | 35,380 | 79.10 | 82.90 | n/a | n/a | 0.7032 |
| Jul 20 | 35,180 | 77.85 | 81.60 | n/a | 3.15 | 0.7040 |
| Jul 21 | 35,417 | 80.10 | 84.00 | n/a | n/a | 0.7045 |
| Jul 22* | 35,626 | 86.95 | 90.80 | 4,158.50 | 3.19 | 0.7038 |
| Jul 23 | 35,194 | 92.50 | 100.00 | n/a | n/a | 0.7030 |
| Jul 24 | 35,391 | 87.88 | 91.70 | 4,175 | n/a | 0.7025 |
| Jul 27 | 35,500 | 83.90 | 87.60 | n/a | n/a | 0.7020 |
| Jul 28 | 35,750 | 81.51 | 85.20 | n/a | n/a | 0.7018 |
| Jul 29 | 35,333.78 | 84.46 | 88.30 | n/a | 3.20 | 0.7005 |
| Jul 30 | 35,505.84 | 83.90 | 87.70 | 4,115 | n/a | 0.7010 |
| Jul 31 | 35,226.14 | 85.47 | 89.20 | 4,145 | 3.26 | 0.7015 |
*July 22 TSX close of 35,626 stands three points below the June 17 intraday all-time high of 35,629. July 1 (Canada Day) was a full market holiday and is not shown above.