Jonathan Streater

Software | Data | UX

  • Projects
  • Resumé
  • About

TurboTax's Archie

March 27, 2016 by Jonathan Streater

Archie is a friendly tax expert who is with you all year long, helping you understand and take care of your financial well-being.  He is a chatbot connected to various services and knowledge bases that can make sure you understand money and tax situations as they happen.  

And that was the brief that we started with as creative team that included two developers and two designers.  To develop a tool that would allow TurboTax to build relationships with their customers all year long rather than as one urgent, anxiety-filled sprint per year in tax season.  

We designed Archie to be a natural language (NL) interface that is both delightful to interact with as well as useful at the right time and place.  So he can tell jokes but he can also notice if you're on a business trip and help you record your receipt, for example.  

NL interfaces are powerful because everyone already understands natural language.  But they are a challenge to design and develop because even state of the art NL algorithms fall well short of the language abilities of people. And to make things worse, when NL interfaces fail, people don't usually understand why or how because these types of interfaces don't provide much transparency into the mechanics of how they work.  So with this in mind, we focused hard on making an interface that makes sure you understand what you can say at all times and if there is a disconnect, can directly address and repair that miscommunication.  

 Helping keep track of receipts for you.

Helping keep track of receipts for you.

 Aggregating all your interactions from there year into a mostly done tax return.

Aggregating all your interactions from there year into a mostly done tax return.

archie_bigwin1.png
archie_bigwin2.png
archie_bigwin3.png
 A very high level architecture for how our system ties together incoming messages from clients, tax facts that we've encoded, and our dialog trees.

A very high level architecture for how our system ties together incoming messages from clients, tax facts that we've encoded, and our dialog trees.

 Helping keep track of receipts for you.  Aggregating all your interactions from there year into a mostly done tax return. archie_bigwin1.png archie_bigwin2.png archie_bigwin3.png  A very high level architecture for how our system ties together incoming messages from clients, tax facts that we've encoded, and our dialog trees.

With the help of writers, we developed a dialog system that uses trees of dialog for defining everything Archie can possibly say, pattern matching for matching incoming language forms within the context of the current overarching conversation, and a probabilistic parser to decipher things you say as nouns and verbs so that they can be used for matching.  We built most of our service in Python.  However, we used Clojure to define tax rules and we used Wit.ai (since bought by Facebook) for its probabilistic parser and handy interface for prototyping new dialogs.

My role in this project spanned concepting, researching and introducing the field of Natural Language Understanding based interfaces to my teammates, prototyping, and connecting our design considerations to our natural language capabilities in production code.  I also managed secondary and primary research in the domain of taxes and finances.  This involved a whole lot of digesting information about our target audiences (for this prototype we focused on simple filers and freelancers who run a home office) and organizing and interviewing tax experts.

March 27, 2016 /Jonathan Streater
  • Newer
  • Older