Sector Overview – Australian online trading platform sector ripe for consolidation

27 January 2021

The ASX online trading platform space is dominated by a few large incumbents at the top end belonging to the big four banks, namely: Commonwealth Bank’s [ASX:CBA] Commonwealth Securities (CommSec), National Australia Bank’s [ASX:NAB] Nabtrade, Westpac Bank’s [ASX:WBC] Westpac Online Investing, and Australia and New Zealand Banking Group’s [ASX:ANZ] ANZ Share Investing.

Australia’s online trading platform sector is ripe for consolidation as incumbents lose market share to disruptors building scale and new players entering the sector, propelled by COVID-19. This overview by Mergermarket senior reporter Louise Weihart in Sydney features insights from sector players, industry research, recent deals, and a selection of companies to watch.


The ASX online trading platform space is dominated by a few large incumbents at the top end belonging to the big four banks, namely: Commonwealth Bank’s [ASX:CBA] Commonwealth Securities (CommSec), National Australia Bank’s [ASX:NAB] Nabtrade, Westpac Bank’s [ASX:WBC] Westpac Online Investing, and Australia and New Zealand Banking Group’s [ASX:ANZ] ANZ Share Investing.


The bank-backed players are starting to lose market share to a band of medium-sized disruptors and smaller niche technologies emerging at the small end of the market, with market share decreasing from 84% at the beginning of 2019 to 74% at 30 June 2020, according to Sydney-based research firm Investment Trends’ 2020 1H Online Investing Report.


According to the report, the number of online traders has also grown significantly from some 700,000 at the end of 2019 to about 1.1m today. This increase can largely be attributed to more investors, not least younger ones, taking to online investing due to the rebound in markets since the onset of COVID-19, noted Travis Clark, MD of Perth-based trading platform Marketech Focus.


Most of the smaller new entrants emerging with low-cost services to support this growth and demographic only provide access to the ASX, and even those with good niche technologies will find it difficult to build enough scale to compete over the long term, said Robert Edgley, MD of the AUD 117m (USD 90m) market cap Melbourne-based share trading platform developer SelfWealth [ASX:SWF].


The smaller players could well be targeted by the medium-sized players looking to enhance their offerings and scale more quickly or by those looking to enter the burgeoning sector, noted Marketech Focus’ Clark.


The jury is out on what move the incumbents might make, with sector players positing that they could equally move to acquire the competition or divest their non-core online trading platforms, with ANZ Share Investing, for example, entering a partnership with CMC Markets [LON:CMCX] in 2017 to transfer its customers to that platform and noting at the time that the deal was not material to its financials.


Other foreign players operating in the local market could also seek deals including M&A, noted SelfWealth’s Edgley. Israel’s eToro, for example, told this news service in 2020 it was scouting for global acquisitions; Interactive Brokers [NASDAQ:IBKR] acquired Goldman Sachs’ retail brokerage business Folio Investments in December for an undisclosed sum; and IG Group [LON:IGG] acquired Chicago, Illinois-based broker tastytrade earlier this month to create a USD 1bn group.


The medium-sized players could also become targets for large and growing domestic financial services platforms, Edgley added.


 Below is a summary of companies that Mergermarket has covered or is watching: 


– Melbourne-based SelfWealth, which started in 2012, could well become a target, potentially for financial services companies like the AUD 1.8bn market cap Hub24 [ASX:HUB] or the AUD 4.2bn market cap NetWealth [ASX:NWL] as they look to add direct-to-consumer channels to their largely intermediary-sponsored fund sources, MD Robert Edgley told this news service in December. The company, which has more than 65,000 clients and has consistently added some 1,000 a week since March 2020, differentiates itself in that its offering is cheaper than those of the bank-backed incumbents as it provides a AUD 9.50 flat-fee commission-free service regardless of trade size, operates a social investment network for users, and is focused on developing multiple revenue streams such as the December launch of its US trading product, he said.


