Latest News

Bill C-86 Real-Time Notifications Good for Customers, Good for Banks

Sometimes new regulations also result in new opportunities for businesses, and Bill C-86, Budget Implementation Act, 2018, is one of them. This amendment to Canada’s Banking Act has the best interest of consumers at its heart. It enacts a number of new obligations that essentially codify “doing the right thing”.


One of those “right things” is letting customers know, up front, in real-time if their account status is about to earn them a higher interest rate on a loan or lower interest on their deposit; a service fee of some kind or the expiration of a special offer or deal they may have secured weeks, months or even a year or more earlier and have long since forgot. (Let’s face it, many of us can’t remember what we ate for breakfast, let alone when our discounted home equity loan rate is due to expire!)

Bill C-86 Can Encourage Greater Financial Wellness

Although bankers sometimes flinch at the word, “regulation”, the truth is many are also keenly interested in helping their customers achieve greater financial wellness. When customers succeed in improving their financial health, banks become stronger for it, and that connection is not lost on them. Bill C-86 simply puts that intention into a more clear, official framework, promising customers that they will know about key events in their banking that could affect them financially before they occur.


These notifications empower consumers with information they can use to make decisions that bolster their finances. The added transparency banks offer will likely have another by-product: greater trust from the consumer. And that’s good business for a number of reasons.


In EPAM’s1 global study in July 2020, 63% of surveyed consumers said trust was the main motivator for choosing their primary bank account. Trust remains a bedrock in customer service and account retention.


Bill C-86 guides institutions to better communicate with consumers, and to do it in real-time, well before events like falling below an account threshold or the expiration date of a bonus offer, has a lasting effect on their finances. It provides them with time to make decisions about how to remedy their account status or whether their current account is still the best fit. Again, while this is just a good, honest business practice, it’s also profitable for banks to help customers better manage their money.


In a J. D. Powers study of Canadian consumers in mid 2020, customers said they tied their level of satisfaction with their bank and the likelihood of choosing that bank again for other services with the state of their personal financial condition. More than ¾ of Canadian customers who held positive views of their financial situation planned to use their existing bank the next time they needed a banking service. However, only 54% of those with a negative or neutral view of their finances planned to use their current bank again. The takeaway… customers feel more loyal to their bank when they feel they are doing well financially and less loyal if they are not. Because alerts and notifications provide consumers with information to stay on track with their money, it stands to reason that those same notifications may instill greater loyalty in existing customers as well.

Legacy Bank Technology Challenged in Delivering Real-Time Notifications

Even though Bill C-86 offers a lot of compelling benefits to banks, most existing legacy systems are not created to deliver real-time updates to customers without core updates or workarounds. These monolithic systems were built to be reliable and powerful, but that stability comes with a trade-off.  They are not nimble or agile.

Even though Bill C-86 offers a lot of compelling benefits to banks, most existing legacy systems are not created to deliver real-time updates to customers without core updates or workarounds.

Bankers must pivot from one system to another to keep track of an individual’s products, services and preferences and then communicate that information in real time, in the customer’s preferred channel. Keeping track of promotional offers can be just as chaotic, and it’s not uncommon to see exports downloaded and re-uploaded from one system to another or the use of manual spreadsheets. Providing alerts before expiration with current systems – at 21 days and then five days beforehand – as required by Bill C-86, is a cumbersome burden that may even lead banks to abandon innovative ideas that are too unwieldy and costly to manage.


Legacy systems are typically entwined together, too, forming a network of interconnected processes that are not easy to unwind or adapt when a new initiative needs to be implemented. The IT resources needed are significant, and the time spent to vet impacts downstream from any changes is lengthy and can add months or even longer to implementation. Ultimately, all of these massive efforts do little to move banks towards digital transformation, an urgent priority and a vital business imperative today.

Agile Technology Addresses Bill C-86 Requirements and Advances Digital Transformation

The good news is banks are increasingly finding solutions from partnerships with fintech companies that help them progress forward in both digital transformation and regulatory compliance. And in less time and for less cost than if they built internal systems to address those issues themselves. By surrounding themselves with an ecosystem of cutting-edge, best-of-breed partners, banks advance their core modernization efforts, meet regulatory requirements with greater ease, and create more tailored, relevant customer experiences informed by comprehensive customer data.

