[DW Discuss] Paid account design (was: RP use cases and styles)
Denise Paolucci
denise at dwscoalition.org
Thu Aug 7 19:41:13 PDT 2008
On Aug 7, 2008, at 9:10 PM, Highlander II wrote:
> This was one of the things I never understood about LJ - why can't
> *I* choose what my $$ pay for on my paid acct? I may have ZERO
> interest in voice-posts or photo space or icons - but, then again,
> I may want icons galore! So, instead of paying for something I'll
> never use, why can't I allocate that I want 500 icons/userpics and
> NO voiceposts and NO image hosting, or that I was [x]MB of image
> hosting and none of the other stuff? I know, K.I.S.S. - from a
> managing standpoint, but from a 'customer service' standpoint, it's
> kind of a bad plan. (And this isn't directly related only to RP
> stuff.)
You had to ask this, didn't you. *cracks knuckles*
The very, very simple answer (and it is *exceedingly* simplified --
the real answer involves about five pages or so) is that in order to
do something like this on LJ, it would require a rewrite not only of
the LJ-specific account payment system (which is complex, Byzantine,
crufty, and somewhat akin to the fabled Necronomicon in its ability
to destroy the minds and sanity of men and women confronted with it)
but also to the entire codebase, to completely change the model of
what a 'paid account' is and how the code interacts with it. Given
the complexity of the code and the fact that the account structure
model is so fundamentally rooted into every decision everywhere, it
would entail, in essence, a year's worth of engineering work, with
zero guarantee of not breaking anything in the process and, in fact,
a very good chance that things *would* break. (For those who feel
that I'm exaggerating here: if I recall correctly, automatic payments
took something like six or seven months, and that was fairly self-
contained: ie, not touching on everything else in the code.) The
potential rate of return for a project like that in no way approaches
the risk or the effort expended, and the end result would most likely
involve a serious loss rather than an increase in revenue.
There are many, many other considerations to take into account:
* Different features have different costs to the service, which are
risk-managed across a large group when they're available to everyone
(because not everyone uses all the features to their full extent) but
which would be prohibitive on an individual basis, so a site is
actually able to offer higher limits when bundled as part of a
package. For instance, a site might be able to offer 10GB of photo
hosting space to all its users based on the assumption that 50% won't
use it at all, 40% will use it a little, 8% will use it a lot, and 2%
will use it to the maximum. When that's bundled as part of a package,
you get people paying for the package for any one of a number of
reasons (voice posts, extra userpics, etc), all of which, again, have
different costs, so someone in that 2% of maximum-users will be in
the 50% who don't use another feature at all. That way, the costs of
each feature are spread out over a wider pool. If users could pay
only for the features they wanted or only the features they'd use
heavily, that benefit would evaporate, and the site would have to
either offer (much) lower limits or charge (much) higher prices.
* People would also only pay for the features they'd use heavily,
skewing those usage figures even more, or feel like they had to use
the features they'd paid for in order to get their money's worth,
thus upping the usage (and also the site's costs).
* A-la-carte pricing might work for the major, showy things such as
userpics, photo hosting, or voice posting, but what about the little
minor paid features like the forwarding email address or comment
editing? You wouldn't be able to charge more than a dollar or so per
year for those, tops, which if someone is paying monthly or bimonthly
gets us down to pennies, which gets us into:
* Sites lose money on credit card or PayPal transactions below a
certain threshold due to merchant fees, making it not cost-effective
for the site; and also:
* What happens when you release a new paid account feature? People
won't know about it in order for it to be something they want to pay
for, which means you've either just coded a feature that nobody will
ever use (waste of time and effort, thus discouraging development) or
you have to bundle it with one of the other features, and we're right
back to the old model, plus:
* Releasing a new paid account feature that people would have to pay
for separately means that you have people at different stages of
their paid account time paying to turn that feature on, which means
you either a). have to keep track of multiple expiration dates (your
userpics expire on 4/1/09, your storage space expires on 4/9/09, your
phone posts expire on 6/19/09, etc ad nauseam) or b). pro-rate the
cost of the feature to the end of the subscription period, which is
an administrative nightmare, a usability disaster (nobody ever, ever,
EVER understood pro-rating with automatic payments on LJ, ever, no
matter how it was explained; the support volume was legion), and
leads you back to the problem of what happens when someone wants to
add a $1-a-year feature three days before the expiration of their
subscription, thus leading to a $.0082 charge, neatly cycling around
to the micro-payment problem again.
* Having to pay to activate a single paid feature means that people
wouldn't pay for it unless they were sure they wanted it, but there
are so many features on LJ that people don't realize how useful
they'll be until they try them -- for instance, when phone posting or
post-by-email was introduced, I saw so many people who said "I'll
never use this, ever", and about half of them are now regularly
posting by phone or email. A-la-carte pricing eliminates the ability
to discover new features and new uses for old features.
Even if you're not talking about true a-la-carte pricing, instead
having a single level of paid account with a pool of credits which
could then be applied to specific subsets -- ie, your $25/year gives
you 200 credits, every 10 userpics is 10 credits, every 5 phone posts
is 10 credits, etc ad nauseam -- you run into equally serious problems:
* What happens when people run out of credits and want to buy more?
Again, you have to either keep track of multiple expirations or pro-
rate.
* What happens when people want to switch their credit allocation
mid-year? You have to gracefully handle expirations on things that
expire, and over-engineer solutions to things that don't expire like
creating and applying custom styles, etc. People would game the
system like nobody's business, to their benefit but to the site's
detriment.
* What happens when people hit the end of the year and haven't used
all their credits? You'd have to either bank them somehow (which
accountants *hate* -- under accrual-based accounting, having all of
that unrealized revenue floating around out there gives accountants
hives), or pro-rate the cost of the yearly renewal to account for the
difference between a full set of credits and a pro-rated set of credits.
* This still doesn't solve the problem of cost-pool-management. Some
paid account features are expensive and popular; some are expensive
and less popular; some are cheap and popular; some are cheap and less
popular. They all support each other. If someone puts all their
credits to an expensive-and-popular feature, they'll be happy, but
the site will be losing money on them. (I don't think LJ ever worked
out what each individual userpic costs them to store and serve, and
our back-of-the-envelope calculations for DW didn't break things down
that far, but userpics fall into the 'expensive-and-popular' category.)
All of this is a very longwinded way of saying: there are very,
*very* strong business reasons not to do it that way. Neither system
(the a-la-carte system or the credit system) is inherently unworkable
as a whole -- there are some services out there that use them quite
successfully. (Wordpress uses the credit system, I think.) But as it
stands now, without either an investment of serious engineering time
or an investment of moderate-to-serious engineering time + some
really, really, really hacky workarounds, they're unworkable for LJ
or a site running on the LJ codebase.
--D
--
Denise Paolucci
denise at dwscoalition.org
Dreamwidth Studios: Open Source, open expression, open operations.
Coming Summer 2008!
More information about the dw-discuss
mailing list