<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Optimized For Freedom]]></title><description><![CDATA[Journey to financial freedom - vents, advice, and more]]></description><link>https://optimizedforfreedom.com/</link><image><url>https://optimizedforfreedom.com/favicon.png</url><title>Optimized For Freedom</title><link>https://optimizedforfreedom.com/</link></image><generator>Ghost 5.88</generator><lastBuildDate>Thu, 15 Oct 2026 19:35:48 GMT</lastBuildDate><atom:link href="https://optimizedforfreedom.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Can Parents Transfer Their RRSP to Their Kids Tax-Free? Every Way to Move RRSP Money in Canada]]></title><description><![CDATA[My in-laws asked if they could move some of their RRSP into ours before they turn 71. In this post I go through every way RRSP money can move, the CRA forms for each, and the withdraw-gift-contribute workaround that can save your family money or cost it thousands.]]></description><link>https://optimizedforfreedom.com/can-parents-transfer-their-rrsp-to-their-kids-tax-free-every-way-to-move-rrsp-money-in-canada/</link><guid isPermaLink="false">6ad0b350bf4e3404a575fd4c</guid><category><![CDATA[Early Retirement]]></category><category><![CDATA[Investing]]></category><category><![CDATA[Personal Finance Basics]]></category><category><![CDATA[Advice]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Thu, 15 Oct 2026 11:10:33 GMT</pubDate><content:encoded><![CDATA[<p>A few weeks ago my in-laws asked me a question I didn&apos;t have a good answer to. They have more in their RRSPs than they think they&apos;ll need. As they are getting close to 71, they wanted to know if they could just move some of it into our RRSPs instead. Same family, same money, different account. Surely there&apos;s a form for that?</p><p>There isn&apos;t. But the question turned out to be a lot more interesting than &quot;no,&quot; because there <em>is</em> a way to move the money that can come out close to tax-neutral - and in the right situation, actually save the family money. There&apos;s also a version of it that quietly costs you thousands.</p><p>So I went through the CRA rules for every way RRSP money can move from one plan to another, which ones work between family members, and exactly what paperwork each one needs. If you&apos;ve read the <a href="https://optimizedforfreedom.com/person-finance-basics-what-is-an-rrsp-2/" rel="noreferrer"><u>RRSP post</u></a> and the <a href="https://optimizedforfreedom.com/what-is-a-spousal-rrsp-and-how-does-it-work/" rel="noreferrer"><u>spousal RRSP post</u></a>, this is the natural next chapter.</p><p>Let&apos;s break it down...and sorry for the length of this post. There is lots of info!</p><h2 id="the-short-answer"><strong>The Short Answer</strong></h2><p><strong>There is no way for a living parent to transfer RRSP money directly into a child&apos;s RRSP tax-free.</strong> Not to a child, not to a child-in-law, not to a grandchild. There is no CRA form for it because the Income Tax Act doesn&apos;t allow it.</p><p>An RRSP belongs to one person, the annuitant, and the tax deferral belongs to that person too. While they&apos;re alive, the only tax-free ways for RRSP money to leave their name are to their own spouse on a separation, or into another plan that&apos;s still in their own name.</p><p>What <em>does</em> work is a three-step workaround:</p><ol><li>The parent withdraws the money and pays tax on it</li><li>The parent gifts the after-tax cash to the child</li><li>The child contributes it to their own RRSP and claims a deduction</li></ol><p>Whether that&apos;s a good idea comes down to one comparison - <strong>the parent&apos;s marginal tax rate versus the child&apos;s.</strong> If the parent is in a lower bracket than the child, the family comes out ahead. If it&apos;s the other way around, the family loses money doing it. I&apos;ll show both with numbers below.</p><p>But first, the full list of ways RRSP money can legally move, because it explains why the family route doesn&apos;t exist.</p><h2 id="every-way-to-move-money-from-one-rrsp-to-another-or-at-least-the-ways-i-found"><strong>Every Way to Move Money From One RRSP to Another (or at least the ways I found)</strong></h2><p>The CRA&apos;s word for these is a <strong>direct transfer</strong>. The key word is <em>direct</em> - the money goes from one financial institution straight to the other, never touching your bank account. If you withdraw cash and re-deposit it yourself, it&apos;s not a transfer. It&apos;s a taxable withdrawal followed by a brand-new contribution that uses up room.</p><p>Here&apos;s every legitimate route.</p><h3 id="1-between-your-own-plansform-t2033"><strong>1. Between your own plans - Form T2033</strong></h3><p>This is the everyday one. Moving your RRSP from your bank to a discount brokerage, consolidating two RRSPs into one, or moving an RRSP into your own RRIF.</p><ul><li><strong>Form:</strong> T2033, <em>Direct Transfer</em>. Many institutions use their own version of the form instead, which is fine.</li><li><strong>Who signs:</strong> You, as the annuitant. The receiving institution usually starts the process.</li><li><strong>The rule:</strong> The receiving plan has to have <strong>the same annuitant</strong>. That&apos;s the whole reason it can&apos;t be used to move money to your kids - the annuitant would change.</li><li><strong>Tax:</strong> None. No withholding, no slip as income, no effect on your contribution room.</li><li><strong>Watch out for:</strong> Transfer-out fees (the sending institution often charges one, and some receiving brokers will reimburse it) and whether the transfer is in cash or in kind. In-kind keeps your investments invested.</li></ul><h3 id="2-into-your-own-rrif-at-71also-a-t2033"><strong>2. Into your own RRIF at 71 - also a T2033</strong></h3><p>By December 31 of the year you turn 71, every RRSP has to be withdrawn, transferred to a RRIF, or used to buy an annuity. The RRIF conversion is just another direct transfer between plans with the same annuitant. No tax on the transfer itself. You only pay tax as money comes out of the RRIF.</p><p>This is the part my in-laws were missing, and I suspect a lot of people miss it: <strong>turning 71 is not a deadline to get money out.</strong> It&apos;s a deadline to convert, which I explained to them and told them to just enjoy their money. Nothing forces you to cash out an RRSP at 71. You switch to a RRIF, and from the following year you have to take a minimum amount out each year. Everything else keeps growing tax-deferred.</p><p>There was talk in 2025 about loosening these rules - an election promise to cut the RRIF minimum by 25% for a year, and industry groups pushing to raise the conversion age. The minimum cut was officially dropped in November 2025, and as of this writing, 71 is still the age and the minimum withdrawal table hasn&apos;t changed.</p><h3 id="3-to-a-spouse-on-separationform-t2220"><strong>3. To a spouse on separation - Form T2220</strong></h3><p>This is the <strong>only</strong> way RRSP money can move tax-free from one living person to another.</p><ul><li><strong>Form:</strong> T2220, <em>Transfer from an RRSP, RRIF, PRPP or SPP to Another RRSP, RRIF, or SPP on Breakdown of Marriage or Common-law Partnership</em>.</li><li><strong>The rule:</strong> You have to be living separate and apart, and the transfer has to be under a court order, decree, judgment, or a written separation agreement dividing property.</li><li><strong>Tax:</strong> None. The receiving spouse becomes the annuitant and pays tax when they eventually withdraw.</li></ul><p>It does not work for &quot;we&apos;re still happily married but want to rebalance our RRSPs.&quot; For that, see the <a href="https://optimizedforfreedom.com/what-is-a-spousal-rrsp-and-how-does-it-work/" rel="noreferrer"><u>spousal RRSP post</u></a> - which is the legitimate way to shift future RRSP savings between spouses, and pension income splitting at 65 for shifting the income.</p><h3 id="4-on-deaththe-refund-of-premiums-rollover"><strong>4. On death - the refund of premiums rollover</strong></h3><p>When an RRSP or RRIF holder dies, the default rule is harsh - the CRA treats them as having cashed out the <strong>entire</strong> plan immediately before death. The full value gets added to their income on the final tax return. On a big RRSP, a lot of that gets taxed at the top bracket - over 50% in most provinces.</p><p>The exception is when the money goes to a <strong>qualifying survivor</strong>, who can roll it into their own registered plan without the tax hit. CRA defines that narrowly:</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="382"><col width="242"></colgroup><tbody><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Who receives the RRSP</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Where it can roll over tax-deferred</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Spouse or common-law partner</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Their own RRSP, RRIF, PRPP, SPP, or an annuity</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Financially dependent child or grandchild, dependent because of a physical or mental impairment</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Their own RRSP, RRIF, PRPP, SPP, </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">RDSP</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">, or an annuity</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Financially dependent child or grandchild, </span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">not</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> impaired</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Only a term annuity that pays out by age 18</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Adult, independent child</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Nothing.</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> Full value taxed on the deceased&apos;s final return</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>&quot;Financially dependent&quot; has a specific meaning. The child or grandchild generally has to have <strong>lived with and depended on</strong> the parent, and had net income in the prior year below the basic personal amount (or below the basic personal amount plus the disability amount if they have an impairment). A working adult child doesn&apos;t come close.</p><p>The paperwork:</p><ul><li><strong>Spouse named as sole beneficiary:</strong> If everything goes directly into the spouse&apos;s plan by the end of the year after death, it&apos;s handled by the institutions and the spouse gets a receipt to claim the deduction.</li><li><strong>Money paid through the estate instead of a named beneficiary:</strong> The executor and the qualifying survivor jointly file <strong>Form T2019</strong> (for an RRSP) or <strong>Form T1090</strong> (for a RRIF) to designate it as a refund of premiums.</li><li><strong>Rollover to an RDSP:</strong> Form <strong>RC4625</strong>, attached to both the deceased&apos;s and the child&apos;s returns. Capped at the $200,000 RDSP lifetime limit.</li><li><strong>Deadline:</strong> The rollover has to happen in the year the money is received or within 60 days after year-end. The survivor has to be 71 or younger at the end of that year to use an RRSP.</li></ul><p>The CRA&apos;s info sheet RC4177, <em>Death of an RRSP Annuitant</em>, has the full detail if you ever need it.</p><p>So for the typical family - parents who are a couple, kids who are working adults - the death rollover gets you exactly one tax-free hop, from the first parent to the surviving parent. When the second parent dies, the whole remaining RRIF lands on their final return. That fact matters a lot, and I&apos;ll come back to it.</p><h3 id="5-a-few-one-way-doors-into-your-rrsp"><strong>5. A few one-way doors <em>into</em> your RRSP</strong></h3><p>For completeness, a handful of other amounts can be transferred into your own RRSP without using room. They all involve your own money, not someone else&apos;s:</p><ul><li><strong>Excess RRIF amounts</strong> back into your RRSP, or a commuted RRSP annuity - Form <strong>T2030</strong></li><li><strong>Lump sums from your registered pension plan</strong> when you leave an employer - Form <strong>T2151</strong></li><li><strong>Retiring allowances</strong> (severance) for years of service before 1996, within specific limits</li><li><strong>RRSP to your own FHSA</strong> - not into an RRSP, but worth knowing about since it goes the other direction. It&apos;s tax-free, uses FHSA room, and you don&apos;t get a deduction for it. More in the <a href="https://optimizedforfreedom.com/what-is-the-first-home-savings-account-fhsa-and-how-does-it-work/" rel="noreferrer"><u>FHSA post</u></a>.</li></ul><p>That&apos;s the entire list. Notice what&apos;s not on it: anything from a living parent to a child. Which brings us to the workaround.</p><h2 id="the-workaroundwithdraw-gift-contribute"><strong>The Workaround - Withdraw, Gift, Contribute</strong></h2><p>Here&apos;s what this actually looks like when you do it properly.</p><h3 id="step-1the-parent-withdraws"><strong>Step 1 - The parent withdraws</strong></h3><p>If the parent still has an RRSP, they ask their institution for a withdrawal. If they&apos;ve already converted to a RRIF, they ask for a payment <strong>above</strong> their annual minimum.</p><p>The institution withholds tax at source. For residents of Canada outside Quebec:</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="154"><col width="101"></colgroup><tbody><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Withdrawal amount</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Withholding</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Up to $5,000</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">10%</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$5,001 to $15,000</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">20%</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Over $15,000</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">30%</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>Quebec residents get 5%, 10% and 15% federally, plus separate Quebec withholding.</p><p>Two things that trip people up:</p><p><strong>Withholding is not the final tax bill.</strong> It&apos;s a down payment. The withdrawal gets added to the parent&apos;s income for the year and taxed at their marginal rate. If their rate is higher than what was withheld, they owe the difference in April. If it&apos;s lower, they get some back. Parents doing this should ask for extra withholding, or set money aside, so the April bill isn&apos;t a surprise.</p><p><strong>RRIF minimums have no withholding at all.</strong> Only the amount above the minimum gets withheld on the scale above. So a parent with a RRIF can&apos;t assume no withholding means no tax.</p><p>The parent gets a <strong>T4RSP</strong> slip (from an RRSP) or a <strong>T4RIF</strong> slip (from a RRIF) in February and reports it on their return. RRSP withdrawals go on line 12900. RRIF payments go on line 11500 if they&apos;re 65 or older, which also makes them eligible for the pension income amount and pension income splitting with their spouse.</p><h3 id="step-2the-parent-gifts-the-cash"><strong>Step 2 - The parent gifts the cash</strong></h3><p>This part is refreshingly simple. <strong>Canada has no gift tax.</strong> The parent doesn&apos;t report the gift, the child doesn&apos;t report receiving it, and there&apos;s no CRA form.</p><p>A few things worth knowing anyway:</p><ul><li><strong>Attribution rules don&apos;t apply to gifts to adult children.</strong> Attribution - where investment income from a gift is taxed back to the giver - applies to gifts to a spouse or to related kids under 18. An adult child, or a child-in-law, is fine. The money and everything it earns is theirs.</li><li><strong>Make it a gift, not a loan.</strong> If it&apos;s set up as a low or no-interest loan and the CRA decides the main purpose was income splitting, attribution can come back into play even for adult kids. A clean gift avoids the question.</li><li><strong>Keep a paper trail anyway.</strong> An e-transfer or cheque with a clear memo, or a one-line signed note saying it&apos;s a gift with no expectation of repayment. Nobody files it, but it&apos;s useful if the bank asks about a large deposit, or if family law ever gets involved and someone needs to show where the money came from.</li><li><strong>Gifting securities instead of cash triggers capital gains.</strong> If the parent withdraws investments in kind from their RRSP and then gifts the shares, the gift is a deemed sale at fair market value. If the shares are given right after the withdrawal there&apos;s usually little or no gain, but it&apos;s not zero by default.</li></ul><h3 id="step-3the-child-contributes-to-their-own-rrsp"><strong>Step 3 - The child contributes to their own RRSP</strong></h3><p>Now the money is the child&apos;s, and it goes into the child&apos;s RRSP like any other contribution.</p><ul><li><strong>It uses the child&apos;s contribution room.</strong> For 2026, new room is 18% of 2025 earned income up to $33,810, plus any unused room carried forward. The exact number is on the child&apos;s latest Notice of Assessment or in CRA My Account. No room, no deduction - and anything more than $2,000 over your limit costs <strong>1% per month</strong> in penalty tax and requires filing a <strong>T1-OVP</strong> return.</li><li><strong>The child gets the deduction</strong>, claimed on Schedule 7 and line 20800 of their return, at their marginal rate.</li><li><strong>The deduction can be saved for later.</strong> You can contribute now and claim the deduction in a future year when your income is higher. If the child expects a big raise or a high-income year coming, holding the deduction can be worth more than using it right away.</li><li><strong>Contributions in the first 60 days of a year</strong> can be deducted against the previous year. So a parent who withdraws in December 2026 and gifts it, can still see the child contribute by early March 2027 and claim it on the child&apos;s 2026 return.</li></ul><p><strong>Can the parents pay straight into the child&apos;s RRSP and skip the gift step?</strong> Sort of. The CRA has said that a payment into someone&apos;s RRSP by a third party is treated as the annuitant&apos;s own contribution - as long as it&apos;s made at the annuitant&apos;s direction or with their agreement. The receipt goes to the child, not the parent, and the child claims the deduction. Not every institution will accept a third-party deposit, though, so check first. It&apos;s the same thing tax-wise, just fewer steps.</p><p><strong>One option worth knowing if you&apos;re a couple:</strong> the gifted money can go into a <strong>spousal RRSP</strong> instead. The higher-earning spouse contributes it and takes the deduction at their higher rate. The lower-earning spouse owns the account and eventually pays tax on it at their lower rate. Mind the three-year attribution rule from the <a href="https://optimizedforfreedom.com/what-is-a-spousal-rrsp-and-how-does-it-work/" rel="noreferrer"><u>spousal RRSP post</u></a>.</p><h2 id="when-it-worksand-when-it-backfires"><strong>When It Works - and When It Backfires</strong></h2><p>Here&apos;s the part that decides whether to bother. The math is simpler than it looks.</p><p><strong>The family&apos;s gain or loss today is roughly the amount moved, times the difference between the child&apos;s marginal rate and the parent&apos;s.</strong></p><p>The parent pays tax at their rate on the way out. The child gets a deduction at their rate on the way back in. If the child&apos;s rate is higher, the refund is bigger than the tax.</p><h3 id="example-1it-works"><strong>Example 1 - It works</strong></h3><p>Linda is 70 with a modest pension, CPP, OAS and a RRIF. Her marginal tax rate is around 30%. Her daughter Priya earns a good salary, has plenty of RRSP room, and has a marginal rate around 43%. These are illustrative round numbers - look up your actual rates for your province and income.</p><ul><li>Linda takes $20,000 out of her RRIF above her minimum. $6,000 is withheld (30% on a withdrawal over $15,000), which roughly matches her actual tax on it.</li><li>Linda gifts Priya the $14,000 that&apos;s left.</li><li>Priya adds $6,000 of her own and contributes <strong>the full $20,000</strong> to her RRSP.</li><li>Priya&apos;s refund: $20,000 &#xD7; 43% = <strong>$8,600</strong>.</li></ul><p>Linda paid $6,000. Priya got back $8,600 and put in $6,000. <strong>The family is $2,600 ahead today</strong> - which is exactly $20,000 &#xD7; the 13-point rate gap - and the full $20,000 is sitting in an RRSP again, now in the name of someone 30 years younger with decades of tax-deferred growth ahead.</p><p>If Priya contributes just the $14,000 instead of topping it up, her refund is $6,020 - almost exactly what Linda paid. Tax-neutral today, and $14,000 has moved to the next generation&apos;s RRSP.</p><h3 id="example-2it-backfires"><strong>Example 2 - It backfires</strong></h3><p>Now flip it. Robert is 68 with a large defined benefit pension and a big RRIF. His income is over the OAS clawback threshold, which is <strong>$95,323 for 2026 income</strong>. His marginal tax rate is around 43%, and every extra dollar also costs him 15 cents of OAS - an effective rate of roughly 58%. His son Mike is early in his career with a marginal rate around 20%.</p><ul><li>Robert takes $20,000 out. Tax plus OAS clawback: about <strong>$11,600</strong>.</li><li>Mike contributes the full $20,000 and gets a refund of about <strong>$4,000</strong>.</li></ul><p><strong>The family is down roughly $7,600.</strong> Same withdrawal, same gift, same contribution. The only thing that changed was who was in the higher bracket.</p><p>In that situation, Mike is usually better off putting a gift into a <strong>TFSA</strong> instead, or just holding the RRSP contribution and saving the deduction for a future year when his income is higher.</p><h3 id="the-lower-income-parent-trap"><strong>The lower-income parent trap</strong></h3><p>There&apos;s a third case that looks like a winner and isn&apos;t. A parent with very low income looks like they&apos;d pay almost no tax on a withdrawal. But if they receive the <a href="https://optimizedforfreedom.com/what-is-gis-guaranteed-income-supplement/" rel="noreferrer"><u>Guaranteed Income Supplement</u></a>, every dollar of RRSP or RRIF income reduces their GIS - by at least 50 cents on the dollar, and more at the lowest incomes. Their real marginal rate can be higher than the child&apos;s even when their tax bracket is tiny. Run the GIS math before you assume a low-income parent is the cheap place to take money out.</p><h2 id="why-this-can-make-sense-even-when-its-tax-neutral-today"><strong>Why This Can Make Sense Even When It&apos;s Tax-Neutral Today</strong></h2><p>The rate comparison above only looks at today. There&apos;s a bigger reason families do this, and it&apos;s what happens later if nobody does anything.</p><p>If parents are a couple, the first one to die can roll everything to the survivor tax-free. When the <strong>second</strong> parent dies, the entire remaining RRIF gets added to their final return in one year. A $400,000 RRIF on top of a final year&apos;s pension and CPP means a big chunk gets taxed at the very top bracket - often over 50%.</p><p>So the real comparison for parents with more RRSP money than they&apos;ll ever spend isn&apos;t &quot;tax now vs. no tax.&quot; It&apos;s <strong>&quot;tax now at a moderate rate vs. tax later at the top rate.&quot;</strong> Drawing down the RRIF steadily in lower brackets during their lifetime, and passing some of it to the kids as a gift along the way, can cut the family&apos;s total lifetime tax bill even in years when the gift itself looks neutral. The same logic is behind drawing down an RRSP before 71 - something my <a href="https://optimizedforfreedom.com/calculator-when-to-retire-and-how-to-use-your-retirement-savings-and-maximize-government-retirement-benefits/" rel="noreferrer"><u>Drawdown Sequencer</u></a> is built to help figure out - and the <a href="https://optimizedforfreedom.com/why-you-should-consider-withdrawing-from-your-rrsp-early-before-cpp-before-oas/" rel="noreferrer"><u>RRSP meltdown</u></a> idea.</p><p>The goal is to fill up the lower brackets each year without tipping into the <a href="https://optimizedforfreedom.com/what-is-oas-old-age-security/" rel="noreferrer"><u>OAS clawback</u></a> or killing GIS.</p><h2 id="things-the-parents-can-do-instead-or-as-well"><strong>Things the Parents Can Do Instead (or As Well)</strong></h2><p>If the parents&apos; real goal is &quot;pay less tax on money we won&apos;t need,&quot; a few tools work for them directly, without involving the kids at all:</p><ul><li><strong>Pension income splitting.</strong> From 65, up to 50% of RRIF income can be allocated to a spouse on Form <strong>T1032</strong>. If one parent has most of the RRIF money, this can drop them out of a higher bracket or below the OAS clawback threshold.</li><li><strong>Base RRIF minimums on the younger spouse&apos;s age.</strong> This lowers the required minimum. You choose it when you set up the RRIF, and you can&apos;t change it later.</li><li><strong>Spousal RRSP contributions after 71.</strong> If one parent is younger and the other still has RRSP room, the older one can keep contributing to a spousal RRSP until the end of the year the younger one turns 71.</li><li><strong>An advanced life deferred annuity (ALDA).</strong> Up to 25% of RRSP or RRIF money (to a lifetime limit of $180,000 in 2026) can be used to buy an annuity that doesn&apos;t start paying until as late as 85, which takes it out of the RRIF minimum calculation in the meantime.</li><li><strong>Name beneficiaries on the plans.</strong> This doesn&apos;t save income tax for adult kids, but in most provinces a named beneficiary keeps the RRSP or RRIF out of the estate and out of probate fees.</li></ul><h2 id="where-else-the-gift-can-go"><strong>Where Else the Gift Can Go</strong></h2><p>Once the money is a gift, the child doesn&apos;t have to put it in an RRSP. Depending on their situation:</p><ul><li><strong>TFSA</strong> - best if the child is in a low bracket now, or already maxes their RRSP. 2026 adds $7,000 of room, and someone who has been eligible since 2009 has $109,000 of total room if they&apos;ve never contributed. Covered in the <a href="https://optimizedforfreedom.com/personal-finance-basics-what-is-a-tfsa/" rel="noreferrer"><u>TFSA post</u></a>.</li><li><strong>FHSA</strong> - if the child is a first-time home buyer. They get a deduction like an RRSP <em>and</em> a tax-free withdrawal for a home. See the <a href="https://optimizedforfreedom.com/what-is-the-first-home-savings-account-fhsa-and-how-does-it-work/" rel="noreferrer"><u>FHSA post</u></a>.</li><li><strong>RESP for the grandkids</strong> - grandparents can contribute to an RESP directly. The government adds a 20% grant on the first $2,500 a year per child. More in the <a href="https://optimizedforfreedom.com/resps-explained-a-primer-for-canadian-parents/" rel="noreferrer"><u>RESP post</u></a>.</li><li><strong>Paying down a mortgage</strong> - not a tax move, but a guaranteed after-tax return equal to the interest rate.</li></ul><h2 id="the-cra-checklist"><strong>The CRA Checklist</strong></h2><p>If you&apos;re doing the withdraw-gift-contribute route, here&apos;s everything that needs to happen for the CRA to be happy.</p><p><strong>The parent:</strong></p><ul><li>Request the withdrawal (RRSP) or a payment above the minimum (RRIF) from their institution</li><li>Decide whether to request extra withholding to cover their real marginal rate</li><li>Receive a <strong>T4RSP</strong> or <strong>T4RIF</strong> slip and report the income (line 12900 for RRSP, line 11500 for RRIF at 65+)</li><li>Pay any balance owing by April 30</li><li>Check the impact on OAS (clawback threshold $95,323 for 2026 income), GIS, and the age amount</li><li>Keep a record that the money was a gift</li></ul><p><strong>The child:</strong></p><ul><li>Check RRSP deduction limit on the Notice of Assessment or CRA My Account <strong>before</strong> contributing</li><li>Contribute to their own RRSP (or spousal RRSP) by December 31, or within the first 60 days of the next year to deduct against the prior year</li><li>Report the contribution on <strong>Schedule 7</strong> and claim the deduction on <strong>line 20800</strong> - or carry it forward</li><li>Stay within the room plus the $2,000 cushion, or file a <strong>T1-OVP</strong> and pay 1% a month on the excess</li></ul><p><strong>No form needed for:</strong> the gift itself.</p><h2 id="common-misconceptions-ive-found-online"><strong>Common Misconceptions I&apos;ve Found Online</strong></h2><p><strong>&quot;We&apos;ll just fill out a T2033 and move it to our son&apos;s RRSP.&quot;</strong> No. The T2033 only works between plans with the same annuitant. A financial institution will reject it.</p><p><strong>&quot;It&apos;s staying in the family, so the CRA doesn&apos;t care.&quot;</strong> The CRA cares a lot. RRSP tax deferral is personal. Moving the money to anyone else - other than a spouse on separation or a qualifying survivor on death - means the deferral ends and the tax is due.</p><p><strong>&quot;My parents have to cash out their RRSP at 71.&quot;</strong> No. They have to convert it, usually to a RRIF. Only the annual minimum has to come out each year.</p><p><strong>&quot;If my parents name me as the beneficiary, I can roll it into my RRSP.&quot;</strong> Only if you were financially dependent on them, generally meaning you lived with them and had very low income - and for the RRSP rollover, only if that dependence was because of an impairment. For a working adult child, the full value is taxed on the parent&apos;s final return. Naming you as beneficiary mostly saves probate fees, not income tax.</p><p><strong>&quot;The beneficiary pays the tax on an inherited RRSP.&quot;</strong> Normally the deceased&apos;s estate pays it, on their final return. But if the estate can&apos;t pay, the CRA can go after the beneficiary who received the RRSP money. Executors should hold back enough to cover the tax before distributing anything.</p><p><strong>&quot;There&apos;s a gift tax in Canada.&quot;</strong> There isn&apos;t. There&apos;s no limit on how much parents can give adult kids, and no reporting.</p><p><strong>&quot;My parents can contribute to my RRSP using their room.&quot;</strong> No. Only a spouse can contribute using their own room (that&apos;s a spousal RRSP). Anything else uses your room, and only you can claim the deduction.</p><p><strong>&quot;The withholding tax covers it.&quot;</strong> Rarely exactly. Withholding is a flat rate based on the size of the withdrawal, not on the person&apos;s income. The real tax is settled on the tax return.</p><p><strong>&quot;It always saves tax because the kids get a refund.&quot;</strong> Only when the kids&apos; marginal rate is higher than the parents&apos;. If the parents are in a higher bracket - or in the OAS clawback zone, or on GIS - the family loses money.</p><h2 id="the-short-version"><strong>The Short Version</strong></h2><ul><li>There is <strong>no</strong> tax-free way for living parents to transfer RRSP money into their kids&apos; RRSPs</li><li>Direct RRSP transfers only work between plans with <strong>the same annuitant</strong> (T2033), to a spouse on <strong>separation</strong> (T2220), or to a <strong>qualifying survivor</strong> on death (refund of premiums, T2019/T1090)</li><li>An adult, independent child can&apos;t receive a tax-free RRSP rollover even on death - the full value is taxed on the parent&apos;s final return</li><li>The workaround is <strong>withdraw, gift, contribute</strong>: the parent pays tax, gifts the cash (no gift tax, no attribution for adult kids), and the child contributes to their own RRSP using their own room</li><li>The family gains roughly <strong>the amount &#xD7; (child&apos;s marginal rate &#x2212; parent&apos;s marginal rate)</strong>. Positive gap, it works. Negative gap, it backfires</li><li>Count the <strong>OAS clawback</strong> and <strong>GIS</strong> as part of the parent&apos;s real marginal rate</li><li>Turning 71 means converting to a RRIF, not cashing out</li><li>Even a tax-neutral gift can lower the family&apos;s lifetime tax bill by avoiding a big top-bracket RRIF on the second parent&apos;s final return</li><li>If the child is in a low bracket, a <strong>TFSA</strong>, <strong>FHSA</strong> or <strong>RESP</strong> may be a better home for the gift</li></ul><p>Let&apos;s go back to my in-laws. Their instinct was right - money they won&apos;t need is better off doing something useful in the next generation&apos;s hands. They just pictured it as a transfer, when it&apos;s really a withdrawal, a gift, and a contribution. Do those three steps when the parents are in the lower bracket, keep an eye on the OAS clawback, and it&apos;s one of the cleaner ways to move money down a generation in Canada. Do them the other way around and you&apos;ve just handed the CRA a few thousand dollars for the privilege.</p>
<!--kg-card-begin: html-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "headline": "Can Parents Transfer Their RRSP to Their Kids Tax-Free? Every Way to Move RRSP Money in Canada",
      "description": "Every way RRSP money can move between plans in Canada, the CRA forms for each, and the withdraw-gift-contribute workaround parents can use to move RRSP money to their adult children.",
      "url": "optimizedforfreedom.com/can-parents-transfer-their-rrsp-to-their-kids-tax-free-every-way-to-move-rrsp-money-in-canada/",
      "mainEntityOfPage": "optimizedforfreedom.com/can-parents-transfer-their-rrsp-to-their-kids-tax-free-every-way-to-move-rrsp-money-in-canada/",
      "datePublished": "2026-10-15",
      "dateModified": "2026-10-15",
      "inLanguage": "en-CA",
      "author": {
        "@type": "Person",
        "name": "Opti",
        "url": "https://optimizedforfreedom.com/about/"
      },
      "publisher": {
        "@type": "Organization",
        "name": "Optimized For Freedom",
        "url": "https://optimizedforfreedom.com/"
      },
      "about": ["RRSP", "RRIF", "RRSP transfer", "Gifting to adult children", "Canadian income tax"]
    },
    {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Can parents transfer their RRSP to their children's RRSP tax-free in Canada?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. While the parent is alive, RRSP money can only be transferred tax-free to another plan with the same annuitant (Form T2033) or to a spouse or common-law partner on a relationship breakdown (Form T2220). To move money to an adult child, the parent has to withdraw it and pay tax, gift the cash, and the child can then contribute it to their own RRSP using their own contribution room and claim the deduction."
          }
        },
        {
          "@type": "Question",
          "name": "When does the withdraw, gift and contribute strategy save tax?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "When the child's marginal tax rate is higher than the parent's. The family's gain or loss is roughly the amount moved multiplied by the difference between the two marginal rates. If the parent is in the OAS clawback zone or receives the Guaranteed Income Supplement, those reductions should be counted as part of the parent's marginal rate, which can make the strategy lose money."
          }
        },
        {
          "@type": "Question",
          "name": "Do my parents have to cash out their RRSP when they turn 71?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. By December 31 of the year they turn 71, they must withdraw the RRSP, transfer it to a RRIF, or buy an annuity. Most people convert to a RRIF, which is a tax-free direct transfer. From the following year they must withdraw a minimum amount each year, and the rest stays tax-deferred."
          }
        },
        {
          "@type": "Question",
          "name": "Is there a gift tax in Canada when parents give money to adult children?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. Canada has no gift tax and no reporting requirement for cash gifts. The attribution rules apply to gifts to a spouse or to related children under 18, not to adult children, so income earned on the gift is taxed to the adult child."
          }
        },
        {
          "@type": "Question",
          "name": "Can an adult child roll a parent's RRSP into their own RRSP when the parent dies?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Generally no. A tax-deferred rollover is available to a surviving spouse or common-law partner, and to a child or grandchild who was financially dependent on the deceased. A dependent child with a physical or mental impairment can roll the funds into their own RRSP, RRIF or RDSP, and a dependent child without an impairment can only buy a term annuity to age 18. For an independent adult child, the full value of the RRSP is taxed on the parent's final return."
          }
        },
        {
          "@type": "Question",
          "name": "Can my parents pay directly into my RRSP?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "The CRA has said a payment into your RRSP by a third party made at your direction or with your agreement is treated as your own contribution. It uses your contribution room, the receipt is issued to you, and you claim the deduction. Not every financial institution accepts third-party deposits, so check first."
          }
        },
        {
          "@type": "Question",
          "name": "What forms are needed to move RRSP money to my kids?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No transfer form exists for this. The parent requests a withdrawal and receives a T4RSP or T4RIF slip to report the income. The gift needs no form. The child reports the RRSP contribution on Schedule 7 and claims the deduction on line 20800, and must file a T1-OVP if they contribute more than $2,000 over their RRSP deduction limit."
          }
        }
      ]
    }
  ]
}
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Am I Ready to Retire? The Calculator]]></title><description><![CDATA[This free Canadian calculator tests your RRSP, TFSA, CPP, OAS and GIS against taxes, inflation and a market drop to find your safe spending. It also works for other countries by disabling its Canadianness.]]></description><link>https://optimizedforfreedom.com/am-i-ready-to-retire-the-calculator/</link><guid isPermaLink="false">6ace150abf4e3404a575fd30</guid><category><![CDATA[Calculators]]></category><category><![CDATA[Early Retirement]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Wed, 14 Oct 2026 11:18:15 GMT</pubDate><content:encoded><![CDATA[<p>Recently I posted a <a href="https://optimizedforfreedom.com/am-i-ready-to-retire-the-canadian-edition/" rel="noreferrer">detailed post</a> along with a calculator that determines if you are ready to retire based on various inputs. I thought the calculator deserved its own stand-alone post, so here it is.</p>
<!--kg-card-begin: html-->
<div class="ofx-calc" id="rrCalc">
<style>
  #rrCalc.ofx-calc { --green:#2e7d32; --green-deep:#1b5e20; --ink:#21281f; --muted:#66705f;
    --paper:#fbfbf8; --panel:#f1f4ec; --line:#d9e0d0; --amber:#a05e03; --red:#b3372b;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:10px;
    padding:28px 26px 22px; max-width:860px; margin:0 auto; line-height:1.45; }
  #rrCalc * { box-sizing:border-box; }
  #rrCalc .eyebrow { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--green); font-weight:700; margin:0 0 6px; }
  #rrCalc h2.title { font-family:Georgia,"Times New Roman",serif; font-size:27px; margin:0 0 4px; font-weight:700; line-height:1.2; color:var(--ink); }
  #rrCalc p.sub { color:var(--muted); margin:0 0 18px; font-size:14.5px; max-width:62ch; }
  #rrCalc .rr-toggle { display:flex; gap:10px; align-items:flex-start; background:var(--panel); border:1px solid var(--line);
    border-radius:8px; padding:11px 14px; margin:0 0 22px; font-size:14px; cursor:pointer; }
  #rrCalc .rr-toggle input { width:18px; height:18px; margin:1px 0 0; accent-color:var(--green); flex:0 0 auto; cursor:pointer; }
  #rrCalc fieldset { border:none; margin:0 0 8px; padding:0; min-width:0; }
  #rrCalc legend { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:700; padding:0; margin:0 0 10px; }
  #rrCalc .ofx-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px 16px; margin-bottom:18px; }
  @media (max-width:640px){ #rrCalc .ofx-grid { grid-template-columns:1fr 1fr; } }
  @media (max-width:430px){ #rrCalc .ofx-grid { grid-template-columns:1fr; } #rrCalc.ofx-calc { padding:22px 16px 18px; } }
  #rrCalc .ofx-field label { display:block; font-size:13px; font-weight:600; margin-bottom:4px; }
  #rrCalc .ofx-field .hint { display:block; font-size:11.5px; color:var(--muted); font-weight:400; margin-top:3px; }
  #rrCalc .ofx-field input, #rrCalc .ofx-field select { width:100%; padding:8px 10px; font-size:15px; border:1px solid var(--line);
    border-radius:6px; background:#fff; color:var(--ink); font-variant-numeric:tabular-nums; font-family:inherit; }
  #rrCalc .ofx-field input:focus, #rrCalc .ofx-field select:focus { outline:2px solid var(--green); outline-offset:1px; border-color:var(--green); }
  #rrCalc .gen-only { display:none; }
  #rrCalc.is-gen .gen-only { display:block; }
  #rrCalc.is-gen .ca-only { display:none; }
  #rrCalc .rr-taxrate { display:none; }
  #rrCalc.is-gen .rr-taxrate, #rrCalc.tax-manual .rr-taxrate { display:block; }
  #rrCalc .ofx-run { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:6px 0 4px; }
  #rrCalc .ofx-run button { background:var(--green); color:#fff; border:none; border-radius:7px; padding:12px 26px;
    font-size:15.5px; font-weight:700; cursor:pointer; font-family:inherit; }
  #rrCalc .ofx-run button:hover { background:var(--green-deep); }
  #rrCalc .ofx-run button:focus-visible { outline:3px solid var(--green-deep); outline-offset:2px; }
  #rrCalc .ofx-run .note { font-size:12.5px; color:var(--muted); }
  #rrCalc .ofx-error { color:var(--red); font-size:14px; font-weight:600; margin-top:10px; display:none; }

  #rrResults { display:none; margin-top:26px; border-top:2px solid var(--green); padding-top:22px; }
  #rrCalc .ofx-verdict { background:var(--panel); border-radius:10px; padding:20px 22px 18px; margin-bottom:20px; border-left:6px solid var(--green); }
  #rrCalc .ofx-verdict.close { border-left-color:var(--amber); }
  #rrCalc .ofx-verdict.notyet { border-left-color:var(--red); }
  #rrCalc .ofx-verdict .v-name { font-family:Georgia,serif; font-size:24px; font-weight:700; color:var(--green-deep); margin:0 0 6px; }
  #rrCalc .ofx-verdict.close .v-name { color:var(--amber); }
  #rrCalc .ofx-verdict.notyet .v-name { color:var(--red); }
  #rrCalc .ofx-verdict p { margin:0 0 10px; font-size:15px; }
  #rrCalc .ofx-statrow { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:14px; }
  @media (max-width:640px){ #rrCalc .ofx-statrow { grid-template-columns:1fr 1fr; } }
  #rrCalc .ofx-stat { background:#fff; border:1px solid var(--line); border-radius:8px; padding:10px 12px; min-width:0; }
  #rrCalc .ofx-stat .k { display:block; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:700; }
  #rrCalc .ofx-stat .v { display:block; font-size:19px; font-weight:700; font-variant-numeric:tabular-nums; margin-top:2px; }
  #rrCalc .ofx-stat .s { display:block; font-size:11.5px; color:var(--muted); margin-top:2px; }
  #rrCalc .v.green { color:var(--green-deep); } #rrCalc .v.amber { color:var(--amber); } #rrCalc .v.red { color:var(--red); }
  #rrCalc h3.sec { font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:700; margin:24px 0 10px; }
  #rrCalc .rr-taxnote { font-size:13px; color:var(--muted); margin:10px 0 0; }
  #rrCalc ul.rr-moves { margin:0; padding:0; list-style:none; }
  #rrCalc ul.rr-moves li { background:#fff; border:1px solid var(--line); border-left:4px solid var(--green); border-radius:6px;
    padding:10px 14px; margin-bottom:8px; font-size:14.5px; }
  #rrCalc ul.rr-moves li strong { color:var(--green-deep); }
  #rrCalc .rr-chart svg { width:100%; height:auto; display:block; }
  #rrCalc .rr-legend { font-size:12.5px; color:var(--muted); margin-top:6px; display:flex; gap:18px; flex-wrap:wrap; }
  #rrCalc .rr-legend i { display:inline-block; width:18px; height:3px; vertical-align:middle; margin-right:6px; border-radius:2px; }
  #rrCalc .ofx-tbl table { width:100%; border-collapse:collapse; font-size:12.5px; font-variant-numeric:tabular-nums; }
  #rrCalc .ofx-tbl th, #rrCalc .ofx-tbl td { padding:6px 7px; text-align:right; border-bottom:1px solid var(--line); white-space:nowrap; }
  #rrCalc .ofx-tbl th:first-child, #rrCalc .ofx-tbl td:first-child { text-align:left; }
  #rrCalc .ofx-tbl th { font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
  #rrCalc .ofx-tbl tr.short td { color:var(--red); }
  #rrCalc .ofx-tblwrap { overflow-x:auto; }
  #rrCalc .ofx-tbl details summary { cursor:pointer; font-weight:700; color:var(--green-deep); font-size:14px; margin:20px 0 8px; }
  #rrCalc .ofx-assume { margin-top:22px; font-size:12.5px; color:var(--muted); border-top:1px solid var(--line); padding-top:14px; }
  #rrCalc .ofx-assume ul { margin:6px 0 0; padding-left:18px; }
  #rrCalc .ofx-assume li { margin-bottom:3px; }
  #rrCalc .ofx-close { font-family:Georgia,serif; font-style:italic; text-align:center; color:var(--green-deep); font-size:15px; margin-top:20px; }
  @media (prefers-reduced-motion:no-preference){ #rrResults { animation:rrIn .35s ease; } @keyframes rrIn { from{opacity:0; transform:translateY(6px);} to{opacity:1;} } }
</style>

  <p class="eyebrow">Optimized For Freedom &#xB7; Calculators</p>
  <h2 class="title">The Retirement Readiness Check</h2>
  <p class="sub">Put in what you have, what you spend, and how long it needs to last. This tool runs your plan year by year - taxes, inflation, government benefits and a bad-market stress test included - and tells you straight: ready, almost, or not yet. Everything is shown in today&apos;s dollars.</p>

  <label class="rr-toggle" for="rrGeneric">
    <input type="checkbox" id="rrGeneric">
    <span>I don&apos;t live in Canada - swap RRSP, TFSA, CPP, OAS and GIS for generic accounts and public pensions.</span>
  </label>

  <fieldset>
    <legend>Your timeline</legend>
    <div class="ofx-grid">
      <div class="ofx-field"><label for="rrAge">Current age</label><input id="rrAge" type="number" min="18" max="90" value="55"></div>
      <div class="ofx-field"><label for="rrRetAge">Age you want to retire</label><input id="rrRetAge" type="number" min="18" max="80" value="60"><span class="hint">Same as current age = retire now</span></div>
      <div class="ofx-field"><label for="rrYears">Years your money must last</label><input id="rrYears" type="number" min="1" max="60" value="35"><span class="hint" id="rrYearsHint">From retirement - to age 95</span></div>
    </div>
  </fieldset>

  <fieldset>
    <legend>What you&apos;ve saved</legend>
    <div class="ofx-grid">
      <div class="ofx-field"><label for="rrRrsp" data-ca="RRSP / RRIF / LIRA balance" data-gen="Tax-deferred balance">RRSP / RRIF / LIRA balance</label><input id="rrRrsp" type="number" min="0" step="1000" value="450000"><span class="hint" data-ca="Fully taxable when withdrawn - see taxes below" data-gen="e.g. 401(k), IRA, workplace pension pot">Fully taxable when withdrawn - see taxes below</span></div>
      <div class="ofx-field"><label for="rrTfsa" data-ca="TFSA balance" data-gen="Tax-free balance">TFSA balance</label><input id="rrTfsa" type="number" min="0" step="1000" value="150000"><span class="hint" data-ca="Withdrawals are tax-free" data-gen="e.g. Roth IRA, ISA - tax-free withdrawals">Withdrawals are tax-free</span></div>
      <div class="ofx-field"><label for="rrNonreg" data-ca="Non-registered balance" data-gen="Taxable investment balance">Non-registered balance</label><input id="rrNonreg" type="number" min="0" step="1000" value="75000"><span class="hint">Regular brokerage account</span></div>
      <div class="ofx-field"><label for="rrGain">Unrealized gain in that account (%)</label><input id="rrGain" type="number" min="0" max="100" value="40"><span class="hint">Share of the balance that is profit</span></div>
      <div class="ofx-field"><label for="rrCash">Cash savings</label><input id="rrCash" type="number" min="0" step="1000" value="25000"><span class="hint">Savings account, GICs, emergency fund</span></div>
      <div class="ofx-field"><label for="rrSave">Yearly savings until you retire</label><input id="rrSave" type="number" min="0" step="1000" value="30000"><span class="hint">Spread across your investment accounts</span></div>
    </div>
  </fieldset>

  <fieldset>
    <legend>What you&apos;ll spend</legend>
    <div class="ofx-grid">
      <div class="ofx-field"><label for="rrSpend">Monthly expenses in retirement</label><input id="rrSpend" type="number" min="0" step="100" value="4500"><span class="hint">After tax, today&apos;s dollars, excluding the debt below</span></div>
      <div class="ofx-field"><label for="rrDebt">Mortgage / debt payments (monthly)</label><input id="rrDebt" type="number" min="0" step="100" value="0"><span class="hint">Fixed payments - inflation shrinks them</span></div>
      <div class="ofx-field"><label for="rrDebtEnd">Debt paid off at age</label><input id="rrDebtEnd" type="number" min="18" max="100" value="65"></div>
      <div class="ofx-field"><label for="rrDrop">Spending drop after 75 (%)</label><input id="rrDrop" type="number" min="0" max="60" value="0"><span class="hint">Many retirees spend less later. 0 = conservative</span></div>
    </div>
  </fieldset>

  <fieldset>
    <legend>Other retirement income</legend>
    <div class="ofx-grid">
      <div class="ofx-field"><label for="rrPen">Workplace pension (monthly)</label><input id="rrPen" type="number" min="0" step="50" value="0"><span class="hint">Defined benefit, today&apos;s dollars</span></div>
      <div class="ofx-field"><label for="rrPenStart">Pension starts at age</label><input id="rrPenStart" type="number" min="40" max="75" value="65"></div>
      <div class="ofx-field"><label for="rrPenIdx">Pension indexed to inflation?</label><select id="rrPenIdx"><option value="yes">Yes, fully</option><option value="no">No - fixed amount</option></select></div>
      <div class="ofx-field"><label for="rrPt">Part-time income (monthly)</label><input id="rrPt" type="number" min="0" step="100" value="0"><span class="hint">Consulting, side business, bridge job</span></div>
      <div class="ofx-field"><label for="rrPtEnd">Part-time work ends at age</label><input id="rrPtEnd" type="number" min="18" max="90" value="65"></div>
    </div>
  </fieldset>

  <fieldset>
    <legend data-ca="Government benefits" data-gen="Public pensions">Government benefits</legend>
    <div class="ofx-grid">
      <div class="ofx-field ca-only"><label for="rrCpp">Your CPP at 65 (monthly)</label><input id="rrCpp" type="number" min="0" max="1507.65" step="10" value="1000"><span class="hint">Check My Service Canada Account. 2026 max: $1,507.65</span></div>
      <div class="ofx-field ca-only"><label for="rrCppStart">Start CPP at age</label><input id="rrCppStart" type="number" min="60" max="70" value="65"><span class="hint">60-70. -7.2%/yr early, +8.4%/yr late</span></div>
      <div class="ofx-field ca-only"><label for="rrOasYrs">Years in Canada after 18 (by 65)</label><input id="rrOasYrs" type="number" min="0" max="40" value="40"><span class="hint">40 = full OAS. Under 10 = none</span></div>
      <div class="ofx-field ca-only"><label for="rrOasStart">Start OAS at age</label><input id="rrOasStart" type="number" min="65" max="70" value="65"><span class="hint">65-70. +7.2% per year you wait</span></div>

      <div class="ofx-field gen-only"><label for="rrG1">Earnings-based public pension (monthly)</label><input id="rrG1" type="number" min="0" step="50" value="1500"><span class="hint">e.g. Social Security - your estimate at the start age</span></div>
      <div class="ofx-field gen-only"><label for="rrG1Start">Starts at age</label><input id="rrG1Start" type="number" min="50" max="75" value="67"></div>
      <div class="ofx-field gen-only"><label for="rrG2">Universal / residency pension (monthly)</label><input id="rrG2" type="number" min="0" step="50" value="0"><span class="hint">Flat pension paid to residents, if your country has one</span></div>
      <div class="ofx-field gen-only"><label for="rrG2Start">Starts at age</label><input id="rrG2Start" type="number" min="50" max="75" value="67"></div>
      <div class="ofx-field gen-only"><label for="rrSup">Low-income supplement, max (monthly)</label><input id="rrSup" type="number" min="0" step="50" value="0"><span class="hint">Means-tested top-up. 0 if none</span></div>
      <div class="ofx-field gen-only"><label for="rrSupCut">Yearly income where it stops</label><input id="rrSupCut" type="number" min="0" step="500" value="20000"><span class="hint">Shrinks gradually to zero at this income</span></div>
    </div>
  </fieldset>

  <fieldset>
    <legend>Taxes in retirement</legend>
    <div class="ofx-grid">
      <div class="ofx-field ca-only"><label for="rrProv">Province / territory</label><select id="rrProv"></select><span class="hint">Sets your provincial brackets</span></div>
      <div class="ofx-field ca-only"><label for="rrTaxMode">How to estimate income tax</label>
        <select id="rrTaxMode"><option value="auto">Calculate it for me (2026 brackets)</option><option value="manual">Use my own average rate</option></select>
        <span class="hint">Auto taxes RRSP/RRIF, CPP, OAS, pension and gains year by year</span></div>
      <div class="ofx-field rr-taxrate"><label for="rrTaxRate">Average tax rate in retirement (%)</label><input id="rrTaxRate" type="number" min="0" max="60" step="0.5" value="15">
        <span class="hint" data-ca="Blended rate on RRSP/RRIF withdrawals, CPP, OAS, pension and gains" data-gen="Applied to tax-deferred withdrawals, pensions, work income and gains">Blended rate on RRSP/RRIF withdrawals, CPP, OAS, pension and gains</span></div>
    </div>
  </fieldset>

  <fieldset>
    <legend>Market assumptions</legend>
    <div class="ofx-grid">
      <div class="ofx-field"><label for="rrRet">Expected investment return (%)</label><input id="rrRet" type="number" min="-5" max="20" step="0.25" value="6"><span class="hint">Before inflation, after fees</span></div>
      <div class="ofx-field"><label for="rrInf">Target inflation (%)</label><input id="rrInf" type="number" min="0" max="15" step="0.25" value="2"><span class="hint" data-ca="Bank of Canada target is 2%" data-gen="Most central banks target 2%">Bank of Canada target is 2%</span></div>
      <div class="ofx-field"><label for="rrCashRet">Return on cash savings (%)</label><input id="rrCashRet" type="number" min="0" max="15" step="0.25" value="2.5"></div>
      <div class="ofx-field"><label for="rrDropPct">Market drop to test (%)</label><input id="rrDropPct" type="number" min="0" max="90" step="5" value="25"><span class="hint">Hits all invested balances. Stocks fell 30-40% in 2008. 0 = skip</span></div>
      <div class="ofx-field"><label for="rrDropWhen">When the drop hits</label>
        <select id="rrDropWhen"><option value="0">The year you retire</option><option value="4">5 years into retirement</option><option value="9">10 years into retirement</option><option value="19">20 years into retirement</option></select>
        <span class="hint">Early drops do the most damage</span></div>
    </div>
  </fieldset>

  <div class="ofx-run">
    <button id="rrRun" type="button">Am I ready?</button>
    <span class="note">Runs your plan, a market-drop version, and the fixes if there&apos;s a gap.</span>
  </div>
  <p class="ofx-error" id="rrErr" role="alert"></p>

  <div id="rrResults" aria-live="polite">
    <div class="ofx-verdict" id="rrVerdict">
      <p class="v-name" id="rrVName"></p>
      <p id="rrVText"></p>
      <div class="ofx-statrow">
        <div class="ofx-stat"><span class="k">Money lasts</span><span class="v" id="rrSLast"></span><span class="s" id="rrSLastS"></span></div>
        <div class="ofx-stat"><span class="k">Safe monthly spending</span><span class="v green" id="rrSSus"></span><span class="s" id="rrSSusS"></span></div>
        <div class="ofx-stat"><span class="k">Spending covered</span><span class="v" id="rrSCov"></span><span class="s">safe spending &#xF7; your plan</span></div>
        <div class="ofx-stat"><span class="k">Left at the end</span><span class="v" id="rrSEnd"></span><span class="s">today&apos;s dollars</span></div>
      </div>
    </div>

    <h3 class="sec" data-ca="Government benefit check" data-gen="Public pension check">Government benefit check</h3>
    <div class="ofx-statrow" id="rrBen"></div>

    <h3 class="sec">Your taxes in retirement</h3>
    <div class="ofx-statrow" id="rrTax"></div>
    <p class="rr-taxnote" id="rrTaxNote"></p>

    <h3 class="sec" id="rrMovesH">Your moves</h3>
    <ul class="rr-moves" id="rrMoves"></ul>

    <h3 class="sec">Your money over time (today&apos;s dollars)</h3>
    <div class="rr-chart" id="rrChart"></div>
    <div class="rr-legend"><span><i style="background:#2e7d32"></i>Your plan</span><span id="rrLegCrash"><i style="background:#a05e03"></i><span id="rrLegCrashTxt">Market drop</span></span></div>

    <div class="ofx-tbl">
      <details>
        <summary>Year-by-year breakdown</summary>
        <div class="ofx-tblwrap"><table><thead id="rrTHead"></thead><tbody id="rrTBody"></tbody></table></div>
      </details>
    </div>

    <div class="ofx-assume">
      <strong>What this tool assumes (read this part - it matters):</strong>
      <ul id="rrAssume"></ul>
    </div>

    <p class="ofx-close">Build the freedom before you need it.</p>
  </div>

<script>
(function(){
"use strict";
var root = document.getElementById("rrCalc");
function $(id){ return document.getElementById(id); }

/* ---------- Canadian program figures (2026, today's dollars) ---------- */
var P = {
  cppMax65: 1507.65,          // monthly, starting 2026
  oas6574: 762.49,            // monthly, Oct-Dec 2026 (estimate: Apr-Jun rate + 1.2% Jul + 1.4% Oct)
  oas75: 838.75,
  gisMax: 1138.89,            // single, monthly, Oct-Dec 2026 (estimate)
  gisCut: 23000,              // approx. non-OAS income where single GIS reaches zero
  gisEarnExempt: 5000,        // first $5,000 of employment income ignored for GIS
  clawThreshold: 95323,       // OAS recovery tax threshold, 2026 income
  clawRate: 0.15,
  tfsaLimit: 7000,
  fed: { br:[[58523,.14],[117045,.205],[181440,.26],[258482,.29],[Infinity,.33]],
         bpa:16452, rate:.14, ageAmt:9209, ageStart:45522, ageRate:.15, pension:2000 },
  rrif: {72:.0540,73:.0553,74:.0567,75:.0582,76:.0598,77:.0617,78:.0636,79:.0658,80:.0682,81:.0708,
         82:.0738,83:.0771,84:.0808,85:.0851,86:.0899,87:.0955,88:.1021,89:.1099,90:.1192,91:.1306,
         92:.1449,93:.1634,94:.1879}
};
function rrifMin(age){ if(age>=95) return 0.20; return P.rrif[age] || 0; }

var PROV = {
  ON:{name:"Ontario", bpa:12747, br:[[52886,.0505],[105775,.0915],[150000,.1116],[220000,.1216],[Infinity,.1316]]},
  BC:{name:"British Columbia", bpa:12932, br:[[49279,.0506],[98560,.077],[113158,.105],[137407,.1229],[186306,.147],[259829,.168],[Infinity,.205]]},
  AB:{name:"Alberta", bpa:22323, br:[[60000,.08],[151234,.10],[181481,.12],[241974,.13],[302469,.14],[Infinity,.15]]},
  SK:{name:"Saskatchewan", bpa:18991, br:[[53463,.105],[152750,.125],[Infinity,.145]]},
  MB:{name:"Manitoba", bpa:15780, br:[[47564,.108],[101200,.1275],[Infinity,.174]]},
  QC:{name:"Quebec", bpa:18571, abate:0.165, br:[[53255,.14],[106495,.19],[129590,.24],[Infinity,.2575]]},
  NB:{name:"New Brunswick", bpa:13396, br:[[51306,.094],[102614,.14],[190060,.16],[Infinity,.195]]},
  NS:{name:"Nova Scotia", bpa:11744, br:[[30507,.0879],[61015,.1495],[95883,.1667],[154650,.175],[Infinity,.21]]},
  PE:{name:"Prince Edward Island", bpa:14250, br:[[33328,.095],[64656,.1347],[105000,.166],[140000,.1762],[Infinity,.19]]},
  NL:{name:"Newfoundland and Labrador", bpa:10818, br:[[44192,.087],[88382,.145],[157792,.158],[220910,.178],[Infinity,.198]]},
  YT:{name:"Yukon", bpa:16129, br:[[57375,.064],[114750,.09],[177882,.109],[500000,.128],[Infinity,.15]]},
  NT:{name:"Northwest Territories", bpa:17842, br:[[51964,.059],[103930,.086],[168967,.122],[Infinity,.1405]]},
  NU:{name:"Nunavut", bpa:19274, br:[[54707,.04],[109413,.07],[177881,.09],[Infinity,.115]]}
};

var LBL = {
  ca:  { rr:"RRSP/RRIF", tf:"TFSA", nr:"Non-reg", p1:"CPP", p2:"OAS", sup:"GIS" },
  gen: { rr:"Tax-deferred", tf:"Tax-free", nr:"Taxable", p1:"Earnings pension", p2:"Universal pension", sup:"Supplement" }
};

/* ---------- tax ---------- */
function bracketTax(income, br){
  var t=0, prev=0;
  for(var i=0;i<br.length;i++){
    if(income<=prev) break;
    t += (Math.min(income, br[i][0]) - prev) * br[i][1];
    prev = br[i][0];
  }
  return t;
}
function taxCA(taxable, prov, age, pensionInc){
  if(taxable<=0) return 0;
  var pv = PROV[prov] || PROV.ON;
  var credits = P.fed.bpa + Math.min(P.fed.pension, pensionInc||0);
  if(age>=65) credits += Math.max(0, P.fed.ageAmt - Math.max(0, taxable-P.fed.ageStart)*P.fed.ageRate);
  var fed = Math.max(0, bracketTax(taxable, P.fed.br) - credits*P.fed.rate);
  if(pv.abate) fed *= (1-pv.abate);
  var prv = Math.max(0, bracketTax(taxable, pv.br) - pv.bpa*pv.br[0][1]);
  return fed + prv;
}

/* ---------- benefits ---------- */
function cppAnnual(base65Mo, start){
  var m = (start-65)*12;
  return base65Mo*12*(1 + (m<0 ? m*0.006 : Math.min(m,60)*0.007));
}
function oasAnnual(age, start, yrs){
  if(age<start || yrs<10) return 0;
  var defer = 1 + Math.min(Math.max(0,(start-65)*12), 60)*0.006;
  return (age>=75 ? P.oas75 : P.oas6574)*12*defer*Math.min(yrs,40)/40;
}
function pubIncome(inp, age){
  if(!inp.gen){
    return { p1: age>=inp.cppStart ? cppAnnual(inp.cpp65, inp.cppStart) : 0,
             p2: oasAnnual(age, inp.oasStart, inp.oasYears),
             supOn: age>=inp.oasStart && inp.oasYears>=10 };
  }
  return { p1: age>=inp.g1Start ? inp.g1Mo*12 : 0,
           p2: age>=inp.g2Start ? inp.g2Mo*12 : 0,
           supOn: age>=inp.g2Start };
}

/* One year's after-tax cash, given withdrawals w */
function yearFin(inp, age, b, w, gf){
  var nrTaxable = w.nr*gf*0.5;
  var other = b.p1 + b.pen + b.pt + w.rr + nrTaxable;   // taxable income other than OAS
  var net = other + b.p2;
  var claw=0, sup=0, tax;
  if(!inp.gen){
    claw = b.p2>0 ? Math.min(b.p2, Math.max(0, net-P.clawThreshold)*P.clawRate) : 0;
    tax = inp.taxMode==="manual" ? Math.max(0, net-claw)*inp.taxRate
                                 : taxCA(net-claw, inp.prov, age, b.pen + (age>=65 ? w.rr : 0));
    if(b.supOn){
      var gisInc = Math.max(0, other - Math.min(b.pt, P.gisEarnExempt));
      sup = Math.max(0, P.gisMax*12 - gisInc*(P.gisMax*12/P.gisCut));
    }
  } else {
    tax = Math.max(0, net)*inp.taxRate;
    if(b.supOn && inp.supMo>0 && inp.supCut>0) sup = Math.max(0, inp.supMo*12 - other*(inp.supMo*12/inp.supCut));
  }
  var cashIn = b.p1 + b.p2 - claw + sup + b.pen + b.pt + w.cash + w.nr + w.rr + w.tf - tax;
  return { cashIn:cashIn, tax:tax, claw:claw, sup:sup, taxable:Math.max(0, net-claw) };
}

function fillSource(inp, age, b, w, bal, gf, need, src){
  var avail = bal[src] - w[src];
  if(avail <= 0.5) return;
  if(yearFin(inp,age,b,w,gf).cashIn >= need) return;
  var t = {cash:w.cash, nr:w.nr, rr:w.rr, tf:w.tf};
  t[src] = w[src] + avail;
  if(yearFin(inp,age,b,t,gf).cashIn <= need){ w[src] += avail; return; }
  var lo=0, hi=avail;
  for(var k=0;k<40;k++){
    var mid=(lo+hi)/2; t[src]=w[src]+mid;
    if(yearFin(inp,age,b,t,gf).cashIn < need) lo=mid; else hi=mid;
  }
  w[src] += hi;
}

/* ---------- simulation (real, today's dollars) ---------- */
function simulate(inp, o){
  var inf = inp.inf/100;
  var g  = (1+inp.ret/100)/(1+inf) - 1;
  var gc = (1+inp.cashRet/100)/(1+inf) - 1;
  var lump = o.lump || 0;
  var age = inp.age;
  var bal = { rr:inp.rrsp, tf:inp.tfsa, nr:inp.nonreg+lump, cash:inp.cash };
  var basis = inp.nonreg*(1-inp.gain) + lump;

  while(age < o.retAge){
    bal.rr*=1+g; bal.tf*=1+g; bal.nr*=1+g; bal.cash*=1+gc;
    if(inp.save>0){
      var inv = bal.rr+bal.tf+bal.nr;
      if(inv>0){ var s=inp.save/inv, addNr=bal.nr*s; bal.rr+=bal.rr*s; bal.tf+=bal.tf*s; bal.nr+=addNr; basis+=addNr; }
      else { bal.nr+=inp.save; basis+=inp.save; }
    }
    age++;
  }
  var startBal = bal.rr+bal.tf+bal.nr+bal.cash;
  var crashAge = o.crash ? o.retAge + (inp.dropWhen||0) : -1, keep = 1 - (inp.dropPct||0);

  var endAge = o.endAge || (o.retAge + inp.years);
  var rows=[], failAge=null, totTax=0, totSup=0, totClaw=0, totTaxable=0, totNeed=0, supAges=[], clawAges=[];
  var p1Start=null, p2Start=null;
  for(; age<endAge; age++){
    if(age===crashAge){ bal.rr*=keep; bal.tf*=keep; bal.nr*=keep; }
    var spend = o.spendMo*12*(age>=75 ? (1-inp.drop75) : 1);
    var debt = age<inp.debtEnd ? inp.debtMo*12/Math.pow(1+inf, age-inp.age) : 0;
    var need = spend + debt;
    var pub = pubIncome(inp, age);
    var pen = age>=inp.penStart ? inp.penMo*12*(inp.penIdx ? 1 : 1/Math.pow(1+inf, age-inp.penStart)) : 0;
    var pt = age<inp.ptEnd ? inp.ptMo*12 : 0;
    var b = { p1:pub.p1, p2:pub.p2, supOn:pub.supOn, pen:pen, pt:pt };
    var gf = bal.nr>0 ? Math.max(0, 1-basis/bal.nr) : 0;
    var w = { cash:0, nr:0, rr:0, tf:0 };
    if(!inp.gen && age>=72) w.rr = bal.rr*rrifMin(age);
    var order = ["cash","nr","rr","tf"];
    for(var i=0;i<order.length;i++) fillSource(inp, age, b, w, bal, gf, need, order[i]);
    var f = yearFin(inp, age, b, w, gf);
    var short = Math.max(0, need-f.cashIn), surplus = Math.max(0, f.cashIn-need);

    if(w.nr>0 && bal.nr>0) basis -= basis*Math.min(1, w.nr/bal.nr);
    bal.cash-=w.cash; bal.nr-=w.nr; bal.rr-=w.rr; bal.tf-=w.tf;
    if(surplus>0){
      var toTf = inp.gen ? 0 : Math.min(surplus, P.tfsaLimit);
      bal.tf += toTf; bal.nr += surplus-toTf; basis += surplus-toTf;
    }
    if(short>1 && failAge===null) failAge = age;
    if(f.sup>1) supAges.push(age);
    if(f.claw>1) clawAges.push(age);
    if(b.p1>0 && p1Start===null) p1Start=age;
    if(b.p2>0 && p2Start===null) p2Start=age;
    totTax+=f.tax; totSup+=f.sup; totClaw+=f.claw; totTaxable+=f.taxable; totNeed+=need;

    bal.rr*=1+g; bal.tf*=1+g; bal.nr*=1+g; bal.cash*=1+gc;
    ["rr","tf","nr","cash"].forEach(function(k){ if(bal[k]<0.01) bal[k]=0; });
    rows.push({ age:age, need:need, p1:b.p1, p2:b.p2-f.claw, sup:f.sup, other:pen+pt,
      wCash:w.cash, wNr:w.nr, wRr:w.rr, wTf:w.tf, tax:f.tax, claw:f.claw, taxable:f.taxable, short:short,
      end:bal.rr+bal.tf+bal.nr+bal.cash });
  }
  return { rows:rows, failAge:failAge, startBal:startBal, endBal:bal.rr+bal.tf+bal.nr+bal.cash,
    endAge:endAge, totTax:totTax, totSup:totSup, totClaw:totClaw, totTaxable:totTaxable, totNeed:totNeed,
    supAges:supAges, clawAges:clawAges };
}
function passes(inp, o){ return simulate(inp, o).failAge === null; }

function sustainable(inp, retAge, endAge){
  var lo=0, hi=Math.max(inp.spendMo*4, 25000);
  if(!passes(inp,{retAge:retAge, endAge:endAge, spendMo:0})) return 0;
  if(passes(inp,{retAge:retAge, endAge:endAge, spendMo:hi})) return hi;
  for(var k=0;k<32;k++){
    var mid=(lo+hi)/2;
    if(passes(inp,{retAge:retAge, endAge:endAge, spendMo:mid})) lo=mid; else hi=mid;
  }
  return lo;
}

function analyze(inp){
  var endAge = inp.retAge + inp.years;
  var base  = simulate(inp, {retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo});
  var stress = inp.dropPct>0 && inp.retAge+inp.dropWhen < endAge;
  var crash = stress ? simulate(inp, {retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo, crash:true}) : base;
  var res = { endAge:endAge, base:base, crash:crash, stress:stress, sus:sustainable(inp, inp.retAge, endAge) };

  if(base.failAge !== null){
    res.moreYears = null;
    for(var r=inp.retAge+1; r<=Math.min(inp.retAge+15, endAge-1); r++){
      if(passes(inp,{retAge:r, endAge:endAge, spendMo:inp.spendMo})){ res.moreYears=r-inp.retAge; break; }
    }
    var lo=0, hi=5e6;
    if(passes(inp,{retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo, lump:hi})){
      for(var k=0;k<32;k++){ var mid=(lo+hi)/2;
        if(passes(inp,{retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo, lump:mid})) hi=mid; else lo=mid; }
      res.lump = hi;
    } else res.lump = null;
  } else if(inp.retAge > inp.age){
    res.earliest = inp.retAge;
    for(var e=inp.age; e<inp.retAge; e++){
      if(passes(inp,{retAge:e, endAge:endAge, spendMo:inp.spendMo})){ res.earliest=e; break; }
    }
  }
  if(stress && crash.failAge !== null){
    // how much extra cash buffer would carry the crash scenario
    var clo=0, chi=inp.spendMo*12*6, ci=Object.assign({}, inp);
    ci.cash = inp.cash + chi;
    if(passes(ci,{retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo, crash:true})){
      for(var j=0;j<28;j++){ var cm=(clo+chi)/2; ci.cash=inp.cash+cm;
        if(passes(ci,{retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo, crash:true})) chi=cm; else clo=cm; }
      res.crashCash = chi;
    } else res.crashCash = null;
    res.crashMore = null;
    for(var cr=inp.retAge+1; cr<=Math.min(inp.retAge+5, endAge-1); cr++){
      if(passes(inp,{retAge:cr, endAge:endAge, spendMo:inp.spendMo, crash:true})){ res.crashMore=cr-inp.retAge; break; }
    }
  }
  if(!inp.gen && (inp.cppStart<70 || inp.oasStart<70)){
    var di = Object.assign({}, inp, {cppStart:70, oasStart:70});
    res.deferSus = sustainable(di, inp.retAge, endAge);
  }
  return res;
}

/* ---------- formatting ---------- */
var CUR = "$";
function fm(n){ return (n<0?"-":"") + CUR + Math.round(Math.abs(n)).toLocaleString("en-CA"); }
function fk(n){
  var a=Math.abs(n), s=n<0?"-":"";
  if(a>=1e6) return s+CUR+(a/1e6).toFixed(2)+"M";
  if(a>=1e3) return s+CUR+Math.round(a/1e3)+"k";
  return s+CUR+Math.round(a);
}
function whenDesc(i){
  return i.dropWhen===0 ? "the year you retire" : (i.dropWhen+1)+" years into retirement";
}
function dropDesc(i){ return "a "+Math.round(i.dropPct*100)+"% market drop "+whenDesc(i); }
function cap(t){ return t.charAt(0).toUpperCase()+t.slice(1); }
function range(arr){
  if(!arr.length) return "";
  return arr[0]===arr[arr.length-1] ? "age "+arr[0] : "ages "+arr[0]+"-"+arr[arr.length-1];
}
function stat(k, v, s, cls){
  return '<div class="ofx-stat"><span class="k">'+k+'</span><span class="v '+(cls||"")+'">'+v+'</span>'+(s?'<span class="s">'+s+'</span>':'')+'</div>';
}

/* ---------- region toggle ---------- */
var provSel = $("rrProv");
Object.keys(PROV).forEach(function(k){
  var o=document.createElement("option"); o.value=k; o.textContent=PROV[k].name;
  if(k==="ON") o.selected=true; provSel.appendChild(o);
});
function applyRegion(){
  var gen = $("rrGeneric").checked;
  root.classList.toggle("is-gen", gen);
  CUR = gen ? "" : "$";
  Array.prototype.forEach.call(root.querySelectorAll("[data-ca]"), function(el){
    el.textContent = gen ? el.getAttribute("data-gen") : el.getAttribute("data-ca");
  });
  $("rrResults").style.display = "none";
}
$("rrGeneric").addEventListener("change", applyRegion);
$("rrTaxMode").addEventListener("change", function(){
  root.classList.toggle("tax-manual", $("rrTaxMode").value==="manual");
  $("rrResults").style.display = "none";
});

function updateYearsHint(){
  var r=+$("rrRetAge").value, y=+$("rrYears").value;
  if(r>0 && y>0) $("rrYearsHint").textContent = "From retirement - to age "+(r+y);
}
$("rrRetAge").addEventListener("input", updateYearsHint);
$("rrYears").addEventListener("input", updateYearsHint);

/* ---------- read + validate ---------- */
function num(id){ var v=parseFloat($(id).value); return isFinite(v) ? v : 0; }
function readInputs(){
  return {
    gen:$("rrGeneric").checked, age:num("rrAge"), retAge:num("rrRetAge"), years:Math.round(num("rrYears")),
    prov:$("rrProv").value, taxRate:Math.min(.6,Math.max(0,num("rrTaxRate")/100)),
    taxMode:$("rrGeneric").checked ? "manual" : $("rrTaxMode").value,
    rrsp:num("rrRrsp"), tfsa:num("rrTfsa"), nonreg:num("rrNonreg"), gain:Math.min(1,Math.max(0,num("rrGain")/100)),
    cash:num("rrCash"), save:num("rrSave"),
    spendMo:num("rrSpend"), drop75:Math.min(.6,Math.max(0,num("rrDrop")/100)), debtMo:num("rrDebt"), debtEnd:num("rrDebtEnd"),
    penMo:num("rrPen"), penStart:num("rrPenStart"), penIdx:$("rrPenIdx").value==="yes",
    ptMo:num("rrPt"), ptEnd:num("rrPtEnd"),
    cpp65:Math.min(num("rrCpp"), P.cppMax65), cppStart:Math.round(num("rrCppStart")),
    oasYears:num("rrOasYrs"), oasStart:Math.round(num("rrOasStart")),
    g1Mo:num("rrG1"), g1Start:num("rrG1Start"), g2Mo:num("rrG2"), g2Start:num("rrG2Start"),
    supMo:num("rrSup"), supCut:num("rrSupCut"),
    ret:num("rrRet"), inf:num("rrInf"), cashRet:num("rrCashRet"),
    dropPct:num("rrDropPct")/100, dropWhen:Math.round(num("rrDropWhen"))
  };
}
function validate(i){
  if(i.age<18 || i.age>90) return "Enter a current age between 18 and 90.";
  if(i.retAge<i.age) return "Your retirement age can't be earlier than your current age.";
  if(i.retAge>80) return "Retirement age should be 80 or under.";
  if(i.years<1 || i.years>60) return "Years your money must last should be between 1 and 60.";
  if(i.spendMo<=0) return "Enter your monthly expenses in retirement.";
  if(!i.gen && (i.cppStart<60 || i.cppStart>70)) return "CPP can start between ages 60 and 70.";
  if(!i.gen && (i.oasStart<65 || i.oasStart>70)) return "OAS can start between ages 65 and 70.";
  if(i.ret<-5 || i.ret>20) return "Expected return should be between -5% and 20%.";
  if(i.inf<0 || i.inf>15) return "Inflation should be between 0% and 15%.";
  if(i.dropPct<0 || i.dropPct>0.9) return "Market drop should be between 0% and 90%.";
  return null;
}

/* ---------- chart ---------- */
function drawChart(base, crash, retAge, stress){
  var W=700, H=250, L=58, R=14, T=12, B=30;
  var pts = function(sim){ var a=[[retAge, sim.startBal]]; sim.rows.forEach(function(r){ a.push([r.age+1, r.end]); }); return a; };
  var a=pts(base), c=pts(crash);
  var x0=retAge, x1=a[a.length-1][0];
  var ymax=0; a.concat(c).forEach(function(p){ if(p[1]>ymax) ymax=p[1]; });
  if(ymax<=0) ymax=1;
  var raw=ymax/4, mag=Math.pow(10, Math.floor(Math.log10(raw))), step=mag*10;
  [1,2,2.5,5,10].some(function(m){ if(mag*m>=raw){ step=mag*m; return true; } return false; });
  var ytop=Math.ceil(ymax/step)*step;
  var X=function(v){ return L + (v-x0)/Math.max(1,(x1-x0))*(W-L-R); };
  var Y=function(v){ return T + (1-v/ytop)*(H-T-B); };
  var svg='<svg viewBox="0 0 '+W+' '+H+'" role="img" aria-label="Portfolio balance by age">';
  for(var v=0; v<=ytop+1; v+=step){
    svg+='<line x1="'+L+'" x2="'+(W-R)+'" y1="'+Y(v)+'" y2="'+Y(v)+'" stroke="#d9e0d0" stroke-width="1"/>';
    svg+='<text x="'+(L-8)+'" y="'+(Y(v)+4)+'" text-anchor="end" font-size="11" fill="#66705f">'+fk(v)+'</text>';
  }
  var span=x1-x0, xs=span>30?10:(span>12?5:(span>5?2:1));
  for(var t=Math.ceil(x0/xs)*xs; t<=x1; t+=xs){
    svg+='<text x="'+X(t)+'" y="'+(H-10)+'" text-anchor="middle" font-size="11" fill="#66705f">'+t+'</text>';
  }
  var path=function(p){ return p.map(function(q,i){ return (i?"L":"M")+X(q[0]).toFixed(1)+","+Y(Math.max(0,q[1])).toFixed(1); }).join(""); };
  if(stress) svg+='<path d="'+path(c)+'" fill="none" stroke="#a05e03" stroke-width="2.2" stroke-dasharray="6 4"/>';
  svg+='<path d="'+path(a)+'" fill="none" stroke="#2e7d32" stroke-width="2.8"/>';
  if(base.failAge!==null){
    svg+='<line x1="'+X(base.failAge)+'" x2="'+X(base.failAge)+'" y1="'+T+'" y2="'+(H-B)+'" stroke="#b3372b" stroke-dasharray="3 3"/>';
    svg+='<text x="'+(X(base.failAge)+5)+'" y="'+(T+12)+'" font-size="11" fill="#b3372b" font-weight="700">Runs out at '+base.failAge+'</text>';
  }
  svg+='</svg>';
  $("rrChart").innerHTML=svg;
}

/* ---------- render ---------- */
function render(inp, res){
  var L = inp.gen ? LBL.gen : LBL.ca;
  var b=res.base, c=res.crash, end=res.endAge;
  var ok=b.failAge===null, crashOk=c.failAge===null;
  var cov = inp.spendMo>0 ? res.sus/inp.spendMo : 0;
  var vd=$("rrVerdict"), name, text;
  var when = inp.retAge===inp.age ? "today" : "at "+inp.retAge;
  var dd = dropDesc(inp);

  if(ok && !res.stress){
    vd.className="ofx-verdict ready"; name="Yes - your plan works.";
    text="Retiring "+when+" on "+fm(inp.spendMo)+" a month, your money lasts all "+inp.years+" years to age "+end+
      " with steady returns. "+(inp.dropPct>0 ? "Your test drop lands after the plan ends, so it wasn't applied - pick an earlier timing to stress-test it."
                                   : "You haven't stress-tested it - set a market drop above to see how much cushion you have.");
  } else if(ok && crashOk){
    vd.className="ofx-verdict ready"; name="Yes - you're ready.";
    text="Retiring "+when+" on "+fm(inp.spendMo)+" a month, your money lasts all "+inp.years+" years to age "+end+
      " - and it still makes it through "+dd+". That second part is what separates ready from lucky.";
  } else if(ok){
    vd.className="ofx-verdict close"; name="Ready on paper. Thin on cushion.";
    text="Your plan works to age "+end+" if markets behave. But "+dd+" would run you dry at age "+c.failAge+". "+
      (res.crashMore ? "Working "+res.crashMore+" more year"+(res.crashMore>1?"s":"")+" or building a cash buffer would make this plan survive it." : "See the moves below to build a real cushion.");
  } else {
    vd.className="ofx-verdict notyet"; name="Not yet - but here's the gap.";
    text="Retiring "+when+" on "+fm(inp.spendMo)+" a month, your money runs out at age "+b.failAge+
      ", "+(end-b.failAge)+" year"+(end-b.failAge===1?"":"s")+" short of your target. Not a verdict on your life - just the size of the gap. The fixes are below.";
  }
  $("rrVName").textContent=name; $("rrVText").textContent=text;

  var last=$("rrSLast");
  last.textContent = ok ? "Age "+end+"+" : "Age "+b.failAge;
  last.className = "v "+(ok ? "green" : "red");
  $("rrSLastS").textContent = ok ? "all "+inp.years+" years covered" : "target was "+end;
  $("rrSSus").textContent = fm(res.sus)+"/mo";
  $("rrSSusS").textContent = "lasts exactly to "+end;
  var cv=$("rrSCov"); cv.textContent=Math.round(cov*100)+"%";
  cv.className="v "+(cov>=1.1?"green":(cov>=1?"amber":"red"));
  $("rrSEnd").textContent = ok ? fk(b.endBal) : "$0";
  if(inp.gen) $("rrSEnd").textContent = ok ? fk(b.endBal) : "0";

  /* benefit check */
  var ben="", fr=b.rows.filter(function(r){ return r.p1>0; })[0], fo=b.rows.filter(function(r){ return r.p2>0 || r.sup>0; })[0];
  if(!inp.gen){
    var cppMo=cppAnnual(inp.cpp65, inp.cppStart)/12;
    ben+=stat("CPP", inp.cpp65>0 ? fm(cppMo)+"/mo" : "None", inp.cpp65>0 ? "from age "+inp.cppStart+(inp.cppStart<65?" (reduced)":inp.cppStart>65?" (enhanced)":"") : "enter your estimate above");
    if(inp.oasYears<10) ben+=stat("OAS","Not eligible","needs 10+ years in Canada after 18","red");
    else {
      var oasMo=oasAnnual(Math.max(65,inp.oasStart), inp.oasStart, inp.oasYears)/12;
      ben+=stat("OAS", fm(oasMo)+"/mo", "from age "+inp.oasStart+(inp.oasYears<40?" · "+Math.floor(inp.oasYears)+"/40 years":"")+" · +10% at 75");
    }
    if(b.supAges.length) ben+=stat("GIS","Triggers", range(b.supAges)+" · "+fk(b.totSup)+" tax-free total","green");
    else ben+=stat("GIS","Doesn't trigger", inp.oasYears<10 ? "requires OAS" : "other taxable income stays above ~"+fm(P.gisCut)+"/yr");
    if(b.clawAges.length) ben+=stat("OAS clawback","Hits", range(b.clawAges)+" · "+fk(b.totClaw)+" lost","amber");
    else ben+=stat("OAS clawback","None","income stays under "+fm(P.clawThreshold),"green");
  } else {
    ben+=stat(L.p1, inp.g1Mo>0 ? fm(inp.g1Mo)+"/mo" : "None", inp.g1Mo>0 ? "from age "+inp.g1Start : "enter an estimate above");
    ben+=stat(L.p2, inp.g2Mo>0 ? fm(inp.g2Mo)+"/mo" : "None", inp.g2Mo>0 ? "from age "+inp.g2Start : "if your country pays one");
    if(inp.supMo>0) ben+= b.supAges.length ? stat(L.sup,"Triggers", range(b.supAges)+" · "+fk(b.totSup)+" total","green")
                                          : stat(L.sup,"Doesn't trigger","other income stays above "+fm(inp.supCut)+"/yr");
    else ben+=stat(L.sup,"Not entered","set a maximum above to test it");
  }
  $("rrBen").innerHTML=ben;

  /* taxes */
  var peak=null, firstBen=null;
  b.rows.forEach(function(r){
    if(r.short<=1 && (!peak || r.tax>peak.tax)) peak=r;
    if(firstBen===null && (r.p1>0 || r.p2>0)) firstBen=r;
  });
  var avgRate = b.totTaxable>0 ? b.totTax/b.totTaxable : 0;
  var taxShare = b.totNeed>0 ? b.totTax/b.totNeed : 0;
  var tx = stat("Lifetime income tax", fk(b.totTax), "over "+b.rows.length+" years");
  tx += stat("Average tax rate", (avgRate*100).toFixed(1)+"%", "on taxable retirement income");
  tx += stat("Highest tax year", peak ? fm(peak.tax) : fm(0), peak ? "age "+peak.age+" · "+fm(peak.tax/12)+"/mo" : "");
  tx += stat("Tax per "+CUR+"1 spent", CUR+taxShare.toFixed(2), "on top of what you spend");
  $("rrTax").innerHTML = tx;
  var note = [];
  if(firstBen) note.push("At "+firstBen.age+", when "+(inp.gen?"public pensions":"CPP/OAS")+" start, you pay about "+fm(firstBen.tax/12)+"/month in tax on "+fm(firstBen.taxable/12)+"/month of taxable income.");
  if(!inp.gen) note.push("Withholding tax taken off RRSP/RRIF withdrawals (10-30% depending on size) is a prepayment, not an extra tax - it's settled when you file.");
  if(!inp.gen && b.totClaw>1) note.push("The OAS clawback adds another "+fk(b.totClaw)+" on top, shown in the benefit check.");
  if(!inp.gen && inp.taxMode==="manual") note.push("You're using your own "+(inp.taxRate*100).toFixed(1)+"% rate; switch to automatic to see how brackets, the age credit and the pension credit change it.");
  $("rrTaxNote").textContent = note.join(" ");

  /* moves */
  var mv=[];
  if(!ok){
    mv.push("<strong>Spend less:</strong> "+fm(res.sus)+"/month lasts to age "+end+" - that's "+fm(inp.spendMo-res.sus)+"/month less than your plan.");
    if(res.moreYears) mv.push("<strong>Work longer:</strong> retiring at "+(inp.retAge+res.moreYears)+" ("+res.moreYears+" more year"+(res.moreYears>1?"s":"")+", keeping up your savings) closes the gap.");
    else mv.push("<strong>Work longer:</strong> even 15 more years doesn't close this gap on its own - pair it with lower spending.");
    if(res.lump!==null) mv.push("<strong>Find a lump sum:</strong> about "+fk(res.lump)+" more invested today would do it - downsizing, an inheritance, or a business sale.");
    if(inp.ptMo===0) mv.push("<strong>Bridge income:</strong> even "+fm(1000)+"/month of part-time work in your early retirement years does more than it looks - try it in the fields above.");
  } else {
    if(crashOk && res.earliest!==undefined && res.earliest<inp.retAge) mv.push("<strong>You could go sooner:</strong> your plan still works retiring at "+res.earliest+" - "+(inp.retAge-res.earliest)+" year"+(inp.retAge-res.earliest>1?"s":"")+" earlier than planned.");
    if(cov>1.02) mv.push("<strong>You have room:</strong> you could spend up to "+fm(res.sus)+"/month - "+fm(res.sus-inp.spendMo)+" more than planned - and still last to "+end+".");
    else mv.push("<strong>It's tight:</strong> safe spending is "+fm(res.sus)+"/month - almost exactly your plan. Small surprises matter here.");
  }
  if(res.stress && !crashOk){
    if(res.crashCash!==null) mv.push("<strong>Crash-proof it:</strong> holding about "+fk(res.crashCash)+" more in "+(inp.gen?"cash or short-term deposits":"cash or GICs")+" (roughly "+(res.crashCash/(inp.spendMo*12)).toFixed(1)+" years of spending) carries you through "+dd+".");
    else mv.push("<strong>Crash-proof it:</strong> "+dd+" hits hard here - a cash buffer alone won't fix it. Lower spending or more working years will.");
  }
  if(res.stress && crashOk && ok) mv.push("<strong>Push the stress test:</strong> try a bigger drop or a different timing above to find where your plan breaks.");
  if(res.deferSus!==undefined && res.deferSus > res.sus*1.02){
    mv.push("<strong>Defer CPP and OAS to 70:</strong> bigger, inflation-protected cheques raise your safe spending to "+fm(res.deferSus)+"/month (vs "+fm(res.sus)+"). Your portfolio bridges the gap, the government covers the long tail.");
  }
  if(!inp.gen && b.clawAges.length) mv.push("<strong>Shrink the clawback:</strong> drawing your RRSP down earlier - in your 60s, before RRIF minimums - lowers income in your 70s. That's exactly what the Drawdown Sequencer tests.");
  if(!inp.gen && !b.supAges.length && inp.oasYears>=10 && (inp.rrsp+inp.nonreg) < 250000 && inp.tfsa>0) mv.push("<strong>Check the GIS play:</strong> TFSA withdrawals don't count as income for GIS. With modest savings, emptying the RRSP before 65 and living off the TFSA after can unlock tax-free GIS.");
  $("rrMoves").innerHTML = mv.map(function(m){ return "<li>"+m+"</li>"; }).join("");
  $("rrMovesH").textContent = ok ? "What this means for you" : "What closes the gap";

  drawChart(b, c, inp.retAge, res.stress);
  $("rrLegCrash").style.display = res.stress ? "" : "none";
  $("rrLegCrashTxt").textContent = cap(dropDesc(inp));

  /* table */
  $("rrTHead").innerHTML="<tr><th>Age</th><th>Need</th><th>"+L.p1+"</th><th>"+L.p2+"</th><th>"+L.sup+"</th><th>Pension/work</th><th>Cash</th><th>"+L.nr+"</th><th>"+L.rr+"</th><th>"+L.tf+"</th><th>Tax</th><th>Left</th></tr>";
  $("rrTBody").innerHTML = b.rows.map(function(r){
    return '<tr'+(r.short>1?' class="short"':'')+'><td>'+r.age+'</td><td>'+fm(r.need)+'</td><td>'+fm(r.p1)+'</td><td>'+fm(r.p2)+'</td><td>'+fm(r.sup)+
      '</td><td>'+fm(r.other)+'</td><td>'+fm(r.wCash)+'</td><td>'+fm(r.wNr)+'</td><td>'+fm(r.wRr)+'</td><td>'+fm(r.wTf)+'</td><td>'+fm(r.tax)+'</td><td>'+(r.short>1?"short "+fk(r.short):fk(r.end))+'</td></tr>';
  }).join("");

  /* assumptions */
  var a=[];
  a.push("Everything is in today's dollars. Your "+inp.ret+"% return and "+inp.inf+"% inflation combine into a real return of "+(((1+inp.ret/100)/(1+inp.inf/100)-1)*100).toFixed(2)+"%. Your expenses rise with inflation; fixed debt payments and non-indexed pensions don't.");
  a.push("Withdrawal order: cash first, then "+(inp.gen?"taxable":"non-registered")+", then "+(inp.gen?"tax-deferred":"RRSP/RRIF")+", then "+(inp.gen?"tax-free":"TFSA")+" last. Withdrawals are grossed up so tax is paid and you still net your spending."+(inp.gen?"":" RRIF minimums apply from 72; any excess is re-sheltered in your TFSA."));
  a.push("Savings before retirement are spread across your investment accounts in proportion to their balances. "+(res.stress ? "The stress test cuts all invested balances (not cash) by "+Math.round(inp.dropPct*100)+"% "+whenDesc(inp)+", then resumes your expected return - no rebound is assumed." : "No market drop was tested."));
  if(!inp.gen){
    a.push("2026 figures: CPP max at 65 of $1,507.65/mo (-0.6%/mo before 65, +0.7%/mo after). OAS of about $762/mo (65-74) and $839/mo (75+) for Oct-Dec 2026, prorated by years in Canada, +0.6%/mo deferred. OAS recovery tax of 15% above $95,323. Benefits are indexed, so they're held flat in today's dollars.");
    a.push("GIS is modelled for a single person: up to about $1,139/mo, shrinking to zero at roughly $23,000 of non-OAS income (first $5,000 of work income exempt). The real formula has a top-up that phases out faster - treat GIS as an estimate and confirm with Service Canada.");
    if(inp.taxMode==="manual") a.push("Income tax uses your "+(inp.taxRate*100).toFixed(1)+"% average rate on taxable income: RRSP/RRIF withdrawals, CPP, OAS (after any clawback), workplace pension, part-time work and half of realized capital gains. TFSA withdrawals, GIS and cash are tax-free. The OAS clawback is calculated separately.");
    else a.push("Income tax is calculated every year on RRSP/RRIF withdrawals, CPP, OAS (after any clawback), workplace pension, part-time work and half of realized capital gains, using 2026 federal brackets, the basic, age and pension credits, and your province's brackets and personal amount. TFSA withdrawals, GIS and cash are tax-free. Surtaxes, health premiums, the dividend tax credit and pension income splitting aren't modelled.");
    a.push("This models one person. Couples can split pension income and face different GIS rules - run each spouse separately or add your household numbers as a rough check.");
  } else {
    a.push("Taxable income (tax-deferred withdrawals, pensions, work income and half of realized gains) is taxed at your average rate. Public pensions are held flat in today's dollars. The supplement shrinks in a straight line to zero at the income you entered. No required minimum withdrawals are modelled.");
  }
  a.push("This is a planning model, not advice. It uses one steady return - real markets don't. Treat the result as a starting point and revisit it every year.");
  $("rrAssume").innerHTML = a.map(function(x){ return "<li>"+x+"</li>"; }).join("");
}

$("rrRun").addEventListener("click", function(){
  var err=$("rrErr"); err.style.display="none";
  var inp=readInputs(), msg=validate(inp);
  if(msg){ err.textContent=msg; err.style.display="block"; $("rrResults").style.display="none"; return; }
  render(inp, analyze(inp));
  $("rrResults").style.display="block";
  $("rrResults").scrollIntoView({behavior:"smooth", block:"start"});
});

/* expose engine for testing; harmless in production */
root.__rrEngine = { simulate:simulate, analyze:analyze, taxCA:taxCA, cppAnnual:cppAnnual, oasAnnual:oasAnnual, readInputs:readInputs };
})();
</script>
</div>
<!--kg-card-end: html-->

<!--kg-card-begin: html-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "mainEntityOfPage": { "@type": "WebPage", "@id": "[POST-URL]" },
  "headline": "Am I Ready to Retire? (Run the Numbers, Not the Vibes)",
  "description": "A free retirement readiness calculator for Canadians that runs your RRSP, TFSA, non-registered savings, CPP, OAS, GIS, taxes and inflation year by year, stress-tests your plan against a market drop, and tells you whether you're ready, almost ready, or not yet.",
  "author": { "@type": "Person", "name": "Opti", "url": "https://optimizedforfreedom.com/am-i-ready-to-retire-the-calculator/" },
  "publisher": {
    "@type": "Organization",
    "name": "Optimized For Freedom",
    "url": "https://optimizedforfreedom.com/am-i-ready-to-retire-the-calculator/"
  },
  "datePublished": "2026-10-14",
  "dateModified": "2026-10-14",
  "keywords": "am I ready to retire, retirement calculator Canada, retirement readiness, RRSP withdrawal tax, CPP, OAS, GIS, safe withdrawal, sequence of returns risk"
}
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How do I know if I'm ready to retire?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "You're ready when three things are true at once: your savings and income last as long as you need them to, your plan still holds up if markets drop sharply soon after you retire, and you know how much you can safely spend each month. A portfolio size or a target age alone doesn't answer the question - your spending, taxes, government benefits and timeline all change the result."
      }
    },
    {
      "@type": "Question",
      "name": "How much money do I need to retire in Canada?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "There is no single number. It depends mostly on what you spend, how long your money has to last, and how much CPP, OAS and pension income you'll receive. Someone spending $3,500 a month with full CPP and OAS needs far less than someone spending $9,000 a month who retires at 55. Running your own numbers year by year, including taxes and inflation, is the only reliable way to find your figure."
      }
    },
    {
      "@type": "Question",
      "name": "How does a market crash affect my retirement?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Timing matters more than size. A big drop in the first few years of retirement does far more damage than the same drop later, because you're selling investments at low prices to cover living costs and those dollars never recover. This is called sequence-of-returns risk. Holding a cash or GIC buffer of one to a few years of spending, or working slightly longer, are the most common ways to reduce it."
      }
    },
    {
      "@type": "Question",
      "name": "Can I use this retirement calculator if I don't live in Canada?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. A checkbox switches the RRSP, TFSA, CPP, OAS and GIS fields to generic tax-deferred and tax-free accounts, an earnings-based public pension, a universal pension and a means-tested supplement that you fill in for your own country, with taxes applied at an average rate you choose."
      }
    }
  ]
}
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Am I Ready to Retire? The Canadian Edition]]></title><description><![CDATA[Am I ready to retire? I made a free Canadian calculator that tests your RRSP, TFSA, CPP, OAS and GIS against taxes, inflation and a market drop to find your safe spending. And there is a detailed blog post explaining the math that goes into it.]]></description><link>https://optimizedforfreedom.com/am-i-ready-to-retire-the-canadian-edition/</link><guid isPermaLink="false">6ace130dbf4e3404a575fd0f</guid><category><![CDATA[Calculators]]></category><category><![CDATA[Advice]]></category><category><![CDATA[Early Retirement]]></category><category><![CDATA[Personal Finance Basics]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Tue, 13 Oct 2026 11:24:24 GMT</pubDate><content:encoded><![CDATA[<p>&quot;Am I ready to retire?&quot; is the question everyone asks and almost nobody answers properly. Most people answer it with a feeling. A coworker retired at 60, so maybe you can too. Your advisor said you&apos;re &quot;on track.&quot; Your portfolio hit a round number.</p><p>None of that is an answer. An answer comes from running your actual numbers - what you have, what you spend, how long it has to last, and what happens when the market doesn&apos;t cooperate.</p><p>So I built a calculator that does exactly that because on paper, I thought I was getting close but the reality surprised me a bit.</p><h2 id="ready-isnt-a-number-its-a-plan-that-survives-a-bad-year"><strong>Ready isn&apos;t a number. It&apos;s a plan that survives a bad year.</strong></h2><p>There is no magic portfolio size. $1 million is plenty for someone spending $3,500 a month with a full CPP and OAS. It&apos;s not enough for someone spending $9,000 a month at 55 with 40 years to fund.</p><p>Ready means three things are true at once:</p><ul><li>Your money lasts as long as you need it to.</li><li>It still lasts if markets drop hard right after you retire.</li><li>You know how much you can actually spend - not just whether you&apos;ll scrape by.</li></ul><p>The second point is the one most calculators skip. A 25% drop in your first year of retirement does far more damage than the same drop at 80, because you&apos;re selling investments at the bottom to pay the bills. Same average return, very different outcome.</p><h2 id="the-inputs-that-actually-matter"><strong>The inputs that actually matter</strong></h2><p>The calculator below asks for more than a balance and an age, because retirement is more than a balance and an age:</p><ul><li><strong>Your timeline:</strong> current age, when you want to stop, and how many years the money has to last.</li><li><strong>Where your money lives:</strong> RRSP, TFSA, non-registered and cash. A dollar in each is taxed differently on the way out, so they aren&apos;t worth the same.</li><li><strong>What you spend:</strong> monthly expenses, plus any mortgage or debt payments that end at a certain age.</li><li><strong>Other income:</strong> a workplace pension (indexed or not) and any part-time work.</li><li><strong>Government benefits:</strong> your CPP estimate and start age, years lived in Canada for OAS, and an automatic check on whether GIS kicks in or the OAS clawback bites. (New to these? Start with my <a href="https://optimizedforfreedom.com/what-is-cpp-and-what-is-cpp2/" rel="noreferrer">CPP</a>, <a href="https://optimizedforfreedom.com/what-is-oas-old-age-security/" rel="noreferrer"><u>OAS</u></a> and <a href="https://optimizedforfreedom.com/what-is-gis-guaranteed-income-supplement/" rel="noreferrer"><u>GIS</u></a> explainers.)</li><li><strong>Taxes:</strong> every RRSP withdrawal, CPP and OAS cheque is taxable income. The calculator works out your federal and provincial tax every year, or you can plug in your own average rate. Either way it shows your lifetime tax bill and your worst tax year.</li><li><strong>The market:</strong> your expected return, target inflation, and what your cash earns.</li></ul><p>Not in Canada? Tick the box at the top of the calculator and the RRSP, TFSA, CPP, OAS and GIS fields switch to generic tax-deferred and tax-free accounts and public pensions you fill in yourself.</p><h2 id="two-things-to-do-before-you-run-it-for-canadians"><strong>Two things to do before you run it (for Canadians)</strong></h2><p>First, log into My Service Canada Account and get your real CPP estimate. The maximum at 65 is $1,507.65 a month in 2026, but the average new pension is well under that, and guessing high here flatters every result.</p><p>Second, use your actual spending, not your hoped-for spending. Pull the last 12 months from your bank and credit card statements. I track ours every month <a href="https://optimizedforfreedom.com/tag/expenses/" rel="noreferrer"><u>right here on the blog</u></a> - and the real number always surprises me a little.</p><h2 id="the-retirement-readiness-check"><strong>The Retirement Readiness Check</strong></h2>
<!--kg-card-begin: html-->
<div class="ofx-calc" id="rrCalc">
<style>
  #rrCalc.ofx-calc { --green:#2e7d32; --green-deep:#1b5e20; --ink:#21281f; --muted:#66705f;
    --paper:#fbfbf8; --panel:#f1f4ec; --line:#d9e0d0; --amber:#a05e03; --red:#b3372b;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:10px;
    padding:28px 26px 22px; max-width:860px; margin:0 auto; line-height:1.45; }
  #rrCalc * { box-sizing:border-box; }
  #rrCalc .eyebrow { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--green); font-weight:700; margin:0 0 6px; }
  #rrCalc h2.title { font-family:Georgia,"Times New Roman",serif; font-size:27px; margin:0 0 4px; font-weight:700; line-height:1.2; color:var(--ink); }
  #rrCalc p.sub { color:var(--muted); margin:0 0 18px; font-size:14.5px; max-width:62ch; }
  #rrCalc .rr-toggle { display:flex; gap:10px; align-items:flex-start; background:var(--panel); border:1px solid var(--line);
    border-radius:8px; padding:11px 14px; margin:0 0 22px; font-size:14px; cursor:pointer; }
  #rrCalc .rr-toggle input { width:18px; height:18px; margin:1px 0 0; accent-color:var(--green); flex:0 0 auto; cursor:pointer; }
  #rrCalc fieldset { border:none; margin:0 0 8px; padding:0; min-width:0; }
  #rrCalc legend { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:700; padding:0; margin:0 0 10px; }
  #rrCalc .ofx-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px 16px; margin-bottom:18px; }
  @media (max-width:640px){ #rrCalc .ofx-grid { grid-template-columns:1fr 1fr; } }
  @media (max-width:430px){ #rrCalc .ofx-grid { grid-template-columns:1fr; } #rrCalc.ofx-calc { padding:22px 16px 18px; } }
  #rrCalc .ofx-field label { display:block; font-size:13px; font-weight:600; margin-bottom:4px; }
  #rrCalc .ofx-field .hint { display:block; font-size:11.5px; color:var(--muted); font-weight:400; margin-top:3px; }
  #rrCalc .ofx-field input, #rrCalc .ofx-field select { width:100%; padding:8px 10px; font-size:15px; border:1px solid var(--line);
    border-radius:6px; background:#fff; color:var(--ink); font-variant-numeric:tabular-nums; font-family:inherit; }
  #rrCalc .ofx-field input:focus, #rrCalc .ofx-field select:focus { outline:2px solid var(--green); outline-offset:1px; border-color:var(--green); }
  #rrCalc .gen-only { display:none; }
  #rrCalc.is-gen .gen-only { display:block; }
  #rrCalc.is-gen .ca-only { display:none; }
  #rrCalc .rr-taxrate { display:none; }
  #rrCalc.is-gen .rr-taxrate, #rrCalc.tax-manual .rr-taxrate { display:block; }
  #rrCalc .ofx-run { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:6px 0 4px; }
  #rrCalc .ofx-run button { background:var(--green); color:#fff; border:none; border-radius:7px; padding:12px 26px;
    font-size:15.5px; font-weight:700; cursor:pointer; font-family:inherit; }
  #rrCalc .ofx-run button:hover { background:var(--green-deep); }
  #rrCalc .ofx-run button:focus-visible { outline:3px solid var(--green-deep); outline-offset:2px; }
  #rrCalc .ofx-run .note { font-size:12.5px; color:var(--muted); }
  #rrCalc .ofx-error { color:var(--red); font-size:14px; font-weight:600; margin-top:10px; display:none; }

  #rrResults { display:none; margin-top:26px; border-top:2px solid var(--green); padding-top:22px; }
  #rrCalc .ofx-verdict { background:var(--panel); border-radius:10px; padding:20px 22px 18px; margin-bottom:20px; border-left:6px solid var(--green); }
  #rrCalc .ofx-verdict.close { border-left-color:var(--amber); }
  #rrCalc .ofx-verdict.notyet { border-left-color:var(--red); }
  #rrCalc .ofx-verdict .v-name { font-family:Georgia,serif; font-size:24px; font-weight:700; color:var(--green-deep); margin:0 0 6px; }
  #rrCalc .ofx-verdict.close .v-name { color:var(--amber); }
  #rrCalc .ofx-verdict.notyet .v-name { color:var(--red); }
  #rrCalc .ofx-verdict p { margin:0 0 10px; font-size:15px; }
  #rrCalc .ofx-statrow { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:14px; }
  @media (max-width:640px){ #rrCalc .ofx-statrow { grid-template-columns:1fr 1fr; } }
  #rrCalc .ofx-stat { background:#fff; border:1px solid var(--line); border-radius:8px; padding:10px 12px; min-width:0; }
  #rrCalc .ofx-stat .k { display:block; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:700; }
  #rrCalc .ofx-stat .v { display:block; font-size:19px; font-weight:700; font-variant-numeric:tabular-nums; margin-top:2px; }
  #rrCalc .ofx-stat .s { display:block; font-size:11.5px; color:var(--muted); margin-top:2px; }
  #rrCalc .v.green { color:var(--green-deep); } #rrCalc .v.amber { color:var(--amber); } #rrCalc .v.red { color:var(--red); }
  #rrCalc h3.sec { font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:700; margin:24px 0 10px; }
  #rrCalc .rr-taxnote { font-size:13px; color:var(--muted); margin:10px 0 0; }
  #rrCalc ul.rr-moves { margin:0; padding:0; list-style:none; }
  #rrCalc ul.rr-moves li { background:#fff; border:1px solid var(--line); border-left:4px solid var(--green); border-radius:6px;
    padding:10px 14px; margin-bottom:8px; font-size:14.5px; }
  #rrCalc ul.rr-moves li strong { color:var(--green-deep); }
  #rrCalc .rr-chart svg { width:100%; height:auto; display:block; }
  #rrCalc .rr-legend { font-size:12.5px; color:var(--muted); margin-top:6px; display:flex; gap:18px; flex-wrap:wrap; }
  #rrCalc .rr-legend i { display:inline-block; width:18px; height:3px; vertical-align:middle; margin-right:6px; border-radius:2px; }
  #rrCalc .ofx-tbl table { width:100%; border-collapse:collapse; font-size:12.5px; font-variant-numeric:tabular-nums; }
  #rrCalc .ofx-tbl th, #rrCalc .ofx-tbl td { padding:6px 7px; text-align:right; border-bottom:1px solid var(--line); white-space:nowrap; }
  #rrCalc .ofx-tbl th:first-child, #rrCalc .ofx-tbl td:first-child { text-align:left; }
  #rrCalc .ofx-tbl th { font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
  #rrCalc .ofx-tbl tr.short td { color:var(--red); }
  #rrCalc .ofx-tblwrap { overflow-x:auto; }
  #rrCalc .ofx-tbl details summary { cursor:pointer; font-weight:700; color:var(--green-deep); font-size:14px; margin:20px 0 8px; }
  #rrCalc .ofx-assume { margin-top:22px; font-size:12.5px; color:var(--muted); border-top:1px solid var(--line); padding-top:14px; }
  #rrCalc .ofx-assume ul { margin:6px 0 0; padding-left:18px; }
  #rrCalc .ofx-assume li { margin-bottom:3px; }
  #rrCalc .ofx-close { font-family:Georgia,serif; font-style:italic; text-align:center; color:var(--green-deep); font-size:15px; margin-top:20px; }
  @media (prefers-reduced-motion:no-preference){ #rrResults { animation:rrIn .35s ease; } @keyframes rrIn { from{opacity:0; transform:translateY(6px);} to{opacity:1;} } }
</style>

  <p class="eyebrow">Optimized For Freedom &#xB7; Tools</p>
  <h2 class="title">The Retirement Readiness Check</h2>
  <p class="sub">Put in what you have, what you spend, and how long it needs to last. This tool runs your plan year by year - taxes, inflation, government benefits and a bad-market stress test included - and tells you straight: ready, almost, or not yet. Everything is shown in today&apos;s dollars.</p>

  <label class="rr-toggle" for="rrGeneric">
    <input type="checkbox" id="rrGeneric">
    <span>I don&apos;t live in Canada - swap RRSP, TFSA, CPP, OAS and GIS for generic accounts and public pensions.</span>
  </label>

  <fieldset>
    <legend>Your timeline</legend>
    <div class="ofx-grid">
      <div class="ofx-field"><label for="rrAge">Current age</label><input id="rrAge" type="number" min="18" max="90" value="55"></div>
      <div class="ofx-field"><label for="rrRetAge">Age you want to retire</label><input id="rrRetAge" type="number" min="18" max="80" value="60"><span class="hint">Same as current age = retire now</span></div>
      <div class="ofx-field"><label for="rrYears">Years your money must last</label><input id="rrYears" type="number" min="1" max="60" value="35"><span class="hint" id="rrYearsHint">From retirement - to age 95</span></div>
    </div>
  </fieldset>

  <fieldset>
    <legend>What you&apos;ve saved</legend>
    <div class="ofx-grid">
      <div class="ofx-field"><label for="rrRrsp" data-ca="RRSP / RRIF / LIRA balance" data-gen="Tax-deferred balance">RRSP / RRIF / LIRA balance</label><input id="rrRrsp" type="number" min="0" step="1000" value="450000"><span class="hint" data-ca="Fully taxable when withdrawn - see taxes below" data-gen="e.g. 401(k), IRA, workplace pension pot">Fully taxable when withdrawn - see taxes below</span></div>
      <div class="ofx-field"><label for="rrTfsa" data-ca="TFSA balance" data-gen="Tax-free balance">TFSA balance</label><input id="rrTfsa" type="number" min="0" step="1000" value="150000"><span class="hint" data-ca="Withdrawals are tax-free" data-gen="e.g. Roth IRA, ISA - tax-free withdrawals">Withdrawals are tax-free</span></div>
      <div class="ofx-field"><label for="rrNonreg" data-ca="Non-registered balance" data-gen="Taxable investment balance">Non-registered balance</label><input id="rrNonreg" type="number" min="0" step="1000" value="75000"><span class="hint">Regular brokerage account</span></div>
      <div class="ofx-field"><label for="rrGain">Unrealized gain in that account (%)</label><input id="rrGain" type="number" min="0" max="100" value="40"><span class="hint">Share of the balance that is profit</span></div>
      <div class="ofx-field"><label for="rrCash">Cash savings</label><input id="rrCash" type="number" min="0" step="1000" value="25000"><span class="hint">Savings account, GICs, emergency fund</span></div>
      <div class="ofx-field"><label for="rrSave">Yearly savings until you retire</label><input id="rrSave" type="number" min="0" step="1000" value="30000"><span class="hint">Spread across your investment accounts</span></div>
    </div>
  </fieldset>

  <fieldset>
    <legend>What you&apos;ll spend</legend>
    <div class="ofx-grid">
      <div class="ofx-field"><label for="rrSpend">Monthly expenses in retirement</label><input id="rrSpend" type="number" min="0" step="100" value="4500"><span class="hint">After tax, today&apos;s dollars, excluding the debt below</span></div>
      <div class="ofx-field"><label for="rrDebt">Mortgage / debt payments (monthly)</label><input id="rrDebt" type="number" min="0" step="100" value="0"><span class="hint">Fixed payments - inflation shrinks them</span></div>
      <div class="ofx-field"><label for="rrDebtEnd">Debt paid off at age</label><input id="rrDebtEnd" type="number" min="18" max="100" value="65"></div>
      <div class="ofx-field"><label for="rrDrop">Spending drop after 75 (%)</label><input id="rrDrop" type="number" min="0" max="60" value="0"><span class="hint">Many retirees spend less later. 0 = conservative</span></div>
    </div>
  </fieldset>

  <fieldset>
    <legend>Other retirement income</legend>
    <div class="ofx-grid">
      <div class="ofx-field"><label for="rrPen">Workplace pension (monthly)</label><input id="rrPen" type="number" min="0" step="50" value="0"><span class="hint">Defined benefit, today&apos;s dollars</span></div>
      <div class="ofx-field"><label for="rrPenStart">Pension starts at age</label><input id="rrPenStart" type="number" min="40" max="75" value="65"></div>
      <div class="ofx-field"><label for="rrPenIdx">Pension indexed to inflation?</label><select id="rrPenIdx"><option value="yes">Yes, fully</option><option value="no">No - fixed amount</option></select></div>
      <div class="ofx-field"><label for="rrPt">Part-time income (monthly)</label><input id="rrPt" type="number" min="0" step="100" value="0"><span class="hint">Consulting, side business, bridge job</span></div>
      <div class="ofx-field"><label for="rrPtEnd">Part-time work ends at age</label><input id="rrPtEnd" type="number" min="18" max="90" value="65"></div>
    </div>
  </fieldset>

  <fieldset>
    <legend data-ca="Government benefits" data-gen="Public pensions">Government benefits</legend>
    <div class="ofx-grid">
      <div class="ofx-field ca-only"><label for="rrCpp">Your CPP at 65 (monthly)</label><input id="rrCpp" type="number" min="0" max="1507.65" step="10" value="1000"><span class="hint">Check My Service Canada Account. 2026 max: $1,507.65</span></div>
      <div class="ofx-field ca-only"><label for="rrCppStart">Start CPP at age</label><input id="rrCppStart" type="number" min="60" max="70" value="65"><span class="hint">60-70. -7.2%/yr early, +8.4%/yr late</span></div>
      <div class="ofx-field ca-only"><label for="rrOasYrs">Years in Canada after 18 (by 65)</label><input id="rrOasYrs" type="number" min="0" max="40" value="40"><span class="hint">40 = full OAS. Under 10 = none</span></div>
      <div class="ofx-field ca-only"><label for="rrOasStart">Start OAS at age</label><input id="rrOasStart" type="number" min="65" max="70" value="65"><span class="hint">65-70. +7.2% per year you wait</span></div>

      <div class="ofx-field gen-only"><label for="rrG1">Earnings-based public pension (monthly)</label><input id="rrG1" type="number" min="0" step="50" value="1500"><span class="hint">e.g. Social Security - your estimate at the start age</span></div>
      <div class="ofx-field gen-only"><label for="rrG1Start">Starts at age</label><input id="rrG1Start" type="number" min="50" max="75" value="67"></div>
      <div class="ofx-field gen-only"><label for="rrG2">Universal / residency pension (monthly)</label><input id="rrG2" type="number" min="0" step="50" value="0"><span class="hint">Flat pension paid to residents, if your country has one</span></div>
      <div class="ofx-field gen-only"><label for="rrG2Start">Starts at age</label><input id="rrG2Start" type="number" min="50" max="75" value="67"></div>
      <div class="ofx-field gen-only"><label for="rrSup">Low-income supplement, max (monthly)</label><input id="rrSup" type="number" min="0" step="50" value="0"><span class="hint">Means-tested top-up. 0 if none</span></div>
      <div class="ofx-field gen-only"><label for="rrSupCut">Yearly income where it stops</label><input id="rrSupCut" type="number" min="0" step="500" value="20000"><span class="hint">Shrinks gradually to zero at this income</span></div>
    </div>
  </fieldset>

  <fieldset>
    <legend>Taxes in retirement</legend>
    <div class="ofx-grid">
      <div class="ofx-field ca-only"><label for="rrProv">Province / territory</label><select id="rrProv"></select><span class="hint">Sets your provincial brackets</span></div>
      <div class="ofx-field ca-only"><label for="rrTaxMode">How to estimate income tax</label>
        <select id="rrTaxMode"><option value="auto">Calculate it for me (2026 brackets)</option><option value="manual">Use my own average rate</option></select>
        <span class="hint">Auto taxes RRSP/RRIF, CPP, OAS, pension and gains year by year</span></div>
      <div class="ofx-field rr-taxrate"><label for="rrTaxRate">Average tax rate in retirement (%)</label><input id="rrTaxRate" type="number" min="0" max="60" step="0.5" value="15">
        <span class="hint" data-ca="Blended rate on RRSP/RRIF withdrawals, CPP, OAS, pension and gains" data-gen="Applied to tax-deferred withdrawals, pensions, work income and gains">Blended rate on RRSP/RRIF withdrawals, CPP, OAS, pension and gains</span></div>
    </div>
  </fieldset>

  <fieldset>
    <legend>Market assumptions</legend>
    <div class="ofx-grid">
      <div class="ofx-field"><label for="rrRet">Expected investment return (%)</label><input id="rrRet" type="number" min="-5" max="20" step="0.25" value="6"><span class="hint">Before inflation, after fees</span></div>
      <div class="ofx-field"><label for="rrInf">Target inflation (%)</label><input id="rrInf" type="number" min="0" max="15" step="0.25" value="2"><span class="hint" data-ca="Bank of Canada target is 2%" data-gen="Most central banks target 2%">Bank of Canada target is 2%</span></div>
      <div class="ofx-field"><label for="rrCashRet">Return on cash savings (%)</label><input id="rrCashRet" type="number" min="0" max="15" step="0.25" value="2.5"></div>
      <div class="ofx-field"><label for="rrDropPct">Market drop to test (%)</label><input id="rrDropPct" type="number" min="0" max="90" step="5" value="25"><span class="hint">Hits all invested balances. Stocks fell 30-40% in 2008. 0 = skip</span></div>
      <div class="ofx-field"><label for="rrDropWhen">When the drop hits</label>
        <select id="rrDropWhen"><option value="0">The year you retire</option><option value="4">5 years into retirement</option><option value="9">10 years into retirement</option><option value="19">20 years into retirement</option></select>
        <span class="hint">Early drops do the most damage</span></div>
    </div>
  </fieldset>

  <div class="ofx-run">
    <button id="rrRun" type="button">Am I ready?</button>
    <span class="note">Runs your plan, a market-drop version, and the fixes if there&apos;s a gap.</span>
  </div>
  <p class="ofx-error" id="rrErr" role="alert"></p>

  <div id="rrResults" aria-live="polite">
    <div class="ofx-verdict" id="rrVerdict">
      <p class="v-name" id="rrVName"></p>
      <p id="rrVText"></p>
      <div class="ofx-statrow">
        <div class="ofx-stat"><span class="k">Money lasts</span><span class="v" id="rrSLast"></span><span class="s" id="rrSLastS"></span></div>
        <div class="ofx-stat"><span class="k">Safe monthly spending</span><span class="v green" id="rrSSus"></span><span class="s" id="rrSSusS"></span></div>
        <div class="ofx-stat"><span class="k">Spending covered</span><span class="v" id="rrSCov"></span><span class="s">safe spending &#xF7; your plan</span></div>
        <div class="ofx-stat"><span class="k">Left at the end</span><span class="v" id="rrSEnd"></span><span class="s">today&apos;s dollars</span></div>
      </div>
    </div>

    <h3 class="sec" data-ca="Government benefit check" data-gen="Public pension check">Government benefit check</h3>
    <div class="ofx-statrow" id="rrBen"></div>

    <h3 class="sec">Your taxes in retirement</h3>
    <div class="ofx-statrow" id="rrTax"></div>
    <p class="rr-taxnote" id="rrTaxNote"></p>

    <h3 class="sec" id="rrMovesH">Your moves</h3>
    <ul class="rr-moves" id="rrMoves"></ul>

    <h3 class="sec">Your money over time (today&apos;s dollars)</h3>
    <div class="rr-chart" id="rrChart"></div>
    <div class="rr-legend"><span><i style="background:#2e7d32"></i>Your plan</span><span id="rrLegCrash"><i style="background:#a05e03"></i><span id="rrLegCrashTxt">Market drop</span></span></div>

    <div class="ofx-tbl">
      <details>
        <summary>Year-by-year breakdown</summary>
        <div class="ofx-tblwrap"><table><thead id="rrTHead"></thead><tbody id="rrTBody"></tbody></table></div>
      </details>
    </div>

    <div class="ofx-assume">
      <strong>What this tool assumes (read this part - it matters):</strong>
      <ul id="rrAssume"></ul>
    </div>

    <p class="ofx-close">Build the freedom before you need it.</p>
  </div>

<script>
(function(){
"use strict";
var root = document.getElementById("rrCalc");
function $(id){ return document.getElementById(id); }

/* ---------- Canadian program figures (2026, today's dollars) ---------- */
var P = {
  cppMax65: 1507.65,          // monthly, starting 2026
  oas6574: 762.49,            // monthly, Oct-Dec 2026 (estimate: Apr-Jun rate + 1.2% Jul + 1.4% Oct)
  oas75: 838.75,
  gisMax: 1138.89,            // single, monthly, Oct-Dec 2026 (estimate)
  gisCut: 23000,              // approx. non-OAS income where single GIS reaches zero
  gisEarnExempt: 5000,        // first $5,000 of employment income ignored for GIS
  clawThreshold: 95323,       // OAS recovery tax threshold, 2026 income
  clawRate: 0.15,
  tfsaLimit: 7000,
  fed: { br:[[58523,.14],[117045,.205],[181440,.26],[258482,.29],[Infinity,.33]],
         bpa:16452, rate:.14, ageAmt:9209, ageStart:45522, ageRate:.15, pension:2000 },
  rrif: {72:.0540,73:.0553,74:.0567,75:.0582,76:.0598,77:.0617,78:.0636,79:.0658,80:.0682,81:.0708,
         82:.0738,83:.0771,84:.0808,85:.0851,86:.0899,87:.0955,88:.1021,89:.1099,90:.1192,91:.1306,
         92:.1449,93:.1634,94:.1879}
};
function rrifMin(age){ if(age>=95) return 0.20; return P.rrif[age] || 0; }

var PROV = {
  ON:{name:"Ontario", bpa:12747, br:[[52886,.0505],[105775,.0915],[150000,.1116],[220000,.1216],[Infinity,.1316]]},
  BC:{name:"British Columbia", bpa:12932, br:[[49279,.0506],[98560,.077],[113158,.105],[137407,.1229],[186306,.147],[259829,.168],[Infinity,.205]]},
  AB:{name:"Alberta", bpa:22323, br:[[60000,.08],[151234,.10],[181481,.12],[241974,.13],[302469,.14],[Infinity,.15]]},
  SK:{name:"Saskatchewan", bpa:18991, br:[[53463,.105],[152750,.125],[Infinity,.145]]},
  MB:{name:"Manitoba", bpa:15780, br:[[47564,.108],[101200,.1275],[Infinity,.174]]},
  QC:{name:"Quebec", bpa:18571, abate:0.165, br:[[53255,.14],[106495,.19],[129590,.24],[Infinity,.2575]]},
  NB:{name:"New Brunswick", bpa:13396, br:[[51306,.094],[102614,.14],[190060,.16],[Infinity,.195]]},
  NS:{name:"Nova Scotia", bpa:11744, br:[[30507,.0879],[61015,.1495],[95883,.1667],[154650,.175],[Infinity,.21]]},
  PE:{name:"Prince Edward Island", bpa:14250, br:[[33328,.095],[64656,.1347],[105000,.166],[140000,.1762],[Infinity,.19]]},
  NL:{name:"Newfoundland and Labrador", bpa:10818, br:[[44192,.087],[88382,.145],[157792,.158],[220910,.178],[Infinity,.198]]},
  YT:{name:"Yukon", bpa:16129, br:[[57375,.064],[114750,.09],[177882,.109],[500000,.128],[Infinity,.15]]},
  NT:{name:"Northwest Territories", bpa:17842, br:[[51964,.059],[103930,.086],[168967,.122],[Infinity,.1405]]},
  NU:{name:"Nunavut", bpa:19274, br:[[54707,.04],[109413,.07],[177881,.09],[Infinity,.115]]}
};

var LBL = {
  ca:  { rr:"RRSP/RRIF", tf:"TFSA", nr:"Non-reg", p1:"CPP", p2:"OAS", sup:"GIS" },
  gen: { rr:"Tax-deferred", tf:"Tax-free", nr:"Taxable", p1:"Earnings pension", p2:"Universal pension", sup:"Supplement" }
};

/* ---------- tax ---------- */
function bracketTax(income, br){
  var t=0, prev=0;
  for(var i=0;i<br.length;i++){
    if(income<=prev) break;
    t += (Math.min(income, br[i][0]) - prev) * br[i][1];
    prev = br[i][0];
  }
  return t;
}
function taxCA(taxable, prov, age, pensionInc){
  if(taxable<=0) return 0;
  var pv = PROV[prov] || PROV.ON;
  var credits = P.fed.bpa + Math.min(P.fed.pension, pensionInc||0);
  if(age>=65) credits += Math.max(0, P.fed.ageAmt - Math.max(0, taxable-P.fed.ageStart)*P.fed.ageRate);
  var fed = Math.max(0, bracketTax(taxable, P.fed.br) - credits*P.fed.rate);
  if(pv.abate) fed *= (1-pv.abate);
  var prv = Math.max(0, bracketTax(taxable, pv.br) - pv.bpa*pv.br[0][1]);
  return fed + prv;
}

/* ---------- benefits ---------- */
function cppAnnual(base65Mo, start){
  var m = (start-65)*12;
  return base65Mo*12*(1 + (m<0 ? m*0.006 : Math.min(m,60)*0.007));
}
function oasAnnual(age, start, yrs){
  if(age<start || yrs<10) return 0;
  var defer = 1 + Math.min(Math.max(0,(start-65)*12), 60)*0.006;
  return (age>=75 ? P.oas75 : P.oas6574)*12*defer*Math.min(yrs,40)/40;
}
function pubIncome(inp, age){
  if(!inp.gen){
    return { p1: age>=inp.cppStart ? cppAnnual(inp.cpp65, inp.cppStart) : 0,
             p2: oasAnnual(age, inp.oasStart, inp.oasYears),
             supOn: age>=inp.oasStart && inp.oasYears>=10 };
  }
  return { p1: age>=inp.g1Start ? inp.g1Mo*12 : 0,
           p2: age>=inp.g2Start ? inp.g2Mo*12 : 0,
           supOn: age>=inp.g2Start };
}

/* One year's after-tax cash, given withdrawals w */
function yearFin(inp, age, b, w, gf){
  var nrTaxable = w.nr*gf*0.5;
  var other = b.p1 + b.pen + b.pt + w.rr + nrTaxable;   // taxable income other than OAS
  var net = other + b.p2;
  var claw=0, sup=0, tax;
  if(!inp.gen){
    claw = b.p2>0 ? Math.min(b.p2, Math.max(0, net-P.clawThreshold)*P.clawRate) : 0;
    tax = inp.taxMode==="manual" ? Math.max(0, net-claw)*inp.taxRate
                                 : taxCA(net-claw, inp.prov, age, b.pen + (age>=65 ? w.rr : 0));
    if(b.supOn){
      var gisInc = Math.max(0, other - Math.min(b.pt, P.gisEarnExempt));
      sup = Math.max(0, P.gisMax*12 - gisInc*(P.gisMax*12/P.gisCut));
    }
  } else {
    tax = Math.max(0, net)*inp.taxRate;
    if(b.supOn && inp.supMo>0 && inp.supCut>0) sup = Math.max(0, inp.supMo*12 - other*(inp.supMo*12/inp.supCut));
  }
  var cashIn = b.p1 + b.p2 - claw + sup + b.pen + b.pt + w.cash + w.nr + w.rr + w.tf - tax;
  return { cashIn:cashIn, tax:tax, claw:claw, sup:sup, taxable:Math.max(0, net-claw) };
}

function fillSource(inp, age, b, w, bal, gf, need, src){
  var avail = bal[src] - w[src];
  if(avail <= 0.5) return;
  if(yearFin(inp,age,b,w,gf).cashIn >= need) return;
  var t = {cash:w.cash, nr:w.nr, rr:w.rr, tf:w.tf};
  t[src] = w[src] + avail;
  if(yearFin(inp,age,b,t,gf).cashIn <= need){ w[src] += avail; return; }
  var lo=0, hi=avail;
  for(var k=0;k<40;k++){
    var mid=(lo+hi)/2; t[src]=w[src]+mid;
    if(yearFin(inp,age,b,t,gf).cashIn < need) lo=mid; else hi=mid;
  }
  w[src] += hi;
}

/* ---------- simulation (real, today's dollars) ---------- */
function simulate(inp, o){
  var inf = inp.inf/100;
  var g  = (1+inp.ret/100)/(1+inf) - 1;
  var gc = (1+inp.cashRet/100)/(1+inf) - 1;
  var lump = o.lump || 0;
  var age = inp.age;
  var bal = { rr:inp.rrsp, tf:inp.tfsa, nr:inp.nonreg+lump, cash:inp.cash };
  var basis = inp.nonreg*(1-inp.gain) + lump;

  while(age < o.retAge){
    bal.rr*=1+g; bal.tf*=1+g; bal.nr*=1+g; bal.cash*=1+gc;
    if(inp.save>0){
      var inv = bal.rr+bal.tf+bal.nr;
      if(inv>0){ var s=inp.save/inv, addNr=bal.nr*s; bal.rr+=bal.rr*s; bal.tf+=bal.tf*s; bal.nr+=addNr; basis+=addNr; }
      else { bal.nr+=inp.save; basis+=inp.save; }
    }
    age++;
  }
  var startBal = bal.rr+bal.tf+bal.nr+bal.cash;
  var crashAge = o.crash ? o.retAge + (inp.dropWhen||0) : -1, keep = 1 - (inp.dropPct||0);

  var endAge = o.endAge || (o.retAge + inp.years);
  var rows=[], failAge=null, totTax=0, totSup=0, totClaw=0, totTaxable=0, totNeed=0, supAges=[], clawAges=[];
  var p1Start=null, p2Start=null;
  for(; age<endAge; age++){
    if(age===crashAge){ bal.rr*=keep; bal.tf*=keep; bal.nr*=keep; }
    var spend = o.spendMo*12*(age>=75 ? (1-inp.drop75) : 1);
    var debt = age<inp.debtEnd ? inp.debtMo*12/Math.pow(1+inf, age-inp.age) : 0;
    var need = spend + debt;
    var pub = pubIncome(inp, age);
    var pen = age>=inp.penStart ? inp.penMo*12*(inp.penIdx ? 1 : 1/Math.pow(1+inf, age-inp.penStart)) : 0;
    var pt = age<inp.ptEnd ? inp.ptMo*12 : 0;
    var b = { p1:pub.p1, p2:pub.p2, supOn:pub.supOn, pen:pen, pt:pt };
    var gf = bal.nr>0 ? Math.max(0, 1-basis/bal.nr) : 0;
    var w = { cash:0, nr:0, rr:0, tf:0 };
    if(!inp.gen && age>=72) w.rr = bal.rr*rrifMin(age);
    var order = ["cash","nr","rr","tf"];
    for(var i=0;i<order.length;i++) fillSource(inp, age, b, w, bal, gf, need, order[i]);
    var f = yearFin(inp, age, b, w, gf);
    var short = Math.max(0, need-f.cashIn), surplus = Math.max(0, f.cashIn-need);

    if(w.nr>0 && bal.nr>0) basis -= basis*Math.min(1, w.nr/bal.nr);
    bal.cash-=w.cash; bal.nr-=w.nr; bal.rr-=w.rr; bal.tf-=w.tf;
    if(surplus>0){
      var toTf = inp.gen ? 0 : Math.min(surplus, P.tfsaLimit);
      bal.tf += toTf; bal.nr += surplus-toTf; basis += surplus-toTf;
    }
    if(short>1 && failAge===null) failAge = age;
    if(f.sup>1) supAges.push(age);
    if(f.claw>1) clawAges.push(age);
    if(b.p1>0 && p1Start===null) p1Start=age;
    if(b.p2>0 && p2Start===null) p2Start=age;
    totTax+=f.tax; totSup+=f.sup; totClaw+=f.claw; totTaxable+=f.taxable; totNeed+=need;

    bal.rr*=1+g; bal.tf*=1+g; bal.nr*=1+g; bal.cash*=1+gc;
    ["rr","tf","nr","cash"].forEach(function(k){ if(bal[k]<0.01) bal[k]=0; });
    rows.push({ age:age, need:need, p1:b.p1, p2:b.p2-f.claw, sup:f.sup, other:pen+pt,
      wCash:w.cash, wNr:w.nr, wRr:w.rr, wTf:w.tf, tax:f.tax, claw:f.claw, taxable:f.taxable, short:short,
      end:bal.rr+bal.tf+bal.nr+bal.cash });
  }
  return { rows:rows, failAge:failAge, startBal:startBal, endBal:bal.rr+bal.tf+bal.nr+bal.cash,
    endAge:endAge, totTax:totTax, totSup:totSup, totClaw:totClaw, totTaxable:totTaxable, totNeed:totNeed,
    supAges:supAges, clawAges:clawAges };
}
function passes(inp, o){ return simulate(inp, o).failAge === null; }

function sustainable(inp, retAge, endAge){
  var lo=0, hi=Math.max(inp.spendMo*4, 25000);
  if(!passes(inp,{retAge:retAge, endAge:endAge, spendMo:0})) return 0;
  if(passes(inp,{retAge:retAge, endAge:endAge, spendMo:hi})) return hi;
  for(var k=0;k<32;k++){
    var mid=(lo+hi)/2;
    if(passes(inp,{retAge:retAge, endAge:endAge, spendMo:mid})) lo=mid; else hi=mid;
  }
  return lo;
}

function analyze(inp){
  var endAge = inp.retAge + inp.years;
  var base  = simulate(inp, {retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo});
  var stress = inp.dropPct>0 && inp.retAge+inp.dropWhen < endAge;
  var crash = stress ? simulate(inp, {retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo, crash:true}) : base;
  var res = { endAge:endAge, base:base, crash:crash, stress:stress, sus:sustainable(inp, inp.retAge, endAge) };

  if(base.failAge !== null){
    res.moreYears = null;
    for(var r=inp.retAge+1; r<=Math.min(inp.retAge+15, endAge-1); r++){
      if(passes(inp,{retAge:r, endAge:endAge, spendMo:inp.spendMo})){ res.moreYears=r-inp.retAge; break; }
    }
    var lo=0, hi=5e6;
    if(passes(inp,{retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo, lump:hi})){
      for(var k=0;k<32;k++){ var mid=(lo+hi)/2;
        if(passes(inp,{retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo, lump:mid})) hi=mid; else lo=mid; }
      res.lump = hi;
    } else res.lump = null;
  } else if(inp.retAge > inp.age){
    res.earliest = inp.retAge;
    for(var e=inp.age; e<inp.retAge; e++){
      if(passes(inp,{retAge:e, endAge:endAge, spendMo:inp.spendMo})){ res.earliest=e; break; }
    }
  }
  if(stress && crash.failAge !== null){
    // how much extra cash buffer would carry the crash scenario
    var clo=0, chi=inp.spendMo*12*6, ci=Object.assign({}, inp);
    ci.cash = inp.cash + chi;
    if(passes(ci,{retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo, crash:true})){
      for(var j=0;j<28;j++){ var cm=(clo+chi)/2; ci.cash=inp.cash+cm;
        if(passes(ci,{retAge:inp.retAge, endAge:endAge, spendMo:inp.spendMo, crash:true})) chi=cm; else clo=cm; }
      res.crashCash = chi;
    } else res.crashCash = null;
    res.crashMore = null;
    for(var cr=inp.retAge+1; cr<=Math.min(inp.retAge+5, endAge-1); cr++){
      if(passes(inp,{retAge:cr, endAge:endAge, spendMo:inp.spendMo, crash:true})){ res.crashMore=cr-inp.retAge; break; }
    }
  }
  if(!inp.gen && (inp.cppStart<70 || inp.oasStart<70)){
    var di = Object.assign({}, inp, {cppStart:70, oasStart:70});
    res.deferSus = sustainable(di, inp.retAge, endAge);
  }
  return res;
}

/* ---------- formatting ---------- */
var CUR = "$";
function fm(n){ return (n<0?"-":"") + CUR + Math.round(Math.abs(n)).toLocaleString("en-CA"); }
function fk(n){
  var a=Math.abs(n), s=n<0?"-":"";
  if(a>=1e6) return s+CUR+(a/1e6).toFixed(2)+"M";
  if(a>=1e3) return s+CUR+Math.round(a/1e3)+"k";
  return s+CUR+Math.round(a);
}
function whenDesc(i){
  return i.dropWhen===0 ? "the year you retire" : (i.dropWhen+1)+" years into retirement";
}
function dropDesc(i){ return "a "+Math.round(i.dropPct*100)+"% market drop "+whenDesc(i); }
function cap(t){ return t.charAt(0).toUpperCase()+t.slice(1); }
function range(arr){
  if(!arr.length) return "";
  return arr[0]===arr[arr.length-1] ? "age "+arr[0] : "ages "+arr[0]+"-"+arr[arr.length-1];
}
function stat(k, v, s, cls){
  return '<div class="ofx-stat"><span class="k">'+k+'</span><span class="v '+(cls||"")+'">'+v+'</span>'+(s?'<span class="s">'+s+'</span>':'')+'</div>';
}

/* ---------- region toggle ---------- */
var provSel = $("rrProv");
Object.keys(PROV).forEach(function(k){
  var o=document.createElement("option"); o.value=k; o.textContent=PROV[k].name;
  if(k==="ON") o.selected=true; provSel.appendChild(o);
});
function applyRegion(){
  var gen = $("rrGeneric").checked;
  root.classList.toggle("is-gen", gen);
  CUR = gen ? "" : "$";
  Array.prototype.forEach.call(root.querySelectorAll("[data-ca]"), function(el){
    el.textContent = gen ? el.getAttribute("data-gen") : el.getAttribute("data-ca");
  });
  $("rrResults").style.display = "none";
}
$("rrGeneric").addEventListener("change", applyRegion);
$("rrTaxMode").addEventListener("change", function(){
  root.classList.toggle("tax-manual", $("rrTaxMode").value==="manual");
  $("rrResults").style.display = "none";
});

function updateYearsHint(){
  var r=+$("rrRetAge").value, y=+$("rrYears").value;
  if(r>0 && y>0) $("rrYearsHint").textContent = "From retirement - to age "+(r+y);
}
$("rrRetAge").addEventListener("input", updateYearsHint);
$("rrYears").addEventListener("input", updateYearsHint);

/* ---------- read + validate ---------- */
function num(id){ var v=parseFloat($(id).value); return isFinite(v) ? v : 0; }
function readInputs(){
  return {
    gen:$("rrGeneric").checked, age:num("rrAge"), retAge:num("rrRetAge"), years:Math.round(num("rrYears")),
    prov:$("rrProv").value, taxRate:Math.min(.6,Math.max(0,num("rrTaxRate")/100)),
    taxMode:$("rrGeneric").checked ? "manual" : $("rrTaxMode").value,
    rrsp:num("rrRrsp"), tfsa:num("rrTfsa"), nonreg:num("rrNonreg"), gain:Math.min(1,Math.max(0,num("rrGain")/100)),
    cash:num("rrCash"), save:num("rrSave"),
    spendMo:num("rrSpend"), drop75:Math.min(.6,Math.max(0,num("rrDrop")/100)), debtMo:num("rrDebt"), debtEnd:num("rrDebtEnd"),
    penMo:num("rrPen"), penStart:num("rrPenStart"), penIdx:$("rrPenIdx").value==="yes",
    ptMo:num("rrPt"), ptEnd:num("rrPtEnd"),
    cpp65:Math.min(num("rrCpp"), P.cppMax65), cppStart:Math.round(num("rrCppStart")),
    oasYears:num("rrOasYrs"), oasStart:Math.round(num("rrOasStart")),
    g1Mo:num("rrG1"), g1Start:num("rrG1Start"), g2Mo:num("rrG2"), g2Start:num("rrG2Start"),
    supMo:num("rrSup"), supCut:num("rrSupCut"),
    ret:num("rrRet"), inf:num("rrInf"), cashRet:num("rrCashRet"),
    dropPct:num("rrDropPct")/100, dropWhen:Math.round(num("rrDropWhen"))
  };
}
function validate(i){
  if(i.age<18 || i.age>90) return "Enter a current age between 18 and 90.";
  if(i.retAge<i.age) return "Your retirement age can't be earlier than your current age.";
  if(i.retAge>80) return "Retirement age should be 80 or under.";
  if(i.years<1 || i.years>60) return "Years your money must last should be between 1 and 60.";
  if(i.spendMo<=0) return "Enter your monthly expenses in retirement.";
  if(!i.gen && (i.cppStart<60 || i.cppStart>70)) return "CPP can start between ages 60 and 70.";
  if(!i.gen && (i.oasStart<65 || i.oasStart>70)) return "OAS can start between ages 65 and 70.";
  if(i.ret<-5 || i.ret>20) return "Expected return should be between -5% and 20%.";
  if(i.inf<0 || i.inf>15) return "Inflation should be between 0% and 15%.";
  if(i.dropPct<0 || i.dropPct>0.9) return "Market drop should be between 0% and 90%.";
  return null;
}

/* ---------- chart ---------- */
function drawChart(base, crash, retAge, stress){
  var W=700, H=250, L=58, R=14, T=12, B=30;
  var pts = function(sim){ var a=[[retAge, sim.startBal]]; sim.rows.forEach(function(r){ a.push([r.age+1, r.end]); }); return a; };
  var a=pts(base), c=pts(crash);
  var x0=retAge, x1=a[a.length-1][0];
  var ymax=0; a.concat(c).forEach(function(p){ if(p[1]>ymax) ymax=p[1]; });
  if(ymax<=0) ymax=1;
  var raw=ymax/4, mag=Math.pow(10, Math.floor(Math.log10(raw))), step=mag*10;
  [1,2,2.5,5,10].some(function(m){ if(mag*m>=raw){ step=mag*m; return true; } return false; });
  var ytop=Math.ceil(ymax/step)*step;
  var X=function(v){ return L + (v-x0)/Math.max(1,(x1-x0))*(W-L-R); };
  var Y=function(v){ return T + (1-v/ytop)*(H-T-B); };
  var svg='<svg viewBox="0 0 '+W+' '+H+'" role="img" aria-label="Portfolio balance by age">';
  for(var v=0; v<=ytop+1; v+=step){
    svg+='<line x1="'+L+'" x2="'+(W-R)+'" y1="'+Y(v)+'" y2="'+Y(v)+'" stroke="#d9e0d0" stroke-width="1"/>';
    svg+='<text x="'+(L-8)+'" y="'+(Y(v)+4)+'" text-anchor="end" font-size="11" fill="#66705f">'+fk(v)+'</text>';
  }
  var span=x1-x0, xs=span>30?10:(span>12?5:(span>5?2:1));
  for(var t=Math.ceil(x0/xs)*xs; t<=x1; t+=xs){
    svg+='<text x="'+X(t)+'" y="'+(H-10)+'" text-anchor="middle" font-size="11" fill="#66705f">'+t+'</text>';
  }
  var path=function(p){ return p.map(function(q,i){ return (i?"L":"M")+X(q[0]).toFixed(1)+","+Y(Math.max(0,q[1])).toFixed(1); }).join(""); };
  if(stress) svg+='<path d="'+path(c)+'" fill="none" stroke="#a05e03" stroke-width="2.2" stroke-dasharray="6 4"/>';
  svg+='<path d="'+path(a)+'" fill="none" stroke="#2e7d32" stroke-width="2.8"/>';
  if(base.failAge!==null){
    svg+='<line x1="'+X(base.failAge)+'" x2="'+X(base.failAge)+'" y1="'+T+'" y2="'+(H-B)+'" stroke="#b3372b" stroke-dasharray="3 3"/>';
    svg+='<text x="'+(X(base.failAge)+5)+'" y="'+(T+12)+'" font-size="11" fill="#b3372b" font-weight="700">Runs out at '+base.failAge+'</text>';
  }
  svg+='</svg>';
  $("rrChart").innerHTML=svg;
}

/* ---------- render ---------- */
function render(inp, res){
  var L = inp.gen ? LBL.gen : LBL.ca;
  var b=res.base, c=res.crash, end=res.endAge;
  var ok=b.failAge===null, crashOk=c.failAge===null;
  var cov = inp.spendMo>0 ? res.sus/inp.spendMo : 0;
  var vd=$("rrVerdict"), name, text;
  var when = inp.retAge===inp.age ? "today" : "at "+inp.retAge;
  var dd = dropDesc(inp);

  if(ok && !res.stress){
    vd.className="ofx-verdict ready"; name="Yes - your plan works.";
    text="Retiring "+when+" on "+fm(inp.spendMo)+" a month, your money lasts all "+inp.years+" years to age "+end+
      " with steady returns. "+(inp.dropPct>0 ? "Your test drop lands after the plan ends, so it wasn't applied - pick an earlier timing to stress-test it."
                                   : "You haven't stress-tested it - set a market drop above to see how much cushion you have.");
  } else if(ok && crashOk){
    vd.className="ofx-verdict ready"; name="Yes - you're ready.";
    text="Retiring "+when+" on "+fm(inp.spendMo)+" a month, your money lasts all "+inp.years+" years to age "+end+
      " - and it still makes it through "+dd+". That second part is what separates ready from lucky.";
  } else if(ok){
    vd.className="ofx-verdict close"; name="Ready on paper. Thin on cushion.";
    text="Your plan works to age "+end+" if markets behave. But "+dd+" would run you dry at age "+c.failAge+". "+
      (res.crashMore ? "Working "+res.crashMore+" more year"+(res.crashMore>1?"s":"")+" or building a cash buffer would make this plan survive it." : "See the moves below to build a real cushion.");
  } else {
    vd.className="ofx-verdict notyet"; name="Not yet - but here's the gap.";
    text="Retiring "+when+" on "+fm(inp.spendMo)+" a month, your money runs out at age "+b.failAge+
      ", "+(end-b.failAge)+" year"+(end-b.failAge===1?"":"s")+" short of your target. Not a verdict on your life - just the size of the gap. The fixes are below.";
  }
  $("rrVName").textContent=name; $("rrVText").textContent=text;

  var last=$("rrSLast");
  last.textContent = ok ? "Age "+end+"+" : "Age "+b.failAge;
  last.className = "v "+(ok ? "green" : "red");
  $("rrSLastS").textContent = ok ? "all "+inp.years+" years covered" : "target was "+end;
  $("rrSSus").textContent = fm(res.sus)+"/mo";
  $("rrSSusS").textContent = "lasts exactly to "+end;
  var cv=$("rrSCov"); cv.textContent=Math.round(cov*100)+"%";
  cv.className="v "+(cov>=1.1?"green":(cov>=1?"amber":"red"));
  $("rrSEnd").textContent = ok ? fk(b.endBal) : "$0";
  if(inp.gen) $("rrSEnd").textContent = ok ? fk(b.endBal) : "0";

  /* benefit check */
  var ben="", fr=b.rows.filter(function(r){ return r.p1>0; })[0], fo=b.rows.filter(function(r){ return r.p2>0 || r.sup>0; })[0];
  if(!inp.gen){
    var cppMo=cppAnnual(inp.cpp65, inp.cppStart)/12;
    ben+=stat("CPP", inp.cpp65>0 ? fm(cppMo)+"/mo" : "None", inp.cpp65>0 ? "from age "+inp.cppStart+(inp.cppStart<65?" (reduced)":inp.cppStart>65?" (enhanced)":"") : "enter your estimate above");
    if(inp.oasYears<10) ben+=stat("OAS","Not eligible","needs 10+ years in Canada after 18","red");
    else {
      var oasMo=oasAnnual(Math.max(65,inp.oasStart), inp.oasStart, inp.oasYears)/12;
      ben+=stat("OAS", fm(oasMo)+"/mo", "from age "+inp.oasStart+(inp.oasYears<40?" · "+Math.floor(inp.oasYears)+"/40 years":"")+" · +10% at 75");
    }
    if(b.supAges.length) ben+=stat("GIS","Triggers", range(b.supAges)+" · "+fk(b.totSup)+" tax-free total","green");
    else ben+=stat("GIS","Doesn't trigger", inp.oasYears<10 ? "requires OAS" : "other taxable income stays above ~"+fm(P.gisCut)+"/yr");
    if(b.clawAges.length) ben+=stat("OAS clawback","Hits", range(b.clawAges)+" · "+fk(b.totClaw)+" lost","amber");
    else ben+=stat("OAS clawback","None","income stays under "+fm(P.clawThreshold),"green");
  } else {
    ben+=stat(L.p1, inp.g1Mo>0 ? fm(inp.g1Mo)+"/mo" : "None", inp.g1Mo>0 ? "from age "+inp.g1Start : "enter an estimate above");
    ben+=stat(L.p2, inp.g2Mo>0 ? fm(inp.g2Mo)+"/mo" : "None", inp.g2Mo>0 ? "from age "+inp.g2Start : "if your country pays one");
    if(inp.supMo>0) ben+= b.supAges.length ? stat(L.sup,"Triggers", range(b.supAges)+" · "+fk(b.totSup)+" total","green")
                                          : stat(L.sup,"Doesn't trigger","other income stays above "+fm(inp.supCut)+"/yr");
    else ben+=stat(L.sup,"Not entered","set a maximum above to test it");
  }
  $("rrBen").innerHTML=ben;

  /* taxes */
  var peak=null, firstBen=null;
  b.rows.forEach(function(r){
    if(r.short<=1 && (!peak || r.tax>peak.tax)) peak=r;
    if(firstBen===null && (r.p1>0 || r.p2>0)) firstBen=r;
  });
  var avgRate = b.totTaxable>0 ? b.totTax/b.totTaxable : 0;
  var taxShare = b.totNeed>0 ? b.totTax/b.totNeed : 0;
  var tx = stat("Lifetime income tax", fk(b.totTax), "over "+b.rows.length+" years");
  tx += stat("Average tax rate", (avgRate*100).toFixed(1)+"%", "on taxable retirement income");
  tx += stat("Highest tax year", peak ? fm(peak.tax) : fm(0), peak ? "age "+peak.age+" · "+fm(peak.tax/12)+"/mo" : "");
  tx += stat("Tax per "+CUR+"1 spent", CUR+taxShare.toFixed(2), "on top of what you spend");
  $("rrTax").innerHTML = tx;
  var note = [];
  if(firstBen) note.push("At "+firstBen.age+", when "+(inp.gen?"public pensions":"CPP/OAS")+" start, you pay about "+fm(firstBen.tax/12)+"/month in tax on "+fm(firstBen.taxable/12)+"/month of taxable income.");
  if(!inp.gen) note.push("Withholding tax taken off RRSP/RRIF withdrawals (10-30% depending on size) is a prepayment, not an extra tax - it's settled when you file.");
  if(!inp.gen && b.totClaw>1) note.push("The OAS clawback adds another "+fk(b.totClaw)+" on top, shown in the benefit check.");
  if(!inp.gen && inp.taxMode==="manual") note.push("You're using your own "+(inp.taxRate*100).toFixed(1)+"% rate; switch to automatic to see how brackets, the age credit and the pension credit change it.");
  $("rrTaxNote").textContent = note.join(" ");

  /* moves */
  var mv=[];
  if(!ok){
    mv.push("<strong>Spend less:</strong> "+fm(res.sus)+"/month lasts to age "+end+" - that's "+fm(inp.spendMo-res.sus)+"/month less than your plan.");
    if(res.moreYears) mv.push("<strong>Work longer:</strong> retiring at "+(inp.retAge+res.moreYears)+" ("+res.moreYears+" more year"+(res.moreYears>1?"s":"")+", keeping up your savings) closes the gap.");
    else mv.push("<strong>Work longer:</strong> even 15 more years doesn't close this gap on its own - pair it with lower spending.");
    if(res.lump!==null) mv.push("<strong>Find a lump sum:</strong> about "+fk(res.lump)+" more invested today would do it - downsizing, an inheritance, or a business sale.");
    if(inp.ptMo===0) mv.push("<strong>Bridge income:</strong> even "+fm(1000)+"/month of part-time work in your early retirement years does more than it looks - try it in the fields above.");
  } else {
    if(crashOk && res.earliest!==undefined && res.earliest<inp.retAge) mv.push("<strong>You could go sooner:</strong> your plan still works retiring at "+res.earliest+" - "+(inp.retAge-res.earliest)+" year"+(inp.retAge-res.earliest>1?"s":"")+" earlier than planned.");
    if(cov>1.02) mv.push("<strong>You have room:</strong> you could spend up to "+fm(res.sus)+"/month - "+fm(res.sus-inp.spendMo)+" more than planned - and still last to "+end+".");
    else mv.push("<strong>It's tight:</strong> safe spending is "+fm(res.sus)+"/month - almost exactly your plan. Small surprises matter here.");
  }
  if(res.stress && !crashOk){
    if(res.crashCash!==null) mv.push("<strong>Crash-proof it:</strong> holding about "+fk(res.crashCash)+" more in "+(inp.gen?"cash or short-term deposits":"cash or GICs")+" (roughly "+(res.crashCash/(inp.spendMo*12)).toFixed(1)+" years of spending) carries you through "+dd+".");
    else mv.push("<strong>Crash-proof it:</strong> "+dd+" hits hard here - a cash buffer alone won't fix it. Lower spending or more working years will.");
  }
  if(res.stress && crashOk && ok) mv.push("<strong>Push the stress test:</strong> try a bigger drop or a different timing above to find where your plan breaks.");
  if(res.deferSus!==undefined && res.deferSus > res.sus*1.02){
    mv.push("<strong>Defer CPP and OAS to 70:</strong> bigger, inflation-protected cheques raise your safe spending to "+fm(res.deferSus)+"/month (vs "+fm(res.sus)+"). Your portfolio bridges the gap, the government covers the long tail.");
  }
  if(!inp.gen && b.clawAges.length) mv.push("<strong>Shrink the clawback:</strong> drawing your RRSP down earlier - in your 60s, before RRIF minimums - lowers income in your 70s. That's exactly what the Drawdown Sequencer tests.");
  if(!inp.gen && !b.supAges.length && inp.oasYears>=10 && (inp.rrsp+inp.nonreg) < 250000 && inp.tfsa>0) mv.push("<strong>Check the GIS play:</strong> TFSA withdrawals don't count as income for GIS. With modest savings, emptying the RRSP before 65 and living off the TFSA after can unlock tax-free GIS.");
  $("rrMoves").innerHTML = mv.map(function(m){ return "<li>"+m+"</li>"; }).join("");
  $("rrMovesH").textContent = ok ? "What this means for you" : "What closes the gap";

  drawChart(b, c, inp.retAge, res.stress);
  $("rrLegCrash").style.display = res.stress ? "" : "none";
  $("rrLegCrashTxt").textContent = cap(dropDesc(inp));

  /* table */
  $("rrTHead").innerHTML="<tr><th>Age</th><th>Need</th><th>"+L.p1+"</th><th>"+L.p2+"</th><th>"+L.sup+"</th><th>Pension/work</th><th>Cash</th><th>"+L.nr+"</th><th>"+L.rr+"</th><th>"+L.tf+"</th><th>Tax</th><th>Left</th></tr>";
  $("rrTBody").innerHTML = b.rows.map(function(r){
    return '<tr'+(r.short>1?' class="short"':'')+'><td>'+r.age+'</td><td>'+fm(r.need)+'</td><td>'+fm(r.p1)+'</td><td>'+fm(r.p2)+'</td><td>'+fm(r.sup)+
      '</td><td>'+fm(r.other)+'</td><td>'+fm(r.wCash)+'</td><td>'+fm(r.wNr)+'</td><td>'+fm(r.wRr)+'</td><td>'+fm(r.wTf)+'</td><td>'+fm(r.tax)+'</td><td>'+(r.short>1?"short "+fk(r.short):fk(r.end))+'</td></tr>';
  }).join("");

  /* assumptions */
  var a=[];
  a.push("Everything is in today's dollars. Your "+inp.ret+"% return and "+inp.inf+"% inflation combine into a real return of "+(((1+inp.ret/100)/(1+inp.inf/100)-1)*100).toFixed(2)+"%. Your expenses rise with inflation; fixed debt payments and non-indexed pensions don't.");
  a.push("Withdrawal order: cash first, then "+(inp.gen?"taxable":"non-registered")+", then "+(inp.gen?"tax-deferred":"RRSP/RRIF")+", then "+(inp.gen?"tax-free":"TFSA")+" last. Withdrawals are grossed up so tax is paid and you still net your spending."+(inp.gen?"":" RRIF minimums apply from 72; any excess is re-sheltered in your TFSA."));
  a.push("Savings before retirement are spread across your investment accounts in proportion to their balances. "+(res.stress ? "The stress test cuts all invested balances (not cash) by "+Math.round(inp.dropPct*100)+"% "+whenDesc(inp)+", then resumes your expected return - no rebound is assumed." : "No market drop was tested."));
  if(!inp.gen){
    a.push("2026 figures: CPP max at 65 of $1,507.65/mo (-0.6%/mo before 65, +0.7%/mo after). OAS of about $762/mo (65-74) and $839/mo (75+) for Oct-Dec 2026, prorated by years in Canada, +0.6%/mo deferred. OAS recovery tax of 15% above $95,323. Benefits are indexed, so they're held flat in today's dollars.");
    a.push("GIS is modelled for a single person: up to about $1,139/mo, shrinking to zero at roughly $23,000 of non-OAS income (first $5,000 of work income exempt). The real formula has a top-up that phases out faster - treat GIS as an estimate and confirm with Service Canada.");
    if(inp.taxMode==="manual") a.push("Income tax uses your "+(inp.taxRate*100).toFixed(1)+"% average rate on taxable income: RRSP/RRIF withdrawals, CPP, OAS (after any clawback), workplace pension, part-time work and half of realized capital gains. TFSA withdrawals, GIS and cash are tax-free. The OAS clawback is calculated separately.");
    else a.push("Income tax is calculated every year on RRSP/RRIF withdrawals, CPP, OAS (after any clawback), workplace pension, part-time work and half of realized capital gains, using 2026 federal brackets, the basic, age and pension credits, and your province's brackets and personal amount. TFSA withdrawals, GIS and cash are tax-free. Surtaxes, health premiums, the dividend tax credit and pension income splitting aren't modelled.");
    a.push("This models one person. Couples can split pension income and face different GIS rules - run each spouse separately or add your household numbers as a rough check.");
  } else {
    a.push("Taxable income (tax-deferred withdrawals, pensions, work income and half of realized gains) is taxed at your average rate. Public pensions are held flat in today's dollars. The supplement shrinks in a straight line to zero at the income you entered. No required minimum withdrawals are modelled.");
  }
  a.push("This is a planning model, not advice. It uses one steady return - real markets don't. Treat the result as a starting point and revisit it every year.");
  $("rrAssume").innerHTML = a.map(function(x){ return "<li>"+x+"</li>"; }).join("");
}

$("rrRun").addEventListener("click", function(){
  var err=$("rrErr"); err.style.display="none";
  var inp=readInputs(), msg=validate(inp);
  if(msg){ err.textContent=msg; err.style.display="block"; $("rrResults").style.display="none"; return; }
  render(inp, analyze(inp));
  $("rrResults").style.display="block";
  $("rrResults").scrollIntoView({behavior:"smooth", block:"start"});
});

/* expose engine for testing; harmless in production */
root.__rrEngine = { simulate:simulate, analyze:analyze, taxCA:taxCA, cppAnnual:cppAnnual, oasAnnual:oasAnnual, readInputs:readInputs };
})();
</script>
</div>
<!--kg-card-end: html-->
<h2 id="how-to-read-your-result"><strong>How to read your result</strong></h2><p>You&apos;ll get one of three verdicts:</p><ul><li><strong>Yes - you&apos;re ready.</strong> Your money lasts the full stretch and survives a 25% crash the year you retire. That&apos;s ready, not lucky.</li><li><strong>Ready on paper. Thin on cushion.</strong> It works if markets behave. The tool tells you how much extra cash or how many more working years would make it crash-proof.</li><li><strong>Not yet.</strong> You&apos;ll see the size of the gap and three ways to close it: spend less, work longer, or find a lump sum. Usually it&apos;s a mix.</li></ul><p>Pay the most attention to <strong>safe monthly spending</strong>. That&apos;s the most you can spend and still have the money last exactly as long as you need. If it&apos;s well above your plan, you have room - or you could retire sooner. If it&apos;s right at your plan, small surprises will hurt.</p><p>Then check the benefit cards. If the OAS clawback shows up, your RRSP is probably too big to leave alone until 71. If GIS shows up in your late 80s, that&apos;s your RRSP running dry and the government quietly topping you up. Both are signals that <em>the order</em> you spend your accounts in matters - which is exactly what the<a href="https://optimizedforfreedom.com/calculator-when-to-retire-and-how-to-use-your-retirement-savings-and-maximize-government-retirement-benefits/" rel="noreferrer"> <u>Drawdown Sequencer</u> </a>is built to figure out.</p><h2 id="what-it-doesnt-do"><strong>What it doesn&apos;t do</strong></h2><p>It uses one steady return, and real markets don&apos;t move in a straight line. It models one person, so couples should run each spouse separately (pension splitting and couple GIS rules aren&apos;t in here). Provincial tax is close but not exact. It&apos;s a planning tool, not financial advice.</p><p>Run it once a year. Run it before any big decision. Change one input at a time and watch what moves the verdict - that&apos;s where the real lesson is. For most people, it&apos;s spending, not returns.</p>
<!--kg-card-begin: html-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "mainEntityOfPage": { "@type": "WebPage", "@id": "[POST-URL]" },
  "headline": "Am I Ready to Retire? (Run the Numbers, Not the Vibes)",
  "description": "A free retirement readiness calculator for Canadians that runs your RRSP, TFSA, non-registered savings, CPP, OAS, GIS, taxes and inflation year by year, stress-tests your plan against a market drop, and tells you whether you're ready, almost ready, or not yet.",
  "author": { "@type": "Person", "name": "Opti", "url": "https://optimizedforfreedom.com/am-i-ready-to-retire-the-canadian-edition/" },
  "publisher": {
    "@type": "Organization",
    "name": "Optimized For Freedom",
    "url": "https://optimizedforfreedom.com/am-i-ready-to-retire-the-canadian-edition/"
  },
  "datePublished": "2026-10-13",
  "dateModified": "2026-10-13",
  "keywords": "am I ready to retire, retirement calculator Canada, retirement readiness, RRSP withdrawal tax, CPP, OAS, GIS, safe withdrawal, sequence of returns risk"
}
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How do I know if I'm ready to retire?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "You're ready when three things are true at once: your savings and income last as long as you need them to, your plan still holds up if markets drop sharply soon after you retire, and you know how much you can safely spend each month. A portfolio size or a target age alone doesn't answer the question - your spending, taxes, government benefits and timeline all change the result."
      }
    },
    {
      "@type": "Question",
      "name": "How much money do I need to retire in Canada?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "There is no single number. It depends mostly on what you spend, how long your money has to last, and how much CPP, OAS and pension income you'll receive. Someone spending $3,500 a month with full CPP and OAS needs far less than someone spending $9,000 a month who retires at 55. Running your own numbers year by year, including taxes and inflation, is the only reliable way to find your figure."
      }
    },
    {
      "@type": "Question",
      "name": "Are RRSP withdrawals taxed in retirement?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. RRSP and RRIF withdrawals are fully taxable as income in the year you take them out. Your financial institution withholds tax at the time of withdrawal - roughly 10% to 30% depending on the amount, with different rates in Quebec - but that is a prepayment settled when you file your return, not an extra tax. TFSA withdrawals are tax-free."
      }
    },
    {
      "@type": "Question",
      "name": "Are CPP, OAS and GIS taxable?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "CPP and OAS are taxable income. GIS is not taxable. Higher-income seniors also face the OAS recovery tax, often called the clawback, which reduces OAS by 15 cents for every dollar of net income above a threshold of roughly $95,000. Large RRIF withdrawals in your 70s are a common reason people hit it."
      }
    },
    {
      "@type": "Question",
      "name": "How does a market crash affect my retirement?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Timing matters more than size. A big drop in the first few years of retirement does far more damage than the same drop later, because you're selling investments at low prices to cover living costs and those dollars never recover. This is called sequence-of-returns risk. Holding a cash or GIC buffer of one to a few years of spending, or working slightly longer, are the most common ways to reduce it."
      }
    },
    {
      "@type": "Question",
      "name": "Will I qualify for the Guaranteed Income Supplement (GIS)?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "GIS goes to low-income OAS recipients and shrinks as your other taxable income rises. For a single person it disappears at roughly $22,000 to $23,000 of income excluding OAS. TFSA withdrawals don't count as income for GIS, so retirees with modest savings who hold more in a TFSA than an RRSP are more likely to qualify."
      }
    },
    {
      "@type": "Question",
      "name": "Can I use this retirement calculator if I don't live in Canada?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. A checkbox switches the RRSP, TFSA, CPP, OAS and GIS fields to generic tax-deferred and tax-free accounts, an earnings-based public pension, a universal pension and a means-tested supplement that you fill in for your own country, with taxes applied at an average rate you choose."
      }
    }
  ]
}
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[$1,128.40 in Dividends in September 2026 (and a Portfolio Update)]]></title><description><![CDATA[September 2026 monthly dividend and portfolio update.]]></description><link>https://optimizedforfreedom.com/1-128-40-in-dividends-in-september-2026-and-a-portfolio-update/</link><guid isPermaLink="false">6ac4db4ebf4e3404a575fcce</guid><category><![CDATA[Investing]]></category><category><![CDATA[Early Retirement]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Tue, 06 Oct 2026 12:42:20 GMT</pubDate><content:encoded><![CDATA[<p>We made <strong>$1,128.40</strong> in dividends in September 2026, and our portfolio is down <strong>$4,002.69</strong> excluding the contributions and the dividends. A total decrease of <strong>$2,874.29</strong> excluding contributions.</p><p>Excluding RESPs, contributions this month added up to <strong>$967.60</strong>.</p><p>Here is how things changed last month, including our contributions.</p>
<!--kg-card-begin: html-->
<style>
.portfolio-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 6px 12px; /* vertical spacing */
  width: 100%;
  margin: 20px 0;
  font-size: 1.5rem; /* base font */
}

.portfolio-grid > div {
  padding: 8px 12px; /* row height */
  background: var(--color-bg, #fafafa);
  border-radius: 6px;
}

.portfolio-header > div {
  font-weight: 700;
  font-size: 1.5rem; /* header */
  padding-bottom: 4px;
  background: transparent;
}

.portfolio-row > div {
  font-variant-numeric: tabular-nums;
}

.portfolio-total > div {
  font-weight: 700;
  border-top: 2px solid #000;
  background: transparent;
  padding-top: 10px;
}

@media (max-width: 600px) {
  .portfolio-grid {
    grid-template-columns: 1.5fr 1fr 1fr;
    font-size: 1.125rem;
  }
}
</style>



<div class="portfolio-grid portfolio-header">
<div>Stock</div>
<div style="text-align:right;">August 31, 2026</div>
<div style="text-align:right;">September 30, 2026</div>
<div style="text-align:right;">Change</div>
</div>



<div class="portfolio-grid portfolio-row">
<div>XEC</div>
<div style="text-align:right;">$17,535.49</div>
<div style="text-align:right;">$17,896.76</div>
<div style="text-align:right;">-$61.27</div>
<div>XGRO</div>
<div style="text-align:right;">$290,203.42</div>
<div style="text-align:right;">$287,814.30</div>
<div style="text-align:right;">-$2,389.12</div>
<div>XQB</div>
<div style="text-align:right;">$7,733.44</div>
<div style="text-align:right;">$7,621.12</div>
<div style="text-align:right;">-$112.32</div>
<div>AX.UN (now RFA)</div>
<div style="text-align:right;">$5,498.79</div>
<div style="text-align:right;">$5,245.90</div>
<div style="text-align:right;">-$252.89</div>
<div>SRU.UN</div>
<div style="text-align:right;">$21,956.52</div>
<div style="text-align:right;">$21,501.55</div>
<div style="text-align:right;">-$454.97</div>
<div>DIR.UN</div>
<div style="text-align:right;">$2,949.03</div>
<div style="text-align:right;">$3,327.75</div>
<div style="text-align:right;">+$378.72</div>
<div>T.TO</div>
<div style="text-align:right;">$3,218.40</div>
<div style="text-align:right;">$2,868.00</div>
<div style="text-align:right;">-$350.40</div>
<div>GRRSP</div>
<div style="text-align:right;">$9,582.62</div>
<div style="text-align:right;">$10,222.13</div>
<div style="text-align:right;">+$639.51</div>
<div>CASH.TO</div>
<div style="text-align:right;">$2,501.50</div>
<div style="text-align:right;">$3,001.80</div>
<div style="text-align:right;">+$500.30</div>
<div>Employer Stock</div>
<div style="text-align:right;">$3,470.37</div>
<div style="text-align:right;">$3,001.80</div>
<div style="text-align:right;">-$468.57</div>
<div>Cash</div>
<div style="text-align:right;">$188.80</div>
<div style="text-align:right;">$188.80</div>
<div style="text-align:right;">$0</div>
</div>



<div class="portfolio-grid portfolio-total">
<div>TOTALS</div>
<div style="text-align:right;">$364,838.38</div>
<div style="text-align:right;">$362,931.69</div>
<div style="text-align:right;">-$1,906.69</div>
</div>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[September 2026 Expenses]]></title><description><![CDATA[Comparing September 2026 to September 2025 expenses to see if we are on track with cutting our expenses year over year.]]></description><link>https://optimizedforfreedom.com/september-2026-expenses/</link><guid isPermaLink="false">6abe5272bf4e3404a575fc69</guid><category><![CDATA[Expenses]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Thu, 01 Oct 2026 17:06:58 GMT</pubDate><content:encoded><![CDATA[<p>I review our finances at the end of every month. This post is focused on the expenses. I am curious to see how our September 2026 expenses compare to our September 2025 expenses and if we are sticking to our <a href="https://optimizedforfreedom.com/my-2026-goals-and-how-i-plan-to-achieve-them/" rel="noreferrer">2026 goals</a>. Categories and differences are explained below the table.</p><p>I expected September to be a calm month since the kids are back in school and we didn&apos;t travel much but a few categories were a bit higher than last year.</p>
<!--kg-card-begin: html-->
<style>
.expense-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 6px 12px;
  width: 100%;
  margin: 20px 0;
  font-size: 1.5rem;
}

.expense-grid > div {
  padding: 8px 12px;
  background: var(--color-bg, #fafafa);
  border-radius: 6px;
}

.expense-header > div {
  font-weight: 700;
  font-size: 1.5rem;
  padding-bottom: 4px;
  background: transparent;
}

.expense-row > div {
  font-variant-numeric: tabular-nums;
}

.expense-total > div {
  font-weight: 700;
  border-top: 2px solid currentColor;
  background: transparent;
  padding-top: 10px;
}

/* Expense change indicators */
.change-negative {
  color: #1a7f37; /* green = expenses decreased */
  font-weight: 600;
}

.change-positive {
  color: #b42318; /* red = expenses increased */
  font-weight: 600;
}

.change-neutral {
  color: #666;
}

.number {
  text-align: right;
}

@media (max-width: 600px) {
  .expense-grid {
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 5px 6px;
    font-size: 1.125rem;
  }

  .expense-header > div {
    font-size: 1.125rem;
  }

  .expense-grid > div {
    padding: 7px 5px;
  }
}
</style>

<!-- HEADER -->
<div class="expense-grid expense-header">
  <div>Category</div>
  <div class="number">2026</div>
  <div class="number">2025</div>
  <div class="number">Change</div>
</div>

<!-- ROWS -->
<div class="expense-grid expense-row">
  <div>Mortgage</div>
  <div class="number">$2,052.32</div>
  <div class="number">$2,139.75</div>
  <div class="number change-negative">-$87.43</div>

  <div>Insurance</div>
  <div class="number">$575.34</div>
  <div class="number">$500.61</div>
  <div class="number change-positive">+$74.73</div>

  <div>Household and House Maintenance</div>
  <div class="number">$373.03</div>
  <div class="number">$284.01</div>
  <div class="number change-positive">+$89.02</div>

  <div>Property Taxes</div>
  <div class="number">$1,124.00</div>
  <div class="number">$1,020.00</div>
  <div class="number change-positive">+$104.00</div>

  <div>Utilities</div>
  <div class="number">$358.34</div>
  <div class="number">$332.92</div>
  <div class="number change-positive">+$25.42</div>

  <div>Cell Phones</div>
  <div class="number">$137.01</div>
  <div class="number">$90.40</div>
  <div class="number change-positive">+$46.61</div>

  <div>Internet</div>
  <div class="number">$101.68</div>
  <div class="number">$125.40</div>
  <div class="number change-negative">-$23.72</div>

  <div>Car Payment</div>
  <div class="number">$425.06</div>
  <div class="number">$425.06</div>
  <div class="number change-neutral">-</div>

  <div>Car Maintenance</div>
  <div class="number">$617.79</div>
  <div class="number">$126.00</div>
  <div class="number change-positive">+$491.79</div>

  <div>Streaming</div>
  <div class="number">$53.09</div>
  <div class="number">$27.11</div>
  <div class="number change-positive">+$25.98</div>

  <div>Food</div>
  <div class="number">$463.32</div>
  <div class="number">$637.08</div>
  <div class="number change-negative">-$173.76</div>

  <div>Fuel</div>
  <div class="number">$637.56</div>
  <div class="number">$790.88</div>
  <div class="number change-negative">-$153.32</div>

  <div>Kids</div>
  <div class="number">$1,127.47</div>
  <div class="number">$872.18</div>
  <div class="number change-positive">+$255.29</div>

  <div>Restaurants</div>
  <div class="number">$566.32</div>
  <div class="number">$1,007.24</div>
  <div class="number change-negative">-$440.92</div>

  <div>Banking Fees</div>
  <div class="number">$18.27</div>
  <div class="number">$38.11</div>
  <div class="number change-negative">-$19.84</div>

  <div>Fun Money</div>
  <div class="number">$754.62</div>
  <div class="number">$621.07</div>
  <div class="number change-positive">+$133.55</div>

  <div>Clothing</div>
  <div class="number">$545.08</div>
  <div class="number">$0.00</div>
  <div class="number change-positive">+$545.08</div>

  <div>Personal Care</div>
  <div class="number">$112.49</div>
  <div class="number">$139.32</div>
  <div class="number change-negative">-$26.83</div>

  <div>Alcohol</div>
  <div class="number">$308.36</div>
  <div class="number">$130.99</div>
  <div class="number change-positive">+$177.37</div>

  <div>Parking</div>
  <div class="number">$4.50</div>
  <div class="number">$0.00</div>
  <div class="number change-positive">+$4.50</div>

  <div>Gifts</div>
  <div class="number">$367.49</div>
  <div class="number">$76.10</div>
  <div class="number change-positive">+$291.39</div>
</div>

<!-- TOTAL -->
<div class="expense-grid expense-total">
  <div>TOTAL</div>
  <div class="number">$10,810.57</div>
  <div class="number">$9,384.23</div>
  <div class="number change-positive">+$1,426.34</div>
</div>
<!--kg-card-end: html-->
<p>Let&apos;s explore what each category includes and some reasons for changes:</p><ul><li><strong>Mortgage - </strong>we renewed for another 5 years .</li><li><strong>Insurance</strong> - insurance rates went up and we added a third vehicle.</li><li><strong>Households and home maintenance</strong> - Lawn stuff and some sealant replacements.</li><li><strong>Property taxes</strong> - property taxes went up quite a bit this year due to new municipal programs.</li><li><strong>Utilities - </strong>gas, water and electricity.</li><li><strong>Cell phones</strong> - we travelled this month and did some roaming.</li><li><strong>Internet</strong> - nothing new</li><li><strong>Car payment </strong>- no changes</li><li><strong>Car maintenance</strong> - fluids went up in price. I also bulk-bought various filters for all cars, and an impact wrench that I was tired of constantly borrowing from friends and family.</li><li><strong>Streaming</strong> - Netflix. Others are paid annually and Apple TV is free for the next year or so thanks to a bunch of Apple gift cards I got 2 years ago. I had a Netflix gift card in 2025 so didn&apos;t pay anything that month.</li><li><strong>Food</strong> - eating mostly in-season vegetables.</li><li><strong>Fuel</strong> - despite the kids being back in school, we had a couple of long trips.</li><li><strong>Kids</strong> - back-to-school stuff and extra curriculars.</li><li><strong>Restaurants</strong> - just take-out.</li><li><strong>Banking fees</strong> - had to borrow from a line of credit for a week or so.</li><li><strong>Fun money </strong>- coffee, books, games, etc. Small daily purchases and fun expenses.</li><li><strong>Clothing</strong> - this is only for adult clothes. Kids&apos; clothing is covered under the &quot;kids&quot; category.</li><li><strong>Personal care</strong> - self-explanatory.</li><li><strong>Alcohol </strong>- self-explanatory</li><li><strong>Parking </strong>- decided to split parking out of &quot;fun money&quot;.</li><li><strong>Gifts</strong> - had to go to a few kids birthdays and a housewarming party.</li></ul><p>Second month this year we spent more than in 2025. The increase was due to vehicle maintenance, kids stuff and we bought a bunch of clothes. Removing them brings us down to about the same spending as last year. </p>]]></content:encoded></item><item><title><![CDATA[To DRIP or Not To DRIP? Also, What Is DRIP?]]></title><description><![CDATA[Getting dividends and not sure what to do with them? A DRIP can put them straight back to work for you. In this post I explain how dividend reinvestment plans work, where they shine, where they fall short, and how to turn one on at your broker.]]></description><link>https://optimizedforfreedom.com/to-drip-or-not-to-drip-also-what-is-drip/</link><guid isPermaLink="false">6abe4132bf4e3404a575fc50</guid><category><![CDATA[Investing]]></category><category><![CDATA[Personal Finance Basics]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Thu, 01 Oct 2026 11:22:20 GMT</pubDate><content:encoded><![CDATA[<p>If you hold dividend stocks or ETFs, you&apos;ve probably noticed small amounts of cash showing up in your account every month or quarter. A few dollars from an ETF here, twelve dollars from a REIT there. It&apos;s nice to see, but what are you supposed to do with $12.47?</p><p>That&apos;s where a DRIP comes in. I kept seeing the term in dividend forums and on my broker&apos;s settings page without really knowing what it did behind the scenes, so I looked into it. Here&apos;s what I found, in plain English.</p><p>We&apos;ll cover what a DRIP is, the math that makes it so popular, the downsides nobody mentions, and how to set one up with your broker.</p><h2 id="what-is-a-drip"><strong>What is a DRIP?</strong></h2><p>DRIP stands for Dividend Reinvestment Plan. Instead of paying your dividend out as cash, a DRIP automatically uses that money to buy more shares of the same stock or ETF that paid it.</p><p>Say you own 200 units of a REIT paying $0.10 per unit every month. That&apos;s $20 a month. Without a DRIP, the $20 sits in your account as cash until you decide what to do with it. With a DRIP, it goes back into the REIT and buys more units. Next month, you&apos;re paid on slightly more units, and so on.</p><p>There are two main flavours:</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="122"><col width="150"><col width="352"></colgroup><tbody><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Type</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Who runs it</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">How it works</span></p></td></tr><tr style="height:52.75pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Company (full) DRIP</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The company, through its transfer agent</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">You hold shares directly with the company. New shares are often issued from treasury, sometimes at a small discount.</span></p></td></tr><tr style="height:52.75pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Broker (synthetic) DRIP</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Your brokerage</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Your broker uses your dividend to buy shares for you, usually on the open market, with no commission.</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>Most regular investors use the broker version, since that&apos;s where our TFSAs and RRSPs live. It&apos;s usually a toggle in your account settings.</p><h2 id="the-mathwhy-people-love-drips"><strong>The math - why people love DRIPs</strong></h2><p>DRIPs are basically compounding on autopilot. Dividends buy shares, those shares pay dividends, and those dividends buy more shares.</p><p>Here&apos;s a simple example. You invest $10,000 in something with a 5% dividend yield that also grows in price by 5% a year. You don&apos;t add another dollar for 20 years.</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="241"><col width="170"><col width="76"></colgroup><tbody><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">After 20 years</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Take dividends as cash</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">DRIP</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Value of your shares</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">~$26,500</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">~$67,300</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Total cash collected along the way</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">~$16,500</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$0</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Total</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">~$43,000</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">~$67,300</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Annual dividend income in year 20</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">~$1,330</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">~$3,360</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>Same starting money. Same investment. The DRIP version ends up with about $24,000 more and pays over 2.5 times the income in year 20, simply because the dividends were never left sitting around. (This ignores taxes, fees, and the fact that real markets don&apos;t move in a straight line, but the direction holds.)</p><h2 id="the-pros"><strong>The pros</strong></h2><p><strong>1. Your money never sits idle.</strong> Small dividends are easy to forget about. I&apos;m guilty of letting cash sit in an account for months. A DRIP puts every eligible dollar back to work on payment day.</p><p><strong>2. No commissions.</strong> Most brokers don&apos;t charge anything to reinvest dividends, and it saves you from placing a dozen tiny orders.</p><p><strong>3. Automatic dollar-cost averaging.</strong> You buy on a set schedule no matter what the market is doing. When prices are down, your dividend buys more shares. You never have to decide if &quot;now is a good time,&quot; or talk yourself out of it during a scary headline week.</p><p><strong>4. Occasional discounts.</strong> Some company DRIPs issue shares below market price, often 1% to 5% off. That&apos;s a small but free return on top of the dividend. Just know these discounts can change or disappear. Telus, for example, has been cutting its DRIP discount and is removing it entirely as of October 1, 2026.</p><h2 id="the-cons"><strong>The cons</strong></h2><p><strong>1. You lose control over what you buy.</strong> A DRIP always buys more of the same thing. If one holding has grown to a bigger chunk of your portfolio than you&apos;d like, the DRIP makes it even bigger. It doesn&apos;t care whether the stock is overpriced either.</p><p><strong>2. It can mess with rebalancing.</strong> Dividend cash is a great tool for topping up underweight holdings, like using REIT dividends to buy more of your bond ETF. A DRIP takes that option away.</p><p><strong>3. Whole shares only (at some brokers).</strong> Many brokers can only buy full shares with your dividend. If you get $20 from a stock trading at $30, nothing gets reinvested and the $20 stays as cash. Expensive stocks may never DRIP at all unless you own a lot of them.</p><p><strong>4. The tax paperwork in non-registered accounts.</strong> This is the big one. In a TFSA or RRSP, a DRIP is completely tax-free and hassle-free. In a non-registered account, reinvested dividends are still taxable income that year, even though you never saw the cash. On top of that, every DRIP purchase changes your adjusted cost base (ACB). If you don&apos;t track it, you could end up overstating your capital gain when you sell and paying tax twice on the same money.</p><p><strong>5. It doesn&apos;t fit every stage of life.</strong> If you&apos;re living off your dividends, or you&apos;re starting to shift toward income like I am as I aim for early retirement, you&apos;ll eventually want that cash in hand. A DRIP is a building tool, not a spending tool.</p><h2 id="should-you-drip"><strong>Should you DRIP?</strong></h2><p>A quick gut check:</p><ul><li><strong>Probably yes</strong> if you&apos;re still building wealth, the holding is in a TFSA or RRSP, and it&apos;s something you&apos;d happily buy more of anyway, like an all-in-one ETF such as XGRO.</li><li><strong>Maybe not</strong> if the account is non-registered and you don&apos;t want to track ACB, if you use dividends to rebalance, or if you need the income now.</li></ul><p>You also don&apos;t have to go all-or-nothing. Most brokers let you turn DRIP on for some holdings and off for others.</p><p>Personally, I only DRIP in my GRRSP account since I don&#x2019;t have many options. I used to do this in my personal brokerage account at beginning of my financial journey but I no longer do it. I want to control where my money goes. For example, I have been using some of my SmartCentres distributions to buy Dream Industrial.&#xA0;</p><h2 id="how-to-set-up-a-drip-with-your-broker"><strong>How to set up a DRIP with your broker</strong></h2><p>Every broker&apos;s menus are a bit different, but the process generally looks like this.</p><p><strong>Step 1 - Check that your broker and holding are eligible.</strong> Most Canadian brokers support DRIPs on TSX-listed stocks and ETFs. Some U.S. listings or smaller companies may not be available. Search your broker&apos;s help centre for &quot;dividend reinvestment&quot; or &quot;DRIP.&quot;</p><p><strong>Step 2 - Find the setting.</strong> It&apos;s usually under account settings or account management rather than on the trading screen. Questrade, for example, puts it under Management &gt; Dividend Reinvestments, where you can toggle it on for a whole account or for individual securities. Wealthsimple lets you turn dividend reinvestment on or off at any time, and buys shares on the open market rather than through the company&apos;s own plan. Some banks&apos; brokerages still ask you to call or send a form, so don&apos;t be surprised if it isn&apos;t a simple switch.</p><p><strong>Step 3 - Choose all holdings or specific ones.</strong> Pick &quot;all eligible securities&quot; if you want it simple, or go holding by holding if you want to keep some dividend cash for rebalancing.</p><p><strong>Step 4 - Watch the timing.</strong> Enrolment isn&apos;t instant. Questrade says it takes about two business days to process, and you need to be enrolled before the ex-dividend date to catch the next payment. If you&apos;re turning it on for a specific payout, give yourself a few days of buffer.</p><p><strong>Step 5 - Understand how fractions are handled.</strong> Wealthsimple can reinvest into fractional shares, so every dollar gets used. Questrade&apos;s DRIP buys as many whole shares as your dividend allows and pays out the rest as cash, unless you already hold a fractional position. Check which one your broker does so you&apos;re not surprised by leftover cash.</p><p><strong>Step 6 - Check your first payout.</strong> After the next dividend date, you should see the dividend come in and a matching share purchase right after. If it just shows cash, the dividend was too small for a whole share or the enrolment wasn&apos;t processed in time.</p><p><strong>Step 7 - Track your ACB (non-registered accounts only).</strong> Your broker&apos;s cost base isn&apos;t always right, especially after transfers. A simple spreadsheet or a free tool like AdjustedCostBase.ca will save you headaches at tax time.</p><h2 id="the-takeaway"><strong>The takeaway</strong></h2><p>A DRIP is one of the simplest ways to let compounding do the heavy lifting. It takes the small, easy-to-ignore dividends you already earn and turns them into more shares, which earn more dividends. Inside a TFSA or RRSP, while you&apos;re still building, it&apos;s hard to beat.</p><p>It isn&apos;t perfect. You give up some control, it can throw off your allocation, and in a taxable account it adds bookkeeping. The key questions are - <em>Do I want more of this exact holding?</em> and <em>Do I need this cash soon?</em> If the answers are &quot;yes&quot; and &quot;no,&quot; flipping on your DRIP may be one of the easiest wins in your portfolio.</p><p>As always, this is general education, not personalized financial advice. If you&apos;re unsure how a DRIP fits your situation, especially in a taxable account, talk to a licensed professional who knows your full picture.</p><p><em>Note that details are as of September 30, 2026. Broker features and company plans change, so check your own broker&apos;s current rules before acting on any of the below information.</em></p>
<!--kg-card-begin: html-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "BlogPosting",
      "@id": "optimizedforfreedom.com/to-drip-or-not-to-drip-also-what-is-drip/",
      "headline": "What Is a DRIP? How Dividend Reinvestment Works, the Pros and Cons, and How to Set One Up",
      "alternativeHeadline": "What Is a DRIP? Dividend Reinvestment Pros, Cons & Setup",
      "description": "How a DRIP (dividend reinvestment plan) works in Canada, its pros and cons in a TFSA, RRSP or taxable account, and how to set one up with your broker.",
      "url": "optimizedforfreedom.com/to-drip-or-not-to-drip-also-what-is-drip/",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "optimizedforfreedom.com/to-drip-or-not-to-drip-also-what-is-drip/"
      },
      "datePublished": "2026-10-01T08:00:00-04:00",
      "dateModified": "2026-10-01T08:00:00-04:00",
      "author": {
        "@type": "Person",
        "name": "Opti",
        "url": "https://optimizedforfreedom.com/about/"
      },
      "publisher": {
        "@type": "Organization",
        "@id": "https://optimizedforfreedom.com/#organization",
        "name": "Optimized For Freedom",
        "url": "https://optimizedforfreedom.com/"
      },
      "articleSection": "Investing",
      "inLanguage": "en-CA",
      "keywords": [
        "what is a DRIP",
        "dividend reinvestment plan",
        "DRIP Canada",
        "DRIP pros and cons",
        "how to set up a DRIP",
        "DRIP TFSA",
        "Questrade DRIP",
        "Wealthsimple dividend reinvestment",
        "adjusted cost base"
      ],
      "about": [
        {
          "@type": "Thing",
          "name": "Dividend reinvestment plan"
        },
        {
          "@type": "Thing",
          "name": "Dividend investing"
        }
      ],
      "wordCount": 1450
    },
    {
      "@type": "FAQPage",
      "@id": "optimizedforfreedom.com/to-drip-or-not-to-drip-also-what-is-drip/#faq",
      "url": "optimizedforfreedom.com/to-drip-or-not-to-drip-also-what-is-drip/",
      "isPartOf": {
        "@id": "optimizedforfreedom.com/to-drip-or-not-to-drip-also-what-is-drip/#article"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "name": "What is a DRIP?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "A DRIP (dividend reinvestment plan) automatically uses the dividends you earn from a stock or ETF to buy more shares of that same investment, instead of paying you the dividend in cash."
          }
        },
        {
          "@type": "Question",
          "name": "Are DRIPs worth it?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "For long-term investors who are still building wealth, usually yes. Reinvesting dividends keeps your money invested and compounds over time. They make less sense if you need the income now, use dividends to rebalance, or don't want to track cost base in a taxable account."
          }
        },
        {
          "@type": "Question",
          "name": "Are reinvested dividends taxable in Canada?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "In a TFSA or RRSP, no. In a non-registered account, yes. Reinvested dividends count as income in the year they're paid even though you never see the cash, and each purchase changes your adjusted cost base (ACB)."
          }
        },
        {
          "@type": "Question",
          "name": "Do DRIPs cost anything?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Most Canadian brokers don't charge a commission to reinvest dividends. The ETF or fund you're buying still has its own management fee."
          }
        },
        {
          "@type": "Question",
          "name": "Can a DRIP buy fractional shares?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "It depends on the broker. Wealthsimple can reinvest into fractional shares. Questrade buys whole shares only, unless you already hold a fractional position, and pays out the leftover as cash."
          }
        },
        {
          "@type": "Question",
          "name": "How long does it take to set up a DRIP?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Usually a few business days. Questrade says about two. You need to be enrolled before the ex-dividend date to have the next payment reinvested."
          }
        },
        {
          "@type": "Question",
          "name": "Can I turn off a DRIP?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Most brokers let you turn dividend reinvestment off at any time, for a whole account or for individual holdings, without selling anything."
          }
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://optimizedforfreedom.com/what-is-a-drip-dividend-reinvestment-plan/#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://optimizedforfreedom.com/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Investing",
          "item": "https://optimizedforfreedom.com/tag/investing/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "What Is a DRIP?",
          "item": "https://optimizedforfreedom.com/what-is-a-drip-dividend-reinvestment-plan/"
        }
      ]
    }
  ]
}
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[OSAP in 2026–27: A Parent's Guide to Applying, Avoiding the Traps, and Getting Every Grant Dollar]]></title><description><![CDATA[Are you, or someone you know, heading to post-secondary school and looking for ways to pay? In this post I explore OSAP for the 2026-2027 school year and find ways to optimize aid through scholarships, bursaries and other ways.]]></description><link>https://optimizedforfreedom.com/osap-in-2026-27-a-parents-guide-to-applying-avoiding-the-traps-and-getting-every-grant-dollar/</link><guid isPermaLink="false">6abb9edebf4e3404a575fc39</guid><category><![CDATA[Personal Finance Basics]]></category><category><![CDATA[Advice]]></category><category><![CDATA[Careers]]></category><category><![CDATA[Expenses]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Tue, 29 Sep 2026 11:23:52 GMT</pubDate><content:encoded><![CDATA[<p>A couple of family members are heading to university in 2027 and have been talking about ways to cover the costs. Of course, OSAP is one of the ways they are considering doing that. So I wanted to learn a little bit about OSAP and help them out. OSAP is one of those programs everyone has heard of and almost nobody understands until they&apos;re filling it out. This year is a strange one to learn it. Ontario changed the rules in February, tuition went up for the first time since 2019, and a lot of what&apos;s online is already out of date.</p><h2 id="first-the-good-newsyou-probably-havent-missed-it"><strong>First, the good news - you probably haven&apos;t missed it</strong></h2><p>It&apos;s the end of September, and the school year has started. That does not mean the OSAP window has closed. And this is great news if you are reading this post in a panic.</p><p>Full-time students can apply for 2026&#x2013;27 funding up to 60 days before the end of their study period. For a typical September-to-April program, that lands around the beginning of March 2027. Supporting documents are due to the school&apos;s financial aid office 40 days before the study period ends.</p><p>The catch is timing. Processing usually takes 4 to 6 weeks once everything is in, so if tuition is already due, call the school&apos;s financial aid office. Most schools offer a tuition deferral or a short-term emergency loan (often 90 days) for students waiting on OSAP.</p><h2 id="what-osap-actually-is"><strong>What OSAP actually is</strong></h2><p>OSAP is one application that gets you assessed for money from <strong>two governments</strong>, in <strong>two forms</strong>:</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="96"><col width="271"><col width="258"></colgroup><tbody><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><br></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Federal (Canada)</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Provincial (Ontario)</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Grants</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> (don&apos;t repay)</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Canada Student Grant for Full-Time Students: up to $4,200/year</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Ontario Student Grant: now capped at 25% of your provincial funding</span></p></td></tr><tr style="height:52.75pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Loans</span><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;"> (repay)</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Canada Student Loan: up to $300 per week of study, 0% interest, permanently</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Ontario Student Loan: interest-free while in full-time school, then prime + 1%</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>You don&apos;t choose which programs to apply for. Submit one application and you&apos;re automatically considered for all of them. The money can cover tuition, books, equipment, compulsory fees, living expenses (full-time students only), and child care.</p><p>To qualify, the student must be an Ontario resident and a Canadian citizen, permanent resident, or protected person, attending an OSAP-approved school (which can be anywhere in the world).</p><h2 id="what-changed-this-year"><strong>What changed this year</strong></h2><p>On February 12, 2026, Ontario announced changes that apply to programs starting on or after August 1, 2026:</p><ul><li><strong>The provincial grant share dropped.</strong> Students at public colleges and universities can now receive at most 25% of their provincial OSAP as grants. At least 75% is loans. Under the old rules, grants could make up as much as 85%.</li><li><strong>Career college students get no provincial grants at all.</strong> Their entire provincial package is loans.</li><li><strong>Tuition is unfrozen.</strong> Public colleges and universities can raise domestic tuition by up to 2% a year for three years.</li></ul><p>The federal side held steady. Ottawa extended its enhanced Canada Student Grants (40% above pre-2023 levels) and the $300/week loan limit through 2026&#x2013;27, though it now restricts the full-time grant for students at most private for-profit schools.</p><p>Here&apos;s the part that matters most for families - total OSAP may not drop, but the mix shifts toward repayable debt. If your provincial assessment comes to $10,000, a high-need student could previously have received up to $8,500 of that as a grant. Now the maximum is $2,500 in grants and $7,500 in loans.</p><p>So the question isn&apos;t just &quot;how much can we get?&quot; It&apos;s &quot;how much of it do we have to pay back, and at what interest rate?&quot;</p><h2 id="how-osap-decides-how-much-you-get"><strong>How OSAP decides how much you get</strong></h2><p>OSAP is needs-based. The formula is simple in concept:</p><p><strong>Allowable costs &#x2212; expected contributions = financial need</strong></p><p>Allowable costs include tuition, fees, books, supplies, a computer, living expenses, transportation, and child care.</p><p>Expected contributions are where the surprises live:</p><ul><li><strong>The student.</strong> For 2026&#x2013;27, OSAP expects the student to contribute $3,600, roughly a summer job&apos;s earnings. This is waived in some situations, such as students with children, Indigenous students, or youth receiving continued care from a Children&apos;s Aid Society.</li><li><strong>Student assets.</strong> Savings in the student&apos;s name can count.</li><li><strong>Parents.</strong> If the student is &quot;dependent,&quot; the parents&apos; income factors into the calculation.</li></ul><h3 id="is-your-child-dependent-or-independent"><strong>Is your child dependent or independent?</strong></h3><p>For OSAP, a single student is <strong>dependent</strong> if they&apos;re not married or common-law, have no children, haven&apos;t worked full-time for 24 months in a row, and have been out of high school for:</p><ul><li>less than <strong>6 years</strong> (provincial calculation), or</li><li>less than <strong>4 years</strong> (federal calculation)</li></ul><p>That creates a quirk. A student who&apos;s been out of high school for four or five years is independent for the federal portion but still dependent for the provincial one.</p><p>Most first- and second-year students coming straight from high school are dependent, which means parents&apos; tax information is required.</p><h3 id="what-about-the-resp"><strong>What about the RESP?</strong></h3><p>Good news - RESP money doesn&apos;t affect how much OSAP you can get. Ontario says so directly. By the way, read the <a href="https://optimizedforfreedom.com/resps-explained-a-primer-for-canadian-parents/" rel="noreferrer">RESP</a> post I wrote earlier. You may also find my <a href="https://optimizedforfreedom.com/my-resp-investment-strategy/" rel="noreferrer">RESP investment strategy</a> useful if you are a diy-er.</p><h2 id="how-to-apply-step-by-step"><strong>How to apply, step by step</strong></h2><ol><li><strong>Confirm the school and program are OSAP-approved</strong> using the school search on the OSAP site.</li><li><strong>Run the OSAP Aid Estimator.</strong> It&apos;s been updated for the 2026&#x2013;27 rules. Do this before you build a budget.</li><li><strong>Register for an OSAP account.</strong> The student needs their SIN. Write down the OSAP Access Number and password somewhere you won&apos;t lose them.</li><li><strong>Complete the information module.</strong> Full-time applicants now go through a short interactive module before applying.</li><li><strong>Fill out the application.</strong> It takes about 15 minutes if you have everything ready: school and program details, the student&apos;s tax information, and the parents&apos; SINs and tax information. If your kid is choosing between schools, submit an application for each one.</li><li><strong>Sign the Master Student Financial Assistance Agreement (MSFAA).</strong> The National Student Loans Service Centre (NSLSC) emails the student when it&apos;s time. This is a lifetime agreement, so it only needs doing once for full-time studies.</li><li><strong>Upload the signature and declaration pages</strong> and any other documents the account asks for.</li><li><strong>Turn on email notifications</strong> so you hear about every status change.</li></ol><p>Money usually arrives in two installments - one at the start of the study period (around September) and the rest halfway through (around January). It&apos;s released only after the school confirms enrolment, and the NSLSC can send the tuition portion straight to the school.</p><p>And the one that trips up returning students - you have to reapply every single year. Last year&apos;s approval doesn&apos;t carry over. If you qualify for OSAP, make sure to set up a recurring annual reminder.</p><h2 id="what-to-watch-out-for"><strong>What to watch out for</strong></h2><p>These are the rules that can quietly turn free money into debt.</p><p><strong>Parents need to file taxes.</strong> OSAP verifies income with the Canada Revenue Agency. If the family&apos;s income can&apos;t be verified within one year of the start of studies, the Ontario Student Grant converts to a loan. If a parent has foreign income or doesn&apos;t file in Canada, expect to provide documentation.</p><p><strong>Report income accurately.</strong> Income on the application that&apos;s significantly different from what CRA has on file can make the student ineligible. Unreported income discovered later can convert grants into loans.</p><p><strong>Watch the course load.</strong> Full-time means at least 60% of a full course load. Dropping a course triggers a reassessment. Withdrawing or falling below the minimum in the <strong>first 30 days</strong>, without returning full-time within five months, can convert grants to loans. Talk to financial aid <em>before</em> dropping anything.</p><p><strong>Keep the grades up.</strong> To stay eligible, a full-time student must pass at least 60% of a full course load (40% for students with a disability, 100% at private institutions in Ontario). Repeated program switches and withdrawals also count against academic progress.</p><p><strong>The Ontario portion charges interest during the grace period.</strong> Repayment starts six months after the student finishes school, but interest on the provincial loan accrues during those six months and gets added to the balance. The federal portion stays at 0%.</p><p><strong>There&apos;s a lifetime cap.</strong> Students can receive OSAP for up to 340 weeks (400 for doctoral studies, up to 520 for students with disabilities). Switching programs burns weeks.</p><p><strong>Check career colleges carefully.</strong> Provincial funding there is now 100% loans, and the province disqualified several career colleges from OSAP this summer. Check the approved-school list before enrolling.</p><p><strong>Don&apos;t let it default.</strong> A loan goes into default after 270 days of missed payments. After that, the province can garnish wages, place liens on property, take tax refunds and benefits, and report to credit bureaus.</p><h2 id="how-to-maximize-the-benefit"><strong>How to maximize the benefit</strong></h2><p><strong>1. Apply even if you think you earn too much.</strong> Federal grants are income-tested, but the cut-offs are higher than many families assume. Many schools also use the OSAP application to assess students for their own bursaries.</p><p><strong>2. Take every grant. Think harder about the loan.</strong> Students can decline the loan after the application is approved. But don&apos;t reflexively say no.</p><p>The federal portion is the cheapest money your kid will ever borrow at 0% interest, before and after graduation. The Ontario portion is interest-free during school, then prime + 1%. If the alternative is a line of credit, a credit card, or you draining your emergency fund, OSAP loans win.</p><p>If you accept the loan as a cushion rather than out of need, keep it safe and liquid (for example, a high-interest savings account in the student&apos;s TFSA, since they get contribution room at 18) and repay the Ontario portion quickly. Don&apos;t invest borrowed money in anything that can drop in value right before tuition is due.</p><p><strong>3. Ask for a funding review if things change.</strong> If a parent loses a job, the family faces unexpected costs, or you can&apos;t make the expected contributions, the financial aid office can review the assessment. The request has to reach them at least 40 days before the study period ends.</p><p><strong>4. Flag special circumstances.</strong> Additional funding may be available for Indigenous students, students with a permanent or persistent/prolonged disability, and youth in or from extended society care. On the federal side, there&apos;s a separate Canada Student Grant for Students with Disabilities ($2,800/year) and up to $2,240 per dependant per year for students who have children.</p><p><strong>5. Keep old loans interest-free.</strong> If your child stays in full-time school but stops receiving OSAP one year, submit a Continuation of Interest-Free Status application so earlier loans don&apos;t start accruing interest.</p><p><strong>6. Understand repayment before graduation.</strong></p><ul><li>The standard repayment term is 9&#xBD; years, extendable to 14&#xBD; (lower payments, more interest).</li><li>The grace period can be extended another six months for graduates who own a new Ontario business or work or volunteer with a not-for-profit.</li><li>The <strong>Repayment Assistance Plan (RAP)</strong> is the safety net. A single borrower earning under $2,083 a month gross makes no payments, and the government covers the interest. Affordable payments never exceed 20% of family income.</li><li>Lump-sum payments are allowed any time with no penalty.</li></ul><p><strong>7. Claim the tax credits.</strong> The student can transfer up to $5,000 of their current-year federal tuition amount to a parent, and unused amounts carry forward. Interest paid on government student loans also qualifies for a non-refundable tax credit.</p><h2 id="scholarships-and-bursaries-connected-to-osap"><strong>Scholarships and bursaries connected to OSAP</strong></h2><p>To be clear about something that confused us - OSAP itself doesn&apos;t award merit scholarships. It&apos;s a needs-based program of grants and loans. But several sources of free money plug directly into it.</p><p><strong>Canada Student Grants and the Ontario Student Grant -</strong> These are automatic. If you qualify, they&apos;re built into the OSAP package.</p><p><strong>Student Access Guarantee (SAG) -</strong> Ontario&apos;s public colleges and universities provide extra aid to full-time OSAP students whose costs aren&apos;t fully covered, in the form of bursaries, scholarships, or work-study jobs. The province says an enhanced SAG will cover this year&apos;s tuition increase for low-income students. Some schools assess this automatically from the OSAP application while others need a separate bursary application. Just ask.</p><p><strong>Ontario Learn and Stay Grant -</strong> This one is generous and underused. It covers tuition, compulsory fees, books, and other direct costs for priority health programs (practical nursing, paramedic, medical laboratory technology, nursing degrees, and nurse practitioner programs) at eligible campuses in Northern, Eastern, and Southwestern Ontario. The catch is a service commitment - the student must work in the same region for six months for every funded year of study, or the grant becomes a loan. It&apos;s applied for through the OSAP account and must be reapplied for each year.</p><p><strong>Graduate scholarships.</strong> Grad students can apply through their school&apos;s graduate office for the Ontario Graduate Scholarship or the Queen Elizabeth II Graduate Scholarship in Science and Technology, worth $5,000 per term up to $15,000 a year.</p><p><strong>Outside OSAP</strong>, look at:</p><ul><li><strong>Entrance scholarships</strong> from the school, often automatic based on admission average. Check whether a separate application is needed.</li><li><strong>In-course awards</strong> for returning students, which fewer people apply for.</li><li><strong>Databases</strong> like StudentAwards and ScholarshipsCanada.</li><li><strong>Parents&apos; employers, unions, and professional associations</strong>, which often have scholarships for members&apos; children with tiny applicant pools.</li><li><strong>Local groups</strong> like service clubs and credit unions. Small, local, unglamorous awards have the least competition.</li></ul><p>Report any scholarships and bursaries on the OSAP account, and ask the financial aid office how they&apos;ll affect the assessment.</p><h2 id="other-ways-to-pay-for-school"><strong>Other ways to pay for school</strong></h2><ul><li><strong>RESP withdrawals.</strong> The growth and grant portion (Educational Assistance Payments) is taxed in the student&apos;s hands, usually at little or no tax.</li><li><strong>Summer and part-time work.</strong> OSAP already assumes a $3,600 student contribution. Report income earned during the study period.</li><li><strong>Co-op programs.</strong> Paid work terms can cover much of the next term&apos;s costs. This is how most engineering students pay for school.</li><li><strong>Living at home</strong>, the biggest cost reducer if the school is within commuting distance.</li><li><strong>Work-study jobs</strong> through the school.</li><li><strong>A student line of credit</strong>, as a last resort. Unlike OSAP, interest usually starts from the first dollar borrowed.</li></ul><h2 id="our-family-checklist"><strong>Our family checklist</strong></h2><ul><li>Confirm the study period end date and OSAP deadline</li><li>Make sure everyone&apos;s most recent tax returns are filed</li><li>Run the 2026&#x2013;27 Aid Estimator</li><li>Apply, sign the MSFAA, upload documents</li><li>Ask the financial aid office about SAG bursaries, emergency loans, and scholarships</li><li>Decide as a family whether to accept the loan</li><li>Check with financial aid before dropping any course</li><li>Calendar: second installment in January, reapply for 2027&#x2013;28 next spring</li></ul><h2 id="the-bottom-line"><strong>The bottom line</strong></h2><p>The 2026-27 changes don&apos;t make OSAP less useful. They make it less forgiving. More of the package has to be paid back, so the families who come out ahead will be the ones who apply early, claim every grant, keep their paperwork clean, and treat the loan as a deliberate choice rather than a default.</p><p>For us, the most valuable part wasn&apos;t the money. It was our kid learning what&apos;s free, what&apos;s borrowed, and what it will cost later.</p><p><em>Rules and amounts are current as of September 2026. Always confirm details on ontario.ca and with your school&apos;s financial aid office. This post is general information, not financial advice.</em></p>
<!--kg-card-begin: html-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "optimizedforfreedom.com/osap-in-2026-27-a-parents-guide-to-applying-avoiding-the-traps-and-getting-every-grant-dollar/",
      "headline": "OSAP in 2026–27: A Parent's Guide to Applying, Avoiding the Traps, and Getting Every Grant Dollar",
      "description": "OSAP changed for 2026–27: more loans, fewer grants. A parent's guide to applying, avoiding grant-to-loan traps, and finding every bursary and scholarship.",
      "image": "https://optimizedforfreedom.com/REPLACE-WITH-FEATURE-IMAGE.jpg",
      "datePublished": "2026-09-29",
      "dateModified": "2026-09-29",
      "inLanguage": "en-CA",
      "author": {
        "@type": "Person",
        "name": "Opti",
        "url": "https://optimizedforfreedom.com/"
      },
      "publisher": {
        "@type": "Organization",
        "name": "Optimized For Freedom",
        "url": "https://optimizedforfreedom.com/"
      },
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "optimizedforfreedom.com/osap-in-2026-27-a-parents-guide-to-applying-avoiding-the-traps-and-getting-every-grant-dollar/"
      },
      "about": [
        {
          "@type": "GovernmentService",
          "name": "Ontario Student Assistance Program (OSAP)",
          "provider": {
            "@type": "GovernmentOrganization",
            "name": "Government of Ontario"
          }
        }
      ],
      "keywords": "OSAP 2026-27, OSAP changes, OSAP grants and loans, how to apply for OSAP, Canada Student Grant, Student Access Guarantee, Ontario Learn and Stay Grant, paying for university Ontario"
    },
    {
      "@type": "FAQPage",
      "@id": "optimizedforfreedom.com/osap-in-2026-27-a-parents-guide-to-applying-avoiding-the-traps-and-getting-every-grant-dollar/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Is it too late to apply for OSAP for 2026–27?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Probably not. Full-time students can apply up to 60 days before the end of their study period, which for a typical September-to-April program falls around early March 2027. Processing takes about 4 to 6 weeks, so if tuition is due now, ask your school's financial aid office about a tuition deferral or a short-term emergency loan."
          }
        },
        {
          "@type": "Question",
          "name": "What changed with OSAP in 2026–27?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "For programs starting on or after August 1, 2026, students at public colleges and universities can receive at most 25% of their provincial OSAP funding as grants, down from as much as 85%. At least 75% is now loans. Career college students receive all of their provincial funding as loans. Federal Canada Student Grants were not cut."
          }
        },
        {
          "@type": "Question",
          "name": "Does OSAP count my parents' income?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes, if the student is dependent. A single student with no children is usually dependent if they have been out of high school for less than 6 years (provincial calculation) or less than 4 years (federal calculation) and have not worked full-time for 24 months in a row. Most students coming straight from high school are dependent."
          }
        },
        {
          "@type": "Question",
          "name": "Does using RESP money reduce OSAP?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. The Ontario government states that using money from a Registered Education Savings Plan will not affect how much OSAP a student can receive."
          }
        },
        {
          "@type": "Question",
          "name": "Do OSAP loans charge interest?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "The federal Canada Student Loan portion is interest-free, both during and after school. The Ontario Student Loan portion is interest-free while the student is in full-time studies, then charges prime plus 1%. Interest on the Ontario portion starts during the six-month grace period after the student leaves school."
          }
        },
        {
          "@type": "Question",
          "name": "Can an OSAP grant turn into a loan?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Grants can be converted to loans if the student withdraws or drops below the minimum course load in the first 30 days and does not return full-time within five months, if a reassessment finds they were not entitled to the grant, or if family income cannot be verified within one year of the start of studies."
          }
        },
        {
          "@type": "Question",
          "name": "How much is the Canada Student Grant for 2026–27?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Eligible full-time students can receive up to $4,200 a year through the Canada Student Grant for Full-Time Students. Students with disabilities may also qualify for $2,800 a year, and students with children may receive up to $2,240 per dependant per year. The amount depends on family income and assessed need."
          }
        },
        {
          "@type": "Question",
          "name": "Does OSAP offer scholarships?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "OSAP is a needs-based program of grants and loans, not merit scholarships. However, the OSAP application can connect students to other aid: the Student Access Guarantee at Ontario public colleges and universities, the Ontario Learn and Stay Grant for priority health programs, and school bursaries. Graduate students can apply for the Ontario Graduate Scholarship."
          }
        },
        {
          "@type": "Question",
          "name": "Do you have to reapply for OSAP every year?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Students must submit a new OSAP application for each academic year, even if they received funding the year before."
          }
        },
        {
          "@type": "Question",
          "name": "What happens if my child can't afford the loan payments after graduation?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "They can apply for the Repayment Assistance Plan through the National Student Loans Service Centre. Payments are based on family income and size and never exceed 20% of family income. A single borrower with gross monthly income under $2,083 makes no payments, and the government covers the interest."
          }
        }
      ]
    }
  ]
}
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Where Does Your Donation Actually Go? Fundraising Costs, Tax Credits, and How to Pick a Charity Worth Supporting]]></title><description><![CDATA[Are you thinking of donating to a charity? Are you wondering if your money will go to causes or into someone's pocket? I was also curious. In this post, I dive into admin costs, cause costs, how donations affect your taxes and how to pick a charity.]]></description><link>https://optimizedforfreedom.com/where-does-your-donation-actually-go-fundraising-costs-tax-credits-and-how-to-pick-a-charity-worth-supporting/</link><guid isPermaLink="false">6ab65928bf4e3404a575fc23</guid><category><![CDATA[Advice]]></category><category><![CDATA[Personal Finance Basics]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Fri, 25 Sep 2026 11:25:01 GMT</pubDate><content:encoded><![CDATA[<p>People ask you for donations all the time. At work. At the checkout counter (&quot;would you like to round up today?&quot;). On the street, from someone in a branded vest with a clipboard. At your front door. On the phone during dinner.</p><p>All of this is fundraising, and it costs money. Canvassers get paid, often by third-party firms that charities hire. Call centres cost money. So do mailers, gala dinners, and the donor databases that make sure you hear from a charity again. Every dollar spent on asking is a dollar that doesn&apos;t reach the cause.</p><p>I thought about this recently when a charity I had donated to years ago started calling me over and over. One donation, and now I was a lead in their pipeline. That made me wonder how much of what I gave actually reached the people it was meant to help, and how much went into finding the next donor (me, again).</p><p>Fundraising is only one of the costs a charity carries. There&apos;s also administration like rent, accounting, executive salaries, audits. Then there&apos;s the tax side. Donations get you a tax credit in Canada, and the size of that credit depends on how and when you give.</p><p>This post covers all of it:</p><ul><li>How the donation tax credit works in 2026, and a few ways to get more out of it</li><li>How to find a charity&apos;s real fundraising and admin costs, for free, in about ten minutes</li><li>What those numbers do and don&apos;t tell you</li><li>A checklist for choosing a charity</li><li>How to make the phone calls stop</li></ul><h2 id="how-donations-affect-your-taxes"><strong>How donations affect your taxes</strong></h2><p>First off - it is a credit, not a deduction!</p><p>In Canada, donating to a registered charity gets you a non-refundable tax credit. It lowers the tax you owe, but it won&apos;t create a refund if you don&apos;t owe tax. (If you&apos;ve read US content about &quot;deductions,&quot; &quot;itemizing,&quot; or the new 2026 US rules, none of that applies here.)</p><p>The credit has two tiers, and the tiers matter a lot:</p><p><strong>Federal (2026):</strong></p><ul><li><strong>14%</strong> on the first $200 of donations in a year. The lowest personal income tax rate was reduced to 14.5% for 2025 and 14% for 2026, and this is the rate used for the first $200 of donations. Many older articles still say 15%.</li><li><strong>29%</strong> on everything above $200</li><li><strong>33%</strong> on donations above $200, to the extent your income is in the top federal bracket. The top federal rate starts at $258,482 of taxable income in 2026.</li></ul><p><strong>Provincial -</strong> every province adds its own credit on top. In Ontario, the provincial credit is 5.05% on the first $200 and 11.16% above, which puts the combined federal and Ontario rate on amounts above $200 at roughly 40.16%. Once Ontario&apos;s surtaxes apply at higher incomes, the combined credit gets closer to 46%.</p><p>The takeaway - the first $200 you give in a year is the least tax-efficient part of your giving, and every dollar after it earns roughly twice as much back.</p><h3 id="a-worked-example-ontario-80000-income-500-donation"><strong>A worked example (Ontario, $80,000 income, $500 donation)</strong></h3>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="82"><col width="181"><col width="67"></colgroup><tbody><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Portion</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Rate (federal + Ontario)</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Credit</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">First $200</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">14% + 5.05% = 19.05%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$38.10</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Next $300</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">29% + 11.16% = 40.16%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$120.48</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Total</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><br></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$158.58</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>The $500 donation costs you about $341 after tax. You&apos;re still out of pocket, and that&apos;s how it should be. A donation is a gift that the tax system partly subsidizes. It is not a way to make money.</p><h3 id="four-ways-to-get-more-out-of-the-credit"><strong>Four ways to get more out of the credit</strong></h3><p><strong>1. Bundle your donations.</strong> You don&apos;t have to claim a donation in the year you make it. Donations can be carried forward for up to 5 years, so you can save a few years of receipts and claim them together. That way you only pay the low first-tier rate once instead of every year.</p><p>Say you give $200 a year for five years (Ontario, same income as above):</p><ul><li>Claimed each year: 5 &#xD7; $38.10 = <strong>$190.50</strong></li><li>Claimed together in year five: $38.10 + ($800 &#xD7; 40.16%) = <strong>$359.38</strong></li></ul><p>Same donations, about $169 more in credits.</p><p><strong>2. Pool donations with your spouse.</strong> The CRA lets either spouse claim all of a couple&apos;s donations on their own return, no matter who actually made the donation. Combining receipts gets you past the $200 threshold faster. Watch that the claiming spouse actually owes enough tax to use a non-refundable credit. In most provinces the rates are flat, so it usually doesn&apos;t matter which spouse claims. It does matter if one of you is in the top federal bracket (33%) or subject to Ontario surtax.</p><p><strong>3. Donate investments instead of cash.</strong> If you hold stocks or ETFs with large unrealized gains in a non-registered account, you can transfer them to the charity directly instead of selling them and donating the proceeds. Donating publicly traded stocks, mutual funds, or ETFs directly to a registered charity gives a 0% capital gains inclusion rate on the accrued gain, so you pay no capital gains tax, and you still get a receipt for the full fair market value. Two caveats - this only makes sense for non-registered holdings (TFSA and RRSP assets don&apos;t have capital gains tax to avoid), and the charity has to be set up to accept securities. Most large charities are, and platforms like CanadaHelps can handle it for smaller ones.</p><p><strong>4. Know the ceiling.</strong> You can claim eligible donations of up to 75% of your net income in the year of the gift, and unused amounts carry forward for up to 5 years. Most people never get near that, but it matters if you&apos;re planning a large one-time gift.</p><h3 id="what-doesnt-count"><strong>What doesn&apos;t count</strong></h3><ul><li>Donations to organizations that aren&apos;t registered charities or other qualified donees (GoFundMe campaigns for individuals, most non-profits, political parties, which have their own separate credit)</li><li>The value of anything you get back. If a gala ticket costs $250 and includes a $100 dinner, your receipt should be for $150.</li><li>Anything without an official donation receipt showing the charity&apos;s registration number</li></ul><p>Claims go on Schedule 9 of your return. Keep your receipts, because the CRA can ask for them.</p><h2 id="where-does-the-money-actually-go"><strong>Where does the money actually go?</strong></h2><p>A charity&apos;s spending falls roughly into three buckets:</p><ol><li><strong>Charitable programs -</strong> the work you actually want to fund</li><li><strong>Fundraising -</strong> canvassers, telemarketing, mail campaigns, events, donor-management software, the firm that keeps calling you</li><li><strong>Management and administration -</strong> finance, HR, audits, rent, leadership</li></ol><p>Buckets 2 and 3 together are &quot;overhead.&quot; Neither is bad in itself. A charity with no accountant is a charity you shouldn&apos;t trust with your money. The question is whether the overhead is reasonable.</p><h3 id="what-the-cra-considers-reasonable"><strong>What the CRA considers reasonable</strong></h3><p>The CRA&apos;s fundraising guidance uses a <strong>fundraising ratio</strong>. It adds a charity&apos;s receipted donations and other fundraising revenue from its annual T3010 return, then divides fundraising expenses by that total.</p><ul><li>Under 35%, the ratio is unlikely to raise questions or concerns from the CRA.</li><li>At 35% and above, the CRA looks at the average over recent years to see whether there&apos;s a pattern of high fundraising costs, and the higher the ratio, the more likely it is to be concerned.</li><li>Above 70% is a red flag, and the CRA requires a detailed explanation and justification.</li></ul><p>Think about what that means. A charity can spend 34 cents of every dollar it raises on raising more money and stay comfortably clear of regulatory attention. That&apos;s before admin costs.</p><p>This isn&apos;t hypothetical. When Charity Intelligence Canada reviewed Canada&apos;s top 100 charities, it found that 14% of them exceeded the CRA&apos;s guideline by spending more than 35% of donations on fundraising, with some spending as much as 50%.</p><h3 id="how-to-look-up-any-charitys-numbers-yourself"><strong>How to look up any charity&apos;s numbers yourself</strong></h3><p>Every registered charity files a T3010 information return with the CRA every year, and much of it is public.</p><ol><li>Go to the CRA&apos;s List of charities (search &quot;CRA charities listing&quot; or go through canada.ca).</li><li>Search for the charity by name. Confirm it&apos;s listed as Registered, and note its business number.</li><li>Open the most recent return and look at the financial summary. You&apos;ll see total revenue split into receipted donations, government funding, and other sources, plus expenditures split into charitable programs, management and administration, and fundraising. It also shows staff compensation ranges.</li><li>Do the math:<ul><li><strong>Fundraising ratio</strong> = fundraising expenses &#xF7; (receipted donations + other fundraising revenue)</li><li><strong>Admin ratio</strong> = management and admin &#xF7; total expenditures</li></ul></li><li>Look at <strong>three years</strong>, not one. A single bad year can be a building project or a new campaign. Three bad years is a pattern.</li></ol><h3 id="the-shortcutcharity-intelligence-canada"><strong>The shortcut - Charity Intelligence Canada</strong></h3><p>If you don&apos;t want to dig through filings, Charity Intelligence (charityintelligence.ca) does it for you for hundreds of larger Canadian charities. Its star ratings are based on five things - donor reporting, financial transparency, funding need, cents to the cause, and demonstrated impact.</p><p>&quot;Cents to the cause&quot; is the easiest to read. It&apos;s 100% minus the fundraising ratio minus the administrative cost ratio. Below 65 cents, Ci warns donors the charity may not be operating efficiently, and below 50 cents it flags a stronger warning.</p><p>For reference, Ci&apos;s Top 100 charities averaged 18% overhead, with 82 cents going to the cause, while the rest of the charities it rated averaged 29%. Some household names land lower than you&apos;d expect. Look up your favourites before assuming.</p><h3 id="why-the-lowest-overhead-isnt-automatically-the-best"><strong>Why the lowest overhead isn&apos;t automatically the best</strong></h3><p>Don&apos;t just pick whichever charity has the lowest overhead. Three reasons:</p><p><strong>Cheap isn&apos;t the same as effective.</strong> A charity can have low overhead but run programs that don&apos;t actually create change. A food bank that spends 5% on admin and one that spends 15% but tracks outcomes and works efficiently aren&apos;t in the order the overhead ratio suggests.</p><p><strong>Some overhead is legitimate.</strong> The CRA itself may accept higher fundraising costs for charities working on causes with limited public appeal, as long as the costs are reasonable and controlled. Researching a rare disease is harder to raise money for than a children&apos;s hospital. Small and new charities also tend to have higher ratios.</p><p><strong>Some charities don&apos;t need your money right now.</strong> This is the metric most donors never check. Ci compares a charity&apos;s cash and investments to its annual program spending. Its top-rated charities held about 1 year of reserves, compared with 2.9 years for the rest, and 125 Canadian charities had enough in reserves to cover five or more years of programs, totalling $14.6 billion. Some reserves are prudent. Years and years of them, while still running aggressive phone campaigns, is a reason to ask questions.</p><p>So overhead is a <strong>screen</strong>, not a verdict. Use it to rule out the bad cases, then decide based on impact and need.</p><h2 id="a-checklist-for-choosing-a-charity"><strong>A checklist for choosing a charity</strong></h2><ol><li><strong>Start with the cause, not the ask.</strong> Decide what you want your money to do before someone at the checkout decides for you. Most spontaneous giving goes to whoever happened to ask.</li><li><strong>Confirm it&apos;s registered.</strong> Check the CRA list. No registration number means no receipt and no credit.</li><li><strong>Check the ratios.</strong> Fundraising under 35% as a floor, ideally well below it. Look at three years.</li><li><strong>Check reserves.</strong> Is there a real need for more funding, or is the money being stockpiled?</li><li><strong>Check results reporting.</strong> Does the charity publish what it achieved (outcomes), not just what it did (activities)? &quot;We served 10,000 meals&quot; is an activity. &quot;Participants were still housed a year later&quot; is an outcome.</li><li><strong>Give fewer, larger gifts.</strong> Five $50 donations to five charities creates five donor records and five fundraising pipelines targeting you. One $250 donation to a charity you&apos;ve researched costs less to process and is easier to track.</li><li><strong>Give directly.</strong> If a street canvasser convinced you, go home and donate through the charity&apos;s own website instead. Third-party canvassing firms are typically paid by the charity, and you avoid signing up for a monthly plan under pressure.</li><li><strong>Consider unrestricted gifts.</strong> Money earmarked for a specific project can be harder for a well-run charity to use where it&apos;s needed most. If you trust the organization, let it decide.</li></ol><h2 id="how-to-make-the-calls-stop"><strong>How to make the calls stop</strong></h2><p>Signing up for the National Do Not Call List won&apos;t solve this. Canadian registered charities are exempt from the list, but they are required to keep their own internal do-not-call list and add people who ask.</p><p>So the next time they call:</p><ul><li>Ask to be added to the charity&apos;s internal do-not-call list. Say those words exactly.</li><li>Ask them to stop sharing or trading your contact information with other organizations.</li><li>If you still want to support them, tell them you prefer email only and will donate on your own schedule.</li><li>If a third-party firm is calling on the charity&apos;s behalf, contact the charity directly as well.</li></ul><p>I did exactly this. It took one call, and if the charity handles it properly, it&apos;s the last call.</p><h2 id="the-bottom-line"><strong>The bottom line</strong></h2><p>Giving is one of the best things you can do with money, and the tax system gives a meaningful portion back. But you should know where your dollar goes. A few minutes on the CRA charity list or Charity Intelligence tells you more than any canvasser&apos;s pitch. Bundle your receipts, pool them with your spouse, donate appreciated investments if you have them, and give on purpose rather than because someone happened to ask.</p><p><em>This post is for general information and isn&apos;t tax advice. Rates are for the 2026 tax year. Check the CRA&apos;s current figures or talk to a tax professional before planning a large gift.</em></p>
<!--kg-card-begin: html-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "optimizedforfreedom.com/where-does-your-donation-actually-go-fundraising-costs-tax-credits-and-how-to-pick-a-charity-worth-supporting/",
      "headline": "Where Does Your Donation Actually Go? Fundraising Costs, Tax Credits, and How to Pick a Charity Worth Supporting",
      "description": "Canadian donation tax credits for 2026, how to check a charity's fundraising and admin costs on the CRA list, and how to pick a charity worth supporting.",
      "datePublished": "2026-09-24",
      "dateModified": "2026-09-24",
      "inLanguage": "en-CA",
      "author": {
        "@type": "Person",
        "name": "Opti",
        "url": "https://optimizedforfreedom.com/"
      },
      "publisher": {
        "@type": "Organization",
        "name": "Optimized For Freedom",
        "url": "https://optimizedforfreedom.com/"
      },
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "optimizedforfreedom.com/where-does-your-donation-actually-go-fundraising-costs-tax-credits-and-how-to-pick-a-charity-worth-supporting/"
      },
      "about": [
        { "@type": "Thing", "name": "Charitable donation tax credit" },
        { "@type": "Thing", "name": "Charity fundraising costs" },
        { "@type": "Thing", "name": "Canada Revenue Agency" }
      ],
      "keywords": "charitable donation tax credit Canada 2026, charity fundraising ratio, charity administrative costs, CRA charities listing, T3010, donating stocks to charity, carry forward donations, Charity Intelligence Canada, do not call list charities"
    },
    {
      "@type": "FAQPage",
      "@id": "optimizedforfreedom.com/where-does-your-donation-actually-go-fundraising-costs-tax-credits-and-how-to-pick-a-charity-worth-supporting/",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "How much is the charitable donation tax credit in Canada for 2026?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "The federal credit is 14% on the first $200 of donations in a year and 29% on everything above $200. Donations above $200 get 33% to the extent your income falls in the top federal bracket, which starts at $258,482 in 2026. Each province adds its own credit on top. In Ontario, that's 5.05% on the first $200 and 11.16% above, for a combined rate of about 40% on amounts over $200."
          }
        },
        {
          "@type": "Question",
          "name": "Can I carry forward charitable donations to a future tax year?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Donations can be carried forward and claimed in any of the next five years. Bundling several years of small donations into one claim means you only get the lower first-tier rate on $200 once, so the rest of your giving earns the higher rate."
          }
        },
        {
          "@type": "Question",
          "name": "Can spouses combine their donation receipts?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. Either spouse or common-law partner can claim all of the couple's donations on their own return, regardless of who made them. Combining receipts gets you past the $200 threshold faster. Make sure the claiming spouse owes enough tax to use the non-refundable credit."
          }
        },
        {
          "@type": "Question",
          "name": "Is it better to donate stocks or cash to charity?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "If you hold publicly traded stocks or ETFs with unrealized gains in a non-registered account, donating them directly usually beats selling first and donating cash. You pay no capital gains tax on the accrued gain and still get a receipt for the full fair market value. This doesn't apply to TFSA or RRSP holdings."
          }
        },
        {
          "@type": "Question",
          "name": "What is a reasonable fundraising ratio for a Canadian charity?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Under CRA guidance, a fundraising ratio under 35% is unlikely to draw questions. At 35% and above, the CRA looks for a pattern of high costs over recent years, and above 70% the charity must justify its spending. As a donor, treat 35% as a ceiling, not a target."
          }
        },
        {
          "@type": "Question",
          "name": "How can I check a charity's fundraising and administrative costs?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Search the charity on the CRA's List of charities and open its most recent T3010 return. It shows receipted donations and spending on charitable programs, management and administration, and fundraising. Divide fundraising expenses by receipted donations plus other fundraising revenue to get the fundraising ratio, and compare at least three years. Charity Intelligence Canada also publishes ratings and a cents-to-the-cause figure for hundreds of larger charities."
          }
        },
        {
          "@type": "Question",
          "name": "Is a charity with the lowest overhead always the best choice?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No. Low overhead doesn't guarantee the programs work, some causes legitimately cost more to fundraise for, and some charities hold years of reserves and don't need more money right now. Use overhead to screen out bad cases, then decide based on results reporting, impact, and funding need."
          }
        },
        {
          "@type": "Question",
          "name": "How do I stop charities from calling me?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Registered charities are exempt from Canada's National Do Not Call List, but they must keep their own internal do-not-call list. Ask the caller to add you to the charity's internal do-not-call list and to stop sharing your contact information. If a third-party firm is calling on the charity's behalf, contact the charity directly as well."
          }
        }
      ]
    }
  ]
}
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Rising Bond Yields, Explained - Why They Push Up Interest Rates (and Why It's Not All Bad News)]]></title><description><![CDATA[What are bonds and how are they tied to interest rates? I had no idea so I did some research and put together my findings in plain English in this post.]]></description><link>https://optimizedforfreedom.com/rising-bond-yields-explained-why-they-push-up-interest-rates-and-why-its-not-all-bad-news/</link><guid isPermaLink="false">6aaa7d9dbf4e3404a575fc0e</guid><category><![CDATA[Investing]]></category><category><![CDATA[Personal Finance Basics]]></category><category><![CDATA[Savings]]></category><category><![CDATA[Housing]]></category><category><![CDATA[Early Retirement]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Wed, 16 Sep 2026 11:33:08 GMT</pubDate><content:encoded><![CDATA[<p><em>Note that figures are as of September 16, 2026. Markets move quickly, so check current numbers before acting on any of the below information.</em></p><p>If you&apos;ve looked at financial news lately, you&apos;ve seen a lot of alarming headlines about bond yields. The U.S. 10-year Treasury yield crossed 5% this week for the first time since 2007. Government bond markets in the U.S., the U.K., Japan, and Germany have all sold off at the same time. Here in Canada, the 5-year Government of Canada bond yield has climbed to roughly 3.6%, up from under 3% a year ago, and lenders have raised fixed mortgage rates several times since mid-August.</p><p>The message in most of these stories is simple - <strong>yields are rising, so interest rates are rising.</strong> But most articles skip the part where they explain <em>why</em> those two things are connected. If you&apos;ve ever nodded along without being sure what a &quot;yield&quot; actually is, this post is for you. Because like you, I had no idea what the connection was so I looked into it.</p><p>We&apos;ll cover what bond yields are, why they move opposite to bond prices, how they flow through to your mortgage and savings account, and, most importantly, when all of this can actually work in your favour.</p><h2 id="first-what-is-a-bond"><strong>First, what is a bond?</strong></h2><p>A bond is an IOU. When you buy a bond, you&apos;re lending money to a government or company. In return, they promise to:</p><ol><li>Pay you a fixed amount of interest every year (called the <strong>coupon</strong>), and</li><li>Give you your original money back on a set date (called <strong>maturity</strong>).</li></ol><p>Say the Government of Canada issues a 10-year bond for $1,000 with a 3% coupon. You pay $1,000 today, receive $30 every year for 10 years, and get your $1,000 back at the end.</p><p>The <strong>yield</strong> is the total return you earn if you buy the bond at today&apos;s price and hold it until it matures. When you buy a bond at $1,000 with a 3% coupon, your yield is 3%. Simple enough.</p><p>The twist is that bonds trade on the open market after they&apos;re issued, and their prices change every day.</p><h2 id="why-bond-prices-and-yields-move-in-opposite-directions"><strong>Why bond prices and yields move in opposite directions</strong></h2><p>Imagine you own that 3% bond. A year later, inflation has picked up and the government now has to offer 4% to attract new lenders. New bonds pay $40 a year. Yours still pays $30.</p><p>Now you want to sell your bond. Who would pay you $1,000 for a bond paying $30 when they could buy a brand-new one paying $40 for the same price? Nobody.</p><p>To sell, you have to drop your price. You&apos;d lower it until the buyer&apos;s total return (the $30 a year <em>plus</em> the gain from buying below $1,000 and getting the full $1,000 back at maturity) works out to about 4%. For a bond with roughly 9 years left, that price is around <strong>$920</strong>.</p><p>That&apos;s the whole relationship:</p><ul><li><strong>Bond prices fall &#x2192; yields rise.</strong> The buyer pays less for the same fixed payments, so their return goes up.</li><li><strong>Bond prices rise &#x2192; yields fall.</strong> The buyer pays more for the same payments, so their return goes down.</li></ul><p>Think of it as a seesaw. When one side goes up, the other goes down. When the news says &quot;bonds sold off,&quot; it means prices dropped, which is the same thing as saying yields rose.</p><p>A handy rule of thumb - a bond&apos;s <strong>duration</strong> (a number your bond ETF lists on its fact sheet) tells you roughly how much its price drops when yields rise by 1 percentage point. A bond fund with a duration of 7 will fall roughly 7% if yields jump 1%. Short-term bonds barely flinch. Long-term bonds swing hard.</p><h2 id="why-are-yields-rising-right-now"><strong>Why are yields rising right now?</strong></h2><p>Bond investors demand higher yields when they feel lending money is riskier or less rewarding. Several things are pushing in that direction at once:</p><p><strong>Inflation worries.</strong> Oil has pushed back above US$100 a barrel with renewed fighting in the Middle East. If inflation stays high, a fixed 3% payment buys less every year, so lenders want more to compensate. U.S. inflation held at 3.4% in August, and Canadian inflation is running around 3%.</p><p><strong>Central banks turning hawkish.</strong> Markets are betting heavily that the U.S. Federal Reserve raises its rate in September, which would be its first hike since 2023. When investors expect short-term rates to go up, longer-term yields tend to rise with them.</p><p><strong>Lots of borrowing.</strong> Governments are running large deficits, and companies (especially AI firms) are issuing huge amounts of debt. More bonds for sale means borrowers have to offer better terms to find buyers. TD Economics described this as a more lasting, structural pressure rather than a short-term blip.</p><p><strong>A bigger &quot;waiting fee.&quot;</strong> Investors are asking for extra compensation to lock their money up for 10 or 30 years when the future feels uncertain. Economists call this the <em>term premium</em>.</p><p>Canadian yields don&apos;t move in isolation. Our bond market is heavily influenced by the much larger U.S. market, so when Treasury yields jump, Canadian yields usually follow, even if our own economy is soft.</p><h2 id="how-bond-yields-become-the-interest-rates-you-pay"><strong>How bond yields become the interest rates you pay</strong></h2><p>Here&apos;s the part that confuses most people - <strong>the Bank of Canada hasn&apos;t raised rates.</strong> It held its policy rate at 2.25% on September 2, its seventh hold in a row. So why are mortgage rates going up?</p><p>Because in Canada, there are two different levers, and they&apos;re set by different players.</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="191"><col width="327"><col width="106"></colgroup><tbody><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Rate type</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">What drives it</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Who controls it</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Variable mortgages, lines of credit, HELOCs</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Bank prime rate (currently 4.45%), which follows the Bank of Canada&apos;s overnight rate</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The Bank of Canada</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Fixed mortgages (especially 5-year)</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Government of Canada bond yields of a similar term</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">The bond market</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p><strong>Fixed mortgage rates</strong> are built roughly like this:</p><p>5-year Government of Canada bond yield + lender&apos;s margin (about 1%) &#x2248; 5-year fixed mortgage rate</p><p>Why? When a bank lends you money at a fixed rate for five years, it needs to fund that loan for five years. Its benchmark for &quot;safe money over five years&quot; is the 5-year government bond. The bank adds a margin on top for its costs, risk, and profit. When the government bond yield rises, the bank&apos;s cost of funding rises too, and it passes that along.</p><p>That&apos;s why fixed rates can climb while the Bank of Canada sits still. It&apos;s exactly what happened in August, when lenders raised fixed rates twice within a week as the 5-year yield moved to 12-month highs.</p><p><strong>What it means in dollars -</strong> on a $500,000 mortgage with a 25-year amortization, going from 4.1% to 4.6% raises the monthly payment by about $140. Over a 5-year term, that&apos;s roughly $8,300 more.</p><p><strong>Variable rates</strong> follow prime, which only moves when the Bank of Canada moves. The Bank does watch bond markets and inflation closely, though, so persistent high yields can eventually influence its decisions too. A few of the big Canadian banks are already forecasting a hike before year-end, while most expect a hold.</p><p>Rising yields also ripple into other borrowing costs, like car loans and business loans, and they tend to put pressure on stock prices, because safe bonds start competing with stocks for investors&apos; money.</p><h2 id="when-rising-yields-falling-bond-prices-and-higher-rates-are-good-for-you"><strong>When rising yields, falling bond prices, and higher rates are <em>good</em> for you</strong></h2><p>Rising yields hurt borrowers and anyone who already owns long-term bonds. But for many investors, especially those still building wealth, higher yields can be a quiet gift. Here&apos;s where.</p><h3 id="1-your-cash-and-gics-earn-more"><strong>1. Your cash and GICs earn more</strong></h3><p>When bond yields rise, banks tend to raise rates on GICs and high-interest savings accounts, because those products compete with bonds for your money. An emergency fund or a house down payment sitting in a TFSA suddenly works harder. On $20,000, the difference between a 3% and a 4% GIC is $200 a year, tax-free in a TFSA.</p><h3 id="2-youre-still-adding-money-to-your-portfolio"><strong>2. You&apos;re still adding money to your portfolio</strong></h3><p>If you&apos;re contributing regularly, falling bond prices mean every dollar buys more bonds at better yields. You&apos;re effectively getting a sale.</p><p>This applies even if you don&apos;t own bonds directly. Asset allocation ETFs like XGRO hold roughly 20% in bonds and rebalance automatically. When bond prices drop, the fund buys more bonds at the lower price with your new contributions. For someone with 10+ years until they need the money, a bond sell-off today can mean higher returns later.</p><h3 id="3-the-drop-in-your-bond-fund-eventually-pays-you-back"><strong>3. The drop in your bond fund eventually pays you back</strong></h3><p>This one surprises people. When yields rise, your bond ETF&apos;s price falls. But the fund is constantly replacing old, low-paying bonds with new, higher-paying ones. Over time, that higher income makes up for the price drop.</p><p>The rough break-even is the fund&apos;s duration. A fund with a duration of 5 that falls 5% after a 1% jump in yields should, all else equal, recover that loss in about five years through higher income, and then keep earning more after that. If you plan to hold longer than the duration, rising yields are usually a net positive for you.</p><p>Canadian investors saw this play out after the brutal bond market of 2022. Bond funds that lost double digits that year started paying far more income in the years that followed.</p><h3 id="4-retirees-can-lock-in-better-income"><strong>4. Retirees can lock in better income</strong></h3><p>If you&apos;re approaching retirement, higher yields make it cheaper to build a reliable income stream. A GIC ladder, a bond ladder, or even an annuity pays more when rates are higher. The same retirement income costs you less capital to secure. For early retirees planning a &quot;bond tent&quot; or cash cushion around their retirement date, rising yields are welcome timing.</p><h3 id="5-future-returns-go-up"><strong>5. Future returns go up</strong></h3><p>Today&apos;s yield is one of the best predictors of what a high-quality bond will earn over the next several years. Starting yields near 3.6% on Canadian 5-year bonds are a much better deal than the sub-1% yields investors got in 2020 and 2021. Painful price drops now set up better returns later.</p><h2 id="when-its-not-so-good"><strong>When it&apos;s <em>not</em> so good</strong></h2><p>To keep this balanced, here&apos;s who feels the squeeze:</p><ul><li><strong>Mortgage holders renewing soon</strong>, especially on 5-year fixed terms. Shorter terms (2- or 3-year) are currently pricing lower at many lenders, and some borrowers are looking at variable rates, since the gap has widened.</li><li><strong>Investors who need to sell bonds soon.</strong> If you need the money before the price recovers, the loss is real. This is why money needed within a few years belongs in cash or GICs, not long-term bond funds.</li><li><strong>Holders of rate-sensitive stocks.</strong> REITs, utilities, and dividend stocks often dip when yields rise, since they carry debt and compete with bonds for income-seeking investors. Their dividends usually keep flowing, but the prices can wobble.</li><li><strong>Long-duration bond holders</strong>, whose funds will swing the most.</li></ul><h2 id="the-takeaway"><strong>The takeaway</strong></h2><p>Bond yields are simply the return investors demand for lending money. When investors get nervous about inflation or government debt, they demand more, bond prices fall, and yields rise. Canadian lenders use those yields to price fixed-rate mortgages, which is why your renewal quote can go up even when the Bank of Canada does nothing.</p><p>For borrowers, that&apos;s bad news. For savers, long-term investors, and people building retirement income, it can be the opposite. The key questions are - <em>When do you need this money?</em> and <em>Are you still adding to your portfolio?</em> If the answers are &quot;not for a while&quot; and &quot;yes,&quot; scary bond headlines may be working in your favour.</p><p>As always, this is general education, not personalized financial advice. If you&apos;re weighing a mortgage renewal or restructuring a portfolio, talk to a licensed professional who knows your full situation.</p>
<!--kg-card-begin: html-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Article",
      "@id": "optimizedforfreedom.com/rising-bond-yields-explained-why-they-push-up-interest-rates-and-why-its-not-all-bad-news/",
      "headline": "Rising Bond Yields, Explained: Why They Push Up Interest Rates (and Why It's Not All Bad News)",
      "description": "Bond yields are climbing and fixed mortgage rates are following. Here's a plain-English look at why, and when rising yields actually help Canadian investors.",
      "datePublished": "2026-09-16",
      "dateModified": "2026-09-16",
      "author": {
        "@type": "Person",
        "name": "Opti",
        "url": "https://optimizedforfreedom.com/"
      },
      "publisher": {
        "@type": "Organization",
        "name": "Optimized For Freedom",
        "url": "https://optimizedforfreedom.com/",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "optimizedforfreedom.com/rising-bond-yields-explained-why-they-push-up-interest-rates-and-why-its-not-all-bad-news/"
      },
      "inLanguage": "en-CA",
      "about": ["Bond yields", "Interest rates", "Fixed mortgage rates", "Bond ETFs", "Bank of Canada"],
      "keywords": "bond yields, interest rates, bond prices, fixed mortgage rates Canada, Government of Canada bond yield, Bank of Canada, bond ETF duration, GIC rates"
    },
    {
      "@type": "FAQPage",
      "@id": "optimizedforfreedom.com/rising-bond-yields-explained-why-they-push-up-interest-rates-and-why-its-not-all-bad-news/#faq",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "What is a bond yield in simple terms?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "A bond yield is the total return you earn if you buy a bond at today's price and hold it until it matures. It includes the bond's fixed interest payments plus any gain or loss between the price you paid and the amount you get back at maturity."
          }
        },
        {
          "@type": "Question",
          "name": "Why do bond prices fall when yields rise?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "A bond's interest payments are fixed. When new bonds start paying more, older bonds paying less become less attractive, so their prices drop until their total return matches the new, higher rates. Lower price for the same payments means a higher yield."
          }
        },
        {
          "@type": "Question",
          "name": "Why are fixed mortgage rates rising if the Bank of Canada hasn't raised rates?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Fixed mortgage rates in Canada are priced off Government of Canada bond yields of a similar term, not the Bank of Canada's overnight rate. Lenders take the 5-year bond yield and add a margin of roughly 1%. When bond yields climb, fixed rates usually follow, even if the Bank of Canada holds steady."
          }
        },
        {
          "@type": "Question",
          "name": "Do rising bond yields affect variable mortgage rates?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Not directly. Variable rates follow your lender's prime rate, which moves when the Bank of Canada changes its policy rate. Persistently high yields and inflation can influence the Bank's future decisions, though, so they can affect variable rates indirectly over time."
          }
        },
        {
          "@type": "Question",
          "name": "Should I sell my bond ETF when yields are rising?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Not necessarily. A bond fund's price falls when yields rise, but it then reinvests at higher yields and earns more income. If you plan to hold for longer than the fund's duration, the higher income typically makes up for the price drop. If you need the money within a few years, cash or GICs are usually a better fit than long-term bond funds."
          }
        },
        {
          "@type": "Question",
          "name": "How can rising yields benefit investors?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Savers can earn more on GICs and high-interest savings accounts. Investors who are still contributing buy bonds at lower prices and higher yields. Retirees can lock in more income for less capital. And higher starting yields generally mean better future returns on high-quality bonds."
          }
        },
        {
          "@type": "Question",
          "name": "Which investments are hurt most by rising yields?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Long-duration bond funds see the largest price drops. Rate-sensitive stocks such as REITs, utilities, and some dividend payers also tend to dip, because they carry debt and compete with bonds for income-focused investors. Borrowers renewing fixed-rate mortgages face higher payments."
          }
        }
      ]
    }
  ]
}
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[The Canada Child Benefit - How It Works, and How to Get More of It]]></title><description><![CDATA[Do you have, or are you planning on having kids? You need to learn about the Canada Child Benefit. The mechanics can tie very well with other government programs like RRSPs.]]></description><link>https://optimizedforfreedom.com/the-canada-child-benefit-how-it-works-and-how-to-get-more-of-it/</link><guid isPermaLink="false">6aa7d7e0bf4e3404a575fbf8</guid><category><![CDATA[Advice]]></category><category><![CDATA[Personal Finance Basics]]></category><category><![CDATA[Savings]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Mon, 14 Sep 2026 11:21:39 GMT</pubDate><content:encoded><![CDATA[<p>Most Canadian parents treat the Canada Child Benefit (CCB) as weather. It shows up on the 20th, the amount is whatever it is, and there&apos;s nothing to be done about it.</p><p>That&apos;s wrong, and expensively so. The CCB is tax-free, indexed, and paid for eighteen years per child. At the top end it&apos;s worth more than $8,000 a year for a single toddler. And because it&apos;s clawed back against your net income, the decisions you make on your tax return move it&#x2026;sometimes by thousands of dollars.</p><p>Here&apos;s how the machine actually works, and where the levers are.</p><h2 id="what-it-is"><strong>What it is</strong></h2><p>The CCB is a non-taxable monthly payment from the CRA to help with the cost of raising children under 18. It replaced the old Canada Child Tax Benefit and Universal Child Care Benefit in 2016.</p><p>Two features make it unusual among Canadian benefits. First, it&apos;s genuinely tax-free. It doesn&apos;t appear on your return, doesn&apos;t affect your marginal rate, and doesn&apos;t reduce next year&apos;s payment. Second, it&apos;s income-tested rather than universal, which means it behaves like a hidden tax bracket for middle-income families.</p><p>Applying also registers your kids for the Canada Groceries and Essentials Benefit (the renamed GST/HST credit) and for whichever provincial child benefit you qualify for, which the CRA folds into the same deposit.</p><h2 id="whos-eligible"><strong>Who&apos;s eligible</strong></h2><p>You need to tick every box:</p><ul><li>You live with a child under 18.</li><li>You&apos;re the person primarily responsible for their care and upbringing.</li><li>You&apos;re a resident of Canada for tax purposes.</li><li>You or your spouse/common-law partner is a Canadian citizen, permanent resident, protected person, a temporary resident who&apos;s lived here throughout the previous 18 months with a valid permit in the 19th, or a person registered under the <em>Indian Act</em>.</li></ul><p>Two quirks worth knowing. The CRA presumes the female parent in the household is primarily responsible. If that&apos;s not your arrangement, the other parent applies with a signed letter attached to Form RC66. And in shared custody (the child with each parent 40&#x2013;60% of the time), each parent gets 50% of what they&apos;d get with full custody, calculated on their <em>own</em> adjusted family net income, not a combined one.</p><p>If a child dies, eligibility now continues for six months afterward rather than ending the following month.</p><h2 id="how-much-for-july-2026-through-june-2027"><strong>How much, for July 2026 through June 2027</strong></h2><ul><li><strong>$8,157/year</strong> ($679.75/month) per child under 6</li><li><strong>$6,883/year</strong> ($573.58/month) per child aged 6 to 17</li><li><strong>$3,480/year</strong> ($290/month) per child approved for the disability tax credit, via the Child Disability Benefit</li></ul><p>Those are maximums. You receive them in full if your <strong>adjusted family net income (AFNI)</strong> was $38,237 or less in 2025.</p><p>AFNI is both spouses&apos; net income (line 23600) added together, minus any UCCB and RDSP income received, plus any of those amounts repaid. Your child&apos;s own income doesn&apos;t count.</p><h2 id="the-calculation"><strong>The calculation</strong></h2><p>It&apos;s a two-stage clawback. Stage one runs from $38,237 to $82,847 and bites hard. Stage two runs above $82,847 and is much gentler. The stage-one reduction freezes at a fixed dollar amount and a smaller percentage applies to the excess.</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="76"><col width="205"><col width="185"></colgroup><tbody><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Children</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Reduction, $38,237&#x2013;$82,847</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Reduction above $82,847</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">1</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">7% of the excess</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$3,123 + 3.2%</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">2</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">13.5%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$6,022 + 5.7%</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">3</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">19%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$8,476 + 8%</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">4+</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">23%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$10,260 + 9.5%</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p><strong>Example 1 - two kids under 6, AFNI $60,000.</strong> Maximum is $16,314. You&apos;re $21,763 over the first threshold, so the reduction is 13.5% &#xD7; $21,763 = $2,938. Annual CCB: $13,376, or $1,114.66/month.</p><p><strong>Example 2 - one child under 6, AFNI $125,000.</strong> Maximum is $8,157. You&apos;re past the second threshold, so the reduction is $3,123 + 3.2% &#xD7; $42,153 = $4,472. Annual CCB: $3,685, or $307.08/month.</p><p>The Child Disability Benefit uses a different clawback - it&apos;s paid in full up to $82,847 and reduced above that at 3.2% for one eligible child, 5.7% for two or more.</p><h2 id="the-cut-offs"><strong>The cut-offs</strong></h2><p><strong>Income cut-offs.</strong> Because stage two is so shallow, the CCB tails off slowly. Approximate AFNI at which the federal benefit hits zero for 2026&#x2013;27:</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="150"><col width="122"></colgroup><tbody><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Family</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Zero at roughly</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">1 child under 6</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$240,000</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">1 child aged 6&#x2013;17</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$200,000</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">2 children under 6</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$263,000</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">2 children aged 6&#x2013;17</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$219,000</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>If you assumed you earn too much to bother applying, you probably don&apos;t.</p><p><strong>Age cut-offs.</strong> Your payment drops the month after a child turns 6. That&apos;s a $1,274 annual cut per child at full entitlement. It ends entirely the month after they turn 18. Both happen automatically and nobody warns you.</p><p><strong>Date cut-offs.</strong> The benefit year runs July to June and is recalculated every July using the <em>prior</em> calendar year&apos;s return. July 2026 through June 2027 payments are built on your 2025 income. That two-year lag is the single most useful fact in this post, and I&apos;ll come back to it.</p><h2 id="payment-dates"><strong>Payment dates</strong></h2><p>The 20th of each month, moved to the last business day before when the 20th falls on a weekend or federal holiday, and pulled forward in December.</p><p>If your total annual entitlement works out to under $240, the CRA pays it as one lump sum in July instead.</p><h2 id="how-to-increase-your-payments"><strong>How to increase your payments</strong></h2><p>Every dollar you keep out of line 23600 comes back as CCB. Here&apos;s where the leverage actually is.</p><p><strong>Contribute to an RRSP.</strong> This is the big one, and it&apos;s badly underrated by families in the phase-out zone. An RRSP contribution reduces net income dollar for dollar, which means it buys you both a tax refund <em>and</em> a larger CCB. For an Ontario family with two kids and $60,000 of income, you&apos;re getting roughly 30% back in tax, 13.5% in restored CCB, and another 8% in restored Ontario Child Benefit. That is a better guaranteed return than anything in your portfolio.</p><p><strong>Contribute to an FHSA.</strong> Same mechanism, if you&apos;re still eligible. Deductible, reduces net income, boosts CCB.</p><p><strong>Claim child care expenses.</strong> Line 21400 is a deduction, not a credit. It reduces net income directly, so daycare receipts increase your CCB. It generally has to be claimed by the lower-income spouse, which is the opposite of RRSP logic. Don&apos;t skip it.</p><p><strong>Watch the dividend gross-up.</strong> This one blindsides FIRE-minded investors. Eligible dividends get grossed up 38% before landing in net income so $10,000 of dividends shows up as $13,800 of AFNI, clawing back CCB on income you never received. Non-eligible dividends gross up 15%. If you&apos;re in the phase-out zone with a taxable dividend portfolio, you&apos;re paying for those dividends twice.</p><p><strong>Shelter investment income.</strong> TFSA income doesn&apos;t touch AFNI at all. Neither does unrealized capital gain. Interest, dividends, and realized gains in a non-registered account all do. If you have children under 18 and room in registered accounts, the asset-location decision is worth more than it looks.</p><p><strong>Time your capital gains.</strong> A large realized gain in one year can cost you a year of CCB on top of the tax. If you&apos;re rebalancing a taxable account or selling a property, spreading the gain across calendar years, or pushing it past the year your youngest turns 18, is worth modelling.</p><p><strong>If you control your compensation</strong>, plan two years out. Owner-managers choosing between salary and dividends, or deciding which year to pay themselves, should price the CCB clawback into the decision the same way they price tax. The year you earn is the year that sets the benefit, twenty-four months later.</p><p><strong>Apply for the DTC if there&apos;s any chance your child qualifies.</strong> An approved Form T2201 adds up to $3,480 a year automatically, and the CRA will backdate it for the current period plus the two previous ones.</p><p><strong>Both of you file, every year, on time.</strong> Even with zero income. A missing return stops the payments cold. This is the most common cause of a CCB that mysteriously vanishes.</p><p><strong>Report status changes promptly.</strong> Separated for more than 90 consecutive days? Once you report it, the CRA drops the other income from the calculation starting the following month which often results in a large increase. Conversely, don&apos;t sit on a marriage or common-law change; you&apos;ll just be repaying it later.</p><h2 id="what-not-to-do"><strong>What not to do</strong></h2><p>Don&apos;t chase the CCB by lowering your income. Earning $10,000 less to recover $1,350 of benefit is a bad trade. The point is to shift income that&apos;s already there - into registered accounts, across tax years, out of grossed-up form - not to earn less.</p><p>And don&apos;t spend it as though it&apos;s permanent. It shrinks at 6, disappears at 18, and drops the year your income jumps. A household that has quietly built $1,100/month of fixed costs around it has built a cliff.</p><h2 id="what-to-do-with-it-instead"><strong>What to do with it instead</strong></h2><p>If the money isn&apos;t needed for actual child-rearing costs, the obvious destination is an RESP. A $2,500 per child per year captures the full $500 Canada Education Savings Grant, a guaranteed 20% return that nothing else in Canadian personal finance matches. After that, the TFSA.</p><p>There&apos;s a tidy loop available here - CCB into RRSP, RRSP deduction lowers next year&apos;s AFNI, lower AFNI raises the following year&apos;s CCB. Run it for a decade and it compounds in two directions at once.</p><p>The CCB is one of the few parts of the Canadian system where a few hours of planning in December reliably changes what lands in your account eighteen months later. Most families never look. That&apos;s the opportunity.</p><p><em>The above was posted in September 2026. Verify current figures at canada.ca. Amounts and thresholds are indexed every July. This is general information, not tax advice for your situation.</em></p>
<!--kg-card-begin: html-->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "optimizedforfreedom.com/the-canada-child-benefit-how-it-works-and-how-to-get-more-of-it/"
    },
    "headline": "The Canada Child Benefit: How It Works, and How to Get More of It",
    "description": "The 2026-27 Canada Child Benefit pays up to $8,157 per child. How the clawback works, where the income cut-offs sit, and how to legally increase it.",
    "author": {
      "@type": "Person",
      "name": "Opti",
      "url": "https://optimizedforfreedom.com/about/"
    },
    "publisher": {
      "@type": "Organization",
      "name": "Optimized For Freedom",
      "url": "https://optimizedforfreedom.com/",
    },
    "datePublished": "2026-09-14",
    "dateModified": "2026-09-14",
    "articleSection": "Government Benefits",
    "keywords": "Canada Child Benefit, CCB, adjusted family net income, child benefit clawback, RRSP, Canadian personal finance",
    "about": {
      "@type": "GovernmentService",
      "name": "Canada Child Benefit",
      "provider": {
        "@type": "GovernmentOrganization",
        "name": "Canada Revenue Agency"
      },
      "areaServed": {
        "@type": "Country",
        "name": "Canada"
      }
    },
    "inLanguage": "en-CA"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "How much is the Canada Child Benefit for 2026-27?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "For the benefit year running July 2026 through June 2027, the maximum is $8,157 per year ($679.75 per month) for each child under 6, and $6,883 per year ($573.58 per month) for each child aged 6 to 17. Families with a child approved for the disability tax credit can receive a further $3,480 per year through the Child Disability Benefit."
        }
      },
      {
        "@type": "Question",
        "name": "What income level do you stop receiving the Canada Child Benefit at?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "There is no hard cut-off — the benefit tapers slowly. Based on the 2026-27 formula, it reaches zero at roughly $240,000 of adjusted family net income for one child under 6, about $200,000 for one child aged 6 to 17, and about $263,000 for two children under 6. Many families who assume they earn too much still qualify for something."
        }
      },
      {
        "@type": "Question",
        "name": "How is the Canada Child Benefit calculated?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Start with the maximum for each child by age, then subtract a clawback based on adjusted family net income. Below $38,237 there is no reduction. Between $38,237 and $82,847 the reduction is 7% of the excess for one child, 13.5% for two, 19% for three, and 23% for four or more. Above $82,847 the reduction becomes a fixed amount plus a smaller percentage — for example $6,022 plus 5.7% for a two-child family."
        }
      },
      {
        "@type": "Question",
        "name": "What is adjusted family net income for CCB purposes?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Adjusted family net income is both spouses' net income from line 23600 added together, minus any universal child care benefit and registered disability savings plan income received, plus any of those amounts repaid. Your child's own income is not included. Income earned inside a TFSA does not count at all."
        }
      },
      {
        "@type": "Question",
        "name": "Is the Canada Child Benefit taxable?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "No. The CCB is entirely tax-free. It does not appear on your tax return, does not affect your marginal tax rate, and does not reduce the following year's payment."
        }
      },
      {
        "@type": "Question",
        "name": "How can I increase my Canada Child Benefit?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Anything that lowers your net income raises your CCB. RRSP and FHSA contributions are deductible and reduce net income dollar for dollar. Child care expenses claimed on line 21400 are a deduction, not a credit, so they also increase the benefit. Holding investments inside a TFSA or RRSP keeps interest, dividends and realized gains out of the calculation, and spreading large capital gains across calendar years avoids losing a full year of benefit."
        }
      },
      {
        "@type": "Question",
        "name": "Why did my CCB payment change in July?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "The benefit year runs from July to June and is recalculated every July using the previous calendar year's tax returns. Payments from July 2026 to June 2027 are based on 2025 income. Amounts and thresholds are also indexed to inflation each July, so most families see both an indexation increase and a change reflecting their newer income."
        }
      },
      {
        "@type": "Question",
        "name": "What happens to the CCB when my child turns 6 or 18?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "The payment drops the month after a child turns 6, moving from the under-6 maximum to the 6-to-17 maximum — a reduction of $1,274 per year at full entitlement. It stops entirely the month after the child turns 18. Both changes happen automatically without advance notice."
        }
      },
      {
        "@type": "Question",
        "name": "How does the Canada Child Benefit work in shared custody?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "If the child lives with each parent between 40% and 60% of the time, the CRA treats it as shared custody. Each parent applies separately and receives 50% of what they would have received with full custody, calculated on their own adjusted family net income rather than a combined household figure. If the child lives with you less than 40% of the time, you are not eligible."
        }
      },
      {
        "@type": "Question",
        "name": "When are the CCB payment dates?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "The CRA pays the CCB on the 20th of each month, moved to the last business day before when the 20th falls on a weekend or federal holiday, and pulled forward in December. The remaining dates in this benefit year are October 20 and November 20, 2026, December 11, 2026, then January 20, February 19, March 19, April 20, May 20 and June 18, 2027."
        }
      },
      {
        "@type": "Question",
        "name": "Do I have to file taxes to receive the Canada Child Benefit?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Yes. You and your spouse or common-law partner must each file a return every year, even with no income. A missing return stops the payments until the CRA has the information it needs, and this is the most common reason a CCB payment disappears without explanation."
        }
      }
    ]
  }
]
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Should I Pay Off My Mortgage Or Keep Investing? Finding Our Switch Point]]></title><description><![CDATA[Interest rate hikes have you all riled up? When should you start paying off your mortgage earlier? Should you keep investing? What do I do? In this post I explore the switch point. And also have a calculator you can use.]]></description><link>https://optimizedforfreedom.com/should-i-pay-off-my-mortgage-or-keep-investing-finding-our-switch-point/</link><guid isPermaLink="false">6aa3d280bf4e3404a575fbda</guid><category><![CDATA[Calculators]]></category><category><![CDATA[Advice]]></category><category><![CDATA[Early Retirement]]></category><category><![CDATA[Investing]]></category><category><![CDATA[Personal Finance Basics]]></category><category><![CDATA[News]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Fri, 11 Sep 2026 10:14:26 GMT</pubDate><content:encoded><![CDATA[<p>There&apos;s been a lot of talk lately about rising bond yields, which may lead to higher interest rates. I saw an article that Canada is expected to raise interest rates three times by mid-2027. News like that doesn&apos;t bother me, but it does lead me to reassess our allocation strategy and figure out when it makes sense to shift more of our money toward paying off the mortgage versus continuing to invest. Our current mortgage rate is 3.55% (variable), while our 10-year average rate of return is 8.04% (inclusive of dividends).</p><p>Taking things at face value, I should wait until rates are near 8% before shifting, but does that really make sense? Let&apos;s explore the math.</p><h2 id="why-bond-yields-matter-for-your-mortgage"><strong>Why bond yields matter for your mortgage</strong></h2><p>Mortgage rates in Canada move on two different dials. Fixed rates are priced off Government of Canada bond yields, so when yields climb, fixed rates tend to follow within weeks. Variable rates follow your lender&apos;s prime rate, which moves with the Bank of Canada&apos;s overnight rate. Rising bond yields don&apos;t change a variable rate directly, but they&apos;re often a sign that markets expect higher inflation or higher policy rates ahead.</p><p>If those three quarter-point hikes arrive, our 3.55% becomes roughly 4.30%. That&apos;s the number I&apos;m planning around.</p><p>How you feel a hike depends on your mortgage. With an adjustable-rate mortgage, your payment goes up. With a variable-rate mortgage that has fixed payments, your payment stays the same, but more of it goes to interest and less to principal, which quietly stretches out your amortization. Either way, carrying the debt gets more expensive.</p><h2 id="why-8-is-the-wrong-finish-line"><strong>Why 8% is the wrong finish line</strong></h2><p>Comparing 3.55% to 8.04% feels intuitive, but it lines up two numbers that aren&apos;t the same kind of number.</p><h3 id="a-guarantee-versus-an-average"><strong>A guarantee versus an average</strong></h3><p>Every dollar you put against the mortgage earns exactly your mortgage rate, guaranteed, starting the day you pay it. Every dollar you invest earns whatever the market decides to give you. Our 8.04% is what the portfolio did, not what it will do. And also this is over the course of the last 10 or so years. This is not a guaranteed immediate return. Anyone holding US stocks from 2000 through 2009 earned slightly less than zero over the entire decade. If you needed your portfolio to beat your mortgage during that stretch, you waited ten years for nothing.</p><p>That means the fair comparison for prepaying a mortgage isn&apos;t a stock portfolio. It&apos;s a guaranteed investment, like a GIC. Nobody says &quot;I&apos;ll only buy a 3.55% GIC once the market stops returning 8%.&quot; Investing has to earn more than the mortgage rate to be worth the risk. The real question is how much more.</p><h3 id="taxes-decide-what-804-is-actually-worth"><strong>Taxes decide what 8.04% is actually worth</strong></h3><p>In Canada, mortgage interest on your home isn&apos;t tax-deductible. That makes paying down a 3.55% mortgage a 3.55% after-tax return, no strings attached.</p><p>Your investment returns are only fully after-tax inside a TFSA, and roughly so inside an RRSP. In a non-registered account, capital gains are taxed at a 50% inclusion rate and dividends and distributions get taxed along the way. A reasonable rule of thumb is that non-registered returns lose about half your marginal tax rate. At a 43% marginal rate, 8.04% shrinks to about 6.31%, and 6.5% shrinks to 5.10%.</p><p>Here&apos;s another way to see it. At a 43% marginal rate, a non-registered GIC would need to pay about 7.54% to match the guaranteed, tax-free 4.30% you&apos;d earn by prepaying a mortgage at that rate.</p><h3 id="the-next-ten-years-arent-the-last-ten"><strong>The next ten years aren&apos;t the last ten</strong></h3><p>A 10-year average tells you about the decade you had. The assumptions Canadian financial planners are asked to use for <a href="https://www.fpcanada.ca/projection-assumption-guidelines?ref=optimizedforfreedom.com"><u>long-term projections</u></a> have generally put stock returns in the 6.3% to 7.5% range before fees, well below what the last decade delivered.</p><p>One more check worth doing - make sure your average is annualized (compounded), not a simple average of each year&apos;s return. When returns bounce around, the simple average overstates what you actually earned.</p><p>For the rest of this post, I&apos;m running the numbers two ways - at our actual 8.04%, and at a more conservative 6.5%.</p><h2 id="the-ruleafter-tax-return-minus-a-cushion"><strong>The rule - after-tax return, minus a cushion</strong></h2><p>Here&apos;s the framework I landed on. Start with your edge, which is your expected after-tax investment return minus your mortgage rate.</p><p>If the edge is 3 percentage points or more, keep investing everything. The expected reward is big enough to justify the risk.</p><p>If the edge is under 1 point, send extra cash to the mortgage. You&apos;d be taking on market risk for a sliver of extra return.</p><p>Anywhere in between, split it, sliding from mostly mortgage to mostly investing as the edge grows. An edge of 2 points works out to a 50/50 split.</p><p>Those thresholds aren&apos;t laws of finance. They&apos;re a judgment call on how much extra return is worth a decade that could go sideways. If a 20% drop would keep you up at night, raise both hurdles. If retirement is less than 10 years away, raise them too, because a short timeline gives markets less room to recover.</p><p>Applied to our situation, here&apos;s where the switch points land:</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="203"><col width="136"><col width="104"><col width="181"></colgroup><tbody><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Our investment assumption</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Keep investing below</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Split between</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Prioritize the mortgage above</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">8.04%, TFSA or RRSP</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">5.04%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">5.04% to 7.04%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">7.04%</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">6.5%, TFSA or RRSP</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">3.50%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">3.50% to 5.50%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">5.50%</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">6.5%, non-registered (43% bracket)</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">2.10%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">2.10% to 4.10%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">4.10%</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>So no, the line isn&apos;t 8%. Even if I take our 8.04% at face value, the split starts around 5% and the mortgage wins outright a full point before 8%. If I plan with a more modest 6.5%, our 3.55% rate is sitting right on the line today, and three hikes to 4.30% would put tax-sheltered money at a 60/40 split between investing and the mortgage. For non-registered money, a 4.30% mortgage is already past the point where prepaying wins.</p><h2 id="what-it-looks-like-in-dollars"><strong>What it looks like in dollars</strong></h2><p>Numbers on a table are one thing. Here&apos;s what the choice does to real money.</p><p>Take a $350,000 mortgage with 20 years left, a 4.30% rate after the hikes, and $1,000 a month in extra cash. Path one sends all $1,000 to the mortgage. It&apos;s gone in 11.8 years, and from then on the old payment plus the extra $1,000 gets invested every month. Path two invests the $1,000 from day one and pays the mortgage on schedule. At year 20, both households are mortgage-free, so we can compare their portfolios head to head.</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="163"><col width="68"><col width="191"><col width="202"></colgroup><tbody><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Scenario</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Edge</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Investing first wins by (returns as expected)</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Investing first wins by (returns come in at half)</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">TFSA or RRSP at 8.04%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">3.74 points</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$144,066</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">&#x2212;$7,231</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">TFSA or RRSP at 6.5%</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">2.20 points</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$72,484</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">&#x2212;$25,189</span></p></td></tr><tr style="height:38.5pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Non-registered at 6.5% (43% bracket)</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">0.80 points</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$23,020</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">&#x2212;$39,273</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>Read down the table and a pattern jumps out. As the edge shrinks, the upside of investing shrinks and the downside grows. With a wide edge, you&apos;re risking $7,000 for a shot at $144,000. With a thin one, you&apos;re risking $39,000 to make $23,000. Investing still wins on paper in every row, which is exactly why &quot;the higher number wins&quot; is a trap.</p><p>The split exists for the middle row. At 6.5% in a TFSA, a 60/40 split ends up $35,842 ahead of prepaying if returns show up as expected and only $11,932 behind if they come in at half. It keeps about half the upside of investing everything while cutting the downside by more than half.</p><h2 id="does-inflation-change-the-answer"><strong>Does inflation change the answer?</strong></h2><p>Yes, but not the way most people assume.</p><p><strong>On paper, it cancels out.</strong> At 2% inflation, our 3.55% mortgage really costs about 1.55%, and an 8.04% return really earns about 6.04%. Inflation lowers both sides by the same amount, so the gap between them doesn&apos;t move. &quot;Inflation makes debt cheaper&quot; is true, but it makes your investment returns smaller by the same amount.</p><p><strong>It matters through taxes.</strong> In a non-registered account, you pay tax on your whole return, including the part that only keeps up with rising prices. Say your investments earn 4.5% above inflation. At 2% inflation, that&apos;s 6.5% nominal, 5.10% after tax at a 43% marginal rate, and 3.10% after inflation. At 4% inflation, it&apos;s 8.5% nominal, 6.67% after tax, and only 2.67% after inflation. Same real return, less of it kept. Your TFSA and RRSP don&apos;t have this problem, and neither does paying down your mortgage, which is never taxed. Higher inflation tilts non-registered money toward the mortgage.</p><p><strong>It matters through your rate type.</strong> With a fixed rate, surprise inflation is a gift. Your rate stays put while prices and paycheques rise around it. With a variable rate, you don&apos;t get that protection, because the Bank of Canada fights inflation by raising the very rate your mortgage follows.</p><p><strong>It matters because bad news clusters.</strong> In 2022, inflation surged, the Bank of Canada raised its policy rate by more than four percentage points in under a year, and stocks and bonds fell at the same time. For variable-rate borrowers, the year the mortgage got expensive was the same year their portfolio got cheaper. That&apos;s a strong argument against being all-in on either side if your rate is variable. I remember getting hit really hard this year. Our mortgage payments surged by about $1000/month and ended the year with a -9% return. On the plus side - I got a 9% discount.</p><p>Inflation doesn&apos;t move the switch point on its own. But high inflation, a variable rate, and non-registered investing together should push you toward the mortgage.</p><h2 id="when-paying-off-the-mortgage-early-makes-sense"><strong>When paying off the mortgage early makes sense</strong></h2><p><strong>Your edge is thin.</strong> If your TFSA and RRSP are full and extra cash would land in a non-registered account, the after-tax math gets tight fast, especially in a higher bracket.</p><p><strong>Retirement is close.</strong> A market drop right before or right after you retire does far more damage than one twenty years out. Walking into retirement mortgage-free also means you need less income each year, which means smaller RRSP or RRIF withdrawals, less tax, and less exposure to the OAS clawback. If you&apos;re planning your withdrawals, my <a href="https://optimizedforfreedom.com/calculator-when-to-retire-and-how-to-use-your-retirement-savings-and-maximize-government-retirement-benefits/" rel="noreferrer">drawdown calculator</a> post shows how much this matters.</p><p><strong>You wouldn&apos;t hold through a crash.</strong> A guaranteed 4.30% you keep beats an expected 8% you sell at the bottom. Be honest about how you acted in 2020 and 2022. Personally - I powered through the pain and bought lots of stocks at a discount.</p><p><strong>Your renewal is coming at a higher rate.</strong> A lump sum before renewal shrinks the balance that gets repriced. Most lenders allow some combination of annual lump-sum payments and payment increases, commonly in the 10% to 20% range, without penalty. Check your contract before sending money. Ours allows up to 20% of the mortgage.</p><p><strong>You value lower fixed costs.</strong> A paid-off home is one of the biggest levers for optionality. The smaller your required monthly spending, the easier it is to cut back on work, change careers, or step away entirely. That isn&apos;t a spreadsheet return, but it&apos;s a real one.</p><h2 id="when-to-keep-investing"><strong>When to keep investing</strong></h2><p><strong>You have a wide edge and tax-sheltered room.</strong> Unused TFSA or RRSP room plus a low mortgage rate is the classic case for investing.</p><p><strong>Your employer matches contributions.</strong> A 50% or 100% match is an instant return that no mortgage rate competes with. Always take the full match first.</p><p><strong>You have kids and RESP room.</strong> The Canada Education Savings Grant adds 20% on the first $2,500 you contribute per child each year, up to $500. That beats prepaying at almost any rate.</p><p><strong>You&apos;re in a high bracket now and expect a lower one in retirement.</strong> An RRSP deduction at today&apos;s high rate, withdrawn later at a lower rate, earns more than the tax-sheltered numbers above suggest.</p><p><strong>You care about liquidity.</strong> Invested money can be sold and in your account within days. Money sent to the mortgage is locked in the house, and getting it back means a HELOC or refinance, which lenders are least eager to approve right after you&apos;ve lost your job. Being a single-income family, liquidity has been very important to us for the past 10 years. This will matter less when my wife finishes her second degree and re-enters the job market.</p><h2 id="when-to-do-both"><strong>When to do both</strong></h2><p><strong>Your edge lands in the middle.</strong> That&apos;s the split zone, and it&apos;s where most of us are once return expectations get realistic.</p><p><strong>Your rate is variable and hikes are forecast.</strong> A split hedges both outcomes. If rates climb and markets stumble, part of your money earned a guaranteed return. If rates stall and markets run, most of it is still invested.</p><p><strong>You contribute to an RRSP.</strong> Contribute during the year, then put the tax refund on the mortgage. It&apos;s a built-in split that doesn&apos;t require any extra cash flow.</p><p><strong>You&apos;re genuinely unsure about future returns.</strong> Splitting is the choice you&apos;re least likely to regret. You&apos;ll never be fully right, but you&apos;ll never be fully wrong either.</p><h2 id="a-few-other-scenarios-worth-checking"><strong>A few other scenarios worth checking</strong></h2><p><strong>Handle the basics first.</strong> Before either option, build an emergency fund of three to six months of expenses and pay off any debt charging more than about 6%. A car loan at 7% or a credit card at 20% beats both your mortgage and your portfolio as a place to send extra cash.</p><p><strong>Locking in is another lever.</strong> If your real worry is rising rates, converting your variable mortgage to a fixed term is an option, and many lenders allow it without a penalty, or for a minimal fee. Just remember that fixed rates are priced off the same bond yields making the headlines, so locking in isn&apos;t free insurance.</p><p><strong>The Smith Manoeuvre changes the math.</strong> Some Canadians prepay the mortgage and re-borrow that principal through a readvanceable HELOC to invest in a non-registered account, which can make the interest tax-deductible. It adds leverage and complexity and isn&apos;t for everyone, but it&apos;s worth knowing that &quot;pay down or invest&quot; isn&apos;t always either/or.</p><h2 id="where-that-leaves-us"><strong>Where that leaves us</strong></h2><p>We&apos;re not changing anything today. At 3.55% with our money going into tax-sheltered accounts, we&apos;re still in investing territory using our historical return. But I&apos;m not waiting for 8% either. Using our own numbers, the split starts around 5%, and if the hikes arrive and I plan with more modest return expectations, it starts a lot sooner than that. The plan is to rerun this every time our rate moves, not every time a headline does.</p><h2 id="run-your-own-numbers"><strong>Run your own numbers</strong></h2><p>The calculator below uses the same framework from this post. Enter your mortgage, your extra monthly cash, where you invest, and how you handle market swings. It shows whether to invest, prepay, or split (and exactly how much goes where), marks your personal switch points on a rate scale, and compares each strategy if returns show up as expected or come in at half. The defaults are the example above, so you can start there and swap in your own numbers.</p>
<!--kg-card-begin: html-->
<style>
  .ofx-calc { --green:#2e7d32; --green-deep:#1b5e20; --ink:#21281f; --muted:#66705f;
    --paper:#fbfbf8; --panel:#f1f4ec; --line:#d9e0d0; --amber:#a05e03; --red:#b3372b;
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:10px;
    padding:28px 26px 22px; max-width:860px; margin:0 auto; line-height:1.45; }
  .ofx-calc * { box-sizing:border-box; }
  .ofx-calc .eyebrow { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--green); font-weight:700; margin:0 0 6px; }
  .ofx-calc h2.title { font-family:Georgia,"Times New Roman",serif; font-size:27px; margin:0 0 4px; font-weight:700; line-height:1.2; }
  .ofx-calc p.sub { color:var(--muted); margin:0 0 22px; font-size:14.5px; max-width:64ch; }

  .ofx-calc fieldset { border:1px solid var(--line); border-radius:9px; padding:16px 18px 18px; margin:0 0 18px; background:var(--panel); }
  .ofx-calc legend { font-size:13px; font-weight:700; color:var(--green-deep); padding:0 6px; letter-spacing:.02em; }
  .ofx-calc legend .who { color:var(--muted); font-weight:500; }

  .ofx-fieldgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px 16px; }
  .ofx-field { display:flex; flex-direction:column; gap:4px; }
  .ofx-field label { font-size:12.5px; font-weight:600; color:var(--ink); }
  .ofx-field input, .ofx-field select { font-size:15px; padding:8px 10px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); font-variant-numeric:tabular-nums; font-family:inherit; }
  .ofx-field input:focus, .ofx-field select:focus { outline:2px solid var(--green); outline-offset:1px; border-color:var(--green); }
  .ofx-field .hint { font-size:11.5px; color:var(--muted); }
  .ofx-field.is-muted input { color:var(--muted); background:#f7f8f4; }

  .ofx-checks { display:flex; flex-direction:column; gap:8px; margin-top:16px; padding-top:14px; border-top:1px dashed var(--line); }
  .ofx-check { display:flex; align-items:flex-start; gap:9px; font-size:13.5px; cursor:pointer; }
  .ofx-check input { width:17px; height:17px; margin:1px 0 0; accent-color:var(--green); flex:none; }
  .ofx-check input:focus-visible { outline:2px solid var(--green); outline-offset:2px; }

  .ofx-run { display:flex; align-items:center; gap:14px; margin:6px 0 4px; flex-wrap:wrap; }
  .ofx-calc button { font-size:14.5px; font-weight:700; border-radius:7px; padding:11px 20px; cursor:pointer; border:1px solid transparent; font-family:inherit; }
  .ofx-calc button.ofx-primary { background:var(--green); color:#fff; }
  .ofx-calc button.ofx-primary:hover { background:var(--green-deep); }
  .ofx-calc button.ofx-secondary { background:#fff; color:var(--ink); border-color:var(--line); }
  .ofx-calc button.ofx-secondary:hover { border-color:var(--muted); }
  .ofx-calc button:focus-visible { outline:2px solid var(--green); outline-offset:2px; }

  .ofx-error { color:var(--red); font-size:13px; font-weight:600; margin:4px 0 0; }

  .mvi-results { margin-top:22px; }
  .ofx-flags { margin:0 0 16px; }
  .ofx-flag { border-left:3px solid var(--amber); background:#fbf3e6; padding:9px 12px; border-radius:0 6px 6px 0; font-size:13.5px; margin-bottom:8px; }
  .ofx-flag strong { color:var(--amber); }

  .ofx-headline { font-family:Georgia,serif; font-size:24px; font-weight:700; color:var(--green-deep); margin:0 0 6px; line-height:1.25; }
  .ofx-headline.is-mortgage { color:var(--amber); }
  .ofx-sub2 { color:var(--muted); font-size:14px; margin:0 0 18px; max-width:70ch; }

  .ofx-statrow { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin-bottom:20px; }
  .ofx-stat { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:10px 12px; }
  .ofx-stat .k { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:4px; }
  .ofx-stat .v { display:block; font-size:19px; font-weight:700; font-variant-numeric:tabular-nums; }
  .ofx-stat .v.green { color:var(--green-deep); }
  .ofx-stat .v.amber { color:var(--amber); }

  /* The rate ruler: where your mortgage rate sits against your switch points */
  .mvi-ruler { margin:4px 0 22px; }
  .mvi-ruler h3 { font-family:Georgia,serif; font-size:17px; margin:0 0 4px; }
  .mvi-ruler p.cap { font-size:13px; color:var(--muted); margin:0 0 34px; }
  .mvi-track { position:relative; height:26px; border-radius:6px; overflow:visible; display:flex; border:1px solid var(--line); }
  .mvi-zone { height:100%; }
  .mvi-zone.inv { background:#bddcbd; border-radius:5px 0 0 5px; }
  .mvi-zone.spl { background:linear-gradient(90deg,#e2eeda,#f7e8d0); border-left:2px solid #fff; }
  .mvi-zone.mor { background:#eecf9f; border-radius:0 5px 5px 0; border-left:2px solid #fff; }
  .mvi-marker { position:absolute; top:-8px; bottom:-8px; width:3px; background:var(--ink); border-radius:2px; transform:translateX(-50%); }
  .mvi-marker span { position:absolute; bottom:calc(100% + 3px); left:50%; transform:translateX(-50%); white-space:nowrap; font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; }
  .mvi-marker.ghost { background:var(--muted); width:2px; opacity:.7; }
  .mvi-marker.ghost span { color:var(--muted); font-weight:600; bottom:auto; top:calc(100% + 26px); }
  .mvi-ticks { position:relative; height:18px; margin-top:12px; font-size:11.5px; color:var(--muted); font-variant-numeric:tabular-nums; }
  .mvi-ticks span { position:absolute; transform:translateX(-50%); }
  .mvi-legend { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:8px 16px; margin-top:26px; font-size:13px; }
  .mvi-legend div { display:flex; gap:8px; align-items:flex-start; }
  .mvi-legend i { width:12px; height:12px; border-radius:3px; flex:none; margin-top:3px; border:1px solid var(--line); }

  .ofx-tblwrap { overflow-x:auto; margin-bottom:6px; }
  .ofx-tbl table { width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
  .ofx-tbl th, .ofx-tbl td { padding:8px 10px; text-align:right; border-bottom:1px solid var(--line); }
  .ofx-tbl th:first-child, .ofx-tbl td:first-child { text-align:left; }
  .ofx-tbl th { font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
  .ofx-tbl tr.pick td { background:#e7f2e7; font-weight:700; }
  .ofx-tblnote { font-size:12.5px; color:var(--muted); margin:6px 0 0; }

  .mvi-infl { margin-top:18px; font-size:13.5px; background:#fff; border:1px dashed var(--line); border-radius:7px; padding:10px 12px; }

  .ofx-assume { margin-top:20px; font-size:12.5px; color:var(--muted); border-top:1px solid var(--line); padding-top:14px; }
  .ofx-assume ul { margin:6px 0 0; padding-left:18px; }
  .ofx-assume li { margin-bottom:3px; }
  .ofx-close { font-family:Georgia,serif; font-style:italic; text-align:center; color:var(--green-deep); font-size:15px; margin-top:20px; }

  .ofx-results-hidden { display:none; }
  @media (prefers-reduced-motion:no-preference){ .mvi-results:not(.ofx-results-hidden) { animation:mviIn .35s ease; } @keyframes mviIn { from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} } }
  @media (max-width:520px){ .ofx-calc { padding:22px 16px 18px; } .ofx-statrow { grid-template-columns:1fr 1fr; } .ofx-calc h2.title { font-size:23px; } .ofx-headline { font-size:21px; } }
</style>

<div class="ofx-calc" id="mviCalc">
  <p class="eyebrow">Optimized For Freedom - Calculators</p>
  <h2 class="title">The Mortgage Switch Point</h2>
  <p class="sub">Find the mortgage rate where your extra cash should stop going to investments and start going to the mortgage, and how to split it when the answer is somewhere in between.</p>

  <fieldset>
    <legend>1. Your mortgage</legend>
    <div class="ofx-fieldgrid">
      <div class="ofx-field">
        <label for="mviBal">Mortgage balance</label>
        <input id="mviBal" type="number" min="1000" step="1000" value="350000">
        <span class="hint">$ still owing</span>
      </div>
      <div class="ofx-field">
        <label for="mviRate">Current mortgage rate</label>
        <input id="mviRate" type="number" min="0" max="15" step="0.05" value="3.55">
        <span class="hint">% per year</span>
      </div>
      <div class="ofx-field">
        <label for="mviChg">Expected rate change</label>
        <input id="mviChg" type="number" min="-5" max="5" step="0.25" value="0.75">
        <span class="hint">Percentage points. Three 0.25% hikes = 0.75. Fixed rate? Use your expected renewal rate change, or 0.</span>
      </div>
      <div class="ofx-field">
        <label for="mviAmort">Years left on amortization</label>
        <input id="mviAmort" type="number" min="1" max="35" step="1" value="20">
        <span class="hint">Not your term, the full payoff timeline</span>
      </div>
    </div>
  </fieldset>

  <fieldset>
    <legend>2. Your extra cash and investments</legend>
    <div class="ofx-fieldgrid">
      <div class="ofx-field">
        <label for="mviExtra">Extra cash each month</label>
        <input id="mviExtra" type="number" min="0" step="50" value="1000">
        <span class="hint">$ beyond your regular mortgage payment</span>
      </div>
      <div class="ofx-field">
        <label for="mviRet">Expected annual return</label>
        <input id="mviRet" type="number" min="0" max="20" step="0.1" value="8.04">
        <span class="hint">% per year, including dividends</span>
      </div>
      <div class="ofx-field">
        <label for="mviAcct">Where the money gets invested</label>
        <select id="mviAcct">
          <option value="sheltered" selected>TFSA or RRSP</option>
          <option value="nonreg">Non-registered account</option>
        </select>
        <span class="hint">Mortgage payments come from after-tax dollars, so taxes matter</span>
      </div>
      <div class="ofx-field" id="mviTaxWrap">
        <label for="mviTax">Marginal tax rate</label>
        <input id="mviTax" type="number" min="0" max="60" step="0.5" value="43">
        <span class="hint" id="mviTaxHint">Only used for non-registered accounts</span>
      </div>
    </div>
  </fieldset>

  <fieldset>
    <legend>3. Your situation</legend>
    <div class="ofx-fieldgrid">
      <div class="ofx-field">
        <label for="mviComfort">Comfort with market swings</label>
        <select id="mviComfort">
          <option value="cautious">Cautious: a bad year keeps me up at night</option>
          <option value="balanced" selected>Balanced: I stay the course</option>
          <option value="comfortable">Comfortable: drops are buying opportunities</option>
        </select>
        <span class="hint">Sets how big an edge investing needs to earn</span>
      </div>
      <div class="ofx-field">
        <label for="mviRetire">Years until retirement</label>
        <input id="mviRetire" type="number" min="0" max="50" step="1" value="20">
        <span class="hint">Or until you need this money</span>
      </div>
      <div class="ofx-field">
        <label for="mviInfl">Expected inflation</label>
        <input id="mviInfl" type="number" min="0" max="15" step="0.1" value="2">
        <span class="hint">% per year. The Bank of Canada targets 2%.</span>
      </div>
    </div>
    <div class="ofx-checks">
      <label class="ofx-check"><input type="checkbox" id="mviEF" checked> I have an emergency fund that covers 3 to 6 months of expenses</label>
      <label class="ofx-check"><input type="checkbox" id="mviDebt" checked> I don&apos;t carry any other debt charging more than about 6%</label>
      <label class="ofx-check"><input type="checkbox" id="mviMatch"> My employer matches RRSP or pension contributions</label>
    </div>
  </fieldset>

  <div class="ofx-run">
    <button type="button" class="ofx-primary" id="mviRun">Find my switch point</button>
    <button type="button" class="ofx-secondary" id="mviReset">Reset</button>
  </div>
  <p class="ofx-error" id="mviErr" role="alert"></p>

  <div class="mvi-results ofx-results-hidden" id="mviResults" aria-live="polite">
    <div class="ofx-flags" id="mviFlags"></div>

    <p class="ofx-headline" id="mviVerdict"></p>
    <p class="ofx-sub2" id="mviWhy"></p>

    <div class="ofx-statrow">
      <div class="ofx-stat"><span class="k">To investments</span><span class="v green" id="mviToInv"></span></div>
      <div class="ofx-stat"><span class="k">To the mortgage</span><span class="v amber" id="mviToMort"></span></div>
      <div class="ofx-stat"><span class="k">After-tax return</span><span class="v" id="mviAT"></span></div>
      <div class="ofx-stat"><span class="k">Mortgage rate used</span><span class="v" id="mviM"></span></div>
    </div>

    <div class="mvi-ruler">
      <h3>Your switch points</h3>
      <p class="cap">Where your mortgage rate lands against your after-tax return and comfort level.</p>
      <div class="mvi-track" id="mviTrack" role="img" aria-label>
        <div class="mvi-zone inv" id="mviZInv"></div>
        <div class="mvi-zone spl" id="mviZSpl"></div>
        <div class="mvi-zone mor" id="mviZMor"></div>
      </div>
      <div class="mvi-ticks" id="mviTicks"></div>
      <div class="mvi-legend">
        <div><i style="background:#bddcbd"></i><span id="mviLInv"></span></div>
        <div><i style="background:linear-gradient(90deg,#e2eeda,#f7e8d0)"></i><span id="mviLSpl"></span></div>
        <div><i style="background:#eecf9f"></i><span id="mviLMor"></span></div>
      </div>
    </div>

    <div class="ofx-tblwrap ofx-tbl">
      <table>
        <thead>
          <tr><th>Strategy</th><th>Mortgage-free in</th><th id="mviThExp">Portfolio</th><th>If returns come in at half</th></tr>
        </thead>
        <tbody id="mviBody"></tbody>
      </table>
    </div>
    <p class="ofx-tblnote" id="mviTblNote"></p>

    <div class="mvi-infl" id="mviInflBox"></div>

    <div class="ofx-assume">
      <strong>How this is calculated</strong>
      <ul>
        <li>After-tax return: TFSA and RRSP growth is treated as tax-sheltered. Non-registered returns are reduced by half your marginal rate, roughly how capital gains are taxed. Dividends are taxed a bit more than that and tax deferral helps a bit, so we treat them as a wash.</li>
        <li>Your edge is after-tax return minus the mortgage rate (current rate plus expected change). Investing needs an edge of 3 points to take all of your extra cash and loses it all below 1 point on the balanced setting. Cautious uses 2 and 4 points, comfortable uses 0.5 and 2. Between those, the split slides in 10% steps.</li>
        <li>Fewer than 10 years to retirement adds 0.5 points to both hurdles, and fewer than 5 adds 1 point, because short timelines give markets less time to recover.</li>
        <li>The table runs each strategy to the end of your amortization so both sides finish mortgage-free. Once the mortgage is gone early, the old payment plus your extra cash is invested every month.</li>
        <li>Rates and returns are flat and compound monthly. Payments are recalculated at the mortgage rate used. Real markets and real rates move around, and none of these returns are guaranteed.</li>
        <li>Prepayment limits, penalties, fees, and RRSP refunds aren&apos;t modelled. Check your lender&apos;s prepayment privileges before sending a lump sum.</li>
      </ul>
    </div>
    <p class="ofx-close"></p>
  </div>
</div>

<script>
(function(){
  var root = document.getElementById('mviCalc');
  if (!root) return;
  function $(id){ return document.getElementById(id); }
  function num(id){ var v = parseFloat($(id).value); return isNaN(v) ? null : v; }
  function money(n){ return '$' + Math.round(n).toLocaleString('en-CA'); }
  function pct(n){ return n.toFixed(2) + '%'; }
  function yrs(n){ return (Math.round(n*10)/10).toFixed(1) + ' years'; }

  var DEFAULTS = { mviBal:350000, mviRate:3.55, mviChg:0.75, mviAmort:20, mviExtra:1000, mviRet:8.04,
    mviAcct:'sheltered', mviTax:43, mviComfort:'balanced', mviRetire:20, mviInfl:2 };
  var HURDLES = { cautious:[2,4], balanced:[1,3], comfortable:[0.5,2] };

  function afterTax(r, acct, t){ return acct === 'nonreg' ? r * (1 - t/200) : r; }
  function hurdles(comfort, yrsToRetire){
    var h = HURDLES[comfort], adj = yrsToRetire < 5 ? 1 : (yrsToRetire < 10 ? 0.5 : 0);
    return { lo:h[0]+adj, hi:h[1]+adj, adj:adj };
  }
  function investShare(edge, lo, hi){
    var s = (edge - lo) / (hi - lo);
    s = Math.max(0, Math.min(1, s));
    return Math.round(s*10)/10;
  }
  function payment(P, annual, years){
    var r = annual/100/12, n = years*12;
    return r === 0 ? P/n : P*r / (1 - Math.pow(1+r, -n));
  }
  // share = portion of extra cash invested (0..1)
  function simulate(P, mRate, years, extra, share, invRate){
    var pay = payment(P, mRate, years), rm = mRate/100/12, ri = invRate/100/12;
    var bal = P, port = 0, freeMonth = null, n = Math.round(years*12);
    for (var m = 1; m <= n; m++){
      port *= (1 + ri);
      if (bal > 0){
        bal *= (1 + rm);
        var toMort = pay + extra*(1 - share);
        if (toMort >= bal - 0.005){
          port += (toMort - bal) + extra*share;
          bal = 0; freeMonth = m;
        } else {
          bal -= toMort; port += extra*share;
        }
      } else {
        port += pay + extra;
      }
    }
    return { port:port, free:(freeMonth === null ? n : freeMonth)/12, pay:pay };
  }

  function syncTaxField(){
    var nonreg = $('mviAcct').value === 'nonreg';
    $('mviTaxWrap').classList.toggle('is-muted', !nonreg);
    $('mviTaxHint').textContent = nonreg ? 'Your tax rate on your next dollar of income' : 'Only used for non-registered accounts';
  }

  function run(){
    var err = $('mviErr'); err.textContent = '';
    var P = num('mviBal'), cur = num('mviRate'), chg = num('mviChg'), amort = num('mviAmort');
    var extra = num('mviExtra'), r = num('mviRet'), acct = $('mviAcct').value, t = num('mviTax');
    var comfort = $('mviComfort').value, yRet = num('mviRetire'), infl = num('mviInfl');

    var problems = [];
    if (P === null || P <= 0) problems.push('a mortgage balance above $0');
    if (cur === null || cur < 0) problems.push('a current mortgage rate');
    if (chg === null) problems.push('an expected rate change (use 0 if none)');
    if (amort === null || amort < 1 || amort > 35) problems.push('1 to 35 years left on your amortization');
    if (extra === null || extra < 0) problems.push('your extra monthly cash (0 or more)');
    if (r === null || r < 0) problems.push('an expected return');
    if (acct === 'nonreg' && (t === null || t < 0 || t > 60)) problems.push('a marginal tax rate between 0 and 60%');
    if (yRet === null || yRet < 0) problems.push('years until retirement (0 or more)');
    if (infl === null) problems.push('expected inflation');
    if (problems.length){
      err.textContent = 'Enter ' + problems.join(', ') + '.';
      $('mviResults').classList.add('ofx-results-hidden');
      return;
    }
    if (t === null) t = 0;
    amort = Math.round(amort);

    var M = Math.max(0, cur + chg);
    var R = afterTax(r, acct, t);
    var edge = R - M;
    var h = hurdles(comfort, yRet);
    var share = investShare(edge, h.lo, h.hi);
    var investAbove = R - h.hi;   // below this mortgage rate: invest everything
    var mortAbove = R - h.lo;     // above this mortgage rate: everything to the mortgage

    // Priority flags
    var flags = [];
    if (!$('mviEF').checked) flags.push('<strong>Before either:</strong> build your emergency fund. Money sent to the mortgage is hard to get back when you need it, and investments can be down at the worst moment.');
    if (!$('mviDebt').checked) flags.push('<strong>Before either:</strong> pay down debt charging more than about 6%. That\'s a guaranteed return few portfolios can match after tax.');
    if ($('mviMatch').checked) flags.push('<strong>Grab the match first:</strong> contribute enough to get your full employer match before splitting anything. No mortgage rate competes with an instant 50% to 100% return.');
    $('mviFlags').innerHTML = flags.map(function(f){ return '<div class="ofx-flag">' + f + '</div>'; }).join('');

    // Verdict
    var inv = Math.round(share*100), mort = 100 - inv;
    var verdict = $('mviVerdict');
    verdict.classList.toggle('is-mortgage', share === 0);
    var edgeTxt = (edge >= 0 ? 'a ' + edge.toFixed(2) + '-point edge' : 'a ' + Math.abs(edge).toFixed(2) + '-point shortfall');
    var comfortName = comfort === 'cautious' ? 'cautious' : (comfort === 'balanced' ? 'balanced' : 'comfortable');
    var adjTxt = h.adj > 0 ? ' (raised by ' + h.adj + ' because retirement is close)' : '';
    var why;
    if (share === 1){
      verdict.textContent = 'Keep investing';
      why = 'Your investments are expected to earn ' + pct(R) + ' after tax against a ' + pct(M) + ' mortgage, ' + edgeTxt + '. On the ' + comfortName + ' setting you want at least ' + h.hi.toFixed(1) + ' points' + adjTxt + ' to send everything to the market, and you clear it.';
    } else if (share === 0){
      verdict.textContent = 'Prioritize the mortgage';
      why = 'Your investments are expected to earn ' + pct(R) + ' after tax against a ' + pct(M) + ' mortgage, ' + edgeTxt + '. On the ' + comfortName + ' setting, anything under ' + h.lo.toFixed(1) + ' points' + adjTxt + ' isn\'t enough reward for the market risk, so the guaranteed return wins.';
    } else {
      verdict.textContent = 'Split it: ' + inv + '% to investments, ' + mort + '% to the mortgage';
      why = 'Your investments are expected to earn ' + pct(R) + ' after tax against a ' + pct(M) + ' mortgage, ' + edgeTxt + '. That sits between your ' + h.lo.toFixed(1) + '-point floor and ' + h.hi.toFixed(1) + '-point target' + adjTxt + ', so investing gets part of the cash but not all of it.';
    }
    $('mviWhy').textContent = why;

    $('mviToInv').textContent = money(extra*share) + '/mo';
    $('mviToMort').textContent = money(extra*(1-share)) + '/mo';
    $('mviAT').textContent = pct(R);
    $('mviM').textContent = pct(M);

    // Ruler
    var maxV = Math.max(Math.ceil(Math.max(mortAbove, M, cur) + 1), 4);
    function pos(v){ return Math.max(0, Math.min(100, v / maxV * 100)); }
    var a = pos(Math.max(0, investAbove)), b = pos(Math.max(0, mortAbove));
    $('mviZInv').style.width = a + '%';
    $('mviZSpl').style.width = (b - a) + '%';
    $('mviZMor').style.width = (100 - b) + '%';
    $('mviZInv').style.display = a > 0 ? '' : 'none';
    $('mviZSpl').style.borderRadius = a > 0 ? '0' : '5px 0 0 5px';
    $('mviZSpl').style.borderLeftWidth = a > 0 ? '2px' : '0';
    var track = $('mviTrack');
    Array.prototype.slice.call(track.querySelectorAll('.mvi-marker')).forEach(function(n){ n.remove(); });
    var mk = document.createElement('div');
    mk.className = 'mvi-marker'; mk.style.left = pos(M) + '%';
    mk.innerHTML = '<span>' + (chg !== 0 ? 'Rate used ' : 'Your rate ') + pct(M) + '</span>';
    track.appendChild(mk);
    if (chg !== 0 && Math.abs(pos(cur) - pos(M)) > 0.5){
      var g = document.createElement('div');
      g.className = 'mvi-marker ghost'; g.style.left = pos(cur) + '%';
      g.innerHTML = '<span>Today ' + pct(cur) + '</span>';
      track.appendChild(g);
    }
    var step = maxV > 12 ? 3 : (maxV > 6 ? 2 : 1), ticks = '';
    for (var v = 0; v <= maxV; v += step){ ticks += '<span style="left:' + pos(v) + '%">' + v + '%</span>'; }
    $('mviTicks').innerHTML = ticks;
    $('mviLInv').textContent = investAbove > 0 ? 'Keep investing below ' + pct(investAbove) : 'No rate is low enough to invest everything';
    $('mviLSpl').textContent = 'Split between ' + pct(Math.max(0, investAbove)) + ' and ' + pct(Math.max(0, mortAbove));
    $('mviLMor').textContent = 'Prioritize the mortgage above ' + pct(Math.max(0, mortAbove));
    track.setAttribute('aria-label', 'Keep investing below ' + pct(Math.max(0, investAbove)) + ', split up to ' + pct(Math.max(0, mortAbove)) + ', prioritize the mortgage above that. Your rate used is ' + pct(M) + '.');

    // Projection table
    var all = [
      { name:'All extra cash to the mortgage', s:0 },
      { name:'All extra cash to investments', s:1 }
    ];
    if (share > 0 && share < 1) all.push({ name:'Your split, ' + inv + '/' + mort, s:share });
    var body = $('mviBody'); body.innerHTML = '';
    $('mviThExp').textContent = 'Portfolio at ' + pct(R);
    all.forEach(function(row){
      var x = simulate(P, M, amort, extra, row.s, R), y = simulate(P, M, amort, extra, row.s, R/2);
      var tr = document.createElement('tr');
      if (row.s === share) tr.className = 'pick';
      tr.innerHTML = '<td>' + row.name + (row.s === share ? ' (recommended)' : '') + '</td><td>' + yrs(x.free) + '</td><td>' + money(x.port) + '</td><td>' + money(y.port) + '</td>';
      body.appendChild(tr);
    });
    $('mviTblNote').textContent = 'Portfolio values at year ' + amort + ', when every strategy is mortgage-free. Regular payment at ' + pct(M) + ': ' + money(payment(P, M, amort)) + '/month. The last column shows what happens if your after-tax return comes in at ' + pct(R/2) + ' instead.';

    // Inflation
    var realM = M - infl, realR = R - infl;
    var inflTxt = '<strong>After ' + infl.toFixed(1) + '% inflation,</strong> your mortgage really costs ' + pct(realM) + ' and your investments really earn ' + pct(realR) + '. Inflation lowers both by the same amount, so on its own it doesn\'t change the verdict.';
    if (infl >= 3){
      inflTxt += ' Inflation above the Bank of Canada\'s 1% to 3% target range is what usually triggers rate hikes, so consider testing a bigger rate change.';
      if (acct === 'nonreg') inflTxt += ' In a non-registered account, part of what you pay tax on is return that only keeps pace with prices, which is why your real after-tax return is so much thinner than the headline number.';
    }
    $('mviInflBox').innerHTML = inflTxt;

    $('mviResults').classList.remove('ofx-results-hidden');
  }

  function reset(){
    Object.keys(DEFAULTS).forEach(function(id){ $(id).value = DEFAULTS[id]; });
    $('mviEF').checked = true; $('mviDebt').checked = true; $('mviMatch').checked = false;
    $('mviErr').textContent = '';
    syncTaxField();
    run();
  }

  $('mviAcct').addEventListener('change', syncTaxField);
  $('mviRun').addEventListener('click', run);
  $('mviReset').addEventListener('click', reset);
  syncTaxField();
  run();
})();
</script>
<!--kg-card-end: html-->
<p><em>This post is for educational purposes and isn&apos;t financial advice. Returns aren&apos;t guaranteed, and your lender&apos;s prepayment privileges and penalties will affect what&apos;s possible. Consider speaking with a fee-only planner about your specific situation.</em></p>
<!--kg-card-begin: html-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "mainEntityOfPage": { "@type": "WebPage", "@id": "[POST-URL]" },
  "headline": "Pay Off the Mortgage or Keep Investing? Finding Our Switch Point",
  "description": "A framework for deciding whether extra cash should go to your mortgage, your investments, or both, using after-tax returns, a risk cushion, and the role of inflation, with a free calculator that finds your personal switch point.",
  "author": { "@type": "Person", "name": "Opti", "url": "optimizedforfreedom.com/should-i-pay-off-my-mortgage-or-keep-investing-finding-our-switch-point/" },
  "publisher": {
    "@type": "Organization",
    "name": "Optimized For Freedom",
    "url": "https://optimizedforfreedom.com"
  },
  "datePublished": "2026-09-11",
  "dateModified": "2026-09-11",
  "about": ["Mortgage prepayment", "Investing", "TFSA", "RRSP", "Inflation", "Interest rates"],
  "inLanguage": "en-CA"
}
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Should I pay off my mortgage early or invest in Canada?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Compare your expected after-tax investment return to your mortgage rate. Prepaying a mortgage is a guaranteed, tax-free return, so investing needs to beat it by enough to justify the risk. A simple rule of thumb: if your after-tax return beats your mortgage rate by 3 percentage points or more, keep investing. If the gap is under 1 point, prioritize the mortgage. In between, split your extra cash between the two."
      }
    },
    {
      "@type": "Question",
      "name": "At what mortgage rate does it make sense to stop investing and pay down the mortgage?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Not when the mortgage rate matches your investment return. Because investment returns aren't guaranteed, most people should start shifting money to the mortgage well before that point. With an 8% expected return in a TFSA or RRSP, splitting starts around a 5% mortgage rate and the mortgage wins outright around 7%. With a more conservative 6.5% expected return, splitting starts around 3.5%."
      }
    },
    {
      "@type": "Question",
      "name": "Does inflation affect whether I should pay off my mortgage early?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "On paper, inflation lowers the real cost of your mortgage and the real return on your investments by the same amount, so it doesn't change the decision on its own. It matters in three ways: non-registered investments are taxed on returns that only keep pace with inflation, fixed-rate borrowers benefit from surprise inflation while variable-rate borrowers usually face rate hikes, and high inflation can push rates up at the same time markets fall. High inflation combined with a variable rate and non-registered investing tilts the decision toward the mortgage."
      }
    },
    {
      "@type": "Question",
      "name": "Is it better to invest in a TFSA or RRSP instead of paying down my mortgage?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Often, yes. TFSA growth is tax-free and RRSP growth is tax-deferred, so your full expected return counts against your mortgage rate. In a non-registered account, taxes shrink your return, roughly by half your marginal tax rate, which makes prepaying the mortgage competitive at much lower rates. Unused TFSA or RRSP room, employer matching, and the RESP grant are usually worth using before extra mortgage payments."
      }
    },
    {
      "@type": "Question",
      "name": "Should I pay down a variable-rate mortgage when interest rates are expected to rise?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Rising rates shrink the gap between your mortgage cost and your investment returns, which can move you from investing everything to splitting your extra cash. Run the decision using the rate you expect after the hikes, not today's rate. Splitting also hedges the risk that rates rise at the same time markets fall. Converting to a fixed rate is another option, though fixed rates are priced off bond yields that tend to rise first."
      }
    },
    {
      "@type": "Question",
      "name": "Should I pay off my mortgage before I retire?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "It often makes sense as retirement gets close. A market drop just before or after retiring does more damage than one decades away, and being mortgage-free lowers the income you need each year. That can mean smaller RRSP or RRIF withdrawals, less tax, and less exposure to the OAS clawback. With fewer than 10 years to retirement, it's reasonable to demand a bigger return advantage before choosing investing over prepaying."
      }
    },
    {
      "@type": "Question",
      "name": "How can I pay down my mortgage and invest at the same time?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Split your extra monthly cash between the two based on how large your after-tax return advantage is. Another common approach is to contribute to an RRSP during the year and put the tax refund toward the mortgage. You can also keep investing monthly and make an annual lump-sum payment within your mortgage's prepayment privileges, which are commonly 10% to 20% of the original principal per year."
      }
    }
  ]
}
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[Can I Buy A Car With Dividends?]]></title><description><![CDATA[Want to buy a car with a dividend portfolio? I am also curious so I ran some scenarios to see when this makes sense and if it makes sense.]]></description><link>https://optimizedforfreedom.com/can-i-buy-a-car-with-dividends/</link><guid isPermaLink="false">6aa1448cbf4e3404a575fbb9</guid><category><![CDATA[Cars]]></category><category><![CDATA[Advice]]></category><category><![CDATA[Investing]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Wed, 09 Sep 2026 11:40:23 GMT</pubDate><content:encoded><![CDATA[<p>The point of a dividend portfolio in a <a href="https://optimizedforfreedom.com/personal-finance-basics-what-is-a-tfsa/" rel="noreferrer">TFSA</a> is to build an income stream you never have to pay tax on. Most people picture that money covering groceries, property tax, the hydro bill, etc. Just small, recurring, boring stuff.</p><p>Then a car starts to slowly die, and the question changes - can the portfolio help me buy a car?</p><p>Well, yes. Mechanically it is easy. Whether that is smart depends on one thing - whether you&apos;re spending the income or spending the machine that makes the income.</p><h2 id="the-two-ways-to-do-it-and-they-are-not-the-same"><strong>The two ways to do it, and they are not the same</strong></h2><p><strong>Option A - spend the dividends.</strong> Turn off DRIP, let the cash pile up in the account, withdraw it when you have enough. The portfolio still holds the same number of shares afterward. Nothing is destroyed. You just have a recurring transfer out of the portfolio.</p><p><strong>Option B - sell the shares.</strong> Faster, and the version most people actually do. The car shows up, and the income stream shrinks permanently.</p><p>Almost every argument about this is really an argument about A versus B.</p><h2 id="the-number-that-decides-it"><strong>The number that decides it</strong></h2><p>At a 5% yield, every dollar of annual dividend income requires $20 of capital.</p><p>Say you want a $35,000 car (which is a reasonable amount for a slightly used car in 2026):</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="203"><col width="129"></colgroup><tbody><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:12pt;margin-bottom:12pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">How you fund it</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:12pt;margin-bottom:12pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Capital required</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:12pt;margin-bottom:12pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Dividends in a single year</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:12pt;margin-bottom:12pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$700,000</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:12pt;margin-bottom:12pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Dividends saved over 5 years</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:12pt;margin-bottom:12pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$140,000</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:12pt;margin-bottom:12pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">A car every 10 years, forever</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:12pt;margin-bottom:12pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">$70,000</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>That last row is the useful one. If you replace a car every decade, that&apos;s $3,500 a year of car expense, which is roughly $70,000 of dedicated capital at a 5% yield. Not $700,000. A &quot;car fund&quot; inside a dividend portfolio is a perfectly reasonable thing to own. It is just a smaller slice than people assume, and it only works if you let it fill up first. I actually have mentally dedicated a small portion of my TFSA to a car I will get my kids when they are old enough to drive (another 9 or so years).</p><p>Below that, you are not buying a car with dividends. You are buying a car with your portfolio and calling it dividends.</p><h2 id="what-youre-giving-up"><strong>What you&apos;re giving up</strong></h2><p><strong>The compounding, which is the expensive part.</strong> $35,000 pulled out at age 45 and left alone at 7% would have been roughly $135,000 by 65. You didn&apos;t spend $35,000. You spent $135,000 of future you.</p><p><strong>The income, permanently.</strong> $35,000 of capital at 5% was producing $1,750 a year. Withdraw it and that income is gone until you replace the capital with new money.</p><p><strong>The room, in practice if not on paper.</strong> TFSA withdrawals are added back to your contribution room on January 1 of the following year, so nothing is technically lost. But the room is only worth something if you have cash to refill it. The 2026 annual limit is $7,000. A $35,000 withdrawal takes five years of maxed contributions to put back. And that is five years you are not adding <em>new</em> money, just repairing the hole.</p><p>That gives you a clean test before you press the button:</p><p><strong>The refill test.</strong> If you can&apos;t put the money back within about two or three years, you aren&apos;t spending dividends. You&apos;re shrinking the portfolio.</p><h2 id="when-its-a-good-idea"><strong>When it&apos;s a good idea</strong></h2><ul><li><strong>The dividends genuinely cover it.</strong> You banked distributions for three or four years in a car fund, and the shares are untouched. This is the whole design working as intended. Nothing silly about it.</li><li><strong>You&apos;re retired and the alternative is a RRIF withdrawal.</strong> This is the strongest case, and it&apos;s a tax argument. A $35,000 RRIF withdrawal is $35,000 of taxable income landing in one year, potentially bumping a bracket and pushing you toward the OAS recovery tax, which starts at $95,323 of net income for 2026 and claws back 15 cents of <a href="https://optimizedforfreedom.com/what-is-oas-old-age-security/" rel="noreferrer">OAS</a> per dollar above it. A TFSA withdrawal doesn&apos;t appear on line 23600 at all. Same car, no tax consequence, no clawback.</li><li><strong>The alternative is bad debt.</strong> If the realistic option is a 9% used-car loan, selling shares yielding 5% is arithmetic, not sacrilege.</li><li><strong>You have no accumulation runway left.</strong> At 72, the twenty-year compounding argument doesn&apos;t apply. The money is there to be used.</li></ul><h2 id="when-its-a-bad-idea"><strong>When it&apos;s a bad idea</strong></h2><ul><li><strong>You&apos;re in the accumulation phase.</strong> Long runway, scarce room, no ability to refill quickly. This is the worst possible account to raid.</li><li><strong>You&apos;re selling shares to buy more car than you need.</strong> The TFSA is the cheapest money in your life to access since there is no tax, no paperwork, no permissions. Cheap access is exactly what makes it dangerous. &quot;I can just sell some XEI&quot; is how a $22,000 decision becomes a $40,000 one.</li><li><strong>You have cash or a non-registered account sitting right there.</strong> Order of operations should be - cash first, then non-registered (watch the capital gains), then TFSA. Registered room is the last thing you spend, because it&apos;s the only thing you can&apos;t buy back.</li><li><strong>You&apos;re funding a depreciating asset out of the only account with no tax drag.</strong> A TFSA is a permanent tax shelter. A car loses 40&#x2013;50% of its value in five years. Putting one inside the other is a poor use of scarce shelter.</li></ul><h2 id="before-retirement-vs-in-retirement"><strong>Before retirement vs. in retirement</strong></h2><p><strong>Before -</strong> almost always a bad idea, unless it&apos;s pure dividend cash you deliberately accumulated. Your TFSA room is finite, your runway is long, and the withdrawal costs you the compounding <em>and</em> the future income. Build a boring sinking fund in a HISA or money market ETF instead. A car is a known, dated, non-negotiable expense, which is exactly the kind of expense that shouldn&apos;t be in equities anyway.</p><p><strong>After -</strong> often the <em>best</em> account to use. In retirement the TFSA stops being a growth vehicle and becomes a tax-management tool. Its highest-value job is absorbing lumpy expenses, a car, a roof, a knee replacement, a big trip, without touching your taxable income for the year. That is a real, quantifiable benefit that a non-registered account can&apos;t give you.</p><p>The rule roughly inverts at retirement: what was your most protected account becomes your most useful shock absorber.</p><h2 id="the-version-id-actually-run"><strong>The version I&apos;d actually run</strong></h2><p>Split the mandate. Most of the portfolio funds recurring living expenses. A defined slice (call it $70,000 at a 5% yield) is the lumpy-expense fund, with its distributions routed to cash rather than reinvested. When the car dies, the cash is already sitting there. Shares untouched, income intact, no refill required.</p><p>That&apos;s not a silly idea at all. It&apos;s just a sinking fund wearing a nicer outfit.</p><h2 id="bottom-line"><strong>Bottom line</strong></h2><p>Buying a car with TFSA dividends is smart. Buying a car with TFSA <em>shares</em> is usually a mistake before retirement and a reasonable, tax-efficient choice after it. The label on the money doesn&apos;t matter. A dollar of dividend and a dollar of sold share spend identically. What matters is whether the machine is still the same size on the other side of the purchase.</p>
<!--kg-card-begin: html-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BlogPosting",
  "headline": "Can You Buy a Car With TFSA Dividends? (And Should You?)",
  "description": "Funding a car from a TFSA dividend portfolio: how much capital it takes, what a withdrawal really costs, and why the answer flips between accumulation and retirement.",
  "url": "optimizedforfreedom.com/can-i-buy-a-car-with-dividends/",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "optimizedforfreedom.com/can-i-buy-a-car-with-dividends/"
  },
  "datePublished": "2026-09-09",
  "dateModified": "2026-09-09",
  "inLanguage": "en-CA",
  "author": {
    "@type": "Person",
    "name": "Opti",
    "url": "https://optimizedforfreedom.com/about/"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Optimized For Freedom",
    "url": "https://optimizedforfreedom.com/"
  },
  "articleSection": "Investing",
  "keywords": "TFSA, dividend investing, retirement income, OAS clawback, RRIF, car buying, Canadian personal finance",
  "about": [
    { "@type": "Thing", "name": "Tax-Free Savings Account" },
    { "@type": "Thing", "name": "Dividend investing" },
    { "@type": "Thing", "name": "Retirement withdrawal strategy" },
    { "@type": "Thing", "name": "Old Age Security recovery tax" }
  ]
}
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Can you actually use TFSA dividends to buy a car?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, and there are two versions of it. You can turn off reinvestment, let distributions accumulate as cash, and withdraw that cash, in which case the portfolio still owns the same number of shares afterward. Or you can sell shares, which is faster and permanently shrinks the income stream. The first is spending the income; the second is spending the machine that makes it."
      }
    },
    {
      "@type": "Question",
      "name": "How much do you need invested to buy a car with dividends alone?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "At a 5% yield, every dollar of annual income requires $20 of capital. A $35,000 car funded from a single year of distributions needs about $700,000. Funded over five years of accumulated distributions, about $140,000. If you replace a car every ten years, that is $3,500 a year, or roughly $70,000 of dedicated capital."
      }
    },
    {
      "@type": "Question",
      "name": "Do you lose TFSA contribution room if you withdraw to buy a car?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. The full amount withdrawn is added back to your contribution room on January 1 of the following year. The catch is that room is only worth something if you have new money to refill it. With the 2026 annual limit at $7,000, a $35,000 withdrawal takes five years of maxed contributions to repair."
      }
    },
    {
      "@type": "Question",
      "name": "Is it better to buy a car from a TFSA or a RRIF in retirement?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Usually the TFSA, and it is a tax argument rather than an investing one. A $35,000 RRIF withdrawal is $35,000 of taxable income in a single year, which can bump a bracket and push you toward the OAS recovery tax, triggered at $95,323 of net income for 2026 at 15 cents of OAS per dollar above the threshold. A TFSA withdrawal does not appear on line 23600 at all."
      }
    },
    {
      "@type": "Question",
      "name": "Is it a bad idea to buy a car from a TFSA before retirement?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Generally yes, unless you are spending distributions you deliberately set aside. In the accumulation phase your contribution room is scarce, your refill capacity is capped at the annual limit, and the runway is long enough that compounding matters: $35,000 withdrawn at 45 would have been roughly $135,000 by 65 at a 7% total return. A sinking fund in a high-interest savings account or money market ETF does the same job without spending shelter you cannot buy back."
      }
    },
    {
      "@type": "Question",
      "name": "Should you finance the car instead of selling TFSA shares?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Compare the loan rate against what the capital is actually doing. If the realistic alternative is a 9% used-car loan, selling shares yielding 5% is straightforward arithmetic. If you qualify for a low promotional rate, keeping the portfolio invested and paying the loan from cash flow usually wins, provided the payment fits your budget and is not quietly funded by pausing contributions."
      }
    }
  ]
}
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[August 2026 Expenses]]></title><description><![CDATA[Comparing August 2026 to August 2025 expenses to see if we are on track with cutting our expenses year over year.]]></description><link>https://optimizedforfreedom.com/august-2026-expenses/</link><guid isPermaLink="false">6aa0ad5abf4e3404a575fb47</guid><category><![CDATA[Expenses]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Wed, 09 Sep 2026 01:17:17 GMT</pubDate><content:encoded><![CDATA[<p>I review our finances at the end of every month. This post is focused on the expenses. I am curious to see how our August 2026 expenses compare to our August 2025 expenses and if we are sticking to our <a href="https://optimizedforfreedom.com/my-2026-goals-and-how-i-plan-to-achieve-them/" rel="noreferrer">2026 goals</a>. Categories and differences are explained below the table.</p><p>August was an expensive month with loads of kids activities, getting ready for school, hosting and just enjoying the warm weather.</p>
<!--kg-card-begin: html-->
<style>
.expense-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 6px 12px;
  width: 100%;
  margin: 20px 0;
  font-size: 1.5rem;
}

.expense-grid > div {
  padding: 8px 12px;
  background: var(--color-bg, #fafafa);
  border-radius: 6px;
}

.expense-header > div {
  font-weight: 700;
  font-size: 1.5rem;
  padding-bottom: 4px;
  background: transparent;
}

.expense-row > div {
  font-variant-numeric: tabular-nums;
}

.expense-total > div {
  font-weight: 700;
  border-top: 2px solid currentColor;
  background: transparent;
  padding-top: 10px;
}

/* Expense change indicators */
.change-negative {
  color: #1a7f37; /* green = expenses decreased */
  font-weight: 600;
}

.change-positive {
  color: #b42318; /* red = expenses increased */
  font-weight: 600;
}

.change-neutral {
  color: #666;
}

.number {
  text-align: right;
}

@media (max-width: 600px) {
  .expense-grid {
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 5px 6px;
    font-size: 1.125rem;
  }

  .expense-header > div {
    font-size: 1.125rem;
  }

  .expense-grid > div {
    padding: 7px 5px;
  }
}
</style>

<!-- HEADER -->
<div class="expense-grid expense-header">
  <div>Category</div>
  <div class="number">2026</div>
  <div class="number">2025</div>
  <div class="number">Change</div>
</div>

<!-- ROWS -->
<div class="expense-grid expense-row">
  <div>Mortgage</div>
  <div class="number">$2,072.00</div>
  <div class="number">$2,139.75</div>
  <div class="number change-negative">-$67.75</div>

  <div>Insurance</div>
  <div class="number">$575.34</div>
  <div class="number">$500.61</div>
  <div class="number change-positive">+$74.73</div>

  <div>Household and House Maintenance</div>
  <div class="number">$60.03</div>
  <div class="number">$168.81</div>
  <div class="number change-positive">+$108.78</div>

  <div>Property Taxes</div>
  <div class="number">$0</div>
  <div class="number">$0</div>
  <div class="number change-neutral">-</div>

  <div>Utilities</div>
  <div class="number">$328.38</div>
  <div class="number">$306.46</div>
  <div class="number change-positive">+$21.92</div>

  <div>Cell Phones</div>
  <div class="number">$90.40</div>
  <div class="number">$91.30</div>
  <div class="number change-negative">-$0.90</div>

  <div>Internet</div>
  <div class="number">$101.68</div>
  <div class="number">$68.90</div>
  <div class="number change-positive">+$32.78</div>

  <div>Car Payment</div>
  <div class="number">$425.06</div>
  <div class="number">$425.06</div>
  <div class="number change-neutral">-</div>

  <div>Car Maintenance</div>
  <div class="number">$1,839.28</div>
  <div class="number">$137.35</div>
  <div class="number change-positive">+$1,701.93</div>

  <div>Streaming</div>
  <div class="number">$53.09</div>
  <div class="number">$0</div>
  <div class="number change-positive">+$53.09</div>

  <div>Food</div>
  <div class="number">$922.68</div>
  <div class="number">$712.43</div>
  <div class="number change-positive">+$210.25</div>

  <div>Fuel</div>
  <div class="number">$612.55</div>
  <div class="number">$270.07</div>
  <div class="number change-positive">+$342.48</div>

  <div>Kids</div>
  <div class="number">$1,970.39</div>
  <div class="number">$1,567.55</div>
  <div class="number change-positive">+$402.84</div>

  <div>Restaurants</div>
  <div class="number">$679.17</div>
  <div class="number">$1,110.12</div>
  <div class="number change-negative">-$430.95</div>

  <div>Banking Fees</div>
  <div class="number">$20.80</div>
  <div class="number">$7.20</div>
  <div class="number change-positive">+$13.60</div>

  <div>Fun Money</div>
  <div class="number">$575.97</div>
  <div class="number">$792.15</div>
  <div class="number change-negative">-$216.18</div>

  <div>Clothing</div>
  <div class="number">$30.00</div>
  <div class="number">$208.39</div>
  <div class="number change-negative">-$178.39</div>

  <div>Personal Care</div>
  <div class="number">$172.34</div>
  <div class="number">$199.91</div>
  <div class="number change-negative">-$27.57</div>

  <div>Alcohol</div>
  <div class="number">$171.55</div>
  <div class="number">$368.64</div>
  <div class="number change-negative">-$197.09</div>

  <div>Parking</div>
  <div class="number">$5.00</div>
  <div class="number">$5.00</div>
  <div class="number change-neutral">-</div>

  <div>Gifts</div>
  <div class="number">$435.09</div>
  <div class="number">$190.07</div>
  <div class="number change-positive">+$245.02</div>
</div>

<!-- TOTAL -->
<div class="expense-grid expense-total">
  <div>TOTAL</div>
  <div class="number">$11,140.80</div>
  <div class="number">$9,269.77</div>
  <div class="number change-positive">+$1,871.03</div>
</div>
<!--kg-card-end: html-->
<p>Let&apos;s explore what each category includes and some reasons for changes:</p><ul><li><strong>Mortgage - </strong>we renewed for another 5 years.</li><li><strong>Insurance</strong> - insurance rates went up and we added a third vehicle.</li><li><strong>Households and home maintenance</strong> - Just lawn stuff this past month.</li><li><strong>Property taxes</strong> - no taxes due this month.</li><li><strong>Utilities - </strong>gas, water and electricity.</li><li><strong>Cell phones</strong> - nothing new.</li><li><strong>Internet</strong> - internet went up.</li><li><strong>Car payment </strong>- no changes</li><li><strong>Car maintenance</strong> - wear and tear items, new exhaust for the older car.</li><li><strong>Streaming</strong> - Netflix. Others are paid annually and Apple TV is free for the next year or so thanks to a bunch of Apple gift cards I got 2 years ago. I had a Netflix gift card in 2025 so didn&apos;t pay anything that month.</li><li><strong>Food</strong> - more hosting than last year. Had family stay with us for a week.</li><li><strong>Fuel</strong> - had a couple of long family trips.</li><li><strong>Kids</strong> - found a new programming summer camp one of the kids wanted to attend. Most expensive camp so far.</li><li><strong>Restaurants</strong> - just take out.</li><li><strong>Banking fees</strong> - had to borrow from a line of credit for a week or so.</li><li><strong>Fun money </strong>- coffee, books, games, etc. Small daily purchases and fun expenses.</li><li><strong>Clothing</strong> - this is only for adult clothes. Kids&apos; clothing is covered under the &quot;kids&quot; category.</li><li><strong>Personal care</strong> - self-explanatory. Had some dental work done this month.</li><li><strong>Alcohol </strong>- self-explanatory</li><li><strong>Parking </strong>- decided to split parking out of &quot;fun money&quot;.</li><li><strong>Gifts</strong> - had to go to a few kids birthdays.</li></ul><p>First month this year we spent more than in 2025. The increase was due to the kids&apos; more expensive summer camps and the vehicle maintenance. Removing them brings us down to about the same spending as last year. </p>]]></content:encoded></item><item><title><![CDATA[What Is the T1-ADJ and When Do You Actually Need It?]]></title><description><![CDATA[Filed your taxes and then found a mistake? The T1-ADJ requests a change to a
return the CRA already assessed. In this post, I explore when you need it, and when you do not.]]></description><link>https://optimizedforfreedom.com/what-is-the-t1-adj-and-when-do-you-actually-need-it/</link><guid isPermaLink="false">6a9951c5bf4e3404a575fb34</guid><category><![CDATA[Advice]]></category><category><![CDATA[Personal Finance Basics]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Thu, 03 Sep 2026 10:58:49 GMT</pubDate><content:encoded><![CDATA[<p>At the end of my T3 post I said &quot;well, time to fill out a T1-ADJ&quot; and then moved on like that meant something to everybody. But what is a T1-ADJ?</p><p>The T1-ADJ is the form you use to tell the CRA that the return you already filed is wrong and here is what it should say instead.</p><p>The single most important thing to understand up front - <strong>you do not file a second return.</strong> That is the instinct - &quot;I got new information, let me file again properly.&quot; Do not do it. The CRA already assessed the first one. A second return does not replace it, it confuses the file, and you will spend six months untangling something that should have taken twenty minutes.</p><p>You request a change to the return that already exists. That is what the T1-ADJ is.</p><h2 id="first-rulewait-for-your-notice-of-assessment"><strong>First Rule - Wait for Your Notice of Assessment</strong></h2><p>You cannot adjust a return that has not been assessed yet.</p><p>The CRA needs to finish processing your original return and send you a Notice of Assessment before there is anything to change. If you file on March 3rd, realize on March 5th that you forgot a slip, and immediately submit an adjustment, the system has nothing to attach it to. It gets rejected or it sits there.</p><p>Same rule if you already have a request in flight. <strong>One at a time.</strong> If you submitted an adjustment two weeks ago and then find something else, wait for the CRA to respond before submitting the second one. This is also why you should gather everything before you submit - you can bundle multiple changes into a single request, and you should.</p><h2 id="you-probably-do-not-need-the-paper-form"><strong>You Probably Do Not Need the Paper Form</strong></h2><p>Here is the part that surprises people. The T1-ADJ is the <em>fallback</em>. There are three ways to request a change, and the paper form is the slowest of the three by a wide margin.</p>
<!--kg-card-begin: html-->
<table style="border:none;border-collapse:collapse;"><colgroup><col width="126"><col width="242"><col width="138"><col width="118"></colgroup><tbody><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Method</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Where</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Which years</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;text-align: center;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:700;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Processing time</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Change my return</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Your CRA account</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">2016 and later</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">About 2 weeks</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">ReFILE</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Your certified tax software</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">2021 and later</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">About 2 weeks</span></p></td></tr><tr style="height:25pt"><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Form T1-ADJ</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Printed and mailed to your tax centre</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">Up to 10 years back</span></p></td><td style="vertical-align:top;padding:5pt 5pt 5pt 5pt;overflow:hidden;overflow-wrap:break-word;"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;"><span style="font-size:11pt;font-family:Arial,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;white-space:pre;white-space:pre-wrap;">About 14 weeks</span></p></td></tr></tbody></table>
<!--kg-card-end: html-->
<p>Two weeks versus fourteen weeks. That is not a small difference, and it is the entire reason I lead with this.</p><p><strong>Change my return</strong> lives in your CRA account under Tax returns. You pick the year, pick the lines, enter the corrected amounts, and get a confirmation number. Save that confirmation number and the summary of changes. This is the default option for almost everybody.</p><p><strong>ReFILE</strong> is built into every certified tax software product. You reopen the filed return, change the numbers, and transmit the adjustment the same way you transmitted the original. You do not have to use the same software you filed with, though it is easier if you do. ReFILE only works if the return was filed electronically in the first place - if you mailed a paper return, ReFILE is not available for that year.</p><p><strong>The paper T1-ADJ</strong> is for everything the other two cannot handle.</p><h2 id="so-when-do-you-actually-need-the-paper-form"><strong>So When Do You Actually Need the Paper Form?</strong></h2><p>This is the real question, and the answer is a list of specific situations.</p><p><strong>You need to mail a T1-ADJ if the return you are changing is:</strong></p><ul><li><strong>A 2015 tax year or earlier.</strong> Change my return stops at 2016. Mail is your only option, and read the section on the 10-year limit below before you bother.</li><li><strong>A bankruptcy return, or any year before the year of bankruptcy.</strong> Talk to your trustee before you send anything.</li><li><strong>An optional T1 return for someone who died.</strong> The final return can be adjusted online. The optional returns cannot.</li><li><strong>Filed with the wrong province or territory of residence.</strong> You will also need to submit the forms for the province where you actually lived on December 31 of that year.</li><li><strong>A return requiring Form T2203</strong> - business income from a permanent establishment outside your province of residence.</li><li><strong>Certain international and non-resident returns.</strong> Some of these you can do online now. Emigrant, immigrant, factual resident, deemed resident, deemed non-resident, and section 115 returns are generally eligible for Change my return. The rest are not.</li></ul><p><strong>ReFILE has extra restrictions on top of that.</strong> It cannot touch anything before the 2021 tax year, it cannot be used on a paper-filed return, and it cannot change the personal information on page one of the return. It also goes offline for a few weeks in February each year while the CRA loads the new tax year.</p><p><strong>And there is a cap.</strong> The CRA&apos;s online system accepts a limited number of adjustments per tax year per taxpayer - the figure that circulates is nine, and it counts every adjustment to that year including ones the CRA made itself. Hit the cap and you get an automated message telling you to send the rest on paper. If you are adjusting the same year for the fourth or fifth time, you have bigger problems, but it is worth knowing the ceiling exists.</p><h2 id="what-you-can-change-and-what-you-cannot"><strong>What You Can Change, and What You Cannot</strong></h2><p>You can adjust a return to:</p><ul><li>Report income you missed - a T4, a late T3, tips, a side gig</li><li>Claim a deduction, credit, or expense you forgot - childcare, medical, moving, tuition</li><li>Add a slip that arrived after you filed - an RRSP contribution receipt is the classic one</li><li>Fix an amount you entered wrong</li></ul><p>You <strong>cannot</strong> use an adjustment request to:</p><ul><li>Apply for a benefit or credit (that is a separate application)</li><li>Make or revise an election</li><li>Allocate a refund to another CRA account</li><li>Update your personal information - address, marital status, direct deposit, name</li></ul><p>That fourth one trips people up. If you moved, or got married, or changed banks, you update that in the personal information section of your CRA account. It is not an adjustment to the return.</p><p><strong>The election restriction is the one worth pausing on.</strong> Elections are a whole separate track. Pension income splitting is an election. So is the capital gains reserve, so is a section 85 rollover, so is a bunch of stuff you might genuinely want to change your mind about. If you want to make a late election, amend one, or revoke one, that goes through the taxpayer relief provisions, not through a T1-ADJ. Different form, different process, and the CRA has discretion to say no.</p><h2 id="how-far-back-can-you-go-ten-years-with-an-asterisk"><strong>How Far Back Can You Go? Ten Years, With an Asterisk</strong></h2><p>The headline number is ten calendar years. The mechanics are slightly more specific than that.</p><p>The Minister&apos;s discretion is limited to tax years that ended within ten years before the calendar year in which you make the request. So a request submitted at any point in 2026 - January or December, does not matter - can reach back to the 2016 tax year. On January 1, 2027, the 2016 year drops off permanently.</p><p>Past that, the CRA has no authority to issue a refund. Not &quot;will not.&quot; <strong>Cannot.</strong> There is no appeal, no exception, no sympathetic agent who can override it.</p><p><strong>But there are actually two windows here, and the difference matters enormously.</strong></p><p>Inside the <strong>normal reassessment period</strong> - three years from the date on your original Notice of Assessment - a change request is basically routine. You submit it, they process it, you get a Notice of Reassessment. The CRA reassesses as a matter of course.</p><p>Outside that three-year window but inside the ten-year one, you are asking for <strong>ministerial discretion</strong> under subsection 152(4.2) of the <em>Income Tax Act</em>. The word in the statute is &quot;may,&quot; not &quot;shall.&quot; The CRA can decline, and there is a published list of situations where it will.</p><h2 id="the-requests-the-cra-will-refuse-beyond-three-years"><strong>The Requests the CRA Will Refuse Beyond Three Years</strong></h2><p>This is an interesting one that doesn&#x2019;t get talked about enough.</p><p><strong>Permissive deductions.</strong> If you claimed less capital cost allowance than you were entitled to, you cannot go back after three years and claim more. Same for other permissive deductions. The CRA&apos;s position is explicit: it will not process an adjustment where the requested tax decrease comes from increasing a deduction you deliberately underclaimed. This is a real strategy killer for anybody who was managing their CCA claims year to year. Inside three years you have flexibility. Outside three years the door is shut.</p><p><strong>Relitigating an assessment.</strong> The ten-year window is not a do-over for a dispute you chose not to have. If the CRA reassessed you after an audit and you did not file an objection, you cannot use a T1-ADJ five years later to reopen the same issue. Same if the issue already went through the objection process. The adjustment process is for new information and honest errors. It is not a second appeal.</p><p><strong>Changes that hurt somebody else&apos;s closed year.</strong> If your adjustment would increase tax, interest, or penalties on another person&apos;s return - a spouse, a business partner - and their year is statute-barred so the CRA cannot reassess it, your request will generally be refused. Transfers of credits between spouses run into this.</p><p><strong>EI and CPP overpayments.</strong> The ten-year relief provision does not apply to refunds of overpaid EI premiums or CPP contributions. Those have their own limits - three years and four years respectively, under their own statutes. (There is a ten-year carve-out for CPP contribution overpayments tied to retroactive CPP disability benefits.)</p><p><strong>Somebody else&apos;s court win.</strong> If a court decides a case in a taxpayer&apos;s favour and you realize the same logic applies to your closed year, the CRA generally will not reassess you on that basis. Neither will it reassess based on another taxpayer&apos;s negotiated settlement. If you did not protect your own objection rights, watching someone else win does not help you.</p><p><strong>Provincial time limits.</strong> Some provincial credits have their own deadlines written into provincial legislation. Federal relief does not override them.</p><h2 id="filling-out-the-form"><strong>Filling Out the Form</strong></h2><p>If you have determined that mail is your route, here is what it involves.</p><p><strong>One form per tax year.</strong> Adjusting three years means three forms.</p><p><strong>What it asks for -</strong> your SIN, the tax year, your name and address, authorization details if someone is filing on your behalf, the adjustment details including the revised amounts, and a daytime phone number.</p><p><strong>For each change,</strong> you give the line number from the return, the amount previously reported, the amount of the increase or decrease, and the revised total. There is a column for explanation. Use it. &quot;Amended T3 received April 12, slip attached&quot; tells the assessor exactly what they need to know and gets your file through faster.</p><p><strong>Use the amounts from your most recent notice, not your original return.</strong> If the CRA already reassessed that year and changed a figure, the number they have is the number you start from. Working from your original T1 when a reassessment has already moved a line is how you end up with a rejected request.</p><p><strong>Attach documents for the entire amount, not just the change.</strong> This is the one people get wrong. If you claimed $2,000 in medical expenses and now want to claim $3,200, do not send just the $1,200 in new receipts. Send all of it. The CRA is reassessing the whole line, and they want documentation for the whole line - including amounts you already claimed and never had to prove the first time.</p><p><strong>Sign it, and mail it separately from your current year return.</strong> Do not staple an adjustment request for 2023 to your 2025 return. Different processing streams, and bundling them delays both.</p><p>There is also a web version of the form on the CRA site that you fill in on screen. Handy for legibility, but confirm what it does at the end - filling a form online and <em>submitting</em> it online are not the same thing.</p><p><strong>One more note on documents -</strong> if you are going the online route instead, do not send anything upfront. The CRA will contact you if they want support, and they will give you a case number. You cannot submit documents without one. Then you upload through your CRA account.</p><h2 id="what-happens-next"><strong>What Happens Next</strong></h2><p>Three possible outcomes:</p><p><strong>Everything approved -</strong> You get a Notice of Reassessment showing the changes.</p><p><strong>Some of it approved -</strong> You get a Notice of Reassessment showing what was changed, plus an explanation of what was not. If the explanation does not fit on the notice, a separate letter follows.</p><p><strong>Nothing approved -</strong> You get a letter explaining why.</p><p>Any refund goes out as soon as the request is processed. And the timelines above are the standard cases - some requests take up to <strong>36 weeks</strong>, including anything involving multiple returns, years beyond the three-year window, a bankruptcy return, a deceased taxpayer, a loss carryback, the pension splitting election, or any file where the CRA comes back asking you for more information.</p><p>Note what is on that list. Going beyond the normal three-year period more than doubles your wait even when everything is straightforward. Another argument for catching things early.</p><h2 id="a-worked-examplethe-late-t3"><strong>A Worked Example - The Late T3</strong></h2><p>Back to where this started. Say you filed your 2025 return in early March 2026, got assessed, and spent the refund.</p><p>Then in late April an amended T3 shows up for your non-registered account:</p><ul><li>Box 26 (other income): <strong>$210</strong></li><li>Box 21 (capital gains): <strong>$180</strong></li><li>Box 42 (return of capital): <strong>$95</strong></li></ul><p>What gets added to your income is $210, plus half of $180, so <strong>$300 of additional taxable income</strong>. At a 43.41% marginal rate that is roughly <strong>$130 of extra tax</strong>.</p><p>Box 42 does not go on the return at all. It reduces your adjusted cost base. Nothing to adjust, but update your ACB spreadsheet while you are thinking about it.</p><p>Now the part that stings. Your balance was due <strong>April 30, 2026</strong>. Arrears interest runs from May 1 on that $130, compounding daily, and it does not care that the slip arrived late. Not a catastrophe on $130. But it is real, and it is avoidable by not filing in early March.</p><p>If this repeats, you might be in trouble. There is a repeated failure to report income penalty in the <em>Income Tax Act</em>. If you fail to report an amount of $500 or more in a year, and you also failed to report income in any of the three preceding years, you can be assessed a penalty of the lesser of 10% of the unreported amount and 50% of the understated tax net of amounts withheld. Then most provinces charge an equivalent penalty on top.</p><p>Two forgotten T3s in a four-year window is not an exotic scenario. It is the completely ordinary situation of someone who does not know T3s arrive in late March. That is the actual cost of filing early with a non-registered account, and it is why I keep hammering on this.</p><h2 id="t1-adj-versus-notice-of-objection"><strong>T1-ADJ Versus Notice of Objection</strong></h2><p>These get confused constantly and they are not interchangeable.</p><p><strong>Adjustment request</strong> - &quot;I have new information, or I made a mistake.&quot; You are telling the CRA something they did not know. There is no dispute. This is the T1-ADJ, Change my return, or ReFILE.</p><p><strong>Notice of Objection</strong> - &quot;You assessed me and I think you are wrong.&quot; This is a formal dispute. It goes to the Appeals branch, it preserves your right to go to Tax Court, and it has a hard deadline: for individuals, the later of one year after the filing due date for that return and 90 days after the date the notice was sent.</p><p>Pick wrong and you can lose real rights. Submit an adjustment request when you should have objected, watch the clock run out on your objection deadline, and you have no recourse - remember the CRA&apos;s published position that the ten-year window is not a substitute for the objection process you skipped.</p><p><strong>If the CRA changed something and you disagree with the change, object.</strong> If you are supplying information the CRA never had, adjust.</p><h2 id="when-it-is-bigger-than-a-forgotten-slip"><strong>When It Is Bigger Than a Forgotten Slip</strong></h2><p>If what you are fixing is unreported income from more than a year ago - a foreign account, rental income you never declared, a business on the side - a T1-ADJ is not automatically the right tool.</p><p>There is the <strong>Voluntary Disclosures Program</strong>, which grants relief from penalties and partial interest relief on a case-by-case basis. It is available year round, as long as what you are correcting is at least one year past the filing due date.</p><p>The critical distinction - <strong>a T1-ADJ that discloses unreported income is not a voluntary disclosure.</strong> It will not get you penalty relief, and it will not protect you from the repeated failure to report income penalty. If the amounts are meaningful or the omission was not exactly innocent, talk to a tax professional about the VDP before you submit anything. Once you have filed the adjustment, that door has closed.</p><h2 id="the-ripple-effects"><strong>The Ripple Effects</strong></h2><p>A reassessment does not just change your tax bill for one year.</p><p>Adding income changes your <strong>net income</strong>, and net income drives a long list of things - Canada Child Benefit, GST/HST credit, the Canada Workers Benefit, provincial credits, etc. Any of these can be recalculated, and if you were overpaid because your reported income was too low, you will get a bill.</p><p>It also flows to <strong>your spouse&apos;s return</strong>, if any credits transferred between you or if you split pension income.</p><p>And if the income you are adding is <strong>earned income</strong>, it generates RRSP contribution room for the following year. Small silver lining, but a real one.</p><p>Point being - check the full picture before you assume a $130 adjustment costs $130.</p><h2 id="short-version"><strong>Short Version</strong></h2><ul><li>The T1-ADJ requests a change to a return that has already been assessed. Never file a second return.</li><li>Wait for your Notice of Assessment first. One request at a time.</li><li>Change my return in your CRA account handles 2016 onward. ReFILE handles 2021 onward, electronically filed returns only. Both take about two weeks.</li><li>The paper T1-ADJ takes about 14 weeks and is the fallback for pre-2016 years, bankruptcy returns, optional returns for a deceased taxpayer, wrong province of residence, T2203 situations, and most non-resident returns.</li><li>Ten calendar years is the outer limit. A request made in 2026 reaches back to 2016 and no further.</li><li>Inside three years of your NOA, reassessment is routine. Beyond that it is discretionary, it takes up to 36 weeks, and the CRA will refuse permissive deduction increases, attempts to relitigate an assessment, and changes that hurt someone else&apos;s closed year.</li><li>Adjustments cannot make or change an election, apply for a benefit, or update personal information.</li><li>Attach documents for the entire line, not just the change. Use the figures from your most recent notice, not your original return.</li><li>Objection, not adjustment, if you disagree with something the CRA did. Watch the 90-day clock.</li><li>Two missed slips of $500 or more in a four-year window can trigger a repeated failure to report income penalty, federal and provincial.</li></ul><p>Let&apos;s go back to the start. That late T3 landing in your account in April is not really a T3 problem. It is a timing problem. The reason I keep pushing &quot;do not file before mid-April if you hold anything non-registered&quot; is that the fix costs you fourteen weeks, a bit of interest, and - if it happens twice - an actual penalty.</p><p>The T1-ADJ exists because errors happen and the system is built to absorb them. It works. It is just slower and more expensive than not needing it.</p><p>As always - consult a professional if you are in a situation where you need to adjust your return. This post is only for information purposes and is based on publicly available information.</p>
<!--kg-card-begin: html-->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "What Is the T1-ADJ and When Do You Actually Need It?",
  "description": "The T1-ADJ requests a change to a Canadian personal tax return the CRA has already assessed. How it works, when the online options are faster, how far back you can go, and when the CRA will refuse.",
  "author": {
    "@type": "Person",
    "name": "Opti",
    "url": "https://optimizedforfreedom.com/about/"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Optimized For Freedom",
    "url": "https://optimizedforfreedom.com/"
  },
  "datePublished": "2026-09-03",
  "dateModified": "2026-09-03",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "optimizedforfreedom.com/what-is-the-t1-adj-and-when-do-you-actually-need-it/"
  },
  "articleSection": "Personal Finance Basics",
  "inLanguage": "en-CA",
  "keywords": "T1-ADJ, T1 adjustment request, amend tax return Canada, change my return, ReFILE, CRA reassessment, notice of objection, taxpayer relief",
  "about": [
    { "@type": "Thing", "name": "T1 Adjustment Request" },
    { "@type": "Thing", "name": "Canadian personal income tax" },
    { "@type": "Thing", "name": "CRA reassessment" }
  ],
  "isPartOf": {
    "@type": "Blog",
    "name": "Optimized For Freedom",
    "url": "https://optimizedforfreedom.com/"
  }
}
</script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "inLanguage": "en-CA",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is the T1-ADJ form?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The T1-ADJ, T1 Adjustment Request, is the CRA form used to ask for a change to a personal income tax return that has already been assessed. It is a request for reassessment, not a new return. You list the line numbers being changed, the amounts previously reported, and the revised amounts, then mail the form with supporting documents to your tax centre."
      }
    },
    {
      "@type": "Question",
      "name": "Should I file a second tax return if I made a mistake?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. Filing a second return does not replace the first one. The CRA has already assessed the original return, so you request a change to that return instead, either online through your CRA account, through ReFILE in certified tax software, or by mailing Form T1-ADJ."
      }
    },
    {
      "@type": "Question",
      "name": "Do I have to wait for my Notice of Assessment before requesting a change?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. The CRA has to finish processing the original return and issue a Notice of Assessment before there is anything to adjust. You also cannot submit a second change request while an earlier one is still being processed, so gather all of your changes and submit them together."
      }
    },
    {
      "@type": "Question",
      "name": "How far back can I request a change to a Canadian tax return?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Ten calendar years. The Minister's discretion is limited to tax years that ended within ten years before the calendar year in which the request is made, so a request submitted in a given year can reach back ten tax years and no further. Once a year falls outside that window the CRA has no authority to issue a refund for it."
      }
    },
    {
      "@type": "Question",
      "name": "When do I need to mail a paper T1-ADJ instead of changing my return online?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Mail is required when the return falls outside the range covered by the CRA's Change my return service, or when the return is a bankruptcy return or any year before the year of bankruptcy, an optional T1 return for a deceased taxpayer, a return filed with the wrong province or territory of residence, a return requiring Form T2203, or certain international and non-resident returns. ReFILE has further restrictions and cannot be used on a return that was originally filed on paper."
      }
    },
    {
      "@type": "Question",
      "name": "What can an adjustment request not change?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "An adjustment request cannot be used to apply for a benefit or credit, to make or revise an election, to allocate a refund to another CRA account, or to update personal information such as your address, marital status, name, or direct deposit details. Personal information is updated separately in your CRA account. Late, amended, or revoked elections go through the taxpayer relief provisions instead."
      }
    },
    {
      "@type": "Question",
      "name": "What is the difference between a T1-ADJ and a Notice of Objection?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "An adjustment request supplies the CRA with information it did not have, such as a missed slip or a forgotten deduction. A Notice of Objection formally disputes an assessment or reassessment you believe is wrong, goes to the Appeals branch, and preserves your right to appeal to the Tax Court of Canada. For individuals, the objection deadline is the later of one year after the filing due date for that return and 90 days after the date the notice was sent. Submitting an adjustment request does not pause that deadline."
      }
    },
    {
      "@type": "Question",
      "name": "Will the CRA always approve an adjustment request beyond three years?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. Within the normal reassessment period, which is three years from the date of the original Notice of Assessment for an individual, reassessment is routine. Beyond that the CRA is exercising discretion and has published situations where it will refuse. These include increasing a permissive deduction such as capital cost allowance that was deliberately underclaimed, reopening an issue you chose not to dispute through the objection process, and changes that would increase tax on another person's return once that return is statute-barred."
      }
    }
  ]
}
</script>
<!--kg-card-end: html-->
]]></content:encoded></item><item><title><![CDATA[$160.99 in Dividends in August 2026 (and a Portfolio Update)]]></title><description><![CDATA[August 2026 monthly dividend and portfolio update.]]></description><link>https://optimizedforfreedom.com/160-99-in-dividends-in-august-2026-and-a-portfolio-update/</link><guid isPermaLink="false">6a980908bf4e3404a575fb02</guid><category><![CDATA[Investing]]></category><category><![CDATA[Early Retirement]]></category><dc:creator><![CDATA[Optimized]]></dc:creator><pubDate>Wed, 02 Sep 2026 12:42:15 GMT</pubDate><content:encoded><![CDATA[<p>We made <strong>$160.99</strong> in dividends in August 2026, and our portfolio is up <strong>$4,564.63</strong> excluding the contributions and the dividends. A total increase of <strong>$4,725.62</strong> excluding contributions.</p><p>Excluding RESPs, contributions this month added up to <strong>$1,417.60</strong>.</p><p>Here is how things changed last month, including our contributions.</p>
<!--kg-card-begin: html-->
<style>
.portfolio-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 6px 12px; /* vertical spacing */
  width: 100%;
  margin: 20px 0;
  font-size: 1.5rem; /* base font */
}

.portfolio-grid > div {
  padding: 8px 12px; /* row height */
  background: var(--color-bg, #fafafa);
  border-radius: 6px;
}

.portfolio-header > div {
  font-weight: 700;
  font-size: 1.5rem; /* header */
  padding-bottom: 4px;
  background: transparent;
}

.portfolio-row > div {
  font-variant-numeric: tabular-nums;
}

.portfolio-total > div {
  font-weight: 700;
  border-top: 2px solid #000;
  background: transparent;
  padding-top: 10px;
}

@media (max-width: 600px) {
  .portfolio-grid {
    grid-template-columns: 1.5fr 1fr 1fr;
    font-size: 1.125rem;
  }
}
</style>



<div class="portfolio-grid portfolio-header">
<div>Stock</div>
<div style="text-align:right;">July 31, 2026</div>
<div style="text-align:right;">August 31, 2026</div>
<div style="text-align:right;">Change</div>
</div>



<div class="portfolio-grid portfolio-row">
<div>XEC</div>
<div style="text-align:right;">$16,824.83</div>
<div style="text-align:right;">$17,535.49</div>
<div style="text-align:right;">+$710.66</div>
<div>XGRO</div>
<div style="text-align:right;">$285,201.20</div>
<div style="text-align:right;">$290,203.42</div>
<div style="text-align:right;">+$5,002.22</div>
<div>XQB</div>
<div style="text-align:right;">$7,714.84</div>
<div style="text-align:right;">$7,733.44</div>
<div style="text-align:right;">+$18.60</div>
<div>AX.UN (now RFA)</div>
<div style="text-align:right;">$5,327.41</div>
<div style="text-align:right;">$5,498.79</div>
<div style="text-align:right;">+$171.38</div>
<div>SRU.UN</div>
<div style="text-align:right;">$23,551.35</div>
<div style="text-align:right;">$21,956.52</div>
<div style="text-align:right;">-$1,594.83</div>
<div>DIR.UN</div>
<div style="text-align:right;">$2,489.47</div>
<div style="text-align:right;">$2,949.03</div>
<div style="text-align:right;">+$459.56</div>
<div>T.TO</div>
<div style="text-align:right;">$3,211.20</div>
<div style="text-align:right;">$3,218.40</div>
<div style="text-align:right;">+$7.20</div>
<div>GRRSP</div>
<div style="text-align:right;">$8,791.01</div>
<div style="text-align:right;">$9,582.62</div>
<div style="text-align:right;">+$791.61</div>
<div>CASH.TO</div>
<div style="text-align:right;">$2,501.50</div>
<div style="text-align:right;">$2,501.50</div>
<div style="text-align:right;">$0</div>
<div>Employer Stock</div>
<div style="text-align:right;">$2,893.52</div>
<div style="text-align:right;">$3,470.37</div>
<div style="text-align:right;">+$576.85</div>
<div>Cash</div>
<div style="text-align:right;">$188.80</div>
<div style="text-align:right;">$188.80</div>
<div style="text-align:right;">$0</div>
</div>



<div class="portfolio-grid portfolio-total">
<div>TOTALS</div>
<div style="text-align:right;">$358,695.16</div>
<div style="text-align:right;">$364,838.38</div>
<div style="text-align:right;">+$6,143.22</div>
</div>
<!--kg-card-end: html-->
]]></content:encoded></item></channel></rss>