Launch HN: Penny (YC W17) – a personal finance coach
We actually got our start on HN over a year ago. Alex and I spent a couple weeks putting together a prototype of the app as a fun side project in between jobs. We launched that on Show HN (https://news.ycombinator.com/item?id=9942202), managed to raise a seed round a few months later, and then re-launched on Show HN (https://news.ycombinator.com/item?id=10858327) several months later. Thanks for the encouragement and feedback along the way!
Some things that we’ve learned and/or would be happy to discuss:
- Having only five categories scaled way further than we thought. It turns out there’s a silent majority that appreciates the simplicity. We just added a premium version that includes subcategories, but we made it over 1.5 years without them.
- We built Penny as a web app (Cordova). It pretty much guarantees that we don’t get featured by Apple or Google, but it allows us to iterate really, really quickly. All users always have the latest version, and we can update the app in two minutes flat. We think the tradeoff is worth it.
- We’re using a chat interface because it allows Penny to explain your finances in simple, relatable English, but we’re not on any chatbot platforms. We also strongly favor predetermined choices over freeform messages.
- Most people don’t realize when they’ve potentially been harmed: over 40% of our Wells Fargo users hadn’t heard about the scandal a month after the news broke. For the Arby’s breach it was over 70%, and for the Navient lawsuits it was 93%.
- We decided to roll our own Ruby DSL for writing conversations, which renders a JSON syntax tree that’s interpreted by the client. Right now, Penny has 34,560 words of copy, 888 emojis, and 93 GIFs.
93 comments
[ 4.6 ms ] story [ 196 ms ] threadSince we use Cordova, the entire app is a website. So when you open up the app, it launches a webview pointed to a website that we deploy to like any other website. That means we can change any client logic and it'll go out in minutes. We also have a conversation DSL that lets us make conversation flow tweaks in under a minute, and since the bulk of the app is conversations, that allows us to move super quickly.
Great question about the changelogs! Since we don't have a longer cadence between feature pushes since we're deploying all the time, we have to go back and look at historical pushes whenever we need to write a changelog. We typically roll up all the little features and announce them whenever we make a new version in the app store. On top of that, we usually announce new features inside Penny, where she'll give a little intro on the new functionality. That also doubles as onboarding to the new feature if needed.
Our biggest differentiators: more focus on automation and friendliness. The major pain point we discovered is that average people find finances intimidating and difficult to track. We wanted to take as much of it off of people's hands as possible as well as doing everything we can to make the experience as friendly and engaging as possible. That goes a long way to making something that people feel comfortable using. We think Mint is a powerful tool with a much steeper learning curve, and we wanted to build something that anybody can use.
https://play.google.com/store/apps/details?id=com.durian.pen...
For example, here's a excerpt from explaining how credit card interest works:
Penny: Chase charges you interest based on your <em>APR</em> (annual percentage rate).
Penny: You probably saw this number when you signed up for your credit card :credit_card:
Penny: APRs are usually about 12-24%.
Penny: As far as I can tell, your Chase Freedom's APR is about <em>{{ numeral(0.15).format('0%') }}</em>, which is about normal.
You: OK
Penny: To compute how much interest you get charged every day, divide your APR by the number of days in a year, like this:
<rest of conversation>
We also do a fair amount of two-way communication when we're understanding a user's circumstances. When Penny coaches people about investing, we try to understand the user's financial situation based on how much risk they're willing to take, how much they have that's investable, their horizon for returns, etc, all of which fits pretty naturally into a chat interface.
The simple chat options are exactly what I want to know and only a few clicks away.
The gifs are also super appreciated. I really like the comedy thrown into a usually boring topic.
Just started getting the premium push in-app and I wondered when it was going to happen. I don't mind it since obviously the lights need to stay on but I am not sure sub-categories is compelling enough for me since it kind of ruins the simplicity I love so much. More data isn't necessarily what I am after here.
Otherwise, huge kudos. Love Penny.
For what it's worth, we don't think the premium experience (Penny+) is a good fit for most of our users. Locking extra complexity behind a premium version was actually our way of keeping the core experience simple (and encouraging people to not mindlessly turn on extra features unless they're confident they want them). We think the simplicity of the core experience is one of the main reasons people continue to use Penny over time; complexity begets churn, even if users ask for that complexity. We eschew traditional budgets for the same reasons.
> We will never sell any information that could identify you for marketing purposes, and we only share limited amounts of information with third-party services on a need-to-know basis.
Very nice! It doesn't show up in HN but they've even gone out of their way to bold the relevant bits.
From the FAQ:
> Penny supports over 15,000 banks in the United States, so if your bank is in the U.S., she can probably connect to it. She can even connect to your Venmo or PayPal account!
> Penny never stores your bank login information. After she first establishes the connection to your bank, she gets a separate, secret access code to retrieve your transactions from your bank. That way, she can access your transactions without ever needing your bank account credentials again.
Do 15,000 banks in the USA really have an external API with API keys? That's pretty amazing.
From poking around the site looks like they're using Plaid (https://plaid.com/). Now that's seriously cool stuff to normalize!
>> How do you make money?
> Right now, we make money through donations and by partnering with financial products that we think you might find worthwhile. You can find out more about our partnerships here. Both the donations and partnerships allow us to continue offering Penny’s services for free.
> At some point, we will need to start charging for some aspects of Penny. We will give you plenty of advance warning when we’re nearing that milestone. In the meantime, you can enjoy all of Penny’s features free of charge!
While I like the idea of allowing people to track their finances better, I don't get how a company like this gets funded without a clear monetization strategy. I'm sure they've got some ideas internally and were probably included in their pitches, but I don't immediately see what it would be. Maybe get individuals to pony up $X/mo for the service? I doubt they would. People are cheapskates ... particularly so when the market is people that want to reign in their spending.
1. A premium subscription service that gets you some power features within Penny; we just launched that today. 2. Recommending affiliate products.
It's important to note that affiliates can be a mixed bag. Mint.com was the product that turned me onto Betterment when I was hunting around for ways to invest my money; I'm legitimately thankful that they did since I love Betterment. At Penny, we think we can tastefully and in good faith recommend some affiliate products. Those recommendations fit perfectly into our coaching model too.
Unfortunately, most personal finance companies start pushing credit cards on people that don't need them because it pays the most money. We're building Penny in a way that disincentives crappy behavior like that.
I wonder if you can share any insights as to how effective you are changing people's spending habits after they start using your app?
I guess that is because my devices are located in Europe. (I have a Samsung S7, english setup and an older Tab).
Maybe I shouldn't have mentioned it at all since my main annoyance is when google does it. :-]
Or maybe it's just me?
Knowing that this is possible, I wish more of these services officially offered their products cross-border. I'm not a huge fan of Mint, and have always figured the cool new apps were US only. I guess French language support might be a roadblock.
1. Those other platforms didn't really exist when we first launched. Messenger launched their platform about nine months after we started Penny. 2. (The real reason) We still don't think we can provide a better experience via a chatbot platform than we can with a standalone app.
To motivate that second point:
The benefit to a chatbot platform is that you meet people where they already are, and "signup" generally has lower overhead.
The downsides are many, though. Most platforms don't allow for things like securely submitting username and passwords, e.g. when connecting a bank account (although Messenger is starting to allow webviews, which can be repurposed to handle this). Browsing your aggregated transaction history, changing the category of a transaction, viewing your balances, etc. are all poor fits for a chat interface (again, Messenger has only recently started to address this). Pre-populated responses aren't first-class citizens in most chatbot platforms. We get more control over the UI, e.g. when displaying animated graphs, in a standalone app than we do within chat. There is/was no way to lock individual chatbot threads behind passcodes to protect your privacy... and on and on :)
Finally, there's also the problem of discoverability, which no chatbot platform has solved in a convincing manner. Downloading a standalone app is a pain, but once you get over that initial hurdle we think the experience is still significantly better than delivering Penny over a chatbot platform.
That being said, very willing to try this. Personal finance should be a priority for all! Congrats on the launch.
(directed at Penny)
The other aspect is that banks are really good at physical security, but not so great at data security. Consider the recent Chase breaches, where a ton of sensitive data was leaked—you're obviously placing a lot of trust on Intuit or Plaid whenever you use Mint or Penny, but at least they're modern technology companies that probably hold themselves to higher data security standards than your bank.
Except this doesn't actually improve your banks' security at all, it's only adding another (attractive and high-value) attack surface in addition to any potential vulnerabilities that your financial providers may have.
Maybe the friction would be too much for most users, but I'd be way more likely to try something like this if there was an option to handle the data myself with an export/import process from my financial providers and not have any account credentials shared at all.
[1] https://blog.kissmetrics.com/how-mint-grew/
Could you explain the finance "coach" aspect of your app ? I have been in several situations where I wish one of these apps had told me a particular financial pro-tip & I have always felt let down. How would your app exactly be a coach ?
That first Show HN post sent about 700 unique people to our website, of which about 100 clicked the download button and roughly 40 signed up. That may seem like a small number, but it was huge for us at the time. It gave us a lot of new information about where people would fall off in our funnel, uncovered some edge cases we hadn't accounted for, etc.
(Full disclosure: I work for Cleo :) )
[0] https://www.meetcleo.com
I remember first seeing Cleo way back when it was just the two founders (didn't they meet each other at some startup hackathon type event?) and they were rolling out cleo as a SMS based money assistant.
Looks like you guys shifted towards the Messenger platform. We (http://dispatch.pm/) looked in to the messenger platform but found it a bit restrictive for our purposes. How is it working out for you guys? Do you see yourselves sticking long term to messenger?
yes, you're right, we still have text features, but we provide users a better experience with messenger so suggest that they use that. About the founders they met at EF (entrepreneurs first) and then started to develop Cleo.
With respect to messenger, we've found it a suitable platform for our current needs. We're always looking for the best channel to reach our users on, but I think we'll keep messenger as a core channel, even if/when we do move to other channels.
Out of interest, what things made you decide against messenger?
EDIT: Also, out of interest, have you got any plans for an android or web-app? (don't use IOS and am interested to check out your service).
(views expressed are mine and not necessarily my employers, e.t.c.)
Also, one feature I would pay for is this. When I am entering a Walmart or Target or Whole Foods, it should warn me that I spent 'x' amount on groceries last week and that I should keep my spending below $y to stay within budget. Somehow, I see this feature missing in all apps I see so far.
I hadn't heard of Plaid until now. It seems like they are stealing Yodlee's thunder. Is there a reason why Yodlee is falling out of favor with the new fintech generation of startups?
Another question, do you rely on Plaid's categorization, or did you write your own ML for the categorization?
They wanted us to pay a hefty initial sign up fee ($XXXXX), pay monthly fee per user ($0.XX) and also they had minimums. Being students at the time we were just shocked and disheartened until we saw Plaids great pricing (free whilst in development and $500pm to set the product live) and tried to convince them to come to London which they told us was only 6 months away. It's been 2 years and they're still not here lol.
But there are a few more options in London now. I bumped into Steve Graham way back at HN's London event and he was working on Teller (https://teller.io/) which is now in beta and works pretty well from my testing.
There's also Saltedge (https://www.saltedge.com/) which is used by a few London fintech apps and I believe they have a startup package that a few apps like Cleo (https://meetcleo.com/) started on.
Some new startups still choose Yodlee though like moneybox (https://www.moneyboxapp.com) but they raised significantly more that we had (we had a very very small grant from our University).
The startup costs are way higher with Yodlee and (before they shut off access) Intuit. Their APIs are also not nearly as friendly as Plaid's.
Ah, yes, the reason why we designed the web the way it is. I really think this subject isn't tackled enough. Apple, and to a lesser extent google have ruined all the progress we made around continuous application updates through their stupid App paradigm. It boggles my mind that everyone is OK with it, when it's obviously terrible for the end user, compared to the web model where a URL just points to a resource, and you have full publishing power over that resource.
Very interesting that you've used Cordova. For a simple chat-based app that approach makes a lot of sense as you can push updates any time. Would you be able to share any chat-ui cordova libraries you've used or anything helpful in that regard? Or was it all custom built? Would you choose cordova if you were building the same app now or is there something else you'd consider using?
Also: your ruby DSL sounds interesting. Do you push the entire json syntax tree to the client? Chatbot platforms typically work by sending a user's chat message to a server then responding... so I'm interested how you've found doing things locally with a json syntax tree (assuming that's what you meant) and what were the pros/cons/trade-offs of that approach?
As for the Ruby/JSON stuff, that was also built by hand (actually the very first thing we built before we even had the UI in place). Whenever a conversation is started, the client gets the entire syntax tree from the server and evaluates it to make the conversation happen. We actually thought that pushing the state to the client actually made things easier since the server no longer has to manage the status of many concurrent conversations. It also means faster responses in poor network conditions.
I think the main reason for chatbot platforms to push things to the server is out of necessity because they work across many clients (Messenger, etc) where they don't control the client, and because they may be doing some heavy lifting with NLP that can only be done on the server.