From 50 KPI’s to 10: Moving from Static to Real-time KPIs

Real-time KPIs

30 Jul From 50 KPI’s to 10: Moving from Static to Real-time KPIs

Rethinking your company’s KPI strategy

A recent study by The Advanced Performance Institute entitled 20 Years of Measuring and Managing Business Performance revealed the fact that less that 20% of companies state everyone obtains regular insights (usually using Key Performance Indicators, or KPIs) which improve day-to-day decision making at all levels.

The same study shows that senior management seems to benefit, but not everyone.  Why is that? In my experience it stems from the fact that KPIs were meant for the “Senior Management Monthly Meeting” – containing a 50-slide Business Process Management Deck. To improve day-to-day decision making at all levels, organizations must rethink KPIs and focus on reducing the number of KPIs to individuals while moving from static to more real-time KPIs.  The basic concept is to fight information overload and ensure the right KPIs are delivered to the right people at the right time.

Here are three things to consider when rethinking your KPI strategy and moving from static to real-time KPIs:

1. KPI Real-Time Maturity.

Is the organization ready for real-time KPIs?  They key issues are:

  • Can specific individuals within your organization handle and manage to these metrics?
  • Can the data sources which KPIs are derived from be accessible?

One way to assess this is to define your KPIs, their source, their refresh frequency and review-frequency by the organization. Once you have this “KPI Inventory”, they can be grouped by organization (users of the KPIs) and refresh/review frequency for better determining how to redesign your business metrics, which is another item to consider.

2. Redesign your business metrics.

This can include newer KPIs and/or the frequency of refresh and use.  Can quarterly KPIs migrate to monthly, monthly to weekly, weekly to daily, and daily to real-time?  Using the above maturity criteria, can the data which feeds these KPIs be accessed on such a basis?  Can visibility and/or ability to react to your new set of real-time KPIs drive better business value?  Finally, can your organization handle these KPIs in real-time?

Here are two example of a redesign of business metrics:

New Key Performance Indicators
While profitability is usually measured on a quarterly or monthly basis at the corporate level, organizations can better drive profitability by understanding profitability by product on a “cost-per” basis as product is in the manufacturing stage.  Some products where yields or fluctuations in raw material quality can drive costs up or down can have a material impact on corporate profitability.  When managing all products by “cost-per” KPIs across the organization and in real-time, corporate profitability drivers can be much better understood.

A KPI which drives business value going from weekly to real-time.
In some supply chains where environmental compliance can be a large factor both in terms of profitability and in public perception, managing KPIs such as waste recycling rate, carbon footprint and water footprint to a real-time level can enable organizations to better manage to their green metrics.

3. KISS – Keep it Short and Simple.

Real-time information allows you to reduce the number of KPIs used to manage the business.  The 50 slide BPM deck in many cases is no longer needed.  While real-time KPIs can benefit everyone in an organization, each team member needs to remain focused on a specific set pertinent to their role, level and ability to respond to real-time KPIs.  Therefore simplification needs to be the theme – short, simple and easy to access and review. We designed our One View dashboard to allow for a “shallow dive,” so you only see KPIs that matter in real time.

In summary, reducing and migrating some KPIs to a real-time nature can drive business benefits by empowering all levels of an organization and direct supply chain improvements.

A roadmap to creating a real-time KPI dashboard

  1. Assess current KPIs by business function, role and department
  2. Consider real-time readiness and maturity, in context of people and data sources
  3. Create a KPI roadmap and action plan; prioritize by readiness and business value
  4. Choose the “best” KPIs and commit the right resources
  5. Develop a strategy to move from static metrics to relevant real-time KPIs


Learn more from our webinar presented in conjunction with Epicor, “From 50 KPIs to 10.”

See the video >


  • Supply Chain KPIs: Tops Down or Bottoms Up?
    Posted at 22:37h, 21 August Reply

    […] KPIs?  We get asked this question all the time and the answer can be as few as 10 or as many as 50.  The number can vary by industry, company and role.  The number also varies as you move from […]

  • Sage Clarity Selected by CIO Review for its 20 Most Promising Manufacturing Technology Solution Providers - Sage Clarity
    Posted at 09:51h, 03 November Reply

    […] Sage Clarity Provides Real Time Analytics […]

  • Introducing The Sage Clarity Real Time KPI Maturity Framework™ - Sage Clarity
    Posted at 23:01h, 16 November Reply

    […] the 5 (or so) months since we launched this blog, the most popular article discussed real-time KPIs.   Since this post, we have received numerous requests focused around a “how do I get started […]

  • Driving Cultural Change using Mobile Devices
    Posted at 06:37h, 26 March Reply

    […] Communication. Not a new aspect of cultural change, but there is more than communicating values. High-level values such as “customers come first” do not mean much unless translated into actionable information for the entire organization. To communicate information, dashboards are commonly used today but to take communication to the next level, dashboards much be real-time, contextualize and role based. With communication, organization must focus communications on the right information to the right people at the right time. With email overload, many supply chain stakeholders are becoming oblivious to numerous team members on an email chain. To communicate effectively, sometimes less is more. […]

  • From 50 KPIs to 10: Moving from Static to Real-time KPIs
    Posted at 11:01h, 20 April Reply

    […] our most popular post, we discussed moving from static to real-time Key Performance Indicators and a methodology we use to help achieve real-time KPIs. Executing a static to real-time KPI […]

  • shantilal parmar
    Posted at 04:08h, 14 January Reply

    Thanking you for the knowledge. It is very useful. I want know can Real time KPI is used for reliability maintenance schedules for all or particular equipment’s operation monitoring & assessment

  • 5 example use-cases for real-time data processing
    Posted at 09:06h, 14 September Reply

    […] course, real-time metrics must be used responsibly to be helpful. It’s important to evaluate which metrics are actually valuable in real time, and which should be […]

