OEE Short and Simple

OEE In Simple Terms

The more we know, the more complicated things get.  The same is true for OEE.  When the training is over and the data collection starts, it’s easy to get overwhelmed with information.  It gets even worse when the results are published – especially if the OEE is less than anyone ever expected it to be.  A word of warning – OEE is always less than anyone expected it to be.

That can’t be right

More often than not, “That can’t be right” is the first statement you’ll hear.  This is typically followed by a request to review all of the input data to make sure there are no entry errors.  Chasing errors soon becomes the daily ritual as you try to make sense of the results.

Why this happens …

The greatest source of confusion begins with the very formula that’s being used to calculate OEE. A quick search of the web will yield the formula for OEE as Availability x Performance x Quality, where the result is expressed as a percentage.

Though this formula apears to be simple enough, the reporting mechanisms to support this formula require an exceptional level of rigor and integrity. Is the downtime precise or estimated? Do we attribute the unaccounted downtime to the Performance factor? If so, was the machine really running at the ideal rate? How many minor “machine faults” occurred? Were they really minor faults or simply unreported downtime events of unknown duration? And there begins the source of errors and confusion.

While the formula is correct, the reporting methods are error prone and become the underlying source of so much confusion. There is a much easier way to calculate OEE that eliminates the “overhead” required to support the traditional formula and does not require significant investment in advanced hardware or software technologies to better track downtime events, machine faults, or machine cycle times.

We suggest …

By definition, OEE can be calculated using a very simple formula:

OEE = (Good Parts Produced x Ideal Cycle Time) / Net Operating Time

OEE = Ideal Operating Time / Net Operating Time

  • Remember, the units of measure for the cycle time and operating time must be the same

This is also known as the “Back of the Envelope calculation” and anyone on the shop floor can do the math at any time. Just remember to use the same base unit of measure for time; if the cycle time is stated in “minutes per part”, then the Net Operating Time must be expressed in minutes as well.

Simple OEE – Example

A CNC machine is scheduled to run for 1 complete shift from 6:00 am to 2:30 pm. There are three breaks over the course of the shift: two (2) 10 minute breaks and one (1) 30 minute break. The ideal cycle time for each part is 75 seconds or 1.25 minutes.

For quick shift calculations, we first determine our Net Operating Time as follows:

  • Shift Time: 6:00 am – 2:30 pm = 8.5 hours = 510 minutes
  • Scheduled Breaks: (2 x 10) + (1 x 30) = 50 minutes
  • Net Operating Time = 510 – 50 = 460 minutes

If 340 good parts were produced on the machine over the complete shift, we can easily calculate our OEE as follows:

Calculate the Ideal Operating Time based on the quantity of good parts produced:

  • Ideal Operating Time = Quantity of Good Parts Produced x Ideal Cycle Time per Part
  • Ideal Operating Time = 340 parts x 1.25 minutes / part = 425 minutes

OEE = Ideal Operating Time / Net Operating Time

OEE = 425 / 460 = 92.39%

Short and Simple

Lost Time

We can quickly determine the total time lost during the shift with the following formula:

  • Lost Time = Net Operating Time – Ideal Operating Time

From our example above, the total lost time is  460 minutes – 425 minutes = 35 minutes.

Where did the time go?

Now that we’ve established how much time was lost over the course of the shift, we can review our production reports to determine when the lost time event occurred and how much downtime was incurred.  The reasons may be many but they are typically classified as follows:

  • Availability
    1. Setup and Adjustments
    2. Breakdowns
  • Performance
    1. Minor Stops
    2. Speed Losses – Running at less than Ideal Rate
  • Quality
    1. Start up / setup defects
    2. Production defects

These categories form the baseline for the more familiar OEE formula:

OEE = Availability x Performance x Quality

While this formula “works”, it is seldom possible for any given event to timed to the precision required to provide a truly accurate OEE result.  No matter what formula you choose to calculate OEE, the simple formula given earlier allows the real downtime to be determined.  How the downtime is allocated to each of the categories (Availability, Performance, or Quality) may not be so simple or easily monitored and managed.

In Conclusion …

The objective of OEE is to help direct your efforts and focus on those opportunities where the greatest improvements can be realized.  Unfortunately, many plants seem to think of OEE as a means of measuring “How good we are!” as opposed to “How much better can we get?”

We strongly suggest using the simple formula to calculate OEE, then drill down through the  various reports available to better understand the results  and inherent downtime losses.  This approach will enable you to “reverse engineer” your reporting infrastructure to identify the real opportunities for improvement. 

