Nancy Bot

A chatbot to help people keep track of their budget.


I decided to supplement my Alexa skill, Finance Adviser. While I felt that it was an effective way to help young people create and think about their budget, its functionality was limited by virtue of having only a voice user interface and really only being available wherever your Echo device was located. For users on the go or who prefer visual input/output, Finance Adviser would be much less useful.

Here is an excerpt from the press release for my chatbot, Nancy Bot:

Finance Adviser has released a chatbot, Nancy Bot. The chatbot provides all the functions of the original Finance Adviser skill, while giving users new methods of logging transactions on the go. In addition to text inputs, Nancy Bot can translate pictures of receipts into dollar amounts to log transactions. Nancy Bot also provides users with real-time budget analysis, allowing users to visualize their finances and ask for advice on how much they can afford to spend, whether they’re at home or in line at a store.

Design Objective

The original skill, Finance Adviser, was meant to help recent college graduates create and maintain a budget in a simple and easy manner. The chatbot provides an alternative interface for Finance Adviser users. Sometimes a voice user interface can be of limited use to people who have an accent, as VUI devices can have trouble understanding them, or people who prefer to have visuals when tracking their budget. Nancy Bot solves those problems by allowing users to log transactions through text or image and providing visualizations of the users’ spending habits.

Design Process

I already had a general framework for the chatbot based on the work I did for the original Alexa skill, so I focused instead on looking at how other finance-related chatbots interacted with their users. I found about five chatbots with functions similar to mine and created a brand matrix to compare their ability to react and their personality.

Brand Matrix for Budget-related Chatbots
An analysis of five major budget-related chatbots: Cleo, Penny, Plum, Chip, and Trim.

The most popular chatbot, Cleo, has a very distinctive personality and is able to intelligently use memes, gifs, and emojis in conversation. According to their website, Cleo can “roast” a user with Game of Thrones gifs by analyzing their spending habits. Giving the chatbot a personality encourages the users to interact with it, which makes tracking spending more fun and engaging than it otherwise would be. I wanted to have a chatbot that was able to interact intelligently with the user as well.

Another aspect of the chatbot was the visual design of it. All of the chatbots that I looked at used simplistic graphics to represent the bot rather than a real photo. I decided to create a similar avatar for Nancy. Using a real photograph to represent a chatbot often seems unsuccessful, since it is too obvious that the chatbot is not a real person. There’s a certain level of off-putting “uncanny valley” that occurs with bots when they’re trying too hard to seem like a real person.


I created essentially four different conversation types to showcase Nancy Bot’s abilities. First, Nancy Bot can provide guidance to the user regarding its functions. Nancy Bot also allows the user to log transactions by texting a picture of a receipt or the dollar amount spent. Nancy Bot also provides counseling about spending, analyzing the user’s budget and advising the user about whether to spend money or not.

Nancy Bot Flowchart

Video Demo


I enjoyed designing the conversation for the chatbot. Coming up with a personality and scripting out dialogue like a screenwriter was challenging, but rewarding. When showing the demo in class, it was fun to see how my other classmates reacted to various pieces of the dialogue.

It was challenging to make the chatbot sound like a natural human rather than a formulaic bot. Ideally, the interaction would stay fresh even after long-time use of the bot. If this were a full-fledged bot, I would like to program in variations so that the bot can choose different ways to say the same thing so that it never gets stale for the user.

I have not used many modern chatbots. Most of my interactions with chatbots before this project were with the bots people made back in the late-90s or early-2000s, which were fun to interact with at first but quickly became boring due to the limits of the programmed content. My chatbot measures up pretty well against what I’ve seen in terms of sounding like a human without sounding like it’s trying too hard to be a human.

Leave a Reply

error: This content is protected.