Tax-loss selling, explained: What investors should know

Man reading newspaper leaning against a building that says "bank".

Around year-end, you'll hear the term "tax-loss selling" a lot. Here's an educational look at what it means in Canada, how the rules work, and why the concept looks a little different , and a little more interesting , through a halal investing lens.

Nobody enjoys seeing red in their portfolio. But in Canada's tax system, a realized loss in a non-registered (taxable) account isn't just bad news , it interacts with capital gains in ways every investor benefits from understanding. That interaction is what "tax-loss selling" refers to, and it's one of the most talked-about concepts in year-end financial planning.

This article is a plain-language explainer of how the rules work. It isn't tax advice, and it isn't a recommendation to buy or sell anything , the goal is simply to help you understand the conversation, so you can have a more informed one with your own tax professional.

What tax-loss selling means

When an investment in a non-registered account is sold for less than its adjusted cost base (ACB), the result is a capital loss. Under Canadian tax rules, capital losses are applied in a set order:

First, against the same year's gains. Capital losses realized in a given year are first used to offset capital gains realized in that same year. (In Canada, one-half of a net capital gain is currently taxable , the proposed increase to the inclusion rate was cancelled in 2025, so the 50% rate still applies.)

Then, carried back up to three years. If losses exceed gains in the current year, the net capital loss can be carried back and applied against net capital gains reported in any of the three previous taxation years. For example, a net capital loss realized in 2026 can reach back as far as gains reported in 2023 and because of the three-year limit, 2026 is the final year a loss could be applied against 2023 gains.

Finally, carried forward indefinitely. Net capital losses that can't be used in the current year or carried back are banked and can offset capital gains in any future year.

One thing worth understanding about the mechanics: a capital loss only has tax value when there's a capital gain for it to offset in the current year, one of the three prior years, or eventually in the future. That's why the concept is discussed as a planning topic rather than an automatic year-end move.

The superficial loss rules

Here's where the rules get interesting. An investor who sells to realize a loss usually still believes in the investment , so the instinct is to buy it right back. The Canada Revenue Agency anticipated this, and the superficial loss rules exist to deny losses where the sale wasn't really a "true" disposition.

A loss is considered superficial if both of the following are true:

  • During the period starting 30 days before the sale and ending 30 days after it, the investor , or a person affiliated with them , acquires the same property or an identical property.

  • At the end of that 30-day period, the investor or affiliated person still owns (or has a right to acquire) it.

"Affiliated person" is defined broadly. It includes a spouse or common-law partner, a corporation or partnership controlled by the investor or their spouse, and certain trusts. The rules also come into play when the same property is repurchased inside the investor's own RRSP or TFSA within the window , a scenario with its own consequences, since a loss denied that way can be lost permanently.

When a loss is denied as superficial, it doesn't simply vanish: the denied amount is added to the ACB of the repurchased property. This prevents double taxation and effectively puts the investor back in the same tax position they were in before the sale.

What "identical property" means for halal investors

At the heart of the superficial loss rules is the definition of an identical property: properties so alike in all material respects that a prospective buyer wouldn't prefer one over the other. The same shares of the same company are clearly identical. Two funds tracking the same index are generally viewed the same way. But two funds tracking different indexes, with different methodologies and holdings, are generally not considered identical , even if they cover similar markets.

Why does that matter here? Because a maturing market with genuinely distinct Shariah-compliant options means halal investors are no longer boxed in by the "identical property" definition the way they once were. Whether any two specific funds count as identical properties is a facts-and-circumstances question for a tax professional , but the days when a halal portfolio had no alternatives to consider are over.

It's also worth noting, on the faith side, that the tax treatment of capital losses raises no special Shariah concern in itself: it involves buying and selling real, screened assets at market prices , no interest, no debt speculation.

Timing and account types

Two more pieces of context that come up in every tax-loss selling discussion:

Settlement, not trade date, determines the tax year. For a loss to count in a given year, the trade must settle in that year. Canadian and U.S. markets operate on T+1 settlement, and year-end holidays can push a late-December trade's settlement into January , which is why the "last day" for tax-loss selling is typically a day or two before the final trading day of the year. In 2026, that's generally understood to be December 30.

Registered accounts are outside the system. Capital losses inside a TFSA, RRSP, RESP, or FHSA can't be claimed at all. Tax-loss selling is a non-registered-account concept only.

The bottom line

Tax-loss selling sits at the intersection of two things worth understanding: how Canada taxes capital gains and losses, and how the superficial loss rules police the boundary. For halal investors, the growing diversity of Shariah-compliant funds has made the topic newly relevant , there are now real alternatives to learn about within a faith-aligned portfolio.

 

