The case for automatic excuse generators
Kapil Kapre | Tuesday, Feb 26, 2013

All over the world, workplaces have always been in a state of flux. Technological innovation, scientific breakthroughs and creative planning have all contributed towards the automation of an ever-increasing portion of the supply chain. Precisely this process of automation has been the spark that has unleashed a torrent of human creativity in the discipline of deflecting blame and excuse generation. An ever-increasing number of professionals opting to work from home have amplified the technological aspect greatly. Dodgy cellular networks, virus-ridden personal computers, fluttering electrical infrastructure, perplexing modern software and unreliable internet connections all proudly serve their role as being elements of a high-quality modern excuse. We can look back with giddy pleasure and feel superior to the primitive men and women who blamed incompetent co-workers, sick pets or treacherous weather conditions for being unable to perform their work duties. This model of progress presents us with an interesting challenge in the artificial intelligence domain. There is an as of now un-met demand for a device or a service that can generate modern plausible excuses.

Let us examine a couple of high-quality excuses:

"Sorry, I did not see that e-mail. It might have gotten stuck in the spam folder."

"I didn't catch that - your voice was really breaking up towards the end. It could be the bad cellular reception."

"I did hit save! Guess the hard disk got corrupted."

"I received your SMS hours late and was unable to respond to you."

"My internet is broken!"

"Done by Wednesday? Crap, I think gmail autocorrected Friday to Wednesday!"


A good excuse has certain core components – basis functions if you will – that make for a high quality excuse. They are as follows.

  1. The excuse should *ALWAYS* paint you as the victim. This is the most important one and it diffuses any acrimonious exchanges that might occur.
    Naturally, the reaction to having their expectations unmet varies from person to person. While a sane person is quite likely - in the event of you being a victim - to pardon it away, unstable people especially under pressure are likely to inflict either mental or bodily harm. Having this core component makes it easier to obtain sympathy.
  2. The excuse should be plausible but also unprovable at the same time.
    The key here is that the excuse cannot be challenged. And ideally the object of the excuse should be something that is either expected to go wrong or something that has gone wrong in the past. This makes the other party kick themselves even more for not accounting for this eventuality.
  3. The excuse should be as specific as possible to avoid any connection with other events or people.
    This is important because we do not want other people either explicitly corroborating or denying your version of how the events unfolded. You never know when someone turns into a snitch. People usually learn this one the hard way.
  4. Whatever excuse you choose, the excuse should leave you with other options, but also that exercising those options would make the other person seem cruel.
    This one is highly unintuitive. You would think that an excuse should be air-tight leaving you with no other choice, but you'd be wrong. Whenever you deliver the excuse you should come up with scenarios where you could have avoided the offense but that those scenarios would be something beyond what is expected of you. A classic example is when you're sick. You technically could have come-in to work, but you were running a really high fever and had body-aches even as you tried to get out of bed and get to work. As a subtle way of initiating sympathy one might even describe attempts to follow through on such extreme actions.

Here is my attempt to give you a simple excuse generator while we wait for science to progress. Feel free to laugh at it. Its not very good - its just a basic CFG based generator. I tested a Markov chain based generator but I currently don't have enough seed data.