U-Pak Disposals Reduces Time and Costs with FleetMind

U-Pak Disposals is a leading recycling services provider in the Greater Toronto and Southern Ontario area. For over 35 years, U-Pak Disposals has been developing industry-leading sustainable recycling alternatives with a fleet of 50 vehicles and a commitment to the highest environmental standards.

U-Pak-Disposals-Ltd.
“Using FleetMind’s on-board computer and driver terminal solution coupled with our Soft-Pak back-office system has brought tremendous benefits. When I discovered that my drivers could take pictures and capture signatures with the new FleetLink handheld unit, I wanted to be the first to try it. I gave them an order right away. I could see how this will help our operations be more efficient, especially on routes that take us into alleys in Toronto’s downtown core where we are often blocked and can’t service the customers. Now we can show them why in real-time. This brings us one step closer to achieving our mandate of reducing the amount of paper we produce.”
Mary Molony, CFO, U-Pak

The Problem


U-Pak needed technology solutions to address a number of the company’s fleet management issues:

  • Labor Intensive Data Processes: U-Pak wanted to reduce staffing requirements by streamlining the daily data entry and process of getting daily calls to the driver. The current process of data entry for service tickets and disposal information, and tracking turn times, was too time consuming.
  • Inefficient Service Verification: U-Pak was also looking for a more reliable way to confirm service completion, and for customer service staff to have real-time access to this information for issues resolution.
  • Lack of Truck/Driver Visibility: From an operations point of view, U-Pak wanted a real-time view into truck locations, progress and call times.

The Solution


U-Pak turned to FleetMind and its on-board computer and driver terminal solutions to address its issues.

Since FleetMind could already interface with the U-Pak back office system (i-Pak), the first step was already complete. U-Pak installed the FleetLink solution on two vehicles on a trial basis. The FleetMind team worked closely with the U-Pak staff to make sure that all of the requirements for both administration (billing) and operations were being met. FleetMind worked directly with U-Pak’s back office partner, 3) { fieldsArray = { hitType : 'timing', timingCategory : 'Scroll Depth', timingVar : action, timingValue : timing, timingLabel : label, nonInteraction: 1 }; MonsterInsightsObject.sendEvent( fieldsArray ); } } function calculateMarks(docHeight) { return { '25%' : parseInt(docHeight * 0.25, 10), '50%' : parseInt(docHeight * 0.50, 10), '75%' : parseInt(docHeight * 0.75, 10), /* Cushion to trigger 100% event in iOS */ '100%': docHeight - 5 }; } function checkMarks(marks, scrollDistance, timing) { /* Check each active mark */ $.each(marks, function(key, val) { if ( $.inArray(key, cache) === -1 && scrollDistance >= val ) { sendEvent('Percentage', key, scrollDistance, timing); cache.push(key); } }); } function rounded(scrollDistance) { /* Returns String */ return (Math.floor(scrollDistance/250) * 250).toString(); } function init() { bindScrollDepth(); } /* * Public Methods */ /* Reset Scroll Depth with the originally initialized options */ $.scrollDepth.reset = function() { cache = []; lastPixelDepth = 0; $window.off('scroll.scrollDepth'); bindScrollDepth(); }; /* Add DOM elements to be tracked */ $.scrollDepth.addElements = function(elems) { if (typeof elems == "undefined" || !$.isArray(elems)) { return; } $.merge(options.elements, elems); /* If scroll event has been unbound from window, rebind */ if (!scrollEventBound) { bindScrollDepth(); } }; /* Remove DOM elements currently tracked */ $.scrollDepth.removeElements = function(elems) { if (typeof elems == "undefined" || !$.isArray(elems)) { return; } $.each(elems, function(index, elem) { var inElementsArray = $.inArray(elem, options.elements); var inCacheArray = $.inArray(elem, cache); if (inElementsArray != -1) { options.elements.splice(inElementsArray, 1); } if (inCacheArray != -1) { cache.splice(inCacheArray, 1); } }); }; /* * Throttle function borrowed from: * Underscore.js 1.5.2 * http://underscorejs.org * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Underscore may be freely distributed under the MIT license. */ function throttle(func, wait) { var context, args, result; var timeout = null; var previous = 0; var later = function() { previous = new Date; timeout = null; result = func.apply(context, args); }; return function() { var now = new Date; if (!previous) previous = now; var remaining = wait - (now - previous); context = this; args = arguments; if (remaining <= 0) { clearTimeout(timeout); timeout = null; previous = now; result = func.apply(context, args); } else if (!timeout) { timeout = setTimeout(later, remaining); } return result; }; } /* * Scroll Event */ function bindScrollDepth() { scrollEventBound = true; $window.on('scroll.scrollDepth', throttle(function() { /* * We calculate document and window height on each scroll event to * account for dynamic DOM changes. */ var docHeight = $(document).height(), winHeight = window.innerHeight ? window.innerHeight : $window.height(), scrollDistance = $window.scrollTop() + winHeight, /* Recalculate percentage marks */ marks = calculateMarks(docHeight), /* Timing */ timing = +new Date - startTime; checkMarks(marks, scrollDistance, timing); }, 500)); } init(); }; /* UMD export */ return $.scrollDepth; })); jQuery.scrollDepth(); } else { setTimeout(monsterinsights_scroll_tracking_load, 200); } } monsterinsights_scroll_tracking_load(); }); } /* End MonsterInsights Scroll Tracking */