Your Feedback Matters

Thank you for reading and as always, we appreciate your feedback.  Please feel free to leave a comment or suggestions for future topics.

Until next time – STAY lean!


Lean Execution – Time for Change

It’s Time for Change

We’ve been operating our website under the same theme for several years and decided that it’s time for a new look.  So, we’re upgrading with new features and capabilities.  With these changes, we hope to make it easier for you to navigate and access our content.

You can also reach this site through our new domain name:  http://www.versalytics.org

As always, we appreciate your feedback.

Until Next Time – STAY lean!


SQLite Database Tools / Resources

SQLite is powerful, fast, and supported by a number of languages including a few of our favorites Python, Tcl/Tk, C/C++, Java, Ruby, and more.  This post serves as a baseline for some of the resources that are freely available on the web:

Getting Started:

SQLite Official Site – Follow this link to learn more about SQLite and how to get started.

SQLDatabase Tools:

Although the Command Line Shell for SQLite can be used to create and work with your SQLite database, there are some fairly powerful (and free) tools that provide a more intuitive Graphical User Interface (GUI).

  • SQLite Expert:  As of this writing, version 3.5.83 is available as well as a 4.0 beta version.  The Personal versions are free, however, a professional version is available for a nominal fee.
  • SQLite Browser:  This SQLite utility can be used to create, design, edit, search and so much more.  Working with SQLite databases doesn’t get much easier than this.  (Windows / Mac / Linux).  Freeware.
  • SQLite Studio:  An SQLite database manager that runs on Windows / Mac OSx / Linux and also supports Exporting to, and importing from, a variety of file formats. This free utility also offers extra plugins for a nominal fee.
  • Mozilla Firefox:  If you’re running Mozilla Firefox, an extension, SQLite Manager, can be used to manage any database on your computer.

C/C++, Python, Java, and Tcl/Tk are the primary languages we use to work with SQLite databases.  However, it’s always good to have these tools at hand when things just don’t seem to be working as they should.

SQLite Tutorials / Information

This should be more than enough to get you started to begin exploring data solutions for your own applications.  One of the most significant challenges that programmer face is data structure.  An SQLite database may just be the efficient and effective solution you need to manage your data.

Using Tcl/Tk and SQLite – Solution for creating a database and entering basic data.

Until Next TimeSTAY lean!

Vergence Analytics

Don’t Panic – When Bad Things Happen

WordPress dashboard interface
WordPress dashboard interface (Photo credit: Wikipedia)

Don’t Panic

Although the situation I am about to describe was successfully resolved, I felt compelled to share this event with you. Times like this expose our vulnerabilities and reinforce the adage to “expect the unexpected”.

The Situation

Imagine the shock and surprise followed by the deep, sinking feeling that set in when an unexpected notice suddenly appeared on my screen stating that our site was suspended effective immediately for failing to comply with WordPress.com’s terms and conditions. An attempt to visit our site from another computer confirmed it.

While you may not have noticed, I’m quite certain many others were wondering what was going on – especially first time visitors or recent subscribers. As our site often appears at the top of most Google searches – depending on the search term used – I can only imagine what was going through the minds of those who were attempting to visit.

After contacting WordPress, we learned that our site was subject to a spam detection error and suspended by the “system” in error. The fact that you’re reading this means the problem was successfully resolved by the great people at WordPress – apologies for the inconvenience included.

Expect the Best, Prepare for the Worst

While I am more than happy to have our site restored to full service, we needed more than just a simple backup of our data to preserve our blogging ecosystem. Our contingency plan included setting up a self hosted site and this event served as the trigger to make it a reality.

1617 A. SWETNAM School of Defence 56 He is a fool which will adventure all his goods in one ship.

Fortunately, WordPress.com provides several means for transferring or downloading a copy of your pages and posts. The suspension notice advised that the data for “your site” will only be available for a limited period of time.  Eventually all data will be completely removed from the system.

In other words, act quickly and methodically because the clock is ticking. Unless you’ve done this for yourself, there are a few items worth noting.

  • Although it’s possible to export the  entire site in a single XML file, the size of the file may exceed the import capacity of the new host.  Free XML import tools seem to have a limit of 1MB.   Our file exceeded this limitation.
  • The XML file does not include current subscribers or any of the data in your media gallery.
  • The current theme may not be available at the new host site and some of the functionality you may have expected has been lost.
  • Conversely, some themes offer more and better features than you may have expected.
  • Six (6) years of blogging creates a relatively large digital ecosystem with roots deeper than we first thought possible.

