Page MenuHomePhabricator

Improve Phacility trial period behavior
Closed, ResolvedPublic

Description

Currently, the trial period is "risk free" / "no obligation" but not actually a free trial per se: we bill you at the end of it, and you decide whether to pay the bill and continue with the service or disable your instance.

This is communicated somewhat clearly, but is definitely not as straightforward as it should be. It's also simply harder to communicate than "free for 30 days" would be.

It works like this because it was technically easier and I was worried about a bad worst-case where we have more signups than the infrastructure can handle, but we have plenty of time to revisit this now and the infrastructure is stable and scaling cleanly. In particular, I'm not concerned about our ability to onboard a large number of new instances since, at least for the forseeable future, we're in a good state where we just dump more hardware into the cluster and things take care of themselves. We also aren't cashflow constrained and a 60 day (or longer) delay between signup and revenue is fine.

In particular, I'd like to start with this billing scheme:

  • 30 days free.
  • (For simplicity, this is probably actually the longer of 30 days or first billing period's length, so you can save a few percent by signing up in a month with 35 or 40 days.)
  • When we go to generate a bill, check whether the instance is in a trial period that's ending during the next billing cycle. If it is, send a "Your free trial is ending." email.
    • Tell users what to expect.
    • Tell users how to move forward if they want to keep the service vs stop service.
  • When we generate your first real invoice, add language telling users they can just not pay it if they didn't want to continue service and just forgot to cancel.
  • Change policy to disable instances which miss their first bill fairly aggressively (e.g., one week, so 67 days from signup to suspension).

This effectively gives installs 30 days free and ~67 days of "trial".

We could experiment with longer trials, more contact, more reminders/warnings, more selling/followup, etc., but I want to get this in place as a sort of basis case first so users aren't confused about when they'll be billed or how to move forward.

Revisions and Commits

Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision
Restricted Differential Revision

Event Timeline

epriestley raised the priority of this task from to Normal.
epriestley updated the task description. (Show Details)
epriestley added a project: Phacility.
epriestley added subscribers: chad, epriestley.

When we generate your first real invoice, add language telling users they can just not pay it if they didn't want to continue service and just forgot to cancel.

We just had a user actually pay the invoice, which is an incredibly bad UX. I'd really like to get this fixed before a second user hits it.

The instance in question was also a "pure" test instance (i.e., had "test" in its name, per T9307) so fixing that could help here, although I still don't have a concrete technical plan there.

So this is basically "30 days free" and "60 days risk-free", both seem reasonable to test as taglines as long as we're clear about it when they visit Billing Documentation.

I can think of a number of conditional ways we might want to send emails. Is this better for Herald or just hard-wire?

Like if it's been 3 days and you've not done anything at all (invite members, set up repository) we might have a better tailored email with links on how to do those things.

epriestley added a revision: Restricted Differential Revision.Nov 23 2015, 6:28 PM

We need to hard-wire stuff like that, Herald can't do "after X days" and I don't plan to add that capability in the near future.

epriestley added a revision: Restricted Differential Revision.Nov 23 2015, 7:51 PM
epriestley added a revision: Restricted Differential Revision.
epriestley added a commit: Restricted Diffusion Commit.Nov 23 2015, 9:03 PM
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.
epriestley added a commit: Restricted Diffusion Commit.
epriestley claimed this task.

This has been in production for a while and seems to be working correctly. New rules are:

  • Greater of first billing period or first 30 days are free.
  • We send you a "what to expect" email after 30 days instead of an invoice.
  • Instance creation flow is now more explicit about billing plans, and "test instance" vs "real instance" is an explicit modal choice.
  • Documentation, communication and UI have more pointers about canceling service.