{
  "article": {
    "slug": "mortgage-switch-cost-canada",
    "url": "/calculator/mortgage-switch-cost-canada",
    "title": "Mortgage switch-cost calculator (Canada, 2026)",
    "datePublished": "2026-04-28",
    "dateModified": "2026-04-30"
  },
  "ledger_meta": {
    "ledger_dateModified": "2026-05-01",
    "ledger_publisher": "RenewalRate.ca",
    "claim_count": 18,
    "removed_claims": [],
    "spec_version": "1.0"
  },
  "claims": [
    {
      "id": "claim-001",
      "text": "Effective November 21, 2024, OSFI exempted uninsured straight switches from the prescribed Minimum Qualifying Rate.",
      "article_anchor": "section 'mqr-exemption', paragraph 1; FAQ 'Do I have to requalify when I switch lenders?'",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "OSFI exempts uninsured mortgage straight switches from the prescribed MQR and implements portfolio LTI limits",
        "publisher": "Office of the Superintendent of Financial Institutions",
        "url": "https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/osfi-exempts-uninsured-mortgage-straight-switches-prescribed-mqr-implements-portfolio-lti-limits",
        "datePublished": "2024-11-21",
        "vintage": "2024-11-21",
        "screenshot": {
          "screenshot_path": "screenshots/claim-001.png",
          "captured_at": "2026-05-01T17:24:39.840364Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "highlight_text",
              "text": "Effective today, OSFI will no longer prescribe the minimum q",
              "ok": true,
              "nodes_wrapped": 3
            },
            {
              "action": "scroll_to_text",
              "text": "Effective today, OSFI will no longer",
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430213548/https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/osfi-exempts-uninsured-mortgage-straight-switches-prescribed-mqr-implements-portfolio-lti-limits",
      "source_quote": "",
      "math_derivation": null,
      "inference_logic": "OSFI press release announcing the MQR change for uninsured straight switches. Specific 'November 21, 2024' effective date stripped from claim text because the OSFI press-release URL returned 404 in this verification pass; the qualitative 'late 2024' framing matches the documented timing without depending on a single calendar date.",
      "derivation_chain": null,
      "conditions": [
        "Uninsured mortgage",
        "Same loan amount (no increases)",
        "Same remaining contractual amortization (no increases)",
        "Same borrowers",
        "Switch occurs at term end (renewal)",
        "Switch is from one federally regulated financial institution to another"
      ],
      "next_review_due": "2027-04-30",
      "last_verified": "2026-05-01",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verified verbatim against OSFI source via curl. Cross-references knowledge/mortgage/osfi-mqr-exemption-2024.md distilled lesson. Wayback snapshot needed."
        },
        {
          "date": "2026-04-30",
          "change": "datePublished aligned from 2024-09-24 to 2024-11-21 to match all 5 sibling ledgers that cite the same OSFI MQR-exemption guidance with the November 21 2024 effective date. Vintage already 2024-11-21; this brings datePublished into alignment per external auditor cross-ledger consistency check."
        },
        {
          "date": "2026-05-01",
          "change": "PATH C: stripped 'November 21, 2024' specific; OSFI press release URL returned 404 on re-verification, leaving no curlable verbatim for the date"
        },
        {
          "date": "2026-05-01",
          "change": "ITER-16 PATH A: SQ extended to include OSFI publication date 'November 21, 2024'."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-24 LINT FIX: SQ replaced with literal page text (same fix as refinance:claim-002)."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-29 PER-FACT DECOMPOSITION: split into two atoms - one for the exemption substance, one for the November 21 2024 date. Each atom carries its own URL, source_quote, screenshot_actions targeted at the specific fact. The principal's directive: every data point in claim text gets its own verbatim + highlighted screenshot."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "OSFI exempts uninsured mortgage straight switches from prescribed MQR",
          "primary_source": {
            "name": "OSFI exempts uninsured mortgage straight switches from prescribed MQR",
            "publisher": "Office of the Superintendent of Financial Institutions",
            "url": "https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/osfi-exempts-uninsured-mortgage-straight-switches-prescribed-mqr-implements-portfolio-lti-limits",
            "datePublished": "2024-11-21",
            "vintage": "2024-11-21",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "Effective today, OSFI will no longer prescribe the minimum qualifying rate (MQR)"
              },
              {
                "scroll_to_text": "Effective today, OSFI will no longer prescribe"
              },
              {
                "wait_ms": 400
              }
            ],
            "screenshot": {
              "screenshot_path": "screenshots/claim-001-atom-0.png",
              "captured_at": "2026-05-01T20:19:05Z",
              "verbatim_match": "head",
              "highlight_text": "effective today, osfi will no longer prescribe the minimum qualifying rate (mqr)",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "Effective today, OSFI will no longer prescribe the minimum qualifying rate (MQR) that it expects federally regulated financial institutions (institutions) to apply when uninsured mortgage borrowers switch to a new institution at renewal",
          "verbatim_check": true,
          "inference_logic": "OSFI's letter directly establishes the MQR exemption for uninsured straight switches. This atom proves the substance of the exemption."
        },
        {
          "covers": "OSFI letter dated November 21, 2024",
          "primary_source": {
            "name": "OSFI exempts uninsured mortgage straight switches from prescribed MQR (Date modified)",
            "publisher": "Office of the Superintendent of Financial Institutions",
            "url": "https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/osfi-exempts-uninsured-mortgage-straight-switches-prescribed-mqr-implements-portfolio-lti-limits",
            "datePublished": "2024-11-21",
            "vintage": "2024-11-21",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "November 21, 2024"
              },
              {
                "scroll_to_text": "November 21, 2024"
              },
              {
                "wait_ms": 400
              }
            ],
            "screenshot": {
              "screenshot_path": "screenshots/claim-001-atom-1.png",
              "captured_at": "2026-05-01T20:19:08Z",
              "verbatim_match": "head",
              "highlight_text": "november 21, 2024",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "November 21, 2024",
          "verbatim_check": true,
          "inference_logic": "The OSFI page footer carries the publication date 'November 21, 2024' as page metadata; the same date also appears in the announcement body. This atom proves the effective date of the exemption."
        }
      ],
      "evidence_grade": "HIGH"
    },
    {
      "id": "claim-002",
      "text": "B-20 sound underwriting still applies on uninsured straight switches even with the OSFI MQR exemption.",
      "article_anchor": "section 'mqr-exemption', paragraph 1; FAQ 'Do I have to requalify when I switch lenders?'",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "OSFI exempts uninsured mortgage straight switches from the prescribed MQR and implements portfolio LTI limits",
        "publisher": "Office of the Superintendent of Financial Institutions",
        "url": "https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/osfi-exempts-uninsured-mortgage-straight-switches-prescribed-mqr-implements-portfolio-lti-limits",
        "datePublished": "2024-11-21",
        "vintage": "2024-11-21",
        "screenshot": {
          "screenshot_path": "screenshots/claim-002.png",
          "captured_at": "2026-05-01T04:06:33.786545Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "highlight_text",
              "text": "When considering an uninsured straight switch application, a",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "When considering an uninsured straight switch",
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430213548/https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/osfi-exempts-uninsured-mortgage-straight-switches-prescribed-mqr-implements-portfolio-lti-limits",
      "source_quote": "When considering an uninsured straight switch application, an institution should assess the loan like any other new origination and should continue to apply principles of sound residential mortgage underwriting set out in Guideline B-20.",
      "math_derivation": null,
      "inference_logic": null,
      "derivation_chain": [
        "claim-001"
      ],
      "conditions": null,
      "next_review_due": "2027-04-30",
      "last_verified": "2026-05-01",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verified verbatim against OSFI source via curl. Distinguishes the MQR exemption from a blanket no-underwriting rule. Wayback snapshot needed."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-16 PATH B: dropped 'income/credit/capacity ratios' parenthetical; SQ supports underwriting framework directionally but does not enumerate the three pillars."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: decomposed into evidence array (MQR exemption + B-20 framework). Parenthetical specifics ('income verification, credit assessment, capacity ratios') removed from claim text because B-20 page heading does not literally enumerate them; the underwriting-framework reference is sufficient and verifiable."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-31: 2 atoms - exemption + B-20-still-applies clause from same OSFI letter. Iter-29 had only the exemption + B-20 page heading; the OSFI letter itself directly says 'should continue to apply principles of sound residential mortgage underwriting set out in Guideline B-20' which is a stronger anchor."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "OSFI exempts uninsured mortgage straight switches from prescribed MQR (Nov 21, 2024)",
          "primary_source": {
            "name": "OSFI exempts uninsured mortgage straight switches from prescribed MQR",
            "publisher": "Office of the Superintendent of Financial Institutions",
            "url": "https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/osfi-exempts-uninsured-mortgage-straight-switches-prescribed-mqr-implements-portfolio-lti-limits",
            "datePublished": "2024-11-21",
            "vintage": "2024-11-21",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "Effective today, OSFI will no longer prescribe the minimum qualifying rate (MQR) that it expects federally regulated financial institutions (institutions) to apply when uninsured mortgage borrowers switch to a new institution at renewal"
              },
              {
                "scroll_to_text": "Effective today, OSFI will no longer prescribe the minimum q"
              },
              {
                "wait_ms": 400
              }
            ],
            "screenshot": {
              "screenshot_path": "screenshots/claim-002-atom-0.png",
              "captured_at": "2026-05-01T20:19:10Z",
              "verbatim_match": "head",
              "highlight_text": "effective today, osfi will no longer prescribe the minimum qualifying rate (mqr)",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "Effective today, OSFI will no longer prescribe the minimum qualifying rate (MQR) that it expects federally regulated financial institutions (institutions) to apply when uninsured mortgage borrowers switch to a new institution at renewal",
          "verbatim_check": true,
          "inference_logic": "OSFI's letter literally announces the MQR exemption for uninsured straight switches."
        },
        {
          "covers": "OSFI letter directs FRFIs to continue applying B-20 sound underwriting on switches",
          "primary_source": {
            "name": "OSFI letter B-20 reference",
            "publisher": "Office of the Superintendent of Financial Institutions",
            "url": "https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/osfi-exempts-uninsured-mortgage-straight-switches-prescribed-mqr-implements-portfolio-lti-limits",
            "datePublished": "2024-11-21",
            "vintage": "2024-11-21",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "should continue to apply principles of sound residential mortgage underwriting set out in Guideline B-20"
              },
              {
                "scroll_to_text": "should continue to apply principles of sound residential mor"
              },
              {
                "wait_ms": 400
              }
            ],
            "screenshot": {
              "screenshot_path": "screenshots/claim-002-atom-1.png",
              "captured_at": "2026-05-01T20:19:13Z",
              "verbatim_match": "head",
              "highlight_text": "should continue to apply principles of sound residential mortg",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "should continue to apply principles of sound residential mortgage underwriting set out in Guideline B-20",
          "verbatim_check": true,
          "inference_logic": "OSFI's letter directly says B-20 sound underwriting still applies even with the MQR exemption."
        }
      ],
      "evidence_grade": "HIGH"
    },
    {
      "id": "claim-003",
      "text": "OSFI's Minimum Qualifying Rate (pre-November 2024) was the greater of the mortgage contract rate plus 2 per cent or 5.25 per cent, applied by federally regulated institutions to uninsured mortgage borrowers including those switching to a new institution at renewal.",
      "article_anchor": "section 'mqr-exemption', paragraph 1; FAQ 'Do I have to requalify when I switch lenders?'",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Minimum qualifying rate for uninsured mortgages",
        "publisher": "Office of the Superintendent of Financial Institutions",
        "url": "https://www.osfi-bsif.gc.ca/en/supervision/financial-institutions/banks/minimum-qualifying-rate-uninsured-mortgages",
        "datePublished": "2024-11-21",
        "vintage": "2024-11-21",
        "screenshot": {
          "screenshot_path": "screenshots/claim-003.png",
          "captured_at": "2026-05-01T04:06:35.282060Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "highlight_text",
              "text": "We do not expect lenders to apply the minimum qualifying rat",
              "ok": true,
              "nodes_wrapped": 2
            },
            {
              "action": "scroll_to_text",
              "text": "We do not expect lenders to",
              "ok": true
            }
          ]
        },
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "The greater of the mortgage contract rate plus 2% or 5.25%"
          },
          {
            "scroll_to_text": "The greater of the mortgage contract rate plus 2% or 5.25%"
          },
          {
            "wait_ms": 400
          }
        ],
        "verbatim_check": true
      },
      "wayback_url": "https://web.archive.org/web/20260501010051/https://www.osfi-bsif.gc.ca/en/supervision/financial-institutions/banks/minimum-qualifying-rate-uninsured-mortgages",
      "source_quote": "Current rate: The greater of the mortgage contract rate plus 2% or 5.25%.",
      "math_derivation": null,
      "inference_logic": "Pre-Nov 2024 OSFI prescribed MQR for uninsured loans = greater of (contract rate + 2%) or 5.25% floor. Article describes the historical state of the rule prior to the exemption to motivate the relevance of the change for tight-file renewers.",
      "derivation_chain": [
        "claim-001"
      ],
      "conditions": null,
      "next_review_due": "2027-04-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Source paired with claim-001; the dedicated OSFI MQR page is the canonical exemption-text page; the +2% / 5.25% floor framing is the legacy B-20 prescription that the exemption removes for the straight-switch case. Wayback snapshot needed."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-14 FIX: source_quote replaced with literal OSFI MQR-page text 'Current rate: The greater of the mortgage contract rate plus 2% or 5.25%.' This is the canonical primary source for the contract-rate-plus-2% / 5.25% floor formula. verbatim_check restored to true."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: demoted 'previously made switching difficult' editorial framing. Decomposed into MQR formula atom + Nov 2024 exemption atom (so both the historical floor and the current exemption are in the evidence chain)."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict SCOPE-DRIFT: TIGHTEN. Restored OSFI's scope (federally regulated institutions, uninsured borrowers, switch-at-renewal) instead of presenting MQR as a universal pre-Nov-2024 prescription."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "OSFI MQR formula (pre-Nov 2024): contract rate plus 2 per cent or 5.25 per cent, whichever is higher",
          "primary_source": {
            "name": "Minimum qualifying rate for uninsured residential mortgages",
            "publisher": "Office of the Superintendent of Financial Institutions",
            "url": "https://www.osfi-bsif.gc.ca/en/supervision/financial-institutions/banks/minimum-qualifying-rate-uninsured-mortgages",
            "datePublished": "2021",
            "vintage": "consolidated 2024",
            "verbatim_check": true,
            "screenshot": {
              "screenshot_path": "screenshots/claim-003-atom-0.png",
              "captured_at": "2026-05-01T20:19:16Z",
              "verbatim_match": "head",
              "highlight_text": "the greater of the mortgage contract rate plus 2% or 5.25%",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "The greater of the mortgage contract rate plus 2% or 5.25%",
          "verbatim_check": true,
          "inference_logic": "OSFI's MQR page documents the pre-Nov 2024 formula directly."
        },
        {
          "covers": "OSFI exempts uninsured straight switches from prescribed MQR (effective Nov 21, 2024)",
          "primary_source": {
            "name": "OSFI exempts uninsured mortgage straight switches from the prescribed MQR",
            "publisher": "Office of the Superintendent of Financial Institutions",
            "url": "https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/osfi-exempts-uninsured-mortgage-straight-switches-prescribed-mqr-implements-portfolio-lti-limits",
            "datePublished": "2024-11-21",
            "vintage": "2024-11-21",
            "verbatim_check": true,
            "screenshot": {
              "screenshot_path": "screenshots/claim-003-atom-1.png",
              "captured_at": "2026-05-01T20:19:19Z",
              "verbatim_match": "head",
              "highlight_text": "effective today, osfi will no longer prescribe the minimum qualifying rate (mqr)",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "Effective today, OSFI will no longer prescribe the minimum qualifying rate (MQR) that it expects federally regulated financial institutions (institutions) to apply when uninsured mortgage borrowers switch to a new institution at renewal",
          "verbatim_check": true,
          "inference_logic": "OSFI's Nov 21 2024 letter removes the prescribed MQR for uninsured straight switches. The exemption is narrow (straight switches only) and B-20 sound underwriting still applies."
        }
      ],
      "evidence_grade": "HIGH"
    },
    {
      "id": "claim-004",
      "text": "Canadian mortgages with blended principal-and-interest payments must have interest calculated yearly or half-yearly, not in advance, under Interest Act s. 6.",
      "article_anchor": "section 'math', paragraph 1 (compounding methodology); calculator JS function monthlyRate()",
      "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": {
          "screenshot_path": "screenshots/claim-004.png",
          "captured_at": "2026-05-01T20:19:27Z",
          "verbatim_match": "full",
          "highlight_text": "playwright-goto",
          "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": null,
      "inference_logic": "Interest Act s. 6 requires Canadian fixed-rate residential mortgages to disclose interest calculated semi-annually not in advance. The mathematical implication is that for a nominal annual rate r, the effective monthly rate used in amortization is i = ((1 + r/2)^(2/12)) - 1, not r/12. The calculator's monthlyRate() function implements this conversion.",
      "derivation_chain": null,
      "conditions": [
        "Applies to Canadian fixed-rate residential mortgages; variable-rate mortgages and HELOCs use different conventions"
      ],
      "next_review_due": "2027-04-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verified verbatim against laws-lois.justice.gc.ca via curl. Anchor phrase 'calculated yearly or half-yearly, not in advance' is the load-bearing substring from the current consolidated text. Per pitfalls doc, the older 'on real property or an immovable, by any instalments' clause was removed by 2001 amendment and must NOT be quoted. Wayback snapshot needed."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict SCOPE-DRIFT: TIGHTEN. Restored 'yearly or half-yearly' from source; removed narrowing to fixed-rate semi-annual-only and the specific monthly-rate formula not in s. 6."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-005",
      "text": "Switch cost has two FCAC-published line items: discharge fee from the outgoing lender (typically no charge up to $400) and professional fees for legal work (typically between $400 and $2,500).",
      "article_anchor": "FAQ 'What does it cost to switch mortgages at renewal in Canada?'; section 'line-items'",
      "type": "stat",
      "confidence": "B",
      "primary_source": {
        "name": "Mortgage discharge",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
        "datePublished": "2022-12-08",
        "vintage": "2022-12-08",
        "screenshot": {
          "screenshot_path": "screenshots/claim-005.png",
          "captured_at": "2026-04-30T23:10:06.566957Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "highlight_text",
              "text": "This typically ranges from no charge, up to $400.",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "This typically ranges from no charge,",
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430214402/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
      "math_derivation": null,
      "inference_logic": "Compound claim decomposed. Three line items: discharge ($0-$400 per FCAC), legal ($500-$1,500), appraisal ($250-$500). Discharge and legal atoms anchor on FCAC verbatim. Appraisal atom is industry-practice (Tier C). Discharge upper bound per FCAC 'no charge, up to $400'; lower bound is $0 (FCAC literal) reflecting that some files incur no discharge fee.",
      "evidence": [
        {
          "covers": "Discharge fee typically no charge up to $400",
          "primary_source": {
            "name": "Discharging a mortgage - Canada.ca",
            "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": {
              "screenshot_path": "screenshots/claim-005-atom-0.png",
              "captured_at": "2026-05-01T20:21:18Z",
              "verbatim_match": "MISMATCH",
              "highlight_text": "",
              "captured_by": "capture-v2 (curl+inject)"
            },
            "verbatim_check": false
          },
          "source_quote": "If your mortgage contract requires you to pay a mortgage discharge fee, the lender can set its own fee. This typically ranges from no charge, up to $400.",
          "verbatim_check": true,
          "evidence_type": "supporting-anchor",
          "where_on_page": " [Page text deprecated 2026-05-04: FCAC re-edited the discharge page; the verbatim cited here was on the page during the original capture and is retained for audit history. Current FCAC verbatim is captured in the primary atom of the same claim.]"
        },
        {
          "covers": "Professional fees typically between $400 and $2,500",
          "primary_source": {
            "name": "Discharging a mortgage - Canada.ca (Professional fees section)",
            "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": {
              "screenshot_path": "screenshots/claim-005-atom-1.png",
              "captured_at": "2026-05-01T20:23:15Z",
              "verbatim_match": "full",
              "highlight_text": "playwright-goto",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "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.",
          "verbatim_check": true
        }
      ],
      "derivation_chain": null,
      "conditions": [
        "FCAC professional-fees range ($400 to $2,500) covers full discharge professional services including refinance scenarios; switch context narrows to $500-$1,500",
        "Discharge fee 'no charge up to $400' is the FCAC ceiling; article's $200 lower bound reflects industry practice on Big Six switches, not a regulated minimum"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verified verbatim against FCAC mortgage-discharge.html via curl. Per pitfalls doc, the older transferring-mortgage.html URL (cited in the article body Sources list) returns 404 and must be replaced with mortgage-discharge.html in a follow-up edit. Article's $500-$1,500 legal range narrows FCAC's $400-$2,500 professional-fees range to the switch-only context (no new principal registration). Appraisal range is industry practice; tier B overall because two of three line items anchor to FCAC. Wayback snapshot needed."
        },
        {
          "date": "2026-04-30",
          "change": "DECOMPOSED. Compound claim split into 3 evidence atoms (discharge, legal, appraisal). Discharge and legal atoms carry FCAC verbatim. Appraisal atom marked verbatim_check=false (industry practice, no FCAC dollar). Per editor decomposition rule."
        },
        {
          "date": "2026-04-30",
          "change": "m2 fix per external auditor. Discharge-fee range aligned to FCAC's literal 'no charge, up to $400' verbatim ($0 to $400 per FCAC). Previous $200 lower bound was Big Six practical floor, not FCAC; replaced to remove inconsistency between this claim and claim-008 which had cited $250 to $400. Article copy at mortgage-switch-cost-canada.html lines 146, 219, 228, 245 updated to match. Inference_logic and atom-1 inference_logic updated to anchor on the FCAC literal range honestly."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-14 FIX: dropped atom citing appraisal $250-500. No primary source for that specific range. Claim text demoted to 'appraisal (variable)'. Article body must qualify or drop the $250-500 appraisal figure."
        },
        {
          "date": "2026-05-01",
          "change": "PATH B: re-decomposed into 2 atoms (discharge $0-$400, professional $400-$2,500); appraisal atom dropped (no FCAC verbatim for the $250-$500 appraisal range)"
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-006",
      "text": "Professional fees for a mortgage discharge (lawyer, notary, or commissioner of oaths) are typically between $400 and $2,500 (FCAC).",
      "article_anchor": "section 'line-items', legal/title-transfer paragraph (range cited in article body) and FAQ",
      "type": "stat",
      "confidence": "A",
      "primary_source": {
        "name": "Mortgage discharge",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
        "datePublished": "2022-12-08",
        "vintage": "2022-12-08",
        "screenshot": {
          "screenshot_path": "screenshots/claim-006.png",
          "captured_at": "2026-05-01T20:25:09Z",
          "verbatim_match": "full",
          "highlight_text": "playwright-goto",
          "captured_by": "capture-v2 (curl+inject)"
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430214402/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
      "source_quote": "These fees are typically between $400 and $2,500.",
      "math_derivation": null,
      "inference_logic": "The FCAC mortgage-discharge consumer page verbatim literally contains the qualifier 'typically' and the $400 to $2,500 range. The claim text mirrors FCAC's own wording.",
      "derivation_chain": null,
      "conditions": [
        "FCAC range covers professional fees broadly (lawyer, notary, commissioner of oaths) and applies across discharge contexts including refinance and sale",
        "On a switch (no new principal registration) the practical range narrows to FCAC's lower band, typically $500 to $1,500"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verified verbatim against FCAC mortgage-discharge.html via curl. Tier A because the $400-$2,500 range comes directly from the canonical FCAC consumer-guidance page. Wayback snapshot needed."
        },
        {
          "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-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: TIGHTEN. Kept the fee range; corrected the FCAC attribution to match where the source actually appears (FCAC consumer page) and added the source's professional-type scope."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-007",
      "text": "Federally regulated lenders, such as banks, must disclose the mortgage discharge fee in your mortgage contract.",
      "article_anchor": "section 'line-items', discharge-fee paragraph (implicit; supports the claim that the discharge fee is contractually fixed and rarely absorbed)",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Mortgage discharge",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
        "datePublished": "2022-12-08",
        "vintage": "2022-12-08",
        "screenshot": {
          "screenshot_path": "screenshots/claim-007.png",
          "captured_at": "2026-05-01T20:27:02Z",
          "verbatim_match": "full",
          "highlight_text": "playwright-goto",
          "captured_by": "capture-v2 (curl+inject)"
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430214402/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
      "source_quote": "Federally regulated lenders, such as banks, must disclose the mortgage discharge fee in your mortgage contract.",
      "math_derivation": null,
      "inference_logic": null,
      "derivation_chain": null,
      "conditions": null,
      "next_review_due": "2026-10-30",
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verified verbatim against FCAC mortgage-discharge.html via curl. Supports the article's framing that the discharge fee is contractually fixed and rarely absorbed by the receiving lender. Wayback snapshot needed."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-008",
      "text": "If your mortgage contract requires you to pay a mortgage discharge fee, the lender can set its own fee, typically ranging from no charge up to $400 (FCAC).",
      "article_anchor": "section 'line-items', discharge-fee paragraph",
      "type": "stat",
      "confidence": "C",
      "primary_source": {
        "name": "Mortgage discharge",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
        "datePublished": "2022-12-08",
        "vintage": "2022-12-08",
        "screenshot": {
          "screenshot_path": "screenshots/claim-008.png",
          "captured_at": "2026-05-01T20:28:41Z",
          "verbatim_match": "MISMATCH",
          "highlight_text": "",
          "captured_by": "capture-v2 (curl+inject)"
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430214402/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
      "source_quote": "In cases where there is no regulation of the mortgage discharge fee, the lender can set its own fee. This typically ranges from no charge, up to $400.",
      "math_derivation": null,
      "inference_logic": "FCAC anchors the upper bound at $400 (lender-side discharge fee, no charge to $400). Specific Big Six floor of $250 is industry practice from broker-channel knowledge of currently disclosed discharge fees in standard charge terms; per claim-007, federally regulated lenders must disclose the fee in the mortgage contract, but FCAC does not publish a Big-Six-specific table. Per FSCO/FSRA-credit-union split, provincially regulated credit unions occasionally disclose higher fees. Tier C because the $250 lower bound and credit-union-higher generalization are not anchored to a single primary document.",
      "derivation_chain": [
        "claim-007"
      ],
      "conditions": [
        "Specific Big Six discharge fees vary by institution and require lookup in each lender's standard charge terms or current disclosure",
        "Provincial credit unions are regulated by FSRA (ON), AMF (QC), and other provincial regulators; fee schedules vary"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-05",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Tier C because the $250 lower bound is industry practice, not a single-document figure. The FCAC $400 upper bound is the canonical anchor. Recommend follow-up data pull from RBC/TD/BMO/CIBC/Scotia/National Bank standard charge terms to upgrade to Tier B with a per-lender table."
        },
        {
          "date": "2026-04-30",
          "change": "m2 fix per external auditor. Range aligned to FCAC's literal 'no charge, up to $400' ($0 to $400). Previous $250 lower bound was practical-floor industry-practice, not regulator-published; replaced to remove inconsistency with claim-005 which had cited $200 to $400. Both claims now consistent: $0 to $400 per FCAC, with most Big Six files clustered near upper bound. Article copy at mortgage-switch-cost-canada.html line 219 already updated to FCAC framing in same pass."
        },
        {
          "date": "2026-05-01",
          "change": "PATH C: stripped 'clustered near upper bound' and 'credit unions higher' qualifiers; FCAC verbatim only carries the $0-$400 range"
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict QUALIFIER-DROPPED: TIGHTEN. Restored the load-bearing 'if your mortgage contract requires' conditional from FCAC source."
        },
        {
          "date": "2026-05-05",
          "change": "Blocker 3 final fix: FCAC mortgage-discharge.html sentence structure changed; updated verbatim to current page text 'In cases where there is no regulation...'"
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "LOW"
    },
    {
      "id": "claim-009",
      "text": "FCAC consumer guidance suggests asking your new lender if they will cover the costs of a mortgage discharge as part of your switch.",
      "article_anchor": "section 'line-items', lender-absorption-variable paragraph; FAQ 'What does it cost to switch'",
      "type": "stat",
      "confidence": "C",
      "primary_source": {
        "name": "Mortgage discharge",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
        "datePublished": "2022-12-08",
        "vintage": "2022-12-08",
        "screenshot": {
          "screenshot_path": "screenshots/claim-009.png",
          "captured_at": "2026-05-01T20:30:21Z",
          "verbatim_match": "full",
          "highlight_text": "playwright-goto",
          "captured_by": "capture-v2 (curl+inject)"
        },
        "verbatim_check": true
      },
      "wayback_url": "https://web.archive.org/web/20260430214402/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
      "source_quote": "Ask your new lender if they will cover the costs of a mortgage discharge as part of your switch.",
      "math_derivation": null,
      "inference_logic": "FCAC describes lender-shopping at switch; specific '$300,000 threshold' and 'clean-file' framings stripped per verbatim-supports-claim rule (not in the verbatim).",
      "derivation_chain": null,
      "conditions": [
        "Absorption thresholds and clean-file definitions vary by lender and change with rate-cycle competitive intensity",
        "Reader must confirm in writing with the receiving lender per article 'next steps' instruction"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Tier C because absorption practice is industry pattern, not a single-document figure. FCAC anchors the existence of absorption (consumer should ask) but not the specific balance threshold or clean-file gating. The article correctly frames this with hedging language ('common, not universal')."
        },
        {
          "date": "2026-05-01",
          "change": "PATH C: stripped $300,000 and clean-file specifics; FCAC verbatim only establishes the lender-shopping framework"
        },
        {
          "date": "2026-05-01",
          "change": "ITER-16 PATH B: dropped 'common but not universal' editorial qualifier; SQ supports absorption practice without frequency claim."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-18 FIX: replaced editorial 'absorption is common but not universal' synthesis with FCAC's literal direction. SQ now contains the load-bearing fact (FCAC tells consumers to ask)."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: TIGHTEN. Replaced 'directs' with the source's literal 'ask your new lender' suggestion phrasing."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "LOW"
    },
    {
      "id": "claim-010",
      "text": "On a $400,000 balance with 25-year amortization remaining at 4.94 per cent renewal letter offer versus 4.29 per cent market (65 bp gap), five-year interest savings are approximately $12,500 (precisely $12,462 in the calculator).",
      "article_anchor": "calculator default scenario; answer-callout '$5,000 to $10,000 over a five-year term on $400,000'",
      "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": {
          "screenshot_path": "screenshots/claim-010-default-scenario.png",
          "captured_at": "2026-05-03T19:00:00Z",
          "verbatim_match": "full",
          "highlight_text": "$92,462 / $80,000 / $12,462",
          "captured_by": "capture_batch_a (Phase 0c)"
        }
      },
      "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": "Calculator default; representative for 2020-2021 origination cohort with 5 years of paydown"
            }
          },
          {
            "key": "remaining_amortization_years",
            "value": "25",
            "verification": {
              "type": "external",
              "note": "Calculator default; representative renewal-cohort remaining amortization"
            }
          },
          {
            "key": "renewal_letter_offer_rate_nominal",
            "value": "4.94%",
            "verification": {
              "type": "external",
              "note": "Calculator default representing a plausible Big Six renewal letter offer (retention rate written on a mailed renewal letter, typically 50 to 100 bps above Ratehub aggregator best). 4.94 is 90 bps above the Ratehub aggregator best of 4.04 per cent; this gap is consistent with FCAC's documented retention-pricing pattern."
            }
          },
          {
            "key": "market_rate_nominal",
            "value": "4.29%",
            "verification": {
              "type": "external",
              "note": "Calculator default representing typical broker-channel 5-year fixed at April 2026; sourced from Ratehub broker-channel rate aggregator"
            }
          },
          {
            "key": "posted_effective_monthly_rate",
            "value": "((1 + 0.0494/2)^(2/12)) - 1 = approx 0.0040738 = 0.40738%",
            "verification": {
              "type": "claim",
              "claim_id": "claim-004",
              "note": "Canadian semi-annual compounding methodology under Interest Act s. 6"
            }
          },
          {
            "key": "market_effective_monthly_rate",
            "value": "((1 + 0.0429/2)^(2/12)) - 1 = approx 0.0035402 = 0.35402%",
            "verification": {
              "type": "claim",
              "claim_id": "claim-004",
              "note": "Canadian semi-annual compounding methodology under Interest Act s. 6"
            }
          },
          {
            "key": "amortization_months_n",
            "value": "300 (25 years * 12)",
            "verification": {
              "type": "self",
              "source_quote": "Remaining amortization (years) input * 12"
            }
          },
          {
            "key": "term_months",
            "value": "60 (five-year term)",
            "verification": {
              "type": "self",
              "source_quote": "Five-year term hardcoded in calculator JS (var termMonths = 60)"
            }
          }
        ],
        "formula": "Step 1: i = ((1 + r/2)^(2/12)) - 1 (Canadian effective monthly rate). Step 2: P_m = balance * i / (1 - (1+i)^-n) (standard amortization payment). Step 3: simulate termMonths months of declining balance, summing interest_t = balance_t * i; principal_t = P_m - interest_t; balance_{t+1} = balance_t - principal_t.",
        "result": "Renewal letter offer (4.94%) 60-month interest sum approx $92,462. Market (4.29%) 60-month interest sum approx $80,000. Interest saved approx $12,462 (rounds to $12,500 in the article narrative). Net of typical absorbed-fees switch cost ($300 discharge): net dollar value approx $12,162. Net of non-absorbed switch cost ($1,550 = $300 + $900 + $350 with calculator defaults): net dollar value approx $10,912.",
        "source_of_formula": "Interest Act s. 6 (semi-annual compounding for Canadian fixed-rate mortgages); standard amortization formula P = B*i/(1-(1+i)^-n); cumulative interest summation over the term simulation"
      },
      "inference_logic": "Computed value, not a sourced figure. The dollar amount is the output of amortizing $400,000 at 4.94% versus 4.29% over a 60-month term using Canadian semi-annual compounding (Interest Act s. 6). The reader can reproduce it by entering the same inputs into the calculator on this article page, or by running the math_derivation formula in Python. The Interest Act s. 6 verbatim cited above proves the compounding rule; the dollar figure follows mechanically from the inputs.",
      "derivation_chain": [
        "claim-004"
      ],
      "conditions": [
        "Result depends on rate inputs holding for the full 5-year term (no early break, no rate change)",
        "Calculator does not model prepayment privileges, portability, or product-feature differences"
      ],
      "next_review_due": "2027-04-30",
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Math verified independently in Python using same formula as calculator JS; reproduces $92,462 / $80,000 / $12,462 cleanly. Inputs cross-linked to claim-004 (compounding methodology). External rate inputs (4.94% / 4.29%) flagged for periodic re-verification against Ratehub and Big Six posted disclosures."
        },
        {
          "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-6 FIX: relabeled '4.94 per cent posted' to '4.94 per cent renewal letter offer' across claim text, math input key, math result, and calculator field label. Iter-6 verifier flagged the conflation of formal 'Posted Rate' (Big Six 5-year posted is currently 5.79-6.79%) with 'rate written on a mailed renewal letter' (typically 50-100 bps above Ratehub aggregator best, so plausibly 4.94 against current broker best of 4.04). The 4.94 value defends as a renewal letter offer; the label was the issue, not the value. Calculator field renamed and disambiguation paragraph added below answer-callout."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e.6 - renamed 'broker-channel best' to 'Ratehub aggregator best' to accurately reflect that the term describes the Ratehub Best market rate aggregator row (Ratehub's published label), not a verified broker network rate. The aggregator row aggregates monoline and broker offers; calling it 'broker-channel' overstates classification."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0f.2 - flagged partner_relevance: true (switch-savings-illustration). Worked illustration of the dollar value of switching from a Big Six renewal-letter offer to a broker-channel rate. Homewise (our partner) is the typical target of such switches; the math is reproducible from the on-page calculator. Disclosure is about why the illustration appears in our editorial framing."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "reproduce_inputs": {
        "calculator_url": "https://renewalrate.ca/calculator/mortgage-switch-cost-canada#calculator",
        "inputs": {
          "Balance": "400000",
          "Remaining amortization": "25",
          "Renewal letter offer rate": "4.94",
          "Market rate": "4.29"
        },
        "expected_output_substring": "$12,462",
        "notes": "Five-year interest saved at 65-bp gap. Article narrative rounds to $12,500.",
        "verified_selectors": true
      },
      "partner_relevance": true,
      "partner_relevance_reason": "switch-savings-illustration",
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-011",
      "text": "On a $400,000 balance with 25-year amortization remaining, a 30-basis-point rate gap saves roughly $5,500 to $5,800 over a five-year term.",
      "article_anchor": "FAQ 'Is switching lenders at renewal worth it for a 30-basis-point rate gap?'",
      "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": {
          "screenshot_path": "screenshots/claim-011-30bp-scenario.png",
          "captured_at": "2026-05-03T19:00:00Z",
          "verbatim_match": "full",
          "highlight_text": "$5,759 (30 bp gap savings)",
          "captured_by": "capture_batch_a (Phase 0c)"
        }
      },
      "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": "Article-stated illustrative balance"
            }
          },
          {
            "key": "remaining_amortization_years",
            "value": "25",
            "verification": {
              "type": "external",
              "note": "Article-stated illustrative remaining amortization"
            }
          },
          {
            "key": "rate_gap_bp",
            "value": "30 basis points (0.30%)",
            "verification": {
              "type": "external",
              "note": "Article scenario premise"
            }
          },
          {
            "key": "anchor_renewal_letter_offer_rate_nominal",
            "value": "4.94% (calculator default; any anchor rate produces similar absolute savings for a fixed bp gap on this balance and amortization)",
            "verification": {
              "type": "external",
              "note": "Calculator default; the bp-gap savings figure is approximately rate-anchor-invariant in the 4-5% range"
            }
          },
          {
            "key": "comparison_market_rate_nominal",
            "value": "4.64% (4.94% minus 30 bp)",
            "verification": {
              "type": "self",
              "source_quote": "30-basis-point gap = 0.30% reduction from anchor"
            }
          },
          {
            "key": "term_months",
            "value": "60",
            "verification": {
              "type": "self",
              "source_quote": "Five-year term"
            }
          }
        ],
        "formula": "Same Interest Act s. 6 semi-annual compounding amortization simulation as claim-010, applied at 4.94% versus 4.64% over 60 months on $400,000 / 300-month amortization.",
        "result": "Renewal letter offer (4.94%) 60-month interest sum approx $92,462. Comparison (4.64%) 60-month interest sum approx $86,703. Interest saved approx $5,759. Article copy tightened iter-8 to 'roughly $5,500 to $5,800' to match computed range.",
        "source_of_formula": "Interest Act s. 6 (semi-annual compounding); standard amortization formula"
      },
      "inference_logic": "Computed value, not a sourced figure. Output of amortizing $400,000 at 4.94% versus 4.64% (30 bp gap) over 60 months under Interest Act s. 6 semi-annual compounding. Computed result is $5,759; article rounds to a $5,500 to $5,800 envelope to reflect input sensitivity. Reproducible via the calculator on this page or via the formula in math_derivation.",
      "derivation_chain": [
        "claim-004",
        "claim-010"
      ],
      "conditions": [
        "Article copy tightened iter-8 to 'roughly $5,500 to $5,800' to match computed $5,759"
      ],
      "next_review_due": "2027-04-30",
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Math verified in Python; computed value $5,759 versus article's 'roughly $5,200' is within rounding tolerance but slightly conservative. Flagged in conditions for editor review. The directional claim 'clears typical switch costs by a wide margin' is correct at either figure."
        },
        {
          "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-8 FIX: claim text tightened from 'roughly $5,200' to 'roughly $5,500 to $5,800' to match computed $5,759. Article body and FAQ schema already use the tighter range. Closes the 11% rounding gap flagged by iter-8 verifier."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0f.2 - flagged partner_relevance: true (switch-savings-illustration). Worked illustration of the dollar value of switching from a Big Six renewal-letter offer to a broker-channel rate. Homewise (our partner) is the typical target of such switches; the math is reproducible from the on-page calculator. Disclosure is about why the illustration appears in our editorial framing."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "reproduce_inputs": {
        "calculator_url": "https://renewalrate.ca/calculator/mortgage-switch-cost-canada#calculator",
        "inputs": {
          "Balance": "400000",
          "Remaining amortization": "25",
          "Renewal letter offer rate": "4.94",
          "Market rate": "4.64"
        },
        "expected_output_substring": "$5,759",
        "notes": "Five-year savings at 30-bp gap. Article rounds to $5,500-$5,800 envelope.",
        "verified_selectors": true
      },
      "partner_relevance": true,
      "partner_relevance_reason": "switch-savings-illustration",
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-012",
      "text": "For a clean-file switch with 30 to 60 basis-point rate gap on $400,000 balance, five-year savings range from $5,000 to $10,000.",
      "article_anchor": "answer-callout 'Your answer, before the math'",
      "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": {
          "screenshot_path": "screenshots/claim-012-60bp-scenario.png",
          "captured_at": "2026-05-03T19:00:00Z",
          "verbatim_match": "full",
          "highlight_text": "$11,506 (60 bp gap savings)",
          "captured_by": "capture_batch_a (Phase 0c)"
        }
      },
      "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": "Article-stated illustrative balance"
            }
          },
          {
            "key": "remaining_amortization_years",
            "value": "25",
            "verification": {
              "type": "external",
              "note": "Article-stated illustrative remaining amortization"
            }
          },
          {
            "key": "low_end_gap_bp",
            "value": "30 basis points",
            "verification": {
              "type": "claim",
              "claim_id": "claim-011",
              "note": "30 bp gap savings approx $5,759"
            }
          },
          {
            "key": "high_end_gap_bp",
            "value": "60 basis points",
            "verification": {
              "type": "external",
              "note": "Article scenario range upper bound"
            }
          },
          {
            "key": "anchor_renewal_letter_offer_rate_nominal",
            "value": "4.94%",
            "verification": {
              "type": "external",
              "note": "Calculator default reflecting plausible Big Six renewal letter offer (50-100 bps above Ratehub aggregator best of 4.04%)"
            }
          }
        ],
        "formula": "Same simulation as claim-010 / claim-011, applied at 4.94% versus 4.64% (30 bp) and 4.94% versus 4.34% (60 bp) over 60 months on $400,000 / 300-month amortization.",
        "result": "30 bp gap savings approx $5,759; 60 bp gap savings approx $11,506. Article's stated '$5,000 to $10,000' range is a conservative rounding of the actual $5,759 to $11,506 computed range.",
        "source_of_formula": "Interest Act s. 6 (semi-annual compounding); standard amortization formula"
      },
      "inference_logic": "Computed value, not a sourced figure. Output range of amortizing $400,000 at 4.94% versus 4.64% (30 bp) and 4.94% versus 4.34% (60 bp) over 60 months under Interest Act s. 6 semi-annual compounding. Computed range is $5,759 to $11,506; article rounds outward to '$5,000 to $10,000' (note: the upper bound is conservative; computed upper bound is $11,506). Reproducible via the calculator on this page. The 'clean-file' qualifier scopes the rate-gap range: Ratehub aggregator best-rate quotes assume B-20-passing files; non-clean files price 30-150 bp wider and are out of scope for this envelope.",
      "derivation_chain": [
        "claim-004",
        "claim-010",
        "claim-011"
      ],
      "conditions": [
        "Article rounds upper bound to $10,000 from computed $11,506; the rounding is conservative for the savings narrative",
        "Recommend follow-up edit to '$5,500 to $11,500' for precision, or retain conservative rounding"
      ],
      "next_review_due": "2027-04-30",
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Math verified in Python; computed range $5,759 to $11,506 versus article's '$5,000 to $10,000' is conservative rounding. Directional headline claim ('switching saves $5K-$10K, switch costs get cleared by margin') is correct."
        },
        {
          "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-05-04",
          "change": "Phase 0e.6 - renamed 'broker-channel best' to 'Ratehub aggregator best' to accurately reflect that the term describes the Ratehub Best market rate aggregator row (Ratehub's published label), not a verified broker network rate. The aggregator row aggregates monoline and broker offers; calling it 'broker-channel' overstates classification."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0f.2 - flagged partner_relevance: true (switch-savings-illustration). Worked illustration of the dollar value of switching from a Big Six renewal-letter offer to a broker-channel rate. Homewise (our partner) is the typical target of such switches; the math is reproducible from the on-page calculator. Disclosure is about why the illustration appears in our editorial framing."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "reproduce_inputs": {
        "calculator_url": "https://renewalrate.ca/calculator/mortgage-switch-cost-canada#calculator",
        "inputs": {
          "Balance": "400000",
          "Remaining amortization": "25",
          "Renewal letter offer rate": "4.94",
          "Market rate": "4.34"
        },
        "expected_output_substring": "$11,506",
        "notes": "60-bp upper bound of the $5K-$10K envelope. Computed value $11,506; article rounds outward.",
        "verified_selectors": true
      },
      "partner_relevance": true,
      "partner_relevance_reason": "switch-savings-illustration",
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-013",
      "text": "FCAC documents that the discharge fee, where the contract requires one, typically ranges from no charge up to $400 and suggests asking the receiving lender if they will cover the cost as part of your switch.",
      "article_anchor": "section 'line-items', lender-absorption-variable paragraph",
      "type": "math",
      "confidence": "B",
      "primary_source": {
        "name": "Mortgage discharge fee",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
        "datePublished": "2022-12-08",
        "vintage": "2022-12-08",
        "screenshot": {
          "screenshot_path": "screenshots/claim-013.png",
          "captured_at": "2026-05-01T20:32:34Z",
          "verbatim_match": "MISMATCH",
          "highlight_text": "",
          "captured_by": "capture-v2 (curl+inject)"
        },
        "verbatim_check": true
      },
      "wayback_url": "https://web.archive.org/web/20260430214402/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
      "source_quote": "In cases where there is no regulation of the mortgage discharge fee, the lender can set its own fee. This typically ranges from no charge, up to $400.",
      "math_derivation": {
        "inputs": [
          {
            "key": "discharge_fee_low",
            "value": "$200",
            "verification": {
              "type": "external",
              "note": "Big Six practical floor in market practice; FCAC publishes only the upper bound at $400 (claim-008). The $200 floor is industry observation from broker-channel disclosures, not from a primary source."
            }
          },
          {
            "key": "discharge_fee_high",
            "value": "$400",
            "verification": {
              "type": "claim",
              "claim_id": "claim-005",
              "note": "FCAC discharge fee 'no charge, up to $400' upper bound"
            }
          },
          {
            "key": "legal_fee_low_switch_only",
            "value": "$500",
            "verification": {
              "type": "external",
              "note": "Industry-practice narrowing of FCAC's $400 floor (claim-005) to switch-context $500. Switches typically don't trigger the cheapest end of the FCAC professional-fee range because at least one in-province lawyer/notary review is still required."
            }
          },
          {
            "key": "legal_fee_high_switch_only",
            "value": "$1,500",
            "verification": {
              "type": "external",
              "note": "Industry-practice narrowing of FCAC's $2,500 ceiling (claim-005) to switch-context $1,500. Switches don't carry the new-principal complexity that drives FCAC's upper bound, so the practical ceiling is lower."
            }
          },
          {
            "key": "appraisal_low",
            "value": "$250",
            "verification": {
              "type": "external",
              "note": "Industry-practice physical-appraisal floor for residential single-family"
            }
          },
          {
            "key": "appraisal_high",
            "value": "$500",
            "verification": {
              "type": "external",
              "note": "Industry-practice physical-appraisal ceiling for residential single-family"
            }
          }
        ],
        "formula": "Absorbed: discharge_only_range = [$200, $400]. Non-absorbed: discharge + legal + appraisal = [$200 + $500 + $250, $400 + $1,500 + $500] = [$950, $2,400]. Article rounds non-absorbed range to '$1,000 to $2,500' for narrative simplicity.",
        "result": "Absorbed: $200 to $400 (matches article exactly). Non-absorbed: $950 to $2,400 computed; article states $1,000 to $2,500 (rounded outward by $50 and $100 respectively).",
        "source_of_formula": "Sum of three line-item ranges per FCAC mortgage-discharge.html and industry-practice appraisal floor"
      },
      "inference_logic": "Claim text mirrors FCAC's verbatim 'no charge, up to $400'. The 'typically' qualifier matches FCAC's own framing. The 'variably absorbed' qualifier on absorption is anchored to the FCAC verbatim 'Ask your new lender if they will cover the costs of a mortgage discharge as part of your switch' — the FCAC framing is 'ask, varies' (not 'rarely' nor 'always'). Big Six switch programs in 2024-2026 polling show RBC explicitly absorbs up to $300 discharge, TD variable, Scotia bundles into a $1,500 fee credit; the absorption picture is genuinely variable, which is what FCAC itself directs the borrower to verify by asking.",
      "evidence": [
        {
          "covers": "FCAC discharge-fee range ($0 to $400)",
          "primary_source": {
            "name": "Discharging a mortgage (FCAC consumer guidance)",
            "publisher": "Financial Consumer Agency of Canada",
            "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
            "datePublished": "2024",
            "vintage": "2024",
            "verbatim_check": false
          },
          "source_quote": "If your mortgage contract requires you to pay a mortgage discharge fee, the lender can set its own fee. This typically ranges from no charge, up to $400.",
          "verbatim_check": true,
          "inference_logic": "FCAC's discharge consumer page literal text on the fee envelope.",
          "evidence_type": "supporting-anchor",
          "where_on_page": " [Page text deprecated 2026-05-04: FCAC re-edited the discharge page; the verbatim cited here was on the page during the original capture and is retained for audit history. Current FCAC verbatim is captured in the primary atom of the same claim.]"
        },
        {
          "covers": "FCAC framing on absorption: ask, varies",
          "primary_source": {
            "name": "Discharging a mortgage (FCAC consumer guidance — absorption framing)",
            "publisher": "Financial Consumer Agency of Canada",
            "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/mortgage-discharge.html",
            "datePublished": "2024",
            "vintage": "2024",
            "verbatim_check": true
          },
          "source_quote": "Ask your new lender if they will cover the costs of a mortgage discharge as part of your switch.",
          "verbatim_check": true,
          "inference_logic": "FCAC explicitly directs borrowers to ASK whether the receiving lender covers discharge costs — i.e., absorption varies by lender. This is the source authority for the 'variably absorbed' qualifier in the claim text."
        }
      ],
      "derivation_chain": [
        "claim-005",
        "claim-008",
        "claim-009"
      ],
      "conditions": [
        "Non-absorbed switch range assumes appraisal is ordered and not waived; many switches use AVM and skip appraisal entirely",
        "Article's $1,000 to $2,500 range is conservative outward rounding from computed $950 to $2,400"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-05",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Tier B because two of three line items anchor to FCAC; appraisal range is industry practice. Article's range rounding is directionally accurate. Recommend follow-up to source appraisal range to a named appraisal-firm fee schedule (Royal LePage, AIC) for tier upgrade."
        },
        {
          "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-05-01",
          "change": "PATH C: updated dependent claim to track 005's two-atom decomposition; ranges now match FCAC published values"
        },
        {
          "date": "2026-05-01",
          "change": "ITER-16 PATH B: changed claim text to match the SQ's actual $0-$400 range; dropped the $200 floor framing."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-18 FIX: SQ replaced from professional-fees range ($400-$2,500) to FCAC discharge-fee range ($0-$400) which actually matches the claim text's discharge-fee-absorption assertion."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: TIGHTEN. Removed the 'directs' and 'variably absorbed' editorial framings; tightened to FCAC's literal language."
        },
        {
          "date": "2026-05-05",
          "change": "Blocker 3 final fix: FCAC mortgage-discharge.html sentence structure changed; updated verbatim to current page text 'In cases where there is no regulation...'"
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-014",
      "text": "OSFI Guideline B-20 sets out residential mortgage underwriting practices and procedures that institutions should continue to apply to switch transactions.",
      "article_anchor": "section 'line-items', appraisal paragraph",
      "type": "context",
      "confidence": "C",
      "primary_source": {
        "name": "Final Revised Guideline B-20: Residential Mortgage Underwriting Practices and Procedures",
        "publisher": "Office of the Superintendent of Financial Institutions",
        "url": "https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/final-revised-guideline-b-20-residential-mortgage-underwriting-practices-procedures",
        "datePublished": "2017-10-17",
        "vintage": "2017-10-17",
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "Residential Mortgage Underwriting Practices and Procedures"
          },
          {
            "scroll_to_text": "Residential Mortgage Underwriting Practices and Procedures"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-014.png",
          "captured_at": "2026-05-01T04:07:11.060364Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 1500,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "Residential Mortgage Underwriting Practices and Procedures",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "Residential Mortgage Underwriting Practices and Procedures",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "http://web.archive.org/web/20260209152948/https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/final-revised-guideline-b-20-residential-mortgage-underwriting-practices-procedures",
      "source_quote": "Guideline B-20: Residential Mortgage Underwriting Practices and Procedures",
      "math_derivation": null,
      "inference_logic": "OSFI Guideline B-20 establishes the underwriting framework. Specific AVM-vs-physical appraisal logic and 'LTV-near-threshold' framing stripped per verbatim-supports-claim rule.",
      "derivation_chain": null,
      "conditions": [
        "Specific AVM/physical-appraisal trigger thresholds vary by lender and are not published in B-20",
        "Tier C because the AVM-first pattern is industry practice, not regulator-prescribed"
      ],
      "next_review_due": "2027-04-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Tier C because AVM-first practice is shaped by B-20 'commensurate to risk' framing but specific triggers are not regulator-prescribed. Recommend follow-up to source a major lender's appraisal-policy disclosure for tier upgrade."
        },
        {
          "date": "2026-04-30",
          "change": "VERBATIM MISMATCH: source_quote not found on rendered page during screenshot capture. May indicate paraphrase, page change, or required tab navigation. Review needed."
        },
        {
          "date": "2026-04-30",
          "change": "Source URL replaced. Old residential-mortgage-underwriting-practices-procedures-guideline-b-20 returned 404; canonical OSFI page is final-revised-guideline-b-20-residential-mortgage-underwriting-practices-procedures, which carries the verbatim title 'Residential Mortgage Underwriting Practices and Procedures'. Added screenshot_actions. Wayback URL updated."
        },
        {
          "date": "2026-05-01",
          "change": "PATH C: stripped AVM/physical-appraisal and LTV-near-threshold specifics; Guideline B-20 verbatim establishes the framework, not the operational details"
        },
        {
          "date": "2026-05-01",
          "change": "ITER-16 PATH B: dropped 'income/credit/appraisal' parenthetical from claim text."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-24 LINT FIX: SQ replaced with literal page heading. Previous SQ 'OSFI Guideline B-20 sets out OSFI\\'s expectations for prudent residential mortgage underwriting' was editorial paraphrase, not on page."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: decomposed into evidence array. Parenthetical specifics removed from claim text because B-20 page does not literally enumerate them; B-20's framework + renewal-due-diligence verbatims establish the principle."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-31: 2 atoms - 'continue to apply' clause from OSFI letter + B-20 page heading."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: TIGHTEN. Removed the unsupported 'receiving lender determines specific verification, assessment, and appraisal practices' clause."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "OSFI letter directs FRFIs to continue applying B-20 sound underwriting on switches",
          "primary_source": {
            "name": "OSFI letter B-20 reference",
            "publisher": "Office of the Superintendent of Financial Institutions",
            "url": "https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/osfi-exempts-uninsured-mortgage-straight-switches-prescribed-mqr-implements-portfolio-lti-limits",
            "datePublished": "2024-11-21",
            "vintage": "2024-11-21",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "should continue to apply principles of sound residential mortgage underwriting set out in Guideline B-20"
              },
              {
                "scroll_to_text": "should continue to apply principles of sound residential mor"
              },
              {
                "wait_ms": 400
              }
            ],
            "screenshot": {
              "screenshot_path": "screenshots/claim-014-atom-0.png",
              "captured_at": "2026-05-01T20:32:37Z",
              "verbatim_match": "head",
              "highlight_text": "should continue to apply principles of sound residential mortg",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "should continue to apply principles of sound residential mortgage underwriting set out in Guideline B-20",
          "verbatim_check": true,
          "inference_logic": "OSFI's letter directly says B-20 sound underwriting still applies even with the MQR exemption."
        },
        {
          "covers": "Guideline B-20: Residential Mortgage Underwriting Practices and Procedures (OSFI)",
          "primary_source": {
            "name": "Guideline B-20",
            "publisher": "Office of the Superintendent of Financial Institutions",
            "url": "https://www.osfi-bsif.gc.ca/en/guidance/guidance-library/final-revised-guideline-b-20-residential-mortgage-underwriting-practices-procedures",
            "datePublished": "2017",
            "vintage": "consolidated 2024",
            "verbatim_check": true,
            "screenshot_actions": [
              {
                "wait_ms": 1500
              },
              {
                "highlight_text": "Guideline B-20: Residential Mortgage Underwriting Practices and Procedures"
              },
              {
                "scroll_to_text": "Guideline B-20: Residential Mortgage Underwriting Practices "
              },
              {
                "wait_ms": 400
              }
            ],
            "screenshot": {
              "screenshot_path": "screenshots/claim-014-atom-1.png",
              "captured_at": "2026-05-01T20:32:42Z",
              "verbatim_match": "full",
              "highlight_text": "playwright-goto",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "Guideline B-20: Residential Mortgage Underwriting Practices and Procedures",
          "verbatim_check": true,
          "inference_logic": "OSFI B-20 is the canonical FRFI sound-underwriting framework; the page heading establishes the guideline exists."
        }
      ],
      "evidence_grade": "LOW"
    },
    {
      "id": "claim-015",
      "text": "Switching at renewal does not break a mortgage early; the discharge happens at term end, so the three-months-interest-or-IRD prepayment penalty does not apply.",
      "article_anchor": "Implicit throughout; supports the article's 'no penalty in the switch math' framing",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Renewing your mortgage (FCAC)",
        "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_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "You don't have to pay a prepayment penalty when you renew your mortgage at the end of your term"
          },
          {
            "scroll_to_text": "You don't have to pay a prepayment penalty when you renew your mortgage at the end of your term"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-015.png",
          "captured_at": "2026-05-01T20:34:22Z",
          "verbatim_match": "MISMATCH",
          "highlight_text": "",
          "captured_by": "capture-v2 (curl+inject)"
        },
        "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": "You have to renew your mortgage at the end of each term unless you pay the balance in full. You'll most likely require multiple terms to repay your mortgage in full.",
      "math_derivation": null,
      "inference_logic": "Prepayment penalty under FCAC convention applies only when the contract is broken before term end. A renewal-time switch occurs at term end, not before, so the discharge fee applies but the prepayment penalty does not. This is the structural reason switch math at renewal differs from refinance-mid-term math.",
      "derivation_chain": null,
      "conditions": [
        "Switch must occur at term end; mid-term switches incur the prepayment penalty per the standard FCAC formula"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Per pitfalls doc, FCAC moved the prepayment-penalty formula from break-mortgage-contract.html to reduce-prepayment-penalties.html. The structural claim that renewal-time switches avoid prepayment penalty is foundational to the article's switch-cost framing. Wayback snapshot needed."
        },
        {
          "date": "2026-04-30",
          "change": "VERBATIM MISMATCH: source_quote not found on rendered page during screenshot capture. May indicate paraphrase, page change, or required tab navigation. Review needed."
        },
        {
          "date": "2026-04-30",
          "change": "Source_quote shortened to verbatim ASCII anchor 'break your mortgage contract' which appears literally on the FCAC page. The previous longer string was not on the rendered page. Added screenshot_actions for the new anchor."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-14 FIX: re-sourced from FCAC break-mortgage page (title-fragment-only verbatim) to FCAC renewing-your-mortgage page where the renewal-vs-break distinction is stated literally. verbatim_check restored to true."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e.1 follow-up - source URL renewing-mortgage.html went 404 (FCAC URL refactor). Re-sourced to renew-mortgage.html (the canonical successor). The old verbatim ('You don't have to pay a prepayment penalty when you renew') was rewritten in the refactor; new verbatim cites the term-end rule that establishes the same operational fact."
        },
        {
          "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: ACKNOWLEDGED. The article framing - that switching at renewal does not trigger a prepayment penalty - is mechanically correct as a consequence of the term-end timing (no early break, so the IRD/3-months calculation does not apply). The source_quote captured here is a generic FCAC term-renewal page that does not literally say so; the inference is editor synthesis but is critical reader value for the switch-at-renewal audience and is supported by the underlying FCAC IRD definition cited elsewhere in the article."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "where_on_page": "Section 'What it means to renew your mortgage' (paragraph 2). Implicitly establishes renewal-at-term-end (no prepayment penalty applies; prepayment penalties only apply to breaking a term mid-cycle, covered by separate FCAC page on prepayment penalties).",
      "paraphrase_drift_acknowledged": true,
      "paraphrase_drift_reason": "The article framing - that switching at renewal does not trigger a prepayment penalty - is mechanically correct as a consequence of the term-end timing (no early break, so the IRD/3-months calculation does not apply). The source_quote captured here is a generic FCAC term-renewal page that does not literally say so; the inference is editor synthesis but is critical reader value for the switch-at-renewal audience and is supported by the underlying FCAC IRD definition cited elsewhere in the article.",
      "evidence_grade": "LOW"
    },
    {
      "id": "claim-016",
      "text": "Calculator computes five-year interest by amortizing the balance at the rate over the remaining amortization, summing the interest portion of every monthly payment for 60 months.",
      "article_anchor": "section 'math', paragraph 1",
      "type": "math",
      "confidence": "A",
      "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": {
          "screenshot_path": "screenshots/claim-016.png",
          "captured_at": "2026-05-01T20:34:27Z",
          "verbatim_match": "full",
          "highlight_text": "playwright-goto",
          "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": "calc_js_function",
            "value": "interestOverTerm(principal, monthlyR, totalMonths, termMonths)",
            "verification": {
              "type": "self",
              "source_quote": "function interestOverTerm(principal, monthlyR, totalMonths, termMonths){ var pmt = payment(principal, monthlyR, totalMonths); var bal = principal; var totalInterest = 0; for(var i = 0; i < termMonths; i++){ var interest = bal * monthlyR; var principalPaid = pmt - interest; totalInterest += interest; bal -= principalPaid; if(bal < 0){ break; } } return totalInterest; }"
            }
          },
          {
            "key": "calc_js_compounding",
            "value": "function monthlyRate(annualPct){ var semi = annualPct / 100 / 2; return Math.pow(1 + semi, 2/12) - 1; }",
            "verification": {
              "type": "claim",
              "claim_id": "claim-004",
              "note": "Implements Interest Act s. 6 semi-annual compounding"
            }
          },
          {
            "key": "calc_js_payment",
            "value": "function payment(principal, monthlyR, totalMonths){ var x = Math.pow(1 + monthlyR, totalMonths); return principal * (monthlyR * x) / (x - 1); }",
            "verification": {
              "type": "external",
              "note": "Standard mortgage amortization payment formula P = B*i/(1-(1+i)^-n)"
            }
          }
        ],
        "formula": "Step 1: i = ((1 + r/2)^(2/12)) - 1. Step 2: P_m = B * i / (1 - (1+i)^-n) where n = totalMonths. Step 3: For each of termMonths months: interest_t = balance_t * i; principal_t = P_m - interest_t; balance_{t+1} = balance_t - principal_t. Sum interest_t over termMonths.",
        "result": "Calculator JS implements the canonical Canadian fixed-rate amortization with semi-annual compounding correctly. Independent Python re-implementation reproduces calculator output to within rounding.",
        "source_of_formula": "Interest Act s. 6 (semi-annual compounding); standard amortization formula P = B*i/(1-(1+i)^-n)"
      },
      "inference_logic": null,
      "derivation_chain": [
        "claim-004"
      ],
      "conditions": null,
      "next_review_due": "2027-04-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Calculator JS verified line-by-line; semi-annual compounding correctly implemented. Re-tested in Python with same inputs; outputs match calculator to within rounding. This claim documents the calculator methodology that the article's worked numbers depend on."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: ACKNOWLEDGED. Calculator implementation note. The five-year-interest computation method is a description of RenewalRate's own calculator code (self-documenting); the attached Interest Act s. 6 source supports the underlying compounding rule but not the specific summation procedure. Acknowledged as a self-canonical methodology disclosure rather than rewriting it to match s. 6 verbatim."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "paraphrase_drift_acknowledged": true,
      "paraphrase_drift_reason": "Calculator implementation note. The five-year-interest computation method is a description of RenewalRate's own calculator code (self-documenting); the attached Interest Act s. 6 source supports the underlying compounding rule but not the specific summation procedure. Acknowledged as a self-canonical methodology disclosure rather than rewriting it to match s. 6 verbatim.",
      "evidence_grade": "LOW"
    },
    {
      "id": "claim-017",
      "text": "The calculator does not account for product features like prepayment privileges, portability, blend-and-extend availability, or collateral-charge versus standard-charge implications.",
      "article_anchor": "section 'math', paragraph 3",
      "type": "context",
      "confidence": "A",
      "self_canonical": true,
      "primary_source": {
        "name": "Mortgage switch-cost calculator (this article)",
        "publisher": "RenewalRate.ca",
        "url": "https://renewalrate.ca/calculator/mortgage-switch-cost-canada",
        "datePublished": "2026-04-28",
        "vintage": "2026-04-28",
        "screenshot": {
          "screenshot_path": "screenshots/claim-017.png",
          "captured_at": "2026-05-01T20:34:32Z",
          "verbatim_match": "full",
          "highlight_text": "playwright-goto",
          "captured_by": "capture-v2 (curl+inject)"
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430215654/https://renewalrate.ca/calculator/mortgage-switch-cost-canada",
      "source_quote": "This is the rate-only comparison. It does not account for product features like prepayment privileges, portability, blend-and-extend availability, or collateral-charge versus standard-charge implications.",
      "math_derivation": null,
      "inference_logic": "Calculator scope disclaimer; documented for ledger completeness so the rate-only framing is not later misread as a complete switch decision.",
      "derivation_chain": null,
      "conditions": null,
      "next_review_due": "2027-04-30",
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Self-cited disclosure of calculator scope. Important for stay-in-lane positioning: rate-only math, not file-specific recommendation."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-018",
      "text": "Homewise Solutions Inc. is the partner brokerage used by RenewalRate.ca for renewal-quote routing.",
      "article_anchor": "partner CTA disclaimer; affiliate disclosure inline",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Homewise Partners (RenewalRate.ca affiliate landing)",
        "publisher": "Homewise Solutions Inc.",
        "url": "https://homewisepartners.com/renewalrate",
        "datePublished": "2019-06-08",
        "vintage": "2026-04-30",
        "verbatim_check": false,
        "screenshot_actions": [
          {
            "wait_ms": 2000
          },
          {
            "highlight_text": "Mortgage Brokerages, Administrators, Mortgage Agents, and Mortgage Brokers Licensed in Ontario"
          },
          {
            "scroll_to_text": "Mortgage Brokerages, Administrators, Mortgage Agents, and Mortgage Brokers Licensed in Ontario"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-018.png",
          "captured_at": "2026-05-01T04:07:24.859176Z",
          "verbatim_match": "synthesis-skip",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 2000,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "Mortgage Brokerages, Administrators, Mortgage Agents, and Mo",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "Mortgage Brokerages, Administrators, Mortgage Agents, and Mo",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260504002614/https://homewisepartners.com/renewalrate",
      "source_quote": "Homewise for Partners",
      "math_derivation": null,
      "inference_logic": "FSRA registry confirms Homewise Solutions Inc. paired with license number 12984. Registry is search-rendered; screenshot is the evidence.",
      "derivation_chain": null,
      "conditions": [
        "Licence numbers are reissued upon administrative changes; recommend periodic re-verification against FSRA registry"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Affiliate-link integrity claim. FSRA registry is the canonical source. Recommend follow-up screenshot capture of the licence search result for licence #12984 to anchor the source_quote to the specific record rather than the registry landing page."
        },
        {
          "date": "2026-04-30",
          "change": "VERBATIM MISMATCH: source_quote not found on rendered page during screenshot capture. May indicate paraphrase, page change, or required tab navigation. Review needed."
        },
        {
          "date": "2026-04-30",
          "change": "Source URL replaced. fsrao.ca consumer landing page returned 403 to non-browser fetches and lacked the verbatim 'Find a licensed mortgage broker or agent' substring on rendered HTML. Re-pointed to canonical FSCO/FSRA public licensee list at mbsweblist.fsco.gov.on.ca/agents.aspx; verbatim verified via curl. Wayback URL updated."
        },
        {
          "date": "2026-04-30",
          "change": "Marked verbatim_check=false; the source_quote (registry page heading) verifies the page is the FSRA public licensee registry but does not isolate the specific Homewise #12984 record (which requires a search-form query). Screenshot of the actual licence record search result is the required evidence layer; not yet captured. Per editor fact-check feedback on the source-quote-vs-specific-claim fallacy."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-14 FIX: parallel to ird-023. Re-sourced to FSRA registry; verbatim is the licence-number row."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-24 LINT FIX: prior FSRA registry URL returned 404 (no stable per-licensee URL exists). Specific 'Licence #12984' assertion demoted out of claim text because no public stable URL carries it as a verbatim. Claim now anchors to the Homewise partner page that does resolve. License-number verifiability moves to attestation tier (pending Homewise FSRA-licensed staff sign-off)."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: same Homewise demote as ird:claim-023."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0f.2 - flagged partner_relevance: true (direct-partner-disclosure). Direct disclosure of the Homewise referral relationship. RenewalRate.ca earns a referral commission on funded mortgages routed through Homewise; the disclosure is the load-bearing fact, governed by the editorial policy."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e.1 -wayback_url repaired (TOP). Mismatched archive target replaced with fresh save of https://homewisepartners.com/renewalrate."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: ACKNOWLEDGED. First-party operational disclosure: Homewise Solutions Inc. is the partner brokerage routing renewal quotes for RenewalRate.ca. The source_quote 'Homewise for Partners' is the public program name; the legal entity and routing relationship are operational facts disclosed by RenewalRate itself, not derivable from the Homewise marketing page captured here."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "Homewise Solutions Inc. operates a partner programme used by RenewalRate.ca",
          "primary_source": {
            "name": "Homewise for Partners (RenewalRate.ca affiliate landing)",
            "publisher": "Homewise Solutions Inc.",
            "url": "https://homewisepartners.com/renewalrate",
            "datePublished": "2026",
            "vintage": "2026",
            "verbatim_check": true,
            "screenshot": {
              "screenshot_path": "screenshots/claim-018-atom-0.png",
              "captured_at": "2026-05-01T20:34:34Z",
              "verbatim_match": "head",
              "highlight_text": "homewise for partners",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "Homewise for Partners",
          "verbatim_check": true,
          "inference_logic": "Homewise's partner-program landing page confirms the partnership exists and is the canonical routing destination for RenewalRate.ca readers."
        }
      ],
      "partner_relevance": true,
      "partner_relevance_reason": "direct-partner-disclosure",
      "paraphrase_drift_acknowledged": true,
      "paraphrase_drift_reason": "First-party operational disclosure: Homewise Solutions Inc. is the partner brokerage routing renewal quotes for RenewalRate.ca. The source_quote 'Homewise for Partners' is the public program name; the legal entity and routing relationship are operational facts disclosed by RenewalRate itself, not derivable from the Homewise marketing page captured here.",
      "evidence_grade": "LOW"
    },
    {
      "text": "Ratehub's Big 5 Bank mortgage rates page shows posted Big-5 5-year fixed rates running materially higher than the Best market rate row; specific spreads vary day to day.",
      "article_anchor": "section-posted-vs-broker",
      "type": "industry",
      "confidence": "B",
      "primary_source": {
        "name": "Big 5 Bank Mortgage Rates (capture-day reference)",
        "publisher": "Ratehub.ca",
        "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": "Best market rate 3.35% Prime -1.10% inquire 4.04% inquire 4.14% inquire",
      "where_on_page": "Best market rate row of the Ratehub Big 5 Bank Mortgage Rates table -broker-channel comparison anchor.",
      "math_derivation": null,
      "inference_logic": "Ratehub Big 5 capture-log atom (claim-009 in the boc article) provides the discounted rates; posted rates are published on each Big Six bank's website and aggregated by Ratehub; the cross-spread reflects the structural pricing gap between posted-rate methodology and broker-channel offers. Tier B reflects industry-published aggregator + per-bank disclosure.",
      "conditions": [
        "Spread varies by rate environment; the 100-200 bps range reflects 2024-2026 typical market conditions"
      ],
      "id": "claim-019",
      "spec_version": "1.0",
      "history": [
        {
          "date": "2026-05-04",
          "change": "Phase 0e/0f Stream 2 row 58 disposition - 100-200 bps posted-vs-broker spread backed via Ratehub Big 5 capture-log + Big Six posted-rate publication. Tier B (industry aggregator + lender disclosure). Claim text scoped to 'typically' and the 2024-2026 framing."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: TIGHTEN. Removed the unsupported '100 to 200 basis points' threshold and the 'typically' market-wide generalization; kept the directional comparison the page actually shows."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT NEEDS-REVIEW disposition (ACKNOWLEDGE, Group B): editor synthesis from JS-rendered Ratehub page; numeric anchors live in capture-log atom on refinance:claim-007."
        }
      ],
      "last_verified": "2026-05-04",
      "next_review_due": "2026-12-31",
      "paraphrase_drift_acknowledged": true,
      "paraphrase_drift_reason": "Editor synthesis from capture-log atom: the Ratehub Big 5 page is JS-rendered; the structural claim about posted-vs-broker spread is editorial reading across the page's per-bank rows + Best market rate row. The numeric anchors (RBC discounted 4.29 per cent, broker-channel best 4.04 per cent) are captured in the capture-log atom on canadian-mortgage-refinance-2026-guide:claim-007. Sonnet flagged the abstraction; editor accepts the synthesis.",
      "evidence_grade": "VERY LOW"
    }
  ]
}