For banks working on Bill C-86 compliance, the best part is how quickly real-time alerts and notifications can be up and running – in as little as three months, depending on the banks’ integration pattern.

Zafin’s product and pricing platform is one of the ecosystem partners banks rely on. We are already assisting a number of Canadian banks with both Bill C-86 requirements and digital transformation and core modernization initiatives. Our cloud-native SaaS product and pricing platform allows banks to maximize and streamline their product and pricing management while leaving their core systems in place, doing what they do best. Zafin integrates with legacy tech stacks to help banks update and launch new products, including loyalty programs, relationship pricing and rewards, with little lift from IT.


In addition, by aggregating customer data in Zafin’s platform, the bank can visualize all of a customer’s relationships, providing key data to trigger Bill C-86 notifications. Perhaps more importantly, banks can proactively reach out to help customers find products and services that align with their short and long-term financial goals.


For banks working on Bill C-86 compliance, the best part is how quickly real-time alerts and notifications can be up and running – in as little as three months, depending on the banks’ integration pattern. With Zafin’s platform, banks save months of time, energy, in-house resources and money, but still deliver regulatory compliance as well as business line insights that can be used to deepen relationships and attract new business.


Would you like to talk 1:1 about your financial institution’s specific Bill C-86 needs and goals? Contact us.


[gravityforms id="8" ajax="true" title=”false” description=”false”]
<script type="text/javascript">if(!gform){document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0});var gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),null==t&&(t=10),gform.hooks[o][n].push({tag:i,callable:r,priority:t})},doHook:function(o,n,r){if(,1),null!=gform.hooks[o][n]){var t,i=gform.hooks[o][n];i.sort(function(o,n){return o.priority-n.priority});for(var e=0;e<i.length;e++)"function"!=typeof(t=i[e].callable)&&(t=window[t]),"action"==o?t.apply(null,r):r[0]=t.apply(null,r)}if("filter"==o)return r[0]},removeHook:function(o,n,r,t){if(null!=gform.hooks[o][n])for(var i=gform.hooks[o][n],e=i.length-1;0<=e;e--)null!=t&&t!=i[e].tag||null!=r&&r!=i[e].priority||i.splice(e,1)}}}</script> <div class='gf_browser_unknown gform_wrapper gravity-theme' id='gform_wrapper_8' ><div id='gf_8' class='gform_anchor' tabindex='-1'></div> <div class='gform_heading'> <h2 class="gform_title">Testing Ajax | OptinMonster Support</h2> <span class='gform_description'></span> </div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_8' id='gform_8' action='/resources/banks-in-race-to-comply-with-bill-c-86/#gf_8' novalidate> <div class='gform_body gform-body'><div id='gform_fields_8' class='gform_fields top_label form_sublabel_below description_below'><div id="field_8_1" class="gfield field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_8_1' >Name</label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_8_1' type='text' value='' class='large' aria-invalid="false" /> </div></div><div id="field_8_2" class="gfield gfield--width-full gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_8_2' >Email<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_text'><input name='input_2' id='input_8_2' type='text' value='' class='large' aria-required="true" aria-invalid="false" /> </div></div></div></div> <div class='gform_footer top_label'> <button class='om-trigger-conversion button gf_submit default' id='gform_submit_button_8'>Submit</button> <input type='hidden' name='gform_ajax' value='form_id=8&amp;title=1&amp;description=1&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_8' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='8' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_8' value='WyJbXSIsIjFmZGFmMjZmOGYwZDRjNmZiZGM5N2NkN2UxNTMyYmNhIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_8' id='gform_target_page_number_8' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_8' id='gform_source_page_number_8' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_8' id='gform_ajax_frame_8' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script type="text/javascript"> gform.initializeOnLoaded( function() {gformInitSpinner( 8, '' );jQuery('#gform_ajax_frame_8').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_8');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_8').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_8').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_8').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_8').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_8').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_8').val();gformInitSpinner( 8, '' );jQuery(document).trigger('gform_page_loaded', [8, current_page]);window['gf_submitting_8'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_8').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_8').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [8]);window['gf_submitting_8'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_8').text());}, 50);}else{jQuery('#gform_8').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [8, current_page]);} );} ); </script>