– Unlisted public Perth-based Marketech Focus, which started in 2000 as a wholesale technology developer and expanded into the retail space in 2016, is assessing a raft of growth options for 2021, including acquisitions or an ASX listing. It could well be a target for companies without inhouse trading platforms, MD Travis Clark told this news service in December. The company, which has raised under AUD 5m to date, has primarily been funded by revenue, but is now gearing to take advantage of significant growth opportunities, he said. It differentiates itself in that it provides low-fee services to serious and active traders with a premium-grade offering including real-time streaming pricing, which is also accessible on mobile devices, he said.


– Sydney-based Superhero, which started in 2019, has already attracted investor interest having raised AUD 8m last August from private investors including Afterpay [ASX:APT] founder Nick Molnar and Zip Co [ASX:Z1P] founder Larry Diamond. It has also had investor interest from incumbents, financial dealer groups and venture capital (VC) and private equity (PE) firms, CEO John Winters told this news service in December. It differentiates itself by offering a range of complementary products with synergistic revenue streams and is also currently the cheapest offering, with a flat AUD 5 commission for all Australian shares and ETFs and with no inactivity or monthly fee for its basic account, he said.


– Sydney-based Stake, which started in 2017 and gives investors in Australia, New Zealand, the UK and Latin America exposure to more than 3,700 US stocks according to its website; micro-investing app Commsec Pocket, a wholly owned but non-guaranteed subsidiary of CBA, which was launched in 2019 to help consumers turn savings into investing; and SelfWealth were cited as ‘challenger brands’ with 13% market share together in the Investment Trends report, with SelfWealth accounting for 7% of that.


– Melbourne-based retail forex broker Pepperstone, founded in 2010 by Owen Kerr and Joe Davenport, sold a majority stake to CPE Capital (then Champ Private Equity) in 2016, reportedly for some AUD 200m, before buying the business back in a MBO in 2018. The company has more than 89,000 clients, according to its website.


–  The AUD 624m market cap Bell Financial Group’s [ASX:BFG] online trading platform Bell Direct has been acquisitive in the space, having fully acquired the remaining 43% that it did not already own in Sydney-based online broker Third Party Platform in 2018 for AUD 36m.