Corrective Actions

Setting up a self-hosted site may seem like an over-reaction to this situation, however, this event was very disturbing and quite unsettling, especially when we consider the number of visitors we receive over the course of a given day. Fortunately, this event occurred on a weekend when traffic volume is typically lower.

Since we already own several top-level domains, finding a hosting service was our next challenge.  We purchased our top-level domains from NameCheap.com and decided to pursue our hosting services through them as well.

We found two (2) excellent services that offer a variety of WordPress themes, set up our domains, and began the process of transferring a copy of our blog over to the new sites.  It is possible to upload themes directly and there a numerous themes to choose from.

Although we found a site that offers the same “Inove” theme we are using here, we noted that this theme has not been updated for the past two (2) years. We selected the Responsive theme for our new site as it offers new functionality and features that includes mobile platforms.

Lessons Learned

WordPress.com supports millions of bloggers and losing one – for whatever reason – is not going to have a significant impact on their continued and ever-growing success. This experience helped us to realize just how vulnerable we are when we trust our property, intellectual or otherwise, to an independent entity.  To circumvent the possibility of yet another catastrophic blogging event:

Statues of Don Quixote (left) and Sancho Panza...
Statues of Don Quixote (left) and Sancho Panza (right) (Photo credit: Wikipedia)

“It is the part of a wise man to keep himself today for tomorrow, and not venture all his eggs in one basket.”—Sancho Panza—Don Quixote (Part I, Book III, Chapter 9) by Miguel de Cervantes [1547-1616].

In simpler terms:  “Don’t put all your eggs in one basket!”

  • Have a contingency plan that includes creating a second, self-hosted site.  Note that it is possible to transfer your blog to a number of venues.  We successfully uploaded our XML data to several different platforms.
  • Prepare and Execute your contingency plan to determine and mitigate any risks or other consequential losses.
  • If you are presently blogging on WordPress.com, be aware that a complete XML copy of your site data may exceed the import limits of the receiving host – at least for the tools that are offered free of charge.
  • To minimize the size of the XML file, Pages and Posts can be exported separately.  You can also specify a date based range of posts to export. As such, you can create several smaller files that will contain all of your posts for a given period of time.
  • Perform regular exports of recent posts for importing to your self-hosted site and to serve as a local back up.
  • Transferring your site is not that difficult, however, WordPress.com will transfer your site for you for a fee.
  • Don’t be too naive. You are the only one who really cares about YOUR property – intellectual or otherwise. Although your subscribers and followers will be devastated, chances are you won’t be missed by the WordPress.com team unless you’re as big as the Huffington Post or some other notable blog venue.
  • When forced to look for options, there are better, feature filled alternative WordPress themes and options to be found. As we’ve said many times before, “There’s always a better way and more than one solution!”

Going Forward:

We recently celebrated six years of blogging on WordPress.com and plan to do so for many years to come.  While this experience has cast a shadow on our overall experience, we have learned yet again that we need to preserve and protect our own interests.

With over 218,000 page views from virtually every country around the world, we are doing something right. Our visitors and views continue to grow with each passing year. The top five countries that contributed to our Top Views this year are:

  1. United States
  2. India
  3. United Kingdom
  4. Canada
  5. Australia

On behalf of the Lean Execution Strategy Team, I appreciate and thank you for the privilege of serving you – our clients, subscribers, and visitors.  We wish each of you a happy holiday season and look forward to serving you in the new year with the best of successes in 2015.

Until Next Time – STAY lean!



GUI’s, wxPack, and wxWidgets

The official wxPython logo
The official wxPython logo (Photo credit: Wikipedia)

wxWidgets and GUI’s

In our post “Where’s the Graphics? Learning from our Roots (Tcl / Tk)” we focused on Tcl/Tk as a primary GUI development language.  We also mentioned QT as a viable alternative.  QT provides a more powerful GUI development API when compared to Tcl/Tk, however, the licensing schema for QT is also more complex.

To paraphrase the description from the wxWidgets website, wxWidgets is a C++ library that includes bindings for C++, Python and other languages to create cross-platform applications for Windows, Mac OS X, Linux, and more.

wxWidgets is available free of charge and offers a comprehensive collection of widgets that make it ideally suited for advanced GUI intensive applications. By using the native platform API, wxWidgets provides a native look and feel to your applications.

