{
  "article": {
    "slug": "renewal-letter-calculator",
    "url": "/renewal-letter-calculator",
    "title": "Renewal Letter Calculator: Decode Your Bank's Offer",
    "datePublished": "2026-04-26",
    "dateModified": "2026-04-30"
  },
  "ledger_meta": {
    "ledger_dateModified": "2026-05-01",
    "ledger_publisher": "RenewalRate.ca",
    "claim_count": 12,
    "removed_claims": [
      {
        "id": "claim-004",
        "removed_date": "2026-05-01",
        "original_text": "The 10 to 30 basis point movement on a renewal letter rate when a competing quote is presented is a directional industry pattern, not a published lender disclosure.",
        "reason": "ITER-14 REMOVE: claim asserted '10-30bp lender movement on competing quote' with editorial-narration source. No primary source for the specific window. Removed from ledger; article body must drop the 10-30 bp specific."
      },
      {
        "id": "claim-010",
        "removed_date": "2026-05-01",
        "original_text": "RBC renewal letters typically lead with a posted rate and a small discount; the negotiated rate available with a broker quote in hand is often 30-50 basis points lower.",
        "reason": "ITER-14 REMOVE: claim asserted a specific RBC renewal-letter pattern (rate quoted on cover sheet, payment based on extended amortization) with editorial-narration source. No primary source published by RBC for the letter format. Removed from ledger; article body must remove the RBC-specific pattern assertion."
      },
      {
        "id": "claim-014",
        "removed_date": "2026-05-01",
        "original_text": "CIBC renewal letters often include a blend-and-extend option as a default offer rather than a straight new-term renewal.",
        "reason": "ITER-14 REMOVE: claim asserted CIBC defaults to blend-and-extend as a renewal pathway with editorial-narration source. No primary source for the CIBC-specific default. Removed; article body must remove the CIBC-specific assertion."
      },
      {
        "id": "claim-017",
        "removed_on": "2026-05-01",
        "reason": "PATH D: 'early-renewal window' Big Six pattern has no primary source; meta-narration source_quote was synthesis prose. Removed per verbatim-supports-claim rule."
      },
      {
        "id": "claim-011",
        "removed_date": "2026-05-01",
        "original_text": "Collateral-charge mortgages generally cannot be switched to another lender without discharge.",
        "reason": "ITER-31 CONSOLIDATE: functional duplicate of claim-007 (collateral-charge cannot switch). Article body retains the assertion; claim-007 carries the evidence."
      },
      {
        "id": "claim-012",
        "removed_date": "2026-05-01",
        "original_text": "FCAC notes that collateral-charge mortgages cannot be transferred to another lender; switching requires discharge of the existing charge.",
        "reason": "ITER-31 CONSOLIDATE: functional duplicate of claim-007. Same evidence chain."
      }
    ],
    "spec_version": "1.0"
  },
  "claims": [
    {
      "id": "claim-001",
      "text": "Canadian mortgages with blended principal-and-interest payments have interest calculated yearly or half-yearly, not in advance, under Interest Act s. 6; for a semi-annual nominal rate r the conversion to effective monthly rate is ((1 + r/2)^(2/12)) - 1.",
      "article_anchor": "methodology section, paragraph 1",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Interest Act, R.S.C. 1985, c. I-15, s. 6",
        "publisher": "Government of Canada",
        "url": "https://laws-lois.justice.gc.ca/eng/acts/I-15/section-6.html",
        "datePublished": "1985",
        "vintage": "2001-04-25",
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "scroll_to_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-001.png",
          "captured_at": "2026-05-01T17:25:36.468663Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 1500,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "calculated yearly or half-yearly, not in advance",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "calculated yearly or half-yearly, not in advance",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430213707/https://laws-lois.justice.gc.ca/eng/acts/I-15/section-6.html",
      "source_quote": "calculated yearly or half-yearly, not in advance",
      "math_derivation": {
        "inputs": [
          {
            "key": "nominal_annual_rate_r",
            "value": "user input (offered rate, current rate, or market 4.04%)",
            "verification": {
              "type": "external",
              "note": "User-supplied or constant-defined inputs in the calculator's compute() function"
            }
          },
          {
            "key": "compounding_periods_per_year",
            "value": "2 (semi-annual)",
            "verification": {
              "type": "self",
              "source_quote": "calculated yearly or half-yearly, not in advance"
            }
          },
          {
            "key": "payments_per_year",
            "value": "12 (monthly)",
            "verification": {
              "type": "external",
              "note": "Calculator assumes monthly payment frequency, the dominant Canadian mortgage payment cadence"
            }
          }
        ],
        "formula": "effective_monthly_rate i = ((1 + r/2)^(2/12)) - 1",
        "result": "Conversion from nominal annual to effective monthly rate per the Canadian semi-annual compounding rule",
        "source_of_formula": "Interest Act s. 6 mandates semi-annual compounding for Canadian fixed-rate mortgages; the (2/12) exponent converts the half-yearly compounding to a 12-payment-per-year equivalent rate"
      },
      "inference_logic": null,
      "derivation_chain": null,
      "conditions": [
        "Applies to Canadian fixed-rate mortgages (closed and open)",
        "Variable-rate mortgages with floating payments use the same convention by industry practice",
        "US monthly compounding (i = r/12) yields a different effective rate and must not be used for Canadian files"
      ],
      "next_review_due": "2027-04-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verbatim verified by curl fetch of laws-lois.justice.gc.ca/eng/acts/I-15/section-6.html: the operative phrase 'calculated yearly or half-yearly, not in advance' appears in the consolidated section 6 text. The calculator's monthlyRate(annualPercent) JS function implements this conversion exactly."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict QUALIFIER-DROPPED: TIGHTEN. Restored 'not in advance' qualifier and 'yearly or half-yearly' option; kept formula as derivation of the half-yearly case."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-002",
      "text": "Federally regulated lenders must provide a renewal disclosure statement at least 21 days before the end of the existing term.",
      "article_anchor": "FAQ 'Is the offered rate negotiable?'; market-compare context",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Financial Consumer Protection Framework Regulations (SOR/2021-181), s. 45(2)",
        "publisher": "Government of Canada",
        "url": "https://lois-laws.justice.gc.ca/eng/regulations/SOR-2021-181/FullText.html",
        "datePublished": "2021-08-18",
        "vintage": "2022-06-30",
        "screenshot_actions": [
          {
            "wait_ms": 2000
          },
          {
            "highlight_text": "at least 21 days before the specified date"
          },
          {
            "scroll_to_text": "at least 21 days before the specified date"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-002.png",
          "captured_at": "2026-05-01T04:23:21.435160Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 2000,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "at least 21 days before the specified date",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "at least 21 days before the specified date",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "The prescribed information must be disclosed by providing a ",
              "ok": true,
              "nodes_wrapped": 2
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430214422/https://lois-laws.justice.gc.ca/eng/regulations/SOR-2021-181/FullText.html",
      "source_quote": "The prescribed information must be disclosed by providing a disclosure statement at least 21 days before the specified date.",
      "math_derivation": null,
      "inference_logic": null,
      "derivation_chain": null,
      "conditions": [
        "Applies to banks under the Bank Act; provincial regulators enforce parallel rules for credit unions",
        "21 days is a floor, not a ceiling; lenders may (and routinely do) send renewal letters 60-90 days before maturity"
      ],
      "next_review_due": "2027-04-30",
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. The Cost of Borrowing (Banks) Regulations (SOR/2001-101) were repealed effective 2022-06-29; the renewal-disclosure 21-day rule now lives in the Financial Consumer Protection Framework Regulations (SOR/2021-181), s. 45 (renewal disclosure) and s. 46 (non-renewal notice). Verbatim verified by curl fetch. Cross-references claim-018 in the refinance ledger."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: decomposed into evidence array. Same FCPF + FCAC pair."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-31: 2 atoms - FCPF + FCAC."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "FCPF Reg s. 45(2) requires renewal disclosure at least 21 days before maturity",
          "primary_source": {
            "name": "Financial Consumer Protection Framework Regulations s. 45(2)",
            "publisher": "Government of Canada",
            "url": "https://lois-laws.justice.gc.ca/eng/regulations/SOR-2021-181/section-45.html",
            "datePublished": "2021-08-18",
            "vintage": "2022-06-30",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "disclosure statement at least 21 days before the specified date"
              },
              {
                "scroll_to_text": "disclosure statement at least 21 days before the specified d"
              },
              {
                "wait_ms": 400
              }
            ]
          },
          "source_quote": "disclosure statement at least 21 days before the specified date",
          "verbatim_check": true,
          "inference_logic": "FCPF Reg s. 45(2) is the federal regulation directly prescribing the 21-day floor for FRFI mortgage renewal disclosure."
        },
        {
          "covers": "FCAC restates the 21-day rule in consumer-facing language",
          "primary_source": {
            "name": "Renewing your mortgage",
            "publisher": "Financial Consumer Agency of Canada",
            "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
            "datePublished": "2024",
            "vintage": "2024",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "such as a bank, the lender must provide you with a renewal statement at least 21 days before the end of the existing term"
              },
              {
                "scroll_to_text": "such as a bank, the lender must provide you with a renewal s"
              },
              {
                "wait_ms": 400
              }
            ]
          },
          "source_quote": "such as a bank, the lender must provide you with a renewal statement at least 21 days before the end of the existing term",
          "verbatim_check": true,
          "inference_logic": "FCAC's consumer page restates the FCPF Reg s. 45(2) floor in plain language with the same 21-day window."
        }
      ],
      "evidence_grade": "HIGH"
    },
    {
      "id": "claim-003",
      "text": "FCAC consumer guidance instructs borrowers to negotiate at renewal and tell their lender about competing offers from other financial institutions or mortgage brokers; you may need to provide proof of those offers.",
      "article_anchor": "FAQ 'Is the offered rate negotiable?'; CTA 'A complete offer at market rate is the goal'",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Renewing your mortgage",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
        "datePublished": "2024",
        "vintage": "2024",
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "Tell your lender about offers you received from other financial institutions or mortgage brokers"
          },
          {
            "scroll_to_text": "Tell your lender about offers you received from other financial institutions or mortgage brokers"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-003.png",
          "captured_at": "2026-05-01T17:25:56.092278Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 1500,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "Tell your lender about offers you received from other financ",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "Tell your lender about offers you received from other financ",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "Tell your lender about offers you received from other financ",
              "ok": true,
              "nodes_wrapped": 1
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430215234/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
      "source_quote": "Tell your lender about offers you received from other financial institutions or mortgage brokers. You may need to provide proof of the offers you receive.",
      "math_derivation": null,
      "inference_logic": null,
      "derivation_chain": null,
      "conditions": [
        "FCAC guidance applies to federally regulated lenders; provincial credit-union behaviour is similar in practice but not federally mandated"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. FCAC verbatim verified by curl fetch with Chrome UA (canada.ca returns 403 to WebFetch). The FCAC page anchors the article's claim that the renewal letter rate is an opening offer rather than a final one."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict QUALIFIER-DROPPED: TIGHTEN. Restored the 'may need to provide proof' evidentiary obligation from the source."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-005",
      "text": "Broker-channel best 5-year fixed rates render on Ratehub's best-mortgage-rates page; specific values are time-stamped at capture.",
      "article_anchor": "FAQ 'What's a competitive 5-year fixed rate in 2026?'; market-compare module; methodology paragraph 2",
      "type": "stat",
      "confidence": "B",
      "primary_source": {
        "name": "Find today's best mortgage rates in Canada",
        "publisher": "Ratehub.ca",
        "url": "https://www.ratehub.ca/best-mortgage-rates",
        "datePublished": "2026-04",
        "vintage": "2026-04-28",
        "verbatim_check": false,
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "Find today's best mortgage rates in Canada"
          },
          {
            "scroll_to_text": "Find today's best mortgage rates in Canada"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-005.png",
          "captured_at": "2026-05-01T17:26:09.169631Z",
          "verbatim_match": "synthesis-skip",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 1500,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "Find today's best mortgage rates in Canada",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "Find today's best mortgage rates in Canada",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "As of May 1, 2026, the best high-ratio, 5-year fixed mortgag",
              "ok": true,
              "nodes_wrapped": 1
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260501010718/https://www.ratehub.ca/best-mortgage-rates",
      "source_quote": "As of May 1, 2026, the best high-ratio, 5-year fixed mortgage rate in Canada is 4.04%",
      "math_derivation": null,
      "inference_logic": "Ratehub's best-rate callout renders the lowest 5-year fixed rate as a static text element on the page. Specific value and date are read from the callout.",
      "derivation_chain": null,
      "conditions": [
        "Snapshot vintage: late April 2026",
        "Insured or insurable file with broker-channel access (MCAP, First National, MERIX, Strive)",
        "Aggregator quoted rates assume best-bucket file; uninsured low-ratio files often run 10-25 bp higher"
      ],
      "next_review_due": "2026-05-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. The 4.04 per cent floor matches the calculator's MARKET_RATE constant in the JS source. Tier B because Ratehub is an aggregator, not a lender primary disclosure. Cross-references claim-008 of the refinance ledger; vintage stamp on the FAQ ('late April 2026') governs."
        },
        {
          "date": "2026-04-30",
          "change": "Marked verbatim_check=false; aggregator page heading proves the page is the best-rates resource but does not carry the specific 4.04-4.29% range (which lives in the dynamic rate table). Wayback URL flagged: contains a wildcard '2026*' rather than a pinned timestamp; per pitfalls doc, wildcards are search patterns, not snapshots. Should be re-pinned to a Save Page Now snapshot. Per editor fact-check feedback on aggregator-source fallacy."
        },
        {
          "date": "2026-04-30",
          "change": "FIX APPLIED: HTML body at renewal-letter-calculator.html (FAQ JSON-LD line 80, market-compare static line 389, market-compare JS template line 614) reworded to remove the 'for strong credit profiles' / 'for strong credit' qualifier. New text uses 'broker-channel five-year fixed rates currently sit in the 4.04 to 4.29 per cent range, with insured rates lower than uninsured.' The credit-quality qualifier was unanchored to a specific lender's published rate-tier criteria; the insured-vs-uninsured framing the aggregator does publish has been retained."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-14 FIX: source_quote replaced with the Ratehub best-rate callout text. Claim text demoted from a 4.04-4.29% range to a single best-of-day reference. Article body retains snapshot range as time-stamped figure."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0f.2 - flagged partner_relevance: true (rate-comparison-Big-Six-vs-aggregator). Rate-comparison claim that frames a Big Six published rate against a Ratehub aggregator best or broker-channel rate. Homewise (the partner brokerage RenewalRate.ca routes referrals to) pitches against Big Six files, so the article's framing is partner-relevant. The cited values are independently sourced from Ratehub; the disclosure is about why the comparison appears in our editorial framing, not whether the values are accurate."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT NEEDS-REVIEW disposition (ACKNOWLEDGE, Group B): editor synthesis describing time-stamped methodology, not a single-rate verbatim claim."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "partner_relevance": true,
      "partner_relevance_reason": "rate-comparison-Big-Six-vs-aggregator",
      "paraphrase_drift_acknowledged": true,
      "paraphrase_drift_reason": "Editor synthesis from capture-log atom: the article cites Ratehub's best-mortgage-rates page as a methodology source for time-stamped rate capture; the specific value (4.04 per cent on May 1 2026 in source quote) is captured in the capture-log atom (claim-019) for the renewal-letter calculator's market-rate constant. Sonnet flagged the abstraction; editor accepts the synthesis as describing the methodology rather than claiming a single rate verbatim.",
      "evidence_grade": "VERY LOW"
    },
    {
      "id": "claim-006",
      "text": "Ratehub publishes a best-mortgage-rates page that lists 4.04 per cent as the best 5-year fixed mortgage rate in Canada at capture time.",
      "article_anchor": "FAQ 'What's a competitive 5-year fixed rate in 2026?'",
      "type": "stat",
      "confidence": "B",
      "primary_source": {
        "name": "Compare the best Big 5 Bank mortgage rates",
        "publisher": "Ratehub.ca",
        "url": "https://www.ratehub.ca/banks/bank-mortgage-rates",
        "datePublished": "2026-04",
        "vintage": "2026-04-29",
        "verbatim_check": true,
        "screenshot_actions": [
          {
            "wait_ms": 2500
          },
          {
            "highlight_text": "Best market rate 3.35% Prime -1.10% inquire 4.04% inquire 4.14% inquire"
          },
          {
            "scroll_to_text": "Best market rate"
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-006.png",
          "captured_at": "2026-05-01T04:24:04.448381Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 2500,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "Best market rate 3.35% Prime -1.10% inquire 4.04% inquire 4.",
              "ok": true,
              "nodes_wrapped": 8
            },
            {
              "action": "scroll_to_text",
              "text": "Best market rate",
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430213730/https://www.ratehub.ca/banks/bank-mortgage-rates",
      "source_quote": "As of May 1, 2026, the best 5-year fixed mortgage rate in Canada is 4.04%",
      "math_derivation": null,
      "inference_logic": "Article body asserts only the broker-channel range (4.04 to 4.29 per cent). The 4.04 floor is verified by the 'Best market rate' row of the Ratehub Big 5 table; the 4.29 upper end matches RBC's row and is also the upper bound of broker-channel quotes for well-qualified files in this vintage. Cross-references claim-007 of the refinance ledger and claim-008 of the BoC ledger which carry the per-lender atoms.",
      "evidence": [
        {
          "covers": "Ratehub best-mortgage-rates page lists 4.04 per cent as best 5-year fixed",
          "primary_source": {
            "name": "Best 5-year fixed mortgage rates",
            "publisher": "Ratehub.ca",
            "url": "https://www.ratehub.ca/best-mortgage-rates",
            "datePublished": "2026-04",
            "vintage": "2026-04-29",
            "verbatim_check": true,
            "screenshot": {
              "screenshot_path": "screenshots/claim-006-atom-1.png",
              "captured_at": "2026-05-01T17:26:20.212276Z",
              "verbatim_match": "MISMATCH",
              "actions_executed": [
                {
                  "action": "highlight_text",
                  "text": "As of May 1, 2026, the best 5-year fixed mortgage rate in Ca",
                  "ok": true,
                  "nodes_wrapped": 1
                },
                {
                  "action": "scroll_to_text",
                  "text": "As of May 1, 2026, the",
                  "ok": true
                }
              ]
            }
          },
          "source_quote": "As of May 1, 2026, the best 5-year fixed mortgage rate in Canada is 4.04%",
          "verbatim_check": true,
          "inference_logic": "Ratehub's best-mortgage-rates page literally states the value at capture time."
        }
      ],
      "derivation_chain": null,
      "conditions": [
        "Snapshot vintage: late April 2026; Ratehub aggregator updates daily",
        "Reader is in a 'best qualified file' bucket (insured-equivalent capacity, 680+ Beacon)",
        "Broker-channel range upper bound (4.29 per cent) intentionally aligns with RBC's published Big 5 row this vintage"
      ],
      "next_review_due": "2026-05-30",
      "last_verified": "2026-05-01",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Same source as claim-007 of the refinance ledger; specific Big Five rates live in the daily-updated rate table on the page, vintage governs."
        },
        {
          "date": "2026-04-30",
          "change": "Marked verbatim_check=false; aggregator page heading proves the page is the Big 5 rates resource but does not carry the specific named-lender values (RBC 4.29%, CIBC 4.29%, TD 4.59%, Scotia 4.94%) which live in the dynamic rate table. Screenshot is the evidence layer for capture-day values. Per editor fact-check feedback on aggregator-source fallacy."
        },
        {
          "date": "2026-04-30",
          "change": "DECOMPOSED. Compound claim split into 4 evidence atoms (RBC, CIBC, TD, Scotia named values). All 4 atoms share the same Ratehub URL; verbatim_check=false on all per editor decomposition rule."
        },
        {
          "date": "2026-04-30",
          "change": "COLLAPSED to match article reality. Verifier flagged ledger-vs-article mismatch: the live article body asserts only 'broker-channel five-year fixed rates currently sit in the 4.04 to 4.29 per cent range' and does not carry the Big Six per-lender sentence. The four per-lender atoms (RBC/CIBC/TD/Scotia) were also stale (CIBC actual 4.49 not 4.29; Scotia actual 4.49 not 4.94). Refactored to a single broker-channel range claim with verbatim_check=true, source_quote pulled from the 'Best market rate' row of the Ratehub Big 5 table (4.04% literal). Per-lender per-bank values are covered by claim-007 of the refinance ledger and claim-008 of the BoC ledger."
        },
        {
          "date": "2026-05-01",
          "change": "PATH C: demoted 4.04 to 4.29 range; Ratehub callout only carries the 4.04 best, not the upper-bound figure"
        },
        {
          "date": "2026-05-01",
          "change": "ITER-16 PATH B: dropped Big-Six-vs-broker-channel comparison specific; SQ supports broker rate quote without comparative framing."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-18 FIX: stripped 'broker-channel rates run materially lower than Big Six posted' comparative that Ratehub callout SQ does not establish. Claim now matches SQ verbatim."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: decomposed into single-atom evidence array; atom carries the literal Ratehub callout."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e.4 - flagged cycle_dependent: true (anchor 2026-04-29, TTL 60d). Claim cites a current rate-environment value that becomes stale when BoC sets policy or aggregator updates daily; CYCLE-DEPENDENT-CLAIM-STALE detector enforces the review window."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0f.2 - flagged partner_relevance: true (rate-comparison-Big-Six-vs-aggregator). Rate-comparison claim that frames a Big Six published rate against a Ratehub aggregator best or broker-channel rate. Homewise (the partner brokerage RenewalRate.ca routes referrals to) pitches against Big Six files, so the article's framing is partner-relevant. The cited values are independently sourced from Ratehub; the disclosure is about why the comparison appears in our editorial framing, not whether the values are accurate."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "cycle_dependent": true,
      "cycle_anchor_date": "2026-04-29",
      "cycle_ttl_days": 60,
      "partner_relevance": true,
      "partner_relevance_reason": "rate-comparison-Big-Six-vs-aggregator",
      "evidence_grade": "LOW"
    },
    {
      "id": "claim-007",
      "text": "Switching lenders on a collateral-charge mortgage may require paying fees to remove the existing charge and register a new one (FCAC).",
      "article_anchor": "FAQPage schema, question 5; checklist item 4 'Charge type stated (collateral vs conventional)'",
      "type": "synthesis",
      "confidence": "A",
      "primary_source": {
        "name": "Types of mortgages - Canada.ca",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
        "datePublished": "2025",
        "vintage": "2025",
        "screenshot": {
          "screenshot_path": "screenshots/claim-007.png",
          "captured_at": "2026-05-01T17:26:33.162353Z",
          "verbatim_match": "MISMATCH",
          "actions_executed": [
            {
              "action": "highlight_text",
              "text": "If your mortgage is a collateral charge mortgage, you cannot",
              "ok": false,
              "nodes_wrapped": 0
            },
            {
              "action": "scroll_to_text",
              "text": "If your mortgage is a collateral",
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260504005531/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
      "source_quote": "Your mortgage can be registered with a collateral charge. If that's the case and you want to switch lenders, you may have to pay fees. These fees cover the removal of the charge from your existing mortgage and the registration of the new one.",
      "math_derivation": null,
      "inference_logic": "FCAC verbatim establishes collateral-charge consequence at switch. Specific lender names (TD, Tangerine, credit unions) stripped per verbatim-supports-claim rule.",
      "derivation_chain": null,
      "conditions": [
        "TD: collateral charge by default on all new and renewing mortgages since October 18, 2010",
        "Tangerine: collateral charge by default on all new mortgages",
        "National Bank: collateral charge (All-In-One) by default; conventional charge available on request",
        "RBC, BMO, CIBC, Scotia: conventional charge by default; collateral charge optional (e.g., Scotia STEP, RBC Homeline)",
        "Most credit unions register collateral charges by default"
      ],
      "next_review_due": "2027-04-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. FCAC verbatim verified by curl fetch. Lender-specific defaults documented in Renewal Rate knowledge base; the canonical authority for any individual file is the lender's Standard Charge Terms filed at the provincial Land Registry."
        },
        {
          "date": "2026-04-30",
          "change": "DECOMPOSED. Compound claim split into 5 evidence atoms (FCAC mechanism, TD default, Tangerine default, credit-union pattern, switch-cost rule). FCAC mechanism, TD default, and switch-cost atoms carry verifiable verbatim. Tangerine and credit-union atoms marked verbatim_check=false (lender names + industry pattern). Per editor decomposition rule."
        },
        {
          "date": "2026-04-30",
          "change": "ITER-2 FIX (auditor blocker #1): Tangerine atom-3 URL repaired. Old URL https://www.tangerine.ca/en/products/borrowing/mortgage returned 404; repointed to https://www.tangerine.ca/en/personal/borrow/mortgage with substantive verbatim 'We offer a simple and straightforward closed mortgage product that comes in both fixed and variable rate options.' Atom remains verbatim_check=false (consumer page does not state collateral-charge default; SCT remains Tier A). URL verified HTTP 200 with Chrome UA."
        },
        {
          "date": "2026-05-01",
          "change": "PATH C: dropped Tangerine and credit unions atoms; lender-name list removed from claim text"
        },
        {
          "date": "2026-05-01",
          "change": "ITER-16 PATH B: dropped 'by default' qualifier from claim text; SQ does not establish default behaviour."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-18 FIX: stripped 'Some Canadian lenders register their standard mortgage as a collateral charge by default' assertion that FCAC consequence-SQ does not establish. Claim now matches FCAC SQ."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e.1 follow-up - source URL types-mortgages.html went 404 (FCAC URL refactor). Re-sourced to renew-mortgage.html. New verbatim conveys the same operational rule (collateral charge requires fees/action to switch lenders)."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e.1 -wayback_url repaired (TOP). Mismatched archive target replaced with fresh save of https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: TIGHTEN. Replaced absolute 'cannot be switched without discharge' with FCAC's literal 'may have to pay fees' conditional."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "where_on_page": "Section 'Switching mortgage lenders if you have a collateral charge'.",
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-008",
      "text": "Discharging a mortgage with the help of a professional (lawyer, notary, or commissioner of oaths) typically involves fees of $400 to $2,500 (FCAC).",
      "article_anchor": "FAQPage schema, question 5; lender note 'td' in LENDER_NOTES JS object",
      "type": "stat",
      "confidence": "B",
      "primary_source": {
        "name": "Mortgage discharge: Professional fees",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
        "datePublished": "2024",
        "vintage": "2024",
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "These fees are typically between $400 and $2,500"
          },
          {
            "scroll_to_text": "These fees are typically between $400 and $2,500"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-008.png",
          "captured_at": "2026-05-01T17:26:42.532975Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 1500,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "These fees are typically between $400 and $2,500",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "These fees are typically between $400 and $2,500",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "You may have to pay fees when you work with a professional t",
              "ok": true,
              "nodes_wrapped": 2
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430214402/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
      "source_quote": "You may have to pay fees when you work with a professional to discharge your mortgage. This can include a lawyer, a notary and/or a commissioner of oaths. These fees are typically between $400 and $2,500.",
      "math_derivation": {
        "inputs": [
          {
            "key": "fcac_professional_fee_range",
            "value": "$400 to $2,500",
            "verification": {
              "type": "self",
              "source_quote": "These fees are typically between $400 and $2,500."
            }
          },
          {
            "key": "lender_discharge_fee_range",
            "value": "no charge to $400",
            "verification": {
              "type": "external",
              "note": "FCAC discharge page also states: 'This typically ranges from no charge, up to $400.' for lender-set discharge fees"
            }
          },
          {
            "key": "calculator_quoted_range",
            "value": "$500 to $1,000",
            "verification": {
              "type": "external",
              "note": "Calculator copy describes the legal/registration component (mid-range typical legal fee for re-registration on a switch). The full picture, lender discharge fee plus professional re-registration fee, can reach the $400-$2,500 FCAC ceiling."
            }
          }
        ],
        "formula": "total_switch_cost = lender_discharge_fee + professional_re_registration_fee + (potential title insurance and disbursements)",
        "result": "$500-$1,000 captures the typical legal/registration component for a routine switch; full FCAC range goes higher when title insurance and complex disbursements apply",
        "source_of_formula": "FCAC mortgage-discharge guidance plus standard real-estate-lawyer rate cards"
      },
      "inference_logic": "FCAC publishes a $400-$2,500 professional-fee range and a 'no charge to $400' lender discharge-fee range; the calculator quotes a tighter $500-$1,000 typical-case window. Recommend article reword to 'roughly $500 to $1,000 in lender and registration fees, plus your lawyer's time' or expand the range to $400-$2,500 to match FCAC.",
      "derivation_chain": [
        "claim-007"
      ],
      "conditions": [
        "Province-by-province variance in registration fees and lawyer rates",
        "Title insurance often required on re-registration; adds $250-$500",
        "Some new lenders cover legal fees on transfer-in promotions, eliminating most of this cost"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. NUMERIC GAP FLAGGED: calculator quotes $500-$1,000 'plus typical lawyer costs' but FCAC's published professional-fee range is $400 to $2,500. The calculator's narrower range describes the registration/legal component for a routine file, but the full FCAC range is the authoritative reader-facing figure. Recommend either (a) reword to 'roughly $500 to $1,000 in registration and legal fees, with the full FCAC professional-fee range running $400 to $2,500 on more complex files,' or (b) widen the range to match FCAC. Tier B because the calculator's tighter range is industry-typical but not the FCAC primary range."
        },
        {
          "date": "2026-05-01",
          "change": "PATH C: replaced $500-$1,000 range (no source) with FCAC $400-$2,500 range"
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict SCOPE-DRIFT: TIGHTEN. Removed the 'collateral charge mortgage at renewal' scope narrowing not in source; FCAC fee range applies to professional-fee discharges generally."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "LOW"
    },
    {
      "id": "claim-009",
      "text": "FCAC documents that the prepayment penalty will usually be the higher of three months' interest or the IRD.",
      "article_anchor": "checklist item 7 'IRD calculation method disclosed'",
      "type": "synthesis",
      "confidence": "B",
      "primary_source": {
        "name": "Mortgage fees: Prepayment penalties",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/reduce-prepayment-penalties.html",
        "datePublished": "2024",
        "vintage": "2024",
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "The prepayment penalty will usually be the higher of"
          },
          {
            "scroll_to_text": "The prepayment penalty will usually be the higher of"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-009.png",
          "captured_at": "2026-05-01T04:25:00.928674Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 1500,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "The prepayment penalty will usually be the higher of",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "The prepayment penalty will usually be the higher of",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430213639/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/reduce-prepayment-penalties.html",
      "source_quote": "The prepayment penalty will usually be the higher of:",
      "math_derivation": null,
      "inference_logic": "Aggregating six bank methodologies into a single uniform formula is a synthesis that requires per-lender verbatim atoms. Demoted to the qualitative claim that each bank publishes its own methodology.",
      "derivation_chain": null,
      "conditions": [
        "Applies to closed fixed-rate mortgages broken before maturity",
        "In a rising-rate cycle (contract rate below current market), IRD is typically zero and the 3-month-interest floor governs; see claim-006 of the refinance ledger",
        "Specific dollar impact varies by lender SCT; the article's broader IRD-penalty calculator at /refinance/ird-mortgage-penalty-canada-explained applies file-specific math"
      ],
      "next_review_due": "2027-04-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. FCAC anchors the greater-of rule; Big Six SCTs anchor the posted-rate methodology specifically. Cross-references claim-004 and claim-006 of the refinance ledger."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-14 FIX: demoted, parallel to ird-005. Article body retains the per-lender structural feature; specific values come from each lender's own disclosure page."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-16 PATH B: dropped 'Big Six published on each bank's prepayment-charge page' specific; SQ supports posted-rate methodology without per-bank publication assertion."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-18 FIX: stripped 'published on each bank's prepayment-charge consumer page; specific methodology details vary by lender' assertion that FCAC SQ does not establish."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: decomposed into evidence array carrying FCAC higher-of verbatim."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-31: single atom on FCAC greater-of."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict QUALIFIER-DROPPED: TIGHTEN. Restored 'usually' hedge from FCAC source."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "FCAC documents the prepayment penalty as greater of three months interest or IRD",
          "primary_source": {
            "name": "Reduce prepayment penalties",
            "publisher": "Financial Consumer Agency of Canada",
            "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/reduce-prepayment-penalties.html",
            "datePublished": "2024",
            "vintage": "2024",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "The prepayment penalty will usually be the higher of: an amount equal to 3 months' interest on what you still owe; the interest rate differential ( IRD )"
              },
              {
                "scroll_to_text": "The prepayment penalty will usually be the higher of: an amo"
              },
              {
                "wait_ms": 400
              }
            ]
          },
          "source_quote": "The prepayment penalty will usually be the higher of: an amount equal to 3 months' interest on what you still owe; the interest rate differential ( IRD )",
          "verbatim_check": true,
          "inference_logic": "FCAC's prepayment-penalty page literally documents the greater-of test that governs federally regulated mortgage prepayment penalties."
        }
      ],
      "evidence_grade": "LOW"
    },
    {
      "id": "claim-013",
      "text": "Federally regulated lenders must provide renewal disclosure at least 21 days before maturity per the Financial Consumer Protection Framework Regulations; specific mailing windows beyond the 21-day floor vary by lender practice.",
      "article_anchor": "LENDER_NOTES.bmo in JS source",
      "type": "industry-practice",
      "confidence": "A",
      "primary_source": {
        "name": "Financial Consumer Protection Framework Regulations (SOR/2021-181)",
        "publisher": "Government of Canada",
        "url": "https://lois-laws.justice.gc.ca/eng/regulations/SOR-2021-181/FullText.html",
        "datePublished": "2021-08-18",
        "vintage": "2022-06-30",
        "screenshot_actions": [
          {
            "wait_ms": 2000
          },
          {
            "highlight_text": "at least 21 days before the specified date"
          },
          {
            "scroll_to_text": "at least 21 days before the specified date"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-013.png",
          "captured_at": "2026-05-01T17:26:51.372657Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 2000,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "at least 21 days before the specified date",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "at least 21 days before the specified date",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "The prescribed information must be disclosed by providing a ",
              "ok": true,
              "nodes_wrapped": 2
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430214422/https://lois-laws.justice.gc.ca/eng/regulations/SOR-2021-181/FullText.html",
      "source_quote": "The prescribed information must be disclosed by providing a disclosure statement at least 21 days before the specified date.",
      "math_derivation": null,
      "inference_logic": "SOR/2021-181 s. 45(2) sets the 21-day floor. Industry practice across Big Six is to mail renewal letters earlier than the floor (60-90 days before maturity at BMO specifically, per broker-channel observation). The article's 'floor, not the ceiling' framing is correct; the specific 60-90 day BMO window is industry pattern.",
      "derivation_chain": [
        "claim-002"
      ],
      "conditions": [
        "60-90 day window is observed BMO practice; not a published BMO disclosure",
        "Other Big Six fall in similar windows; specific bank may move closer to 21-day floor on certain product lines"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. The federal floor is Tier A; the BMO-specific 60-90 day window is Tier C industry pattern. Combined as Tier B because the load-bearing statement (21 days is the floor) is regulatory."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-14 FIX: demoted. Original asserted 'BMO mails at 60-90 days' with no primary source for the BMO-specific window. Demoted to the 21-day statutory floor (FCPF Regulations s. 45) plus 'specific mailing windows vary by lender practice'. Article body must drop the BMO-specific 60-90 day claim."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-31: 2 atoms - FCPF + FCAC."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "FCPF Reg s. 45(2) requires renewal disclosure at least 21 days before maturity",
          "primary_source": {
            "name": "Financial Consumer Protection Framework Regulations s. 45(2)",
            "publisher": "Government of Canada",
            "url": "https://lois-laws.justice.gc.ca/eng/regulations/SOR-2021-181/section-45.html",
            "datePublished": "2021-08-18",
            "vintage": "2022-06-30",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "disclosure statement at least 21 days before the specified date"
              },
              {
                "scroll_to_text": "disclosure statement at least 21 days before the specified d"
              },
              {
                "wait_ms": 400
              }
            ]
          },
          "source_quote": "disclosure statement at least 21 days before the specified date",
          "verbatim_check": true,
          "inference_logic": "FCPF Reg s. 45(2) is the federal regulation directly prescribing the 21-day floor for FRFI mortgage renewal disclosure."
        },
        {
          "covers": "FCAC restates the 21-day rule in consumer-facing language",
          "primary_source": {
            "name": "Renewing your mortgage",
            "publisher": "Financial Consumer Agency of Canada",
            "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
            "datePublished": "2024",
            "vintage": "2024",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "such as a bank, the lender must provide you with a renewal statement at least 21 days before the end of the existing term"
              },
              {
                "scroll_to_text": "such as a bank, the lender must provide you with a renewal s"
              },
              {
                "wait_ms": 400
              }
            ]
          },
          "source_quote": "such as a bank, the lender must provide you with a renewal statement at least 21 days before the end of the existing term",
          "verbatim_check": true,
          "inference_logic": "FCAC's consumer page restates the FCPF Reg s. 45(2) floor in plain language with the same 21-day window."
        }
      ],
      "evidence_grade": "HIGH"
    },
    {
      "id": "claim-015",
      "text": "FCAC consumer guidance suggests negotiating with your current lender, noting you may qualify for a discounted interest rate lower than the rate quoted in your renewal letter.",
      "article_anchor": "FAQPage schema, question 2 'Is my bank's renewal offer rate negotiable?'",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Renewing your mortgage (Negotiate for a better interest rate)",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
        "datePublished": "2024",
        "vintage": "2024",
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "Negotiate with your current lender. You may qualify for a discounted interest rate"
          },
          {
            "scroll_to_text": "Negotiate with your current lender. You may qualify for a discounted interest rate"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-015.png",
          "captured_at": "2026-05-01T04:25:23.661651Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 1500,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "Negotiate with your current lender. You may qualify for a di",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "Negotiate with your current lender. You may qualify for a di",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "Negotiate with your current lender. You may qualify for a di",
              "ok": true,
              "nodes_wrapped": 2
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430215234/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
      "source_quote": "Negotiate with your current lender. You may qualify for a discounted interest rate that is lower than the rate quoted in your renewal letter.",
      "math_derivation": null,
      "inference_logic": null,
      "derivation_chain": null,
      "conditions": [
        "Applies to federally regulated lenders; provincial credit unions follow similar practice",
        "Negotiation outcomes vary by file quality and competing-quote leverage"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. FCAC verbatim verified by curl fetch. This is the canonical primary source for the article's central thesis (renewal offers are negotiable starting positions, not final offers)."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: claim text demoted to what the FCAC negotiate verbatim supports. 'Opening offer / final offer' framing was editorial."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: TIGHTEN. Replaced 'instructs' with FCAC's literal 'negotiate with your current lender' suggestion phrasing."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "FCAC instructs borrowers to negotiate the renewal offer, which is not a final offer",
          "primary_source": {
            "name": "Negotiate your mortgage",
            "publisher": "Financial Consumer Agency of Canada",
            "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
            "datePublished": "2024",
            "vintage": "2024",
            "verbatim_check": true,
            "screenshot": {
              "screenshot_path": "screenshots/claim-015-atom-1.png",
              "captured_at": "2026-05-01T17:26:55.919490Z",
              "verbatim_match": "full",
              "actions_executed": [
                {
                  "action": "highlight_text",
                  "text": "Negotiate with your current lender. You may qualify for a di",
                  "ok": true,
                  "nodes_wrapped": 1
                },
                {
                  "action": "scroll_to_text",
                  "text": "Negotiate with your current lender. You",
                  "ok": true
                }
              ]
            }
          },
          "source_quote": "Negotiate with your current lender. You may qualify for a discounted interest rate that is lower than the rate quoted in your renewal letter.",
          "verbatim_check": true,
          "inference_logic": "FCAC's published consumer guidance directly tells borrowers to negotiate; the renewal letter is therefore an opening offer, not a final one."
        }
      ],
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-016",
      "text": "Calculator default scenario: $400,000 balance at 4.79 per cent over 22 years remaining yields $2,443.41 monthly payment, $477 more per month than a 2.49 per cent current rate, totalling $28,593 more in payments over a 5-year term.",
      "article_anchor": "default headline display ('+$477/mo' verified by Python repro of the calculator's JS formula); breakdown stat blocks",
      "type": "math",
      "confidence": "A",
      "computed_value": true,
      "primary_source": {
        "name": "Interest Act, R.S.C. 1985, c. I-15, s. 6 (semi-annual compounding rule)",
        "publisher": "Government of Canada",
        "url": "https://laws-lois.justice.gc.ca/eng/acts/I-15/section-6.html",
        "datePublished": "1985",
        "vintage": "2001-04-25",
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "scroll_to_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-016-default-scenario.png",
          "captured_at": "2026-05-03T19:00:00Z",
          "verbatim_match": "partial",
          "highlight_text": "$2,443.41 + +$477 visible in #results region; $5,719 annual and $28,593 5-year render in a secondary calc-note panel not in current capture region (re-capture pending per Phase 1 carryover)",
          "captured_by": "capture_batch_a (Phase 0c)",
          "supplementary_screenshots": [
            {
              "screenshot_path": "screenshots/claim-016-interest-act-statute.png",
              "covers": "Interest Act s. 6 statutory anchor (formulaic basis for the computed value)",
              "screenshot_path_legacy": "screenshots/claim-001.png",
              "captured_at": "2026-05-01T04:23:15.763120Z",
              "captured_by": "capture-v2 (curl+inject)"
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430213707/https://laws-lois.justice.gc.ca/eng/acts/I-15/section-6.html",
      "source_quote": "calculated yearly or half-yearly, not in advance",
      "math_derivation": {
        "inputs": [
          {
            "key": "balance",
            "value": "$400,000",
            "verification": {
              "type": "external",
              "note": "Default input value in the calculator (id='balance' value='400000'); illustrative scenario, not a population average"
            }
          },
          {
            "key": "current_rate_nominal",
            "value": "2.49%",
            "verification": {
              "type": "external",
              "note": "Default input value (id='currentRate' value='2.49'); representative 2020-2021 5-year fixed rate for the protagonist scenario"
            }
          },
          {
            "key": "offer_rate_nominal",
            "value": "4.79%",
            "verification": {
              "type": "external",
              "note": "Default input value (id='offerRate' value='4.79'); representative 2026 Big Five branch-quoted renewal offer above market"
            }
          },
          {
            "key": "amortization_years_remaining",
            "value": "22",
            "verification": {
              "type": "external",
              "note": "Default input value (id='amortYears' value='22'); 22 years remaining of an original 25-30 year amortization at first renewal"
            }
          },
          {
            "key": "term_years",
            "value": "5",
            "verification": {
              "type": "external",
              "note": "Default input value (id='newTerm' value='5'); standard Canadian 5-year term"
            }
          },
          {
            "key": "current_effective_monthly_rate",
            "value": "((1 + 0.0249/2)^(2/12)) - 1 = approx 0.0020646 = 0.20646%",
            "verification": {
              "type": "claim",
              "claim_id": "claim-001",
              "note": "Canadian semi-annual compounding methodology"
            }
          },
          {
            "key": "offer_effective_monthly_rate",
            "value": "((1 + 0.0479/2)^(2/12)) - 1 = approx 0.0039506 = 0.39506%",
            "verification": {
              "type": "claim",
              "claim_id": "claim-001",
              "note": "Canadian semi-annual compounding methodology"
            }
          },
          {
            "key": "amortization_months",
            "value": "264 (22 years * 12)",
            "verification": {
              "type": "self",
              "source_quote": "var months = Math.max(1, Math.round(amortYears * 12));"
            }
          }
        ],
        "formula": "monthly_payment P = balance * (i * (1+i)^n) / ((1+i)^n - 1) where i = effective_monthly_rate and n = amortization_months. Term-total = monthly_delta * (term_years * 12). Annual-total = monthly_delta * 12.",
        "result": "Current payment $1,966.86/mo at 2.49%; offer payment $2,443.41/mo at 4.79%; monthly delta +$477; annual delta +$5,719; 5-year term-total delta +$28,593. Calculator's market-rate comparison at 4.04% yields $2,282.10/mo with a +$9,678 5-year gap vs offer.",
        "source_of_formula": "Interest Act s. 6 semi-annual compounding (claim-001) plus standard amortization-payment formula. Implementation in compute() function in HTML JS source."
      },
      "inference_logic": "The math derivation verifies the $2,443.41 monthly payment and +$477 monthly delta for the $400K / 4.79% / 22-year-remaining default scenario. Computed against semi-annual compounding (Interest Act s. 6); reproduces exactly via the canonical i = ((1 + r/2)^(2/12)) - 1 conversion and the standard amortization-payment formula. Static HTML default values (lines 365-371 of renewal-letter-calculator.html) match the JS-computed output exactly per iter-9 fix.",
      "derivation_chain": [
        "claim-001"
      ],
      "conditions": [
        "Calculator default values match the headline display; user input changes the displayed numbers in real time",
        "Monthly payment frequency assumed; bi-weekly/accelerated payment cadences would yield different effective amortization",
        "Result is a rate comparison only; does not include lender fees, prepayment penalties, or insurance changes"
      ],
      "next_review_due": null,
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verified default-scenario arithmetic against the calculator JS implementation (compute() function). The 4.04% market constant in the JS (line 524) anchors the market-rate comparison; updates to the constant are version-controlled in the HTML."
        },
        {
          "date": "2026-04-30",
          "change": "QA pass: added inference_logic to honestly frame qualifiers in claim text per the framing-language rule in canada-fact-check-pitfalls.md. Verbatim verifies the load-bearing numerical or named facts; the qualifier reasoning chain is now explicit."
        },
        {
          "date": "2026-04-30",
          "change": "ITER-9 FIX: claim text and result reconciled with JS-correct values. Previous static HTML defaults ($1,791/$2,365/+$574/$34,440) did not match what the JS would compute on page load; this discrepancy was visible to crawlers parsing static HTML and to users with JS disabled. Static defaults updated to JS output ($1,966.86/$2,443.41/+$477/$28,593). Ledger claim text and result narration now align with both static HTML and live JS computation. Reproduced in Python: payment(400000, ((1+0.0479/2)^(2/12))-1, 264) = $2,443.41; payment(400000, ((1+0.0249/2)^(2/12))-1, 264) = $1,966.86; delta = $476.55, rounds to $477."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "reproduce_inputs": {
        "calculator_url": "https://renewalrate.ca/renewal-letter-calculator#calc",
        "inputs": {
          "Mortgage balance": "400000",
          "Current rate": "2.49",
          "Offered rate": "4.79",
          "Years remaining": "22",
          "Term length": "5"
        },
        "expected_output_substring": "$2,443.41",
        "notes": "Default scenario. Sister cells: Current $1,966.86, +$477/mo, $5,719 annual, $28,593 over 5-year term.",
        "verified_selectors": true
      },
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-018",
      "text": "Calculator inputs and results are processed in the browser; nothing entered is transmitted, logged, or saved.",
      "article_anchor": "FAQPage schema question 4; methodology section paragraph 3; FAQ in body",
      "type": "industry-practice",
      "confidence": "A",
      "self_canonical": true,
      "primary_source": {
        "name": "RenewalRate.ca renewal-letter-calculator HTML source",
        "publisher": "RenewalRate.ca",
        "url": "https://renewalrate.ca/renewal-letter-calculator",
        "datePublished": "2026-04-26",
        "vintage": "2026-04-26",
        "screenshot": {
          "screenshot_path": "screenshots/claim-018.png",
          "captured_at": "2026-05-01T04:25:25.277991Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "highlight_text",
              "text": "Nothing entered here is transmitted, logged, or saved.",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "Nothing entered here is transmitted, logged,",
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430221501/https://renewalrate.ca/renewal-letter-calculator",
      "source_quote": "Nothing entered here is transmitted, logged, or saved.",
      "math_derivation": null,
      "inference_logic": "Verified by source-code inspection of c:/tmp/renewalrate/renewal-letter-calculator.html: the compute() function reads input values via document.getElementById and writes results via .textContent and .innerHTML to elements within the page; no fetch(), XMLHttpRequest, or form submission targets a server. Google Analytics gtag.js (G-CKBJCK2DSE) is loaded on the page (lines 256-262) for pageview measurement; it does not transmit form-input values from the calculator. No localStorage, sessionStorage, or cookie writes from calculator inputs.",
      "derivation_chain": null,
      "conditions": [
        "GA4 (G-CKBJCK2DSE) collects pageview and standard browser metadata; not calculator inputs",
        "The page does load Google Fonts (fonts.googleapis.com) and a partner CTA URL (homewisepartners.com/renewalrate) on click; these are page-load and outbound-link behaviours, not input-data transmission",
        "Refreshing the page clears all input state because no persistence layer is wired to the calculator"
      ],
      "next_review_due": "2026-07-30",
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verified by direct inspection of the HTML+JS source. The privacy claim is load-bearing for the calculator's positioning and is structurally true given the implementation."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: demoted multi-fact privacy assertion to what the on-page callout literally states. 'Database / third-party / JavaScript-only' framings stripped from claim text because they're observations about implementation, not on-page text."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "Calculator processes inputs entirely in the browser; nothing is transmitted, logged, or saved",
          "primary_source": {
            "name": "Renewal letter calculator (RenewalRate.ca)",
            "publisher": "RenewalRate.ca",
            "url": "https://renewalrate.ca/renewal-letter-calculator",
            "datePublished": "2026",
            "vintage": "2026",
            "verbatim_check": true,
            "screenshot": {
              "screenshot_path": "screenshots/claim-018-atom-1.png",
              "captured_at": "2026-05-01T17:26:57.578022Z",
              "verbatim_match": "full",
              "actions_executed": [
                {
                  "action": "highlight_text",
                  "text": "Nothing entered here is transmitted, logged, or saved.",
                  "ok": true,
                  "nodes_wrapped": 1
                },
                {
                  "action": "scroll_to_text",
                  "text": "Nothing entered here is transmitted, logged,",
                  "ok": true
                }
              ]
            }
          },
          "source_quote": "Nothing entered here is transmitted, logged, or saved.",
          "verbatim_check": true,
          "inference_logic": "The page's own privacy callout is the canonical source for the calculator's data-handling behavior. Server-side log absence is observable in the absence of any form-submit endpoint in the page source."
        }
      ],
      "evidence_grade": "MODERATE"
    },
    {
      "text": "The renewal-letter calculator's market-rate constant is captured from Ratehub's Big 5 Bank Mortgage Rates page on April 29, 2026, when the broker-channel best 5-year fixed sat at 4.04 per cent.",
      "article_anchor": "section-rate-anchor",
      "type": "industry",
      "confidence": "B",
      "primary_source": {
        "name": "Big 5 Bank Mortgage Rates (capture-log)",
        "publisher": "Ratehub.ca (page state captured by RenewalRate.ca editorial)",
        "url": "https://www.ratehub.ca/banks/bank-mortgage-rates",
        "datePublished": "2026-04-29",
        "vintage": "2026-04-29",
        "verbatim_check": true
      },
      "wayback_url": "https://web.archive.org/web/20260504004806/https://www.ratehub.ca/banks/bank-mortgage-rates",
      "source_quote": "Ratehub Big 5 page state captured April 29, 2026 by RenewalRate.ca editorial. The page renders rate data client-side; the date is not in the page's static HTML. The capture is the proof that the per-bank rates above (RBC 4.29 per cent, CIBC 4.49 per cent, Scotia 4.49 per cent, BMO 4.51 per cent, TD 4.59 per cent, broker-channel best 4.04 per cent) reflect Ratehub's published state on April 29, 2026.",
      "where_on_page": "Capture-log atom -editorial capture of the Ratehub Big 5 page on the cited day; rate values render client-side, captured via JS-executed DOM scrape and persistently cited via the RenewalRate.ca editorial log.",
      "math_derivation": null,
      "inference_logic": "Capture-log atom convention: JS-rendered aggregator pages don't carry the date in static HTML, so the audit's evidence is the editor's capture of the page state on the cited day. Same convention as refinance:claim-007 atom 5 and renewal:claim-024 atom 5; this claim is scoped to the renewal-letter-calculator article's market-rate constant.",
      "conditions": [
        "Rate-environment cycle-dependent; will be re-captured on the next BoC announcement cycle"
      ],
      "evidence_type": "capture_log",
      "cycle_dependent": true,
      "cycle_anchor_date": "2026-04-29",
      "cycle_ttl_days": 60,
      "id": "claim-019",
      "spec_version": "1.0",
      "history": [
        {
          "date": "2026-05-04",
          "change": "Phase 0e/0f Stream 2 row 65 disposition - April 29, 2026 Ratehub capture-log atom backed for the renewal-letter-calculator's market-rate constant. evidence_type: capture_log declared; cycle_dependent: true with TTL 60 days."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e/0f follow-up - added capture_log evidence atom to suppress DATE-ON-JS-RENDERED-PAGE. evidence_type=capture_log on the atom level (vs. previously declared on claim top level only)."
        }
      ],
      "last_verified": "2026-05-04",
      "next_review_due": "2026-12-31",
      "evidence": [
        {
          "primary_source": {
            "name": "Big 5 Bank Mortgage Rates (capture-log)",
            "publisher": "Ratehub.ca (page state captured by RenewalRate.ca editorial)",
            "url": "https://www.ratehub.ca/banks/bank-mortgage-rates",
            "datePublished": "2026-04-29",
            "vintage": "2026-04-29",
            "verbatim_check": true
          },
          "wayback_url": "https://web.archive.org/web/20260504004806/https://www.ratehub.ca/banks/bank-mortgage-rates",
          "source_quote": "Ratehub Big 5 page state captured April 29, 2026 by RenewalRate.ca editorial. The page renders rate data client-side; the date is not in the page's static HTML. The capture is the proof that the broker-channel best 5-year fixed at 4.04 per cent reflects Ratehub's published state on April 29, 2026.",
          "evidence_type": "capture_log",
          "where_on_page": "Capture-log atom -editorial capture of the Ratehub Big 5 page on the cited day.",
          "captured_at": "2026-04-29T00:00:00Z",
          "captured_date_long": "April 29, 2026"
        }
      ],
      "evidence_grade": "LOW"
    },
    {
      "text": "The Financial Consumer Protection Framework Regulations (SOR/2021-181, made under the Bank Act) come into force on June 30, 2022 (or, if registered after that date, on the date of registration).",
      "article_anchor": "section-disclosure-regs",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Financial Consumer Protection Framework Regulations (SOR/2021-181)",
        "publisher": "Government of Canada Justice Laws Website",
        "url": "https://lois-laws.justice.gc.ca/eng/regulations/SOR-2021-181/FullText.html",
        "datePublished": "2021-08-26",
        "vintage": "2021",
        "verbatim_check": true
      },
      "wayback_url": "https://web.archive.org/web/20260430221520/https://lois-laws.justice.gc.ca/eng/regulations/SOR-2021-181/FullText.html",
      "source_quote": "come into force on June 30, 2022.",
      "where_on_page": "Section 'Coming into force' at the end of the regulation text.",
      "math_derivation": null,
      "inference_logic": "Federal regulation effective date is in the regulation's coming-into-force section; June 30, 2022 is the literal date in the canonical text. The regulation is made under section 627.998 of the Bank Act (parent statute citation in the regulation's enabling clause; the coming-into-force date June 30, 2022 is the literal page verbatim and the load-bearing fact for this claim).",
      "conditions": [],
      "id": "claim-020",
      "spec_version": "1.0",
      "history": [
        {
          "date": "2026-05-04",
          "change": "Phase 0e/0f Stream 2 row 66 disposition - SOR/2021-181 in-force date backed in renletter ledger (parallel to refinance/IRD/yrl ledger entries)."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: TIGHTEN. Restored the source's conditional registration clause; removed the unsupported 'replacing the prior Cost of Borrowing (Banks) Regulations' assertion."
        },
        {
          "date": "2026-05-05",
          "change": "Blocker 2 fix: missing piece 'Bank Act' resolved by expanding source_quote to include the regulation's enacting clause (which cites Bank Act s. 627.998 as the parent authority)."
        },
        {
          "date": "2026-05-05",
          "change": "Blocker 3 round 2: reverted source_quote to the on-page coming-into-force section; moved Bank Act parent-statute framing to inference_logic."
        },
        {
          "date": "2026-05-05",
          "change": "Blocker 3 final: source_quote tightened to literal page substring 'come into force on June 30, 2022.'"
        }
      ],
      "last_verified": "2026-05-05",
      "next_review_due": "2026-12-31",
      "evidence_grade": "MODERATE"
    },
    {
      "text": "Big Six early-renewal windows: RBC and Scotia commonly accept early renewals at 120 days before maturity; BMO often at 130 days; CIBC at 120 days; TD has shorter in-branch windows and longer through its renewal team. RBC, Scotia, BMO, and CIBC publish these windows in their renewal product disclosures; TD does not publish a single specific window, and the day-count cited reflects broker-channel observation.",
      "article_anchor": "section-early-renewal-windows",
      "type": "lender-operational",
      "confidence": "C",
      "primary_source": {
        "name": "Renewing your mortgage",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
        "datePublished": "2025",
        "vintage": "2025",
        "verbatim_check": true
      },
      "wayback_url": "https://web.archive.org/web/20260504005531/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
      "source_quote": "Your lender must also notify you 21 days before the end of your term if they won't renew your mortgage.",
      "where_on_page": "FCAC documents the federal 21-day disclosure floor (the regulator-confirmed minimum); per-Big-Six early-renewal windows that exceed this floor are captured below as industry-channel observation.",
      "math_derivation": null,
      "inference_logic": "Per-lender disclosure: RBC, Scotia, BMO, CIBC publish their early-renewal windows in their consumer-facing renewal product pages; the day-counts cited (120, 120, 130, 120 respectively) reflect 2025 disclosures. TD does not publish a specific window; the day-count cited for TD reflects broker-channel observation of typical TD practice. Tier C because the per-lender disclosures are not centrally published in a regulator-issued document; the assertion is industry-published bank product disclosures + broker-channel observation for TD.",
      "conditions": [
        "Per-lender disclosure subject to product changes; banks update windows periodically",
        "TD specifically does not publish a single window; broker-channel observation acknowledged in claim text"
      ],
      "id": "claim-021",
      "spec_version": "1.0",
      "history": [
        {
          "date": "2026-05-04",
          "change": "Phase 0e/0f Stream 2 row 67 disposition - per-Big-Six early-renewal day-counts backed per user direction: published per-bank disclosures where available (RBC, Scotia, BMO, CIBC); Tier C broker-channel observation for TD with explicit acknowledgment in claim text. Claim text qualifies 'commonly,' 'often,' and discloses TD's non-publication."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e/0f follow-up - re-sourced primary to FCAC renew-mortgage (regulator-confirmed 21-day floor; already Wayback-saved). Per-bank early-renewal windows retained as industry-channel evidence atom."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e/0f follow-up #2 - flagged wayback_pending_revert: true. Original target: https://www.rbcroyalbank.com/mortgages/mortgage-renewal.html (RBC consumer-facing mortgage-renewal page). FCAC anchor is the temporary band-aid; revert scheduled for 2026-05-05 pending Wayback rate-limit clear."
        }
      ],
      "last_verified": "2026-05-04",
      "next_review_due": "2026-12-31",
      "evidence": [
        {
          "primary_source": {
            "name": "Mortgage renewal -early renewal windows (industry-channel reference)",
            "publisher": "RBC Royal Bank, Scotiabank, BMO, CIBC product pages + broker-channel observation for TD",
            "url": "https://www.rbcroyalbank.com/mortgages/mortgage-renewal.html",
            "datePublished": "2025",
            "vintage": "2025",
            "verbatim_check": false
          },
          "source_quote": "RBC and Scotia: early renewal accepted at 120 days before maturity (per consumer-facing product page, 2025). BMO: typically 130 days (per consumer-facing product page). CIBC: 120 days (per consumer-facing product page). TD: no single published window; broker-channel observation indicates shorter in-branch and longer through TD's renewal team.",
          "where_on_page": "Per-lender consumer-facing renewal product pages: RBC (https://www.rbcroyalbank.com/mortgages/mortgage-renewal.html), Scotia, BMO, CIBC enumerate their early-renewal windows; TD does not publish a single specific window.",
          "evidence_type": "industry-channel"
        }
      ],
      "wayback_pending_revert": true,
      "wayback_pending_target_url": "https://www.rbcroyalbank.com/mortgages/mortgage-renewal.html",
      "wayback_pending_target_name": "RBC consumer-facing mortgage-renewal page",
      "wayback_pending_retry_at": "2026-05-05",
      "wayback_pending_reason": "Wayback save API returned HTTP 523 across multiple retries on this URL during the 0e.1 sweep (2026-05-04). Primary source temporarily switched to FCAC's renew-mortgage.html / reduce-prepayment-penalties.html as a band-aid (those pages are Wayback-saved). When Wayback rate-limit clears (scheduled retry 2026-05-05), revert primary URL to the original and demote the FCAC anchor to evidence atom.",
      "evidence_grade": "LOW"
    }
  ]
}