[formidable id=1]
<div class="frm_forms with_frm_style frm_style_formidable-style" id="frm_form_1_container" > <form enctype="multipart/form-data" method="post" class="frm-show-form frm_pro_form frm_ajax_submit " id="form_popup-form" > <div class="frm_form_fields "> <fieldset> <legend class="frm_screen_reader">MergerMarket Subscribe Popup Form</legend> <div class="frm_fields_container"> <input type="hidden" name="frm_action" value="create" /> <input type="hidden" name="form_id" value="1" /> <input type="hidden" name="frm_hide_fields_1" id="frm_hide_fields_1" value="" /> <input type="hidden" name="form_key" value="popup-form" /> <input type="hidden" name="item_meta[0]" value="" /> <input type="hidden" id="frm_submit_entry_1" name="frm_submit_entry_1" value="4593208480" /><input type="hidden" name="_wp_http_referer" value="/sector-overview-australian-online-trading-platform-sector-ripe-consolidation/" /><div id="frm_field_1_container" class="frm_form_field form-field frm_required_field frm_none_container frm_first frm_half"> <label for="field_qh4icy" id="field_qh4icy_label" class="frm_primary_label">First Name <span class="frm_required" aria-hidden="true">*</span> </label> <input type="text" id="field_qh4icy" name="item_meta[1]" value="" placeholder="Enter your first name" data-reqmsg="This field cannot be blank." aria-required="true" data-invmsg="Name is invalid" aria-invalid="false" /> </div> <div id="frm_field_2_container" class="frm_form_field form-field frm_required_field frm_none_container frm_half"> <label for="field_ocfup1" id="field_ocfup1_label" class="frm_primary_label">Last Name <span class="frm_required" aria-hidden="true">*</span> </label> <input type="text" id="field_ocfup1" name="item_meta[2]" value="" placeholder="Enter your last name" data-reqmsg="This field cannot be blank." aria-required="true" data-invmsg="Last is invalid" aria-invalid="false" /> </div> <div id="frm_field_3_container" class="frm_form_field form-field frm_required_field frm_none_container ion_email accepts_business_email"> <label for="field_29yf4d" id="field_29yf4d_label" class="frm_primary_label">Email <span class="frm_required" aria-hidden="true">*</span> </label> <input type="email" id="field_29yf4d" name="item_meta[3]" value="" placeholder="Enter your business email address" data-reqmsg="This field cannot be blank." aria-required="true" data-invmsg="Please enter a valid email address" aria-invalid="false" /> </div> <div id="frm_field_4_container" class="frm_form_field form-field frm_top_container ion_company frm_hidden"> <label for="field_e6lis6" id="field_e6lis6_label" class="frm_primary_label">Company <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_e6lis6" name="item_meta[4]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_6_container" class="frm_form_field form-field frm_top_container ion_country frm_hidden frm12 frm_first"> <label for="field_otmou" id="field_otmou_label" class="frm_primary_label">Country <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_otmou" name="item_meta[6]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_7_container" class="frm_form_field form-field frm_top_container ion_utm_source frm_hidden"> <label for="field_eljps" id="field_eljps_label" class="frm_primary_label">utm_source <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_eljps" name="item_meta[7]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_8_container" class="frm_form_field form-field frm_top_container ion_utm_medium frm_hidden"> <label for="field_a8lma" id="field_a8lma_label" class="frm_primary_label">utm_medium <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_a8lma" name="item_meta[8]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_9_container" class="frm_form_field form-field frm_top_container ion_utm_campaign frm_hidden"> <label for="field_ommom" id="field_ommom_label" class="frm_primary_label">utm_campaign <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_ommom" name="item_meta[9]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_10_container" class="frm_form_field form-field frm_top_container ion_utm_content frm_hidden"> <label for="field_6kbqu" id="field_6kbqu_label" class="frm_primary_label">utm_content <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_6kbqu" name="item_meta[10]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_11_container" class="frm_form_field form-field frm_top_container ion_page_title frm_hidden"> <label for="field_fpzuk" id="field_fpzuk_label" class="frm_primary_label">Page Title <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_fpzuk" name="item_meta[11]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_12_container" class="frm_form_field form-field frm_top_container ion_page_url frm_hidden"> <label for="field_aj7hq" id="field_aj7hq_label" class="frm_primary_label">Page URL <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_aj7hq" name="item_meta[12]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_13_container" class="frm_form_field form-field frm_top_container ion_zerobouncestatus frm_hidden"> <label for="field_mrpjd" id="field_mrpjd_label" class="frm_primary_label">ZeroBounceStatus <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_mrpjd" name="item_meta[13]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_14_container" class="frm_form_field form-field frm_top_container frm_hidden ion_gftracklabel"> <label for="field_dqw7i" id="field_dqw7i_label" class="frm_primary_label">GFTrackEvent <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_dqw7i" name="item_meta[14]" value="" data-invmsg="Subject is invalid" aria-invalid="false" /> </div> <div id="frm_field_15_container" class="frm_form_field form-field frm_top_container ion_ip_address frm_hidden"> <label for="field_nzvgf" id="field_nzvgf_label" class="frm_primary_label">IP Address <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_nzvgf" name="item_meta[15]" value="" data-frmval="" data-invmsg="Text is invalid" aria-invalid="false" /> </div> <div id="frm_field_16_container" class="frm_form_field form-field frm_top_container frm_hidden ion_landing_page"> <label for="field_182c0" id="field_182c0_label" class="frm_primary_label">Landing Page <span class="frm_required" aria-hidden="true"></span> </label> <input type="text" id="field_182c0" name="item_meta[16]" value="" data-invmsg="Text is invalid" aria-invalid="false" /> </div> <input type="hidden" name="item_key" value="" /> <div class="frm_verify" aria-hidden="true"> <label for="frm_email_1"> If you are human, leave this field blank. </label> <input type="text" class="frm_verify" id="frm_email_1" name="frm_verify" value="" /> </div> <input name="frm_state" type="hidden" value="s8xfwaaizpBMz99drxmiKuSCMAW8OnK3kRg5FhimaDA=" /><div class="frm_submit"> <button class="frm_button_submit frm_final_submit" type="submit" formnovalidate="formnovalidate">Submit</button> </div></div> </fieldset> </div> </form> </div>