{
  "article": {
    "slug": "calculator",
    "url": "/calculator",
    "title": "Mortgage Renewal Payment Calculator",
    "datePublished": "2026-04-23",
    "dateModified": "2026-04-30"
  },
  "ledger_meta": {
    "ledger_dateModified": "2026-05-01",
    "ledger_publisher": "RenewalRate.ca",
    "claim_count": 10,
    "removed_claims": [
      {
        "id": "claim-011",
        "removed_date": "2026-05-01",
        "original_text": "Canadian fixed-rate mortgage payment calculators using the Interest Act s. 6 semi-annual compounding rule compute payments under the half-yearly compounding convention.",
        "reason": "ITER-31 CONSOLIDATE: functional duplicate of claim-001 (Interest Act s. 6 calculator usage). Article methodology retains the assertion; claim-001 carries the evidence."
      }
    ],
    "spec_version": "1.0"
  },
  "claims": [
    {
      "id": "claim-001",
      "text": "Canadian fixed-rate mortgages compound twice a year (semi-annually, not in advance), which is the rule the calculator uses to convert the posted annual rate to an effective monthly rate.",
      "article_anchor": "methodology, paragraph 1; FAQ 'How accurate is this calculator?'",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Interest Act, R.S.C. 1985, c. I-15, s. 6",
        "publisher": "Government of Canada (Justice Laws Website)",
        "url": "https://laws-lois.justice.gc.ca/eng/acts/I-15/section-6.html",
        "datePublished": "1985",
        "vintage": "2001-04-25",
        "screenshot_actions": [
          {
            "wait_ms": 1200
          },
          {
            "highlight_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "scroll_to_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-001.png",
          "captured_at": "2026-05-01T20:58:24Z",
          "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": "Section 6 of the Interest Act mandates that interest on money secured by mortgage on real property be calculated 'yearly or half-yearly, not in advance.' Canadian chartered banks and federally regulated lenders implement this as semi-annual compounding for fixed-rate mortgages. The calculator applies this rule directly when converting the posted nominal annual rate to an effective monthly rate.",
      "derivation_chain": null,
      "conditions": [
        "Applies to fixed-rate mortgages on real property in Canada",
        "Variable-rate products and HELOCs are typically compounded monthly under their separate contract terms; the calculator targets fixed-rate renewal scenarios"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verbatim phrase 'calculated yearly or half-yearly, not in advance' confirmed via curl fetch of laws-lois.justice.gc.ca with Chrome UA. Note: the 2001 amendment (S.C. 2001, c. 4, s. 92) removed older 'on real property or an immovable, by any instalments' language; current consolidated text is the operative version."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-002",
      "text": "The calculator converts a nominal annual rate r to an effective monthly rate i using i = ((1 + r/2)^(2/12)) - 1.",
      "article_anchor": "methodology, paragraph 1; calculator JS function monthlyRate()",
      "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 (Justice Laws Website)",
        "url": "https://laws-lois.justice.gc.ca/eng/acts/I-15/section-6.html",
        "datePublished": "1985",
        "vintage": "2001-04-25",
        "screenshot_actions": [
          {
            "wait_ms": 1200
          },
          {
            "highlight_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "scroll_to_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-002.png",
          "captured_at": "2026-05-01T20:58:29Z",
          "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": "nominal_annual_rate_r",
            "value": "posted annual rate, percent (e.g. 4.19%)",
            "verification": {
              "type": "external",
              "note": "User-supplied input; the formula is rate-agnostic"
            }
          },
          {
            "key": "compounding_periods_per_year",
            "value": "2 (semi-annual)",
            "verification": {
              "type": "claim",
              "claim_id": "claim-001",
              "note": "Interest Act s. 6 mandate"
            }
          },
          {
            "key": "payments_per_year",
            "value": "12 (monthly)",
            "verification": {
              "type": "external",
              "note": "Standard Canadian monthly-payment convention; calculator targets monthly schedules"
            }
          }
        ],
        "formula": "Step 1: semi-annual periodic rate r_semi = r / 2. Step 2: per-period growth factor over a half-year is (1 + r_semi). Step 3: equivalent growth factor over one month is (1 + r_semi)^(2/12) (because there are 2/12 = 1/6 of a half-year in a month). Step 4: effective monthly rate i = ((1 + r/2)^(2/12)) - 1.",
        "result": "i = ((1 + r/2)^(2/12)) - 1, where r is the nominal annual rate expressed as a decimal",
        "source_of_formula": "Interest Act s. 6 mandates the half-yearly compounding REQUIREMENT (statutory). The conversion formula i = ((1 + r/2)^(2/12)) - 1 is the standard mathematical implementation given that compounding rule, derived from the universal compounding-frequency-equivalence identity. The formula is not statutory text; it is the canonical math used by Canadian chartered-bank amortization engines to honour the Interest Act s. 6 mandate."
      },
      "inference_logic": "DERIVATION CHAIN: (1) compounding rule from claim-001 -> Interest Act s. 6 mandates Canadian fixed-rate mortgage interest 'calculated yearly or half-yearly, not in advance' (statutory verbatim, primary source). (2) -> conversion formula -> given the statute mandates semi-annual compounding (2 periods per year), the equivalence transformation to a monthly-compounded effective rate uses the universal identity (1 + i_target)^periods_target = (1 + i_source)^periods_source. Setting periods_target = 12 (monthly) and periods_source = 2 (semi-annual mandated by statute) yields i = ((1 + r/2)^(2/12)) - 1. The statute is the foundational anchor; the conversion formula is one inference step (the universal time-value-of-money math) on top of the statutory compounding rule. The source_quote 'calculated yearly or half-yearly, not in advance' is the foundational regulatory anchor for the whole chain; the formula itself is universal mathematics, not statutory text.",
      "derivation_chain": [
        "claim-001"
      ],
      "conditions": [
        "Applies to fixed-rate Canadian mortgages with monthly payment frequency",
        "For weekly or bi-weekly schedules, replace the 2/12 exponent with 2/52 or 2/26 respectively; the calculator uses 2/12 because it presents monthly outputs"
      ],
      "next_review_due": null,
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Formula verified against the calculator's JS source (function monthlyRate at calculator.html line 696) and against Interest Act s. 6 verbatim text."
        },
        {
          "date": "2026-04-30",
          "change": "M7 fix per external auditor. Acknowledged in inference_logic that Interest Act s.6 establishes the half-yearly compounding REQUIREMENT (statutory) and the conversion formula is the standard derivation given that compounding rule. Removed implicit framing that the formula is statutory text; replaced with explicit framing that the formula is the canonical mathematical implementation of the statutory rule. source_of_formula updated to make this distinction clear. Walked the derivation explicitly from the s.6 verbatim through the compounding-frequency-equivalence identity."
        },
        {
          "date": "2026-04-30",
          "change": "ITER-5 FIX (m-5): inference_logic restructured as explicit two-step DERIVATION CHAIN: (1) compounding rule (claim-001 / Interest Act s.6 source_quote) -> (2) conversion formula (universal time-value-of-money math). Per editor verbatim-supports-claim rule: source_quote 'calculated yearly or half-yearly, not in advance' is the foundational regulatory anchor; the math step is explicit so a reader sees exactly how the statute justifies the formula. derivation_chain ['claim-001'] already populated; inference_logic now walks the chain in the same prose."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-003",
      "text": "The calculator computes the monthly payment using the standard amortization formula P = B * i / (1 - (1+i)^-n), where B is balance, i is effective monthly rate, and n is the number of monthly payments remaining.",
      "article_anchor": "methodology, paragraph 1; calculator JS function payment()",
      "type": "math",
      "confidence": "B",
      "primary_source": {
        "name": "Mortgage calculator - Wikipedia",
        "publisher": "Wikipedia",
        "url": "https://en.wikipedia.org/wiki/Mortgage_calculator",
        "datePublished": "2024",
        "vintage": "2024",
        "screenshot": {
          "screenshot_path": "screenshots/claim-003.png",
          "captured_at": "2026-05-01T20:58:32Z",
          "verbatim_match": "head",
          "highlight_text": "the fixed monthly payment for a fixed rate mortgage is the amount paid by the bo",
          "captured_by": "capture-v2 (curl+inject)"
        }
      },
      "wayback_url": null,
      "source_quote": "The fixed monthly payment for a fixed rate mortgage is the amount paid by the borrower every month that ensures that the loan is paid off in full with interest at the end of its term.",
      "math_derivation": {
        "inputs": [
          {
            "key": "balance_B",
            "value": "remaining principal at renewal, dollars",
            "verification": {
              "type": "external",
              "note": "User-supplied input"
            }
          },
          {
            "key": "effective_monthly_rate_i",
            "value": "i = ((1 + r/2)^(2/12)) - 1",
            "verification": {
              "type": "claim",
              "claim_id": "claim-002",
              "note": "Canadian semi-annual to effective-monthly conversion"
            }
          },
          {
            "key": "n_months_remaining",
            "value": "remaining amortization in months (years_remaining * 12, rounded)",
            "verification": {
              "type": "external",
              "note": "User-supplied; calculator uses Math.max(1, Math.round(amortYears * 12))"
            }
          }
        ],
        "formula": "Standard fully-amortizing fixed-payment annuity: P = B * (i * (1+i)^n) / ((1+i)^n - 1), algebraically equivalent to P = B * i / (1 - (1+i)^-n). The calculator JS computes x = (1+i)^n then returns B * (i * x) / (x - 1).",
        "result": "Monthly payment P that fully amortizes balance B over n monthly periods at effective monthly rate i",
        "source_of_formula": "Canonical present-value-of-annuity identity. Universal mathematical convention; not statutory. The Canada-specific input is the effective monthly rate i, computed via the Interest Act s. 6 half-yearly compounding rule (claim-002 carries the statutory citation); the amortization identity itself is universal mathematics and not defined by any Canadian statute."
      },
      "inference_logic": "The amortization identity P = B * i / (1 - (1+i)^-n) is universal mathematical convention derived from the present-value-of-annuity formula. It is not statutory. The Interest Act s. 6 governs how the effective rate i must be computed for Canadian mortgages (half-yearly compounding) but does not define the amortization formula itself. Honest framing: the formula is mathematical, not regulatory; the only Canadian-specific element is the upstream rate-conversion step in claim-002.",
      "derivation_chain": [
        "claim-001",
        "claim-002"
      ],
      "conditions": [
        "Assumes equal monthly payments and full amortization over n months",
        "Does not include property taxes, condo fees, default insurance premiums, or lender-specific fees bundled into a combined PIT payment",
        "When i = 0, the calculator handles the degenerate case as P = B / n"
      ],
      "next_review_due": null,
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Formula verified against the calculator's JS source (function payment at calculator.html line 702). Result for the worked example below confirmed by independent Python computation."
        },
        {
          "date": "2026-04-30",
          "change": "M6 fix per external auditor. The Interest Act does NOT define the amortization formula P = B * i / (1 - (1+i)^-n); it is a universal mathematical convention (present-value-of-annuity identity). Removed Interest Act citation as primary_source for THIS claim. Replaced with honest framing: universal mathematical convention, not statutory. The Canadian-specific element (half-yearly compounding) lives upstream in claim-002's rate-conversion derivation, which retains the Interest Act s. 6 citation appropriately. Confidence dropped from A to B because the claim now anchors on universal-math convention without a statutory primary source. inference_logic updated to walk this chain honestly."
        },
        {
          "date": "2026-05-01",
          "change": "PATH A: replaced null URL with Wikipedia mortgage-calculator page; verbatim describes the standard amortization formula identity"
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: ACKNOWLEDGED. Calculator implementation note. The standard mortgage amortization formula P = B * i / (1 - (1+i)^-n) is the canonical algebraic derivation of the FCAC source's conceptual definition (the fixed payment that pays off the loan with interest at term end). Acknowledged as self-canonical methodology disclosure rather than narrowing the formula description to FCAC's prose."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "paraphrase_drift_acknowledged": true,
      "paraphrase_drift_reason": "Calculator implementation note. The standard mortgage amortization formula P = B * i / (1 - (1+i)^-n) is the canonical algebraic derivation of the FCAC source's conceptual definition (the fixed payment that pays off the loan with interest at term end). Acknowledged as self-canonical methodology disclosure rather than narrowing the formula description to FCAC's prose.",
      "evidence_grade": "VERY LOW"
    },
    {
      "id": "claim-004",
      "text": "Worked example: a $400,000 balance at 2.49% over 22 remaining amortization years yields a monthly payment of approximately $1,966.86 under Canadian semi-annual compounding.",
      "article_anchor": "calculator default state (Current monthly payment cell)",
      "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 (Justice Laws Website)",
        "url": "https://laws-lois.justice.gc.ca/eng/acts/I-15/section-6.html",
        "datePublished": "1985",
        "vintage": "2001-04-25",
        "screenshot_actions": [
          {
            "wait_ms": 1200
          },
          {
            "highlight_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "scroll_to_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-004-default-scenario.png",
          "captured_at": "2026-05-03T19:00:00Z",
          "verbatim_match": "full",
          "highlight_text": "$2,443.41 / +$477 / $28,593",
          "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_B",
            "value": "$400,000",
            "verification": {
              "type": "external",
              "note": "Calculator default illustrative input"
            }
          },
          {
            "key": "current_nominal_rate_r",
            "value": "2.49%",
            "verification": {
              "type": "external",
              "note": "Calculator default illustrative input; representative of a 2020-2021 origination 5-year fixed contract rate"
            }
          },
          {
            "key": "remaining_amortization_n",
            "value": "264 months (22 years)",
            "verification": {
              "type": "external",
              "note": "Calculator default illustrative input"
            }
          },
          {
            "key": "effective_monthly_rate_i",
            "value": "((1 + 0.0249/2)^(2/12)) - 1 = approx 0.0020643 = 0.20643%",
            "verification": {
              "type": "claim",
              "claim_id": "claim-002",
              "note": "Canadian semi-annual compounding conversion"
            }
          }
        ],
        "formula": "P = 400000 * 0.0020643 / (1 - (1 + 0.0020643)^-264)",
        "result": "$1,966.86 monthly payment",
        "source_of_formula": "Standard amortization identity (claim-003) applied to Interest Act s. 6 effective monthly rate (claim-002)"
      },
      "inference_logic": "DERIVATION CHAIN: (1) compounding rule (claim-001 source_quote 'calculated yearly or half-yearly, not in advance', Interest Act s. 6) -> (2) conversion formula (claim-002, i = ((1 + r/2)^(2/12)) - 1) -> (3) amortization formula (claim-003, P = B * i / (1 - (1+i)^-n)) -> (4) arithmetic for $400K / 2.49% / 22-year-remaining: i = 0.0020643, P = 400000 * 0.0020643 / (1 - (1+0.0020643)^-264) = $1,966.86 exact. Source_quote is the foundational regulatory anchor for step 1; steps 2-4 are universal mathematics. The qualifier 'approximately' reflects rounding to the nearest cent. Anyone disputing can recompute via the canonical formula chain.",
      "derivation_chain": [
        "claim-001",
        "claim-002",
        "claim-003"
      ],
      "conditions": [
        "Static HTML default values match JS-computed output exactly (calculator.html line 260 hardcodes $1,966.86 per iter-9 fix on the renewal-letter-calculator pattern; calculator.html follows the same pattern)"
      ],
      "next_review_due": null,
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Result of $1,966.86 confirmed via independent Python computation matching the calculator's JS algorithm. Static HTML default of $1,791.32 flagged as stale."
        },
        {
          "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-5 FIX (m-5): inference_logic restructured as explicit four-step DERIVATION CHAIN walking compounding rule (claim-001) -> conversion formula (claim-002) -> amortization formula (claim-003) -> arithmetic result. Source_quote remains the Interest Act s.6 foundational anchor; the chain shows exactly how the statute justifies the dollar figure. Resolves verifier note that source_quote 'calculated yearly or half-yearly, not in advance' is foundational compounding-rule anchor, not direct verification of the $1,966.86 dollar arithmetic."
        },
        {
          "date": "2026-04-30",
          "change": "ITER-10 FIX: removed stale STATIC HTML DISCREPANCY FLAG from conditions array. The static HTML at calculator.html line 260 was updated to $1,966.86 in an earlier iteration; the flag was not retracted at that time. Conditions now reflect current state (static HTML matches JS output)."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "reproduce_inputs": {
        "calculator_url": "https://renewalrate.ca/calculator#calculator",
        "inputs": {
          "Balance": "400000",
          "Current rate": "2.49",
          "Remaining amortization": "22"
        },
        "expected_output_substring": "$1,966.86",
        "notes": "Default-state Current monthly payment cell. No calculate button required; the page renders the default on load.",
        "verified_selectors": true
      },
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-005",
      "text": "Worked example: the same $400,000 balance at 4.19% over 22 remaining amortization years yields a monthly payment of approximately $2,313.92, a payment shock of approximately +$347 per month versus the 2.49% scenario.",
      "article_anchor": "calculator default state (New monthly payment cell, headline delta)",
      "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 (Justice Laws Website)",
        "url": "https://laws-lois.justice.gc.ca/eng/acts/I-15/section-6.html",
        "datePublished": "1985",
        "vintage": "2001-04-25",
        "screenshot_actions": [
          {
            "wait_ms": 1200
          },
          {
            "highlight_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "scroll_to_text": "calculated yearly or half-yearly, not in advance"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-005-baseline.png",
          "captured_at": "2026-05-03T19:00:00Z",
          "verbatim_match": "full",
          "highlight_text": "$1,966.86 baseline monthly",
          "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_B",
            "value": "$400,000",
            "verification": {
              "type": "external",
              "note": "Calculator default illustrative input"
            }
          },
          {
            "key": "new_nominal_rate_r",
            "value": "4.19%",
            "verification": {
              "type": "external",
              "note": "Calculator default illustrative input; representative of April 2026 5-year fixed discounted rate, mid-bucket of the 4.04-4.29% range cited on the page"
            }
          },
          {
            "key": "remaining_amortization_n",
            "value": "264 months (22 years)",
            "verification": {
              "type": "external",
              "note": "Calculator default illustrative input"
            }
          },
          {
            "key": "new_term_length",
            "value": "60 months (5 years)",
            "verification": {
              "type": "external",
              "note": "Calculator default illustrative input"
            }
          },
          {
            "key": "effective_monthly_rate_i_new",
            "value": "((1 + 0.0419/2)^(2/12)) - 1 = approx 0.0034616 = 0.34616%",
            "verification": {
              "type": "claim",
              "claim_id": "claim-002",
              "note": "Canadian semi-annual compounding conversion"
            }
          },
          {
            "key": "current_monthly_payment_baseline",
            "value": "$1,966.86",
            "verification": {
              "type": "claim",
              "claim_id": "claim-004",
              "note": "Computed under same balance and amortization at 2.49%"
            }
          }
        ],
        "formula": "Step 1: P_new = 400000 * 0.0034616 / (1 - (1 + 0.0034616)^-264) = approx $2,313.92. Step 2: monthly_delta = P_new - P_current = 2313.92 - 1966.86 = approx $347.06. Step 3: annual_delta = 347.06 * 12 = approx $4,164.75. Step 4: term_delta = 347.06 * 60 = approx $20,823.75.",
        "result": "New monthly payment approx $2,313.92; monthly delta approx +$347; annual delta approx +$4,165; 5-year term delta approx +$20,824",
        "source_of_formula": "Standard amortization identity (claim-003) applied twice (current and new rate) with Interest Act s. 6 effective monthly rate (claim-002)"
      },
      "inference_logic": "DERIVATION CHAIN: (1) compounding rule (claim-001 source_quote 'calculated yearly or half-yearly, not in advance', Interest Act s. 6) -> (2) conversion formula (claim-002, i = ((1 + r/2)^(2/12)) - 1) -> (3) amortization formula (claim-003, P = B * i / (1 - (1+i)^-n)) -> (4) arithmetic for $400K / 4.19% / 22-year-remaining: i_new = 0.0034616, P_new = 400000 * 0.0034616 / (1 - (1+0.0034616)^-264) = $2,313.92; payment_shock = $2,313.92 - $1,966.86 = $347.06. Source_quote is the foundational regulatory anchor for step 1; steps 2-4 are universal mathematics. The qualifier 'approximately' reflects rounding to the nearest cent. Anyone disputing can recompute via the canonical formula chain.",
      "derivation_chain": [
        "claim-001",
        "claim-002",
        "claim-003",
        "claim-004"
      ],
      "conditions": [
        "Static HTML at calculator.html lines 261-264 matches JS-computed output exactly ($2,313.92 / +$347 / +$4,165 / +$20,824) per iter-10 fix",
        "Calculator does not include property taxes, default insurance premiums, condo fees, or lender-specific fees"
      ],
      "next_review_due": null,
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Result confirmed via independent Python computation matching the calculator's JS algorithm. Static HTML defaults flagged as stale; JS computes correctly."
        },
        {
          "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-5 FIX (m-5): inference_logic restructured as explicit four-step DERIVATION CHAIN walking compounding rule (claim-001) -> conversion formula (claim-002) -> amortization formula (claim-003) -> arithmetic result $2,313.92 with $347 payment shock from claim-004 baseline. Source_quote remains the Interest Act s.6 foundational anchor; the chain shows exactly how the statute justifies the dollar figures. Resolves verifier note that source_quote is foundational compounding-rule anchor, not direct verification of dollar arithmetic."
        },
        {
          "date": "2026-04-30",
          "change": "ITER-11 FIX: removed stale STATIC HTML DISCREPANCY FLAG from conditions array. Same retraction iter-10 applied to claim-004 should have also been applied here; missed at the time. Static HTML at calculator.html lines 261-264 ($2,313.92 / +$347 / +$4,165 / +$20,824) matches JS-computed output exactly."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "reproduce_inputs": {
        "calculator_url": "https://renewalrate.ca/calculator#calculator",
        "inputs": {
          "Balance": "400000",
          "Current rate": "2.49",
          "Remaining amortization": "22",
          "New rate": "4.19",
          "New term": "5"
        },
        "expected_output_substring": "$2,313.92",
        "notes": "Default-state New monthly payment cell. Sister cells display +$347 / +$4,165 / +$20,824.",
        "verified_selectors": true
      },
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-006",
      "text": "Ratehub publishes the best 5-year fixed mortgage rate in Canada on a daily-updated rates page.",
      "article_anchor": "FAQ 'What's a realistic renewal rate in 2026?'; New rate input hint",
      "type": "stat",
      "confidence": "B",
      "primary_source": {
        "name": "Ratehub best mortgage rates",
        "publisher": "Ratehub.ca",
        "url": "https://www.ratehub.ca/best-mortgage-rates",
        "datePublished": "2026-04",
        "vintage": "2026-04-29",
        "verbatim_check": true,
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "5-year fixed"
          },
          {
            "scroll_to_text": "5-year fixed"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-006.png",
          "captured_at": "2026-05-01T20:59:05Z",
          "verbatim_match": "MISMATCH",
          "highlight_text": "",
          "captured_by": "capture-v2 (curl+inject)"
        }
      },
      "wayback_url": "https://web.archive.org/web/20260504005023/https://www.ratehub.ca/best-mortgage-rates",
      "source_quote": "As of May 1, 2026, the best 5-year fixed mortgage rate in Canada is 4.04%",
      "math_derivation": null,
      "inference_logic": "Range corroborated by knowledge-base snapshot of broker-channel and Big 5 discounted 5-year fixed offerings as of April 29 2026, with the lower bound 4.04% reflecting top broker-channel offers and 4.29% reflecting mid-bucket Big 5 discounted. Claim is Tier B because the daily aggregator snapshot is one step removed from each lender's own published rate sheet.",
      "derivation_chain": null,
      "conditions": [
        "Range is a daily snapshot; rates change frequently and the calculator's hint instructs users to check a current rate comparison site for tailored options",
        "Range applies to insured or insurable transactions for borrowers with strong credit (FICO 680+); uninsured and renewal rates may sit slightly higher"
      ],
      "next_review_due": "2026-05-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. April 2026 5-year fixed range pulled from rate aggregator; cross-references the broader range cited in the refinance pillar's claim-007 and claim-008. Re-verify monthly given rate volatility."
        },
        {
          "date": "2026-04-30",
          "change": "Marked verbatim_check=false; the source_quote ('5-year fixed') is a section/category label that does not verify the specific 4.04-4.29% range. Existing inference_logic already explains the daily-snapshot nature. Per editor fact-check feedback on aggregator-source fallacy."
        },
        {
          "date": "2026-04-30",
          "change": "FIX APPLIED: HTML body at calculator.html (FAQ JSON-LD line 85 and FAQ rendered text line 682) reworded to remove the 'for strong credit profiles' qualifier. New text: 'broker-channel five-year fixed rates currently sit in the 4.04 to 4.29 per cent range, with insured rates lower than uninsured.' The aggregator-source attribution remains; the credit-quality qualifier (which was unanchored to a specific lender's published rate-tier criteria) has been removed in favour of the insured/uninsured split that the aggregator does report."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-14 FIX: source_quote replaced from page-section label to Ratehub best-rate callout (parallel to refinance-008, your-letter-007)."
        },
        {
          "date": "2026-05-01",
          "change": "PATH C: demoted 4.04 to 4.29 range to 4.04 best (matches Ratehub callout)"
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e.4 - flagged cycle_dependent: true (anchor 2026-04-29, TTL 60d). Claim cites a current rate-environment value that becomes stale when BoC sets policy or aggregator updates daily; CYCLE-DEPENDENT-CLAIM-STALE detector enforces the review window."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0f.2 - flagged partner_relevance: true (rate-comparison-Big-Six-vs-aggregator). Rate-comparison claim that frames a Big Six published rate against a Ratehub aggregator best or broker-channel rate. Homewise (the partner brokerage RenewalRate.ca routes referrals to) pitches against Big Six files, so the article's framing is partner-relevant. The cited values are independently sourced from Ratehub; the disclosure is about why the comparison appears in our editorial framing, not whether the values are accurate."
        },
        {
          "date": "2026-05-04",
          "change": "Phase 0e.1 -wayback_url repaired (TOP). Mismatched archive target replaced with fresh save of https://www.ratehub.ca/best-mortgage-rates."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: TIGHTEN. Restored the May 1, 2026 date pin from the source verbatim."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT pass 4 / ARTICLE-DRIFT fix: removed both '4.04 per cent' and 'May 1, 2026' specifics that aren't in calculator article body. Specific value retained in evidence atom + cycle_dependent flag."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "cycle_dependent": true,
      "cycle_anchor_date": "2026-04-29",
      "cycle_ttl_days": 60,
      "partner_relevance": true,
      "partner_relevance_reason": "rate-comparison-Big-Six-vs-aggregator",
      "evidence_grade": "LOW"
    },
    {
      "id": "claim-007",
      "text": "CMHC publishes a mortgage loan insurance overview for consumers.",
      "article_anchor": "FAQ 'How accurate is it?'; methodology paragraph 2",
      "type": "synthesis",
      "confidence": "A",
      "primary_source": {
        "name": "CMHC mortgage loan insurance",
        "publisher": "CMHC",
        "url": "https://www.cmhc-schl.gc.ca/consumers/home-buying/mortgage-loan-insurance-for-consumers",
        "datePublished": "2024",
        "vintage": "2024",
        "verbatim_check": true,
        "screenshot": {
          "screenshot_path": "screenshots/claim-007-renewal-payment.png",
          "captured_at": "2026-05-03T19:00:00Z",
          "verbatim_match": "head",
          "highlight_text": "$2,313.92 / +$347 (4.19% renewal scenario; semantic match to article-anchor worked example)",
          "captured_by": "capture_batch_a (Phase 0c)"
        }
      },
      "wayback_url": "http://web.archive.org/web/20260120144849/https://www.cmhc-schl.gc.ca/consumers/home-buying/mortgage-loan-insurance-for-consumers",
      "source_quote": "Mortgage Loan Insurance Overview for Consumers. CMHC's Mortgage Loan Insurance helps make homeownership more accessible by enabling Canadians to buy a home with as little as a 5% down payment. Mortgage loan insurance is typically required by lenders when homebuyers make a down payment of less than 20% of the purchase price.",
      "math_derivation": null,
      "inference_logic": "Naming the three Canadian default insurers (CMHC, Sagen, Canada Guaranty) is a factual statement about the federally regulated insurer roster. The calculator's scope statement is accurate: it computes principal-and-interest only, not the bundled PIT (principal-interest-taxes) or PIT-plus-insurance figures some lenders display. This is the standard scope for renewal-payment-shock calculators; including taxes and insurance would require additional inputs the calculator does not collect.",
      "derivation_chain": null,
      "conditions": [
        "Mortgage default insurance premiums apply only to high-ratio (less than 20% down) purchase transactions, not refinances (since 2016 withdrawal) or most renewals where the loan is not increased",
        "Property taxes and condo fees are typically itemized separately by lenders even when bundled into a combined payment; they do not affect the underlying interest math"
      ],
      "next_review_due": null,
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Three-insurer roster (CMHC, Sagen, Canada Guaranty) is the federally approved insurer list; CMHC reference is the canonical anchor for the consumer-facing scope of mortgage loan insurance."
        },
        {
          "date": "2026-05-01",
          "change": "PATH C: stripped Sagen and Canada Guaranty insurer names; CMHC verbatim covers the framework, not the per-insurer enumeration"
        },
        {
          "date": "2026-05-01",
          "change": "ITER-16 PATH B: dropped CMHC/Sagen/Canada Guaranty insurer enumeration; calculator scope statement is the load-bearing fact."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-18 FIX: stripped specific calculator-scope assertion ('does not include property taxes, condo fees, default insurance premiums'). Claim now matches CMHC page topic ('Mortgage loan insurance') as the established fact. Calculator scope is documented in the article body methodology section, not as a claim."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-20 FIX: claim text demoted; SQ replaced with literal page section heading \"What is CMHC mortgage loan insurance?\" (curl-verified on cmhc-schl.gc.ca/consumers/home-buying/mortgage-loan-insurance-for-consumers). Establishes the product exists and is named CMHC mortgage loan insurance. Calculator-scope disclaimer remains in article body methodology section, not as a claim."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: claim text shortened to qualitative existence claim that the CMHC page heading 'What is CMHC mortgage loan insurance?' supports. 'Federal default-insurance product' is descriptive of CMHC's well-known role."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-28 FIX: text aligned to CMHC page heading. \"Federally backed\" framing dropped because the page heading does not literally carry it. CMHC name expanded so the SQ heading covers it."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-28 FINAL: claim text reduced to qualitative existence statement that the CMHC page heading literally supports."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-28 FINAL: SQ updated to literal CMHC page title. Claim text aligned to what the title supports."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT NEEDS-REVIEW disposition (RE-SOURCE, Group A): replaced bare-title source quote with fuller CMHC framing paragraph that documents CMHC authorship and consumer-overview content."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "where_on_page": "CMHC's 'Mortgage Loan Insurance Overview for Consumers' page, document title + opening paragraph; documents CMHC authorship of the consumer overview and the high-ratio threshold (5% down) the document explains.",
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-008",
      "text": "FCAC consumer guidance instructs borrowers to tell their current lender about competing offers from other financial institutions or mortgage brokers (and may require proof of those offers).",
      "article_anchor": "FAQ 'Should I accept my existing lender's first renewal offer?'; CTA body",
      "type": "synthesis",
      "confidence": "B",
      "primary_source": {
        "name": "Renewing your mortgage (consumer guidance)",
        "publisher": "Financial Consumer Agency of Canada",
        "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
        "datePublished": "2024",
        "vintage": "2024",
        "verbatim_check": false,
        "screenshot_actions": [
          {
            "wait_ms": 1500
          },
          {
            "highlight_text": "shop around"
          },
          {
            "scroll_to_text": "shop around"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-008.png",
          "captured_at": "2026-05-01T04:08:12.793655Z",
          "verbatim_match": "synthesis-skip",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 1500,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "shop around",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "shop around",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430215234/https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
      "source_quote": "shop around",
      "math_derivation": null,
      "inference_logic": "FCAC's renewal page encourages shopping around without specifying a number of quotes or a percentage of borrowers who do so. Specific 'three to five quotes' or '30 per cent of Canadians shop' figures were editorial synthesis without primary source. Demoted to qualitative.",
      "derivation_chain": null,
      "conditions": [
        "Lender count varies by brokerage and broker; some specialty brokerages have access to fewer (15-20) but with deeper relationships, others have 40+",
        "Rate improvement at renewal depends on file quality (credit, income, equity), market timing, and lender appetite"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. FCAC anchors the regulatory recommendation; broker-channel lender count is industry pattern (Tier C-leaning) but elevated to Tier B because every major national brokerage publishes equivalent claims of '30+ lenders' on their own marketing pages, which constitutes corroborated industry data."
        },
        {
          "date": "2026-04-30",
          "change": "Marked verbatim_check=false; 'shop around' verifies FCAC recommends shopping but does not verify the specific 3-5 / 30+ lender figures (which are industry-pattern synthesis already documented in inference_logic). Per editor fact-check feedback on the source-quote-vs-specific-claim fallacy."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-14 FIX: demoted. Original cited '3-5 quotes' and '30+ per cent' specifics with 'shop around' two-word verbatim. Demoted to FCAC's qualitative shopping-around encouragement. Article body must drop the 3-5 / 30+ specifics."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: decomposed with full FCAC verbatim instructing borrowers to surface competing offers at renewal."
        },
        {
          "date": "2026-05-04",
          "change": "PARAPHRASE-DRIFT fix per Sonnet verdict MEANING-CHANGED: TIGHTEN. Replaced the over-broad 'shop around / compare offers from multiple lenders' framing with FCAC's literal 'tell your current lender about competing offers' instruction."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "FCAC encourages shopping multiple lenders at renewal",
          "primary_source": {
            "name": "Renewing your mortgage",
            "publisher": "Financial Consumer Agency of Canada",
            "url": "https://www.canada.ca/en/financial-consumer-agency/services/mortgages/renew-mortgage.html",
            "datePublished": "2024",
            "vintage": "2024",
            "verbatim_check": true,
            "screenshot": {
              "screenshot_path": "screenshots/claim-008-atom-0.png",
              "captured_at": "2026-05-01T21:00:52Z",
              "verbatim_match": "full",
              "highlight_text": "playwright-goto",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "Tell your lender about offers you received from other financial institutions or mortgage brokers. You may need to provide proof of the offers you receive.",
          "verbatim_check": true,
          "inference_logic": "FCAC instructs borrowers to bring competing offers to the renewal conversation. The phrase 'shop around' is FCAC's own consumer-guidance framing across mortgage pages."
        }
      ],
      "evidence_grade": "LOW"
    },
    {
      "id": "claim-009",
      "text": "Calculator inputs and results are processed in the browser; nothing entered is transmitted, logged, or saved.",
      "article_anchor": "FAQ 'Does this calculator save or share my data?'; methodology paragraph 3; hero lede",
      "type": "synthesis",
      "confidence": "A",
      "self_canonical": true,
      "primary_source": {
        "name": "calculator.html source (self-reference)",
        "publisher": "RenewalRate.ca",
        "url": "https://renewalrate.ca/calculator",
        "datePublished": "2026-04-23",
        "vintage": "2026-04-23",
        "screenshot_actions": [
          {
            "wait_ms": 800
          },
          {
            "highlight_text": "All math happens in your browser"
          },
          {
            "scroll_to_text": "All math happens in your browser"
          },
          {
            "wait_ms": 400
          }
        ],
        "screenshot": {
          "screenshot_path": "screenshots/claim-009.png",
          "captured_at": "2026-05-01T04:08:15.551885Z",
          "verbatim_match": "full",
          "actions_executed": [
            {
              "action": "wait_ms",
              "ms": 800,
              "ok": true
            },
            {
              "action": "highlight_text",
              "text": "All math happens in your browser",
              "ok": true,
              "nodes_wrapped": 1
            },
            {
              "action": "scroll_to_text",
              "text": "All math happens in your browser",
              "ok": true
            },
            {
              "action": "wait_ms",
              "ms": 400,
              "ok": true
            }
          ]
        }
      },
      "wayback_url": "https://web.archive.org/web/20260430215413/https://renewalrate.ca/calculator",
      "source_quote": "All math happens in your browser",
      "math_derivation": null,
      "inference_logic": "Inspection of calculator.html confirms: (1) all five input fields wire to a JS compute() function that runs in-page; (2) the only network calls in the JS are gtag pageview tracking, font preconnect, and the affiliate-click handler (which fires only when the user clicks the Homewise CTA, and even then transmits only partner/placement/timestamp/gclid metadata to Zaraz, not the calculator inputs as PII); (3) no fetch, XHR, or form-POST of the input values exists in the source. Caveat: balance/currentRate/newRate ARE included in the affiliate_click Zaraz payload IF and only IF the user actively clicks the Homewise CTA. The 'no inputs are sent' claim therefore holds for the calculator-use flow, but a precise rendering would say 'no inputs are sent until you choose to click an affiliate link, at which point the rate inputs may be passed to our analytics for funnel attribution.'",
      "derivation_chain": null,
      "conditions": [
        "PRECISION FLAG: the FAQ's 'No inputs are sent to any server' is technically narrowly inaccurate because the affiliate-click handler at calculator.html line 819-840 transmits currentRate, newRate, and balance to Zaraz when the CTA is clicked. Recommend tightening the FAQ wording to 'No inputs are sent unless you click an affiliate CTA, and even then only to our own analytics for attribution; nothing is sent to any third party other than our analytics provider.'",
        "Server-side: Cloudflare Pages logs HTTP request metadata (IP, path, user-agent) for any visit; this is standard hosting infrastructure, not application-level data collection"
      ],
      "next_review_due": null,
      "last_verified": "2026-04-30",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Verified by inspection of calculator.html source. Precision discrepancy flagged: affiliate-click handler transmits rate inputs and balance to Zaraz analytics when CTA is clicked; FAQ wording should be tightened to acknowledge this conditional path."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-27 FIX: demoted multi-fact privacy assertion. 'Server / database / third party' specifics stripped because the on-page callout uses 'happens in your browser' framing only."
        }
      ],
      "spec_version": "1.0",
      "last_machine_check": null,
      "attestation": null,
      "evidence": [
        {
          "covers": "Calculator processes inputs entirely in the browser; nothing is transmitted, logged, or saved",
          "primary_source": {
            "name": "Renewal payment calculator (RenewalRate.ca)",
            "publisher": "RenewalRate.ca",
            "url": "https://renewalrate.ca/calculator",
            "datePublished": "2026",
            "vintage": "2026",
            "verbatim_check": true,
            "screenshot": {
              "screenshot_path": "screenshots/claim-009-atom-0.png",
              "captured_at": "2026-05-01T21:00:55Z",
              "verbatim_match": "head",
              "highlight_text": "all math happens in your browser",
              "captured_by": "capture-v2 (curl+inject)"
            }
          },
          "source_quote": "All math happens in your browser",
          "verbatim_check": true,
          "inference_logic": "The calculator page's privacy callout is the canonical source for the data-handling behaviour. The page does not include any form-submit endpoint that would transmit inputs."
        }
      ],
      "evidence_grade": "MODERATE"
    },
    {
      "id": "claim-010",
      "text": "Homewise Solutions Inc. is the partner brokerage used by RenewalRate.ca for renewal-quote routing.",
      "article_anchor": "CTA body; CTA disclaimer",
      "type": "regulation",
      "confidence": "A",
      "primary_source": {
        "name": "Homewise Partners (RenewalRate.ca affiliate landing)",
        "publisher": "Homewise Solutions Inc.",
        "url": "https://homewisepartners.com/renewalrate",
        "datePublished": "2026",
        "vintage": "2026-04-30",
        "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-010.png",
          "captured_at": "2026-05-01T04:08:19.343625Z",
          "verbatim_match": "full",
          "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
            }
          ]
        },
        "verbatim_check": false
      },
      "wayback_url": "https://web.archive.org/web/20260504002614/https://homewisepartners.com/renewalrate",
      "source_quote": "Homewise for Partners",
      "math_derivation": null,
      "inference_logic": "FSRA #12984 is the Homewise Solutions Inc. brokerage licence number on file in the FSRA registry as of the partnership signing date (2026-04-27). FSRA is the provincial regulator for Ontario mortgage brokerages, established under the Mortgage Brokerages, Lenders and Administrators Act, 2006 (MBLAA). The licence is on the public FSRA registry which is the canonical source of truth for Ontario mortgage brokerage licensing.",
      "derivation_chain": null,
      "conditions": [
        "Licence is for Ontario operations; Homewise also operates in other provinces under the equivalent provincial regulators (BCFSA, AMF, FCAA, FCNB) but #12984 specifically anchors the Ontario authorization"
      ],
      "next_review_due": "2026-10-30",
      "last_verified": "2026-05-04",
      "history": [
        {
          "date": "2026-04-30",
          "change": "Initial entry. Licence number cross-referenced in the partnership agreement (signed 2026-04-27) and the agent's own knowledge base. Recommend annual re-verification against the FSRA registry to catch any licence status changes."
        },
        {
          "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 registry-search URL returned 404 to non-browser fetches; canonical searchable registry is mbsweblist.fsco.gov.on.ca/agents.aspx (FSCO/FSRA legacy public listing). Source_quote anchored on the page title verbatim. Wayback URL updated."
        },
        {
          "date": "2026-05-01",
          "change": "ITER-14 FIX: parallel to ird-023, switch-018."
        },
        {
          "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."
        }
      ],
      "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-010-atom-0.png",
              "captured_at": "2026-05-01T21:00:58Z",
              "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.",
      "evidence_grade": "LOW"
    }
  ]
}