This article is provided for educational and informational purposes only. It does not constitute financial, legal, tax, investment, or religious advice, and it is not a recommendation or solicitation to buy or sell any security or to implement any tax strategy. Tax rules described are current as of August 2026 and subject to change. Always consult a qualified tax professional about your individual circumstances.

Disclaimer

Investment Advisory Services are offered through Manzil Investment Advisors, LLC ("Manzil Invest"), a registered investment adviser. Securities are offered and sold through Alpaca Securities.


Manzil Invest is a registered investment adviser located in Dallas, TX. Manzil Invest may only transact business in those states in which it is registered or qualifies for an exemption or exclusion from registration requirements.

Manzil Invest’s website is limited to the dissemination of general information pertaining to its advisory services, together with access to additional investment-related information, publications, and links. Accordingly, the publication of Manzil Invest’s website on the Internet should not be construed by any consumer and/or prospective client as Manzil Invest’s solicitation to effect, or attempt to effect transactions in securities, or the rendering of personalized investment advice for compensation, over the Internet.


Any subsequent, direct communication by Manzil Invest with a prospective client shall be conducted by a representative that is either registered or qualifies for an exemption or exclusion from registration in the state where the prospective client resides. For information pertaining to the registration status of Manzil Invest, please contact the state securities regulators for those states in which Manzil Invest maintains a registration filing. A copy of Manzil Invest’s current written disclosure statement discussing Manzil Invest’s business operations, services, and fees is available at the SEC’s investment adviser public information website – www.adviserinfo.sec.gov or from Manzil Invest upon written request.


Manzil Invest does not make any representations or warranties as to the accuracy, timeliness, suitability, completeness, or relevance of any information prepared by any unaffiliated third party, whether linked to Manzil Invest’s website or incorporated herein, and takes no responsibility therefor. All such information is provided solely for convenience purposes only and all users thereof should be guided accordingly. This website and information are provided for guidance and information purposes only. Investments involve risk and unless otherwise stated, are not guaranteed.


This website and information are not intended to provide investment, tax, or legal advice.


Apple, the Apple logo, Apple Pay, Apple Watch, iPad, iPhone, iTunes, Mac, Safari, and Touch ID are trademarks of Apple Inc., registered in the U.S. and other countries. Android, Google Play and the Google Play logo are trademarks of Google LLC.


Manzil bears no responsibility for inaccuracies in the calculations or for the payment of purification itself.

(function(){ var p = window.location.pathname; var sp = new URLSearchParams(window.location.search); // ---- Region config ---- var REGION_PREFIX = { US: "", CA: "/ca", GLOBAL: "/global" }; var REGION_LABEL = { US: "US", CA: "Canada", GLOBAL: "International" }; var REGION_ORDER = ["US", "CA", "GLOBAL"]; // Locales Framer serves ahead of the region prefix, e.g. /fr/ca/halal-homes. // Add new locale codes here as Framer adds them. var LOCALES = ["fr"]; // Pages excluded from all geo-redirect logic. // These pages are accessible globally at manzil.co/[page] regardless of country or IP. var excludedPaths = ["/careers", "/rates", "/ceo", "/ca/rates"]; // ---- Hard bail on any 404 page ---- // This is what breaks the loop: no matter what state the redirect logic is // in, once we're on an error page (/404, /fr/404, /ca/fr/404, /global/fr/404, // etc.) this script does nothing at all. if(/\/404(\/|$)/.test(p)){ return; } // ---- Hop-counter backstop ---- // Belt-and-suspenders: if some other combination of scripts still manages // to bounce a visitor back and forth, this trips after a few hops inside a // short window, clears the region cookie so we stop steering them, and // stands down instead of issuing another redirect. var HOP_KEY = "mzl_hops"; var HOP_WINDOW_MS = 4000; var HOP_LIMIT = 4; var hopLimitTripped = (function trackHops(){ var now = Date.now(); var raw = sessionStorage.getItem(HOP_KEY); var data; try { data = raw ? JSON.parse(raw) : null; } catch(e){ data = null; } if(!data || (now - data.ts) > HOP_WINDOW_MS){ data = { count: 0, ts: now }; } data.count++; data.ts = now; sessionStorage.setItem(HOP_KEY, JSON.stringify(data)); if(data.count > HOP_LIMIT){ document.cookie = "mzl_r=;path=/;max-age=0;SameSite=Lax"; console.error("mzl geo-redirect: hop limit exceeded on " + p + ", aborting redirect chain"); return true; } return false; })(); if(hopLimitTripped) return; // ---- Locale helpers ---- // Strip a leading locale segment before any region parsing happens, and // re-attach it whenever we build a target URL, so a locale prefix never // gets treated as an unrecognized region and re-prefixed. function parseLocale(path){ for(var i=0; i