Post A Comment

[gravityform id="7" title="false" description="false" ajax="true"]
<div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_7' ><div id='gf_7' class='gform_anchor' tabindex='-1'></div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_7' id='gform_7' action='/50-kpis-10-moving-static-real-time-kpis/#gf_7' > <div class='gform_body gform-body'><ul id='gform_fields_7' class='gform_fields top_label form_sublabel_below description_below'><li id="field_7_1" class="gfield form-field-name gfield_contains_required field_sublabel_hidden_label field_description_below hidden_label gfield_visibility_visible" data-js-reload="field_7_1"><label class='gfield_label gfield_label_before_complex' >Name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name has_last_name no_suffix gf_name_has_2 ginput_container_name' id='input_7_1'> <span id='input_7_1_3_container' class='name_first' > <input type='text' name='input_1.3' id='input_7_1_3' value='' aria-required='true' placeholder='First Name' /> <label for='input_7_1_3' class='hidden_sub_label screen-reader-text'>First</label> </span> <span id='input_7_1_6_container' class='name_last' > <input type='text' name='input_1.6' id='input_7_1_6' value='' aria-required='true' placeholder='Last Name' /> <label for='input_7_1_6' class='hidden_sub_label screen-reader-text'>Last</label> </span> </div></li><li id="field_7_3" class="gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" data-js-reload="field_7_3"><label class='gfield_label' for='input_7_3' >Enter your email<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_3' id='input_7_3' type='text' value='' class='medium' placeholder='Enter your email' aria-required="true" aria-invalid="false" /> </div></li><li id="field_7_8" class="gfield field_sublabel_below field_description_below hidden_label gfield_visibility_visible" data-js-reload="field_7_8"><label class='gfield_label' for='input_7_8' >Phone</label><div class='ginput_container ginput_container_phone'><input name='input_8' id='input_7_8' type='text' value='' class='medium' placeholder='Phone' aria-invalid="false" /></div></li><li id="field_7_7" class="gfield gfield_contains_required field_sublabel_below field_description_below hidden_label gfield_visibility_visible" data-js-reload="field_7_7"><label class='gfield_label' for='input_7_7' >Company<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_7' id='input_7_7' type='text' value='' class='medium' placeholder='Enter your company' aria-required="true" aria-invalid="false" /> </div></li><li id="field_7_9" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_9"><div class='ginput_container ginput_container_text'><input name='input_9' id='input_7_9' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_7_10" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_10"><div class='ginput_container ginput_container_text'><input name='input_10' id='input_7_10' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_7_11" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_11"><div class='ginput_container ginput_container_text'><input name='input_11' id='input_7_11' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_7_12" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" data-js-reload="field_7_12"><label class='gfield_label' for='input_7_12' >Email</label><div class='ginput_container'><input name='input_12' id='input_7_12' type='text' value='' /></div><div class='gfield_description' id='gfield_description_7_12'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_7' class='gform_button button' value='WATCH THE VIDEO' onclick='if(window["gf_submitting_7"]){return false;} window["gf_submitting_7"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_7"]){return false;} window["gf_submitting_7"]=true; jQuery("#gform_7").trigger("submit",[true]); }' /><!-- Begin Daddy Analytics fields --><input type="hidden" name="" value="" /><input type="hidden" name="" value="" /><!-- End Daddy Analytics fields --> <input type='hidden' name='gform_ajax' value='form_id=7&amp;title=&amp;description=&amp;tabindex=0' /> <input type='hidden' class='gform_hidden' name='is_submit_7' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='7' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_7' value='WyJbXSIsIjkxNDIyMmFlMTAxZmQ0Y2JiZGRlMTcwMzZjMjBlNDQxIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_7' id='gform_target_page_number_7' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_7' id='gform_source_page_number_7' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <input type="hidden" id="ct_checkjs_3c59dc048e8850243be8079a5c74d079" name="ct_checkjs" value="0" /></form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_7' id='gform_ajax_frame_7' title='This iframe contains the logic required to handle Ajax powered Gravity Forms.'></iframe> <script type="text/javascript"> gform.initializeOnLoaded( function() {gformInitSpinner( 7, '' );jQuery('#gform_ajax_frame_7').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_7');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_7').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_7').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_7').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_7').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_7').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_7').val();gformInitSpinner( 7, '' );jQuery(document).trigger('gform_page_loaded', [7, current_page]);window['gf_submitting_7'] = 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_7').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_7').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [7]);window['gf_submitting_7'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_7').text());}, 50);}else{jQuery('#gform_7').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [7, current_page]);} );} ); </script>