The latest version of wxWidgets is 3.0.2 as announced in the latest news release dated October 6, 2014.


Thanks to wxPack, we’ve expanded our list of cross-platform GUI’s to include wxWidgets.  wxPack greatly simplifies the task of installing and setting up wxWidgets on your machine.  wxPack is a full wxWidgets Development Kit, complete with wxWidgets source and binaries, wxFormBuilder (RAD Tool), and more.  Without wxPack, installing wxWidgets is a task best left to more seasoned developers.


From a development perspective, wxFormBuilder is the tool that ultimately caught our attention.  More specifically, wxFormBuilder offers the following features that are ideally suited to our language base and development environments:

  • Visual design of wxWidgets dialogs, frames, panels, toolbars and menubars
  • Source code generation for C++, Python, PHP, Lua and XRC
  • Support for wxWidgets 3.0 widgets (wxRibbonBar, wxPropertyGrid, wxDataViewCtrl, …)
Python and Qt
Python and Qt (Photo credit: Wikipedia)

Selecting Your GUI Tool Kit

The wealth of information available to learn and implement Qt suggests it is one of the better supported GUI tool kits in general. TKinter (Tcl/Tk) is also well supported due to it’s inclusion with the standard Python distribution.  Regardless of the tool kit chosen, the initial learning curve can be rather steep for more complex applications.  The number of widgets and options available with each package only add to the challenge of which package to choose.

Keeping it Lean

Too many options can make for more complicated interfaces than are necessary to meet the needs of the application and it’s end users.  For Python, TKinter provides a minimal widget set that serves the majority of our requirements.  That it’s already included with the standard Python distribution makes TKinter an even more convenient and attractive option.

There are times where a higher level of complexity and sophistication is necessary.  Of course, to learn every GUI kit available isn’t an option available to everyone.  The wealth of information and code samples available for QT make it a highly regarded option.

wxWidgets may just be the Goldilocks solution, falling somewhere between simplicity and sophistication where the tools available make it “just right” to get the job done.  A quick review of the wxWidgets Class List suggests there are more than enough features to develop a robust GUI for your application.

Ultimately, the right choice is the tool kit that is both effective and efficient for the given application.  Simplicity serves the purpose best especially during rapid development cycles and iterations.

Your feedback matters

If you have any comments, questions, or topics you would like us to address, please feel free to leave your comment in the space below or email us at feedback@leanexecution.ca or feedback@versalytics.com.  We look forward to hearing from you and thank you for visiting.

Until Next Time – STAY lean

Vergence Analytics

ActiveState Tcl

Tkinter demo: many widgets
Tkinter demo: many widgets (Photo Leancredit: Wikipedia)

It’s hard to believe that one day after we published “Where’s the Graphics?” ActiveState released Tcl  Though the link to the download page remains the same, we updated the context of our post to reflect the latest version number.

Visit the ActiveState Tcl 8.6 page for more detailed information.  ActiveState’s ActiveTcl Community Edition is a free, ready-to-install distribution for Windows, Linux, and Max OSx.

Though other GUI options exist, Tcl/Tk is a proven technology that has persisted for more than 25 years.  The latest release offers features that continue to keep Tcl/Tk relevant and at the top of our GUI toolkit.

In addition to the numerous resources listed in our “Where’s the Graphics” post, a wealth of information can also be found at wiki.tcl.tk.

Your feedback matters

If you have any comments, questions, or topics you would like us to address, please feel free to leave your comment in the space below or email us at feedback@leanexecution.ca or feedback@versalytics.com.  We look forward to hearing from you and thank you for visiting.

Until Next Time – STAY lean

Vergence Analytics

Where’s the Graphics? Learning from our Roots (Tcl / Tk)

Tkinter demo: many widgets
Tkinter demo: many widgets (Photo Leancredit: Wikipedia)

One of our “side bar” challenges is developing software solutions (applications) for our clients.  Simple or complex, they all have one element in common, a Graphical User Interface or GUI.

Imagine the surprise and disappointment on the faces of many beginning programmers and developers when they discover that powerful languages like Assembler, C, C++, and even Python start by teaching you how to write software from the command prompt!

We’ve been there too!  When we decided to learn Python – a powerful, high-level, dynamic interpreted scripting language that is quickly becoming the language of choice for new developers – we were just as surprised to be writing and running programs from the command line (C:\).  Even Python’s Interactive Development Environment (IDLE) uses a “prompt” driven interface.

Basic Fundamentals

Our journey with Python originated with our interest in learning C++.  When we discovered that Python is written in C++, we were curious to see how C++ could be used to create an even more powerful dynamic language.

Learning a language and creating a GUI are related but they are not necessarily the same.  Developing an application requires a solid understanding of the core language itself including its capabilities and constraints.  A GUI “simply” serves as a means of interacting with the core application without concern for how the program actually functions or performs internally.

By way of analogy, driving a car does not require us to understand the intricate functions of the engine and powertrain.  As drivers, we use a key to turn the engine on or off, a gear selector, the accelerator and brake pedals, and the  instrument panel – all of which are the equivalent of a GUI in terms of function – to control and monitor the vehicle.  As developers, however, we are more concerned with ensuring that the engine and powertrain function as expected.  In other words, the GUI can wait but it should still be a consideration during the development process.

Where’s the Graphics?

The result
The result (Photo credit: Wikipedia)

Is writing applications with a nice, clean, graphical interface a mystery that only professional programmers can master?  This answer may surprise you.  Anyone can create a GUI and there is yet another language for doing just that:  Tcl/Tkinter. Tcl is a general purpose scripting language developed by John Ousterhout in 1988 and was designed to enable communication between applications.   Tkinter is a cross platform toolkit that provides a variety of widgets for building GUI’s in many languages.

Most introductory books on Python are concerned with teaching the core fundamentals of the Python language itself, though some may provide a brief introduction to Tkinter.  It is significant that Tkinter is included as part of the Python distributions that are freely available for download from the Python.org website.  Including Tkinter in the Python distribution enables the development of simple to complex GUI’s for your application.

Back to the Beginning

Although other packages such as wxWidgets and PyQt are available, that Tkinter is included in the standard Python distribution makes it much easier to integrate and explore.

To fully understand the Tcl/Tk programming language, we decided to search for more information.  We discovered an excellent Tcl/Tk Tutorial at TutorialsPoint.com where we are served with a wealth of information for both Tcl and Tk.  This is certainly enough to whet your appetite for more.

The TutorialsPoint Tcl/Tk  Tutorial describes several features of Tcl and this is one that caught our attention:

 “You can easily extend existing applications with Tcl. Also, it is possible to include Tcl in C, C++ or Java to Tcl or vice versa.”

What seems like an overly extended tangent from our original pursuit of C++ has become a worthwhile journey.  One of our greatest frustrations while learning C (and C++) was the lack of information for developing a graphical interface for our applications.  It looks like we may have discovered something that will help us along the way for a variety of languages.

Tcl/Tkinter Resources:

If you are using an Apple computer, Tk and Python are already installed on your system as part of the OSx.  The versions installed depend on the version of OSx you are running on your computer.

We recommend visiting SourceForge.net and searching for the term “Tcl/Tk”, without the quotes, using the site’s search box.  You will be presented with the latest version of Tcl (8.6.2) and variety of other related tools including several Tcl extension packages and IDE’s.

To get the latest copy of ActiveState‘s version ( of Tcl/Tk for your system (Windows, Linux, Mac OSx) visit the ActiveState.com download page.  The community version is free and will be more than sufficient to get you started.  Click here to see some interesting code snippets or “recipes” on the ActiveState site that demonstrate some of the key features of Tcl/Tk.

We already suggested that TutorialsPoint offers an excellent introduction to Tcl/Tk Programming, however, we have also discovered several books that are worth mentioning to get you started:

Python and Tkinter GUI:

Python and Other GUI’s:

C++ and Qt:

English: Screenshot Qt Designer Русский: Скрин...
English: Screenshot Qt Designer Русский: Скриншот Qt Designer (Photo credit: Wikipedia)

While some are comfortable to accept the tools at face value, we found it helpful to delve into the core of Tkinter and Tcl to fully appreciate and understand the underlying language and tools that are available to us.


As Operating Systems continue to compete for market share, it is good to know that we have cross platform GUI options that will allow us to write applications that will work on all of them.  To this end, we’re less concerned about “who wins” and more concerned about writing efficient and effective applications for our clients.

Your feedback matters

If you have any comments, questions, or topics you would like us to address, please feel free to leave your comment in the space below or email us at feedback@leanexecution.ca or feedback@versalytics.com.  We look forward to hearing from you and thank you for visiting.

Until Next Time – STAY lean

Vergence Analytics