Categories
Internet Other

Leanpub pricing analysis

I am nearly at the point of publishing my eBook on Leanpub which has raised the question about how much I will price it at (it will be available free online in HTML form). There are two price points on Leanpub (minimum and suggested) and since I don’t go into these decisions lightly I thought I would do some analysis around existing titles to see what they set the price-points at.

One caveat is that I completely understand that it’s just as important to have a good product as worrying about its pricing as pricing alone doesn’t make a book good.

I wrote a quick watir-webdriver script (at the end of this post and online) to scrape the top 100 all time grossing and best-selling (volume) books off Leanpub and some data about each. One data point I would have loved to have seen on each book page was page count so I could correlate page count to price, but sadly it’s missing.

I put this into a google spreadsheet and did some analysis

Leanpub pricing analysis

What I can read about Leanpub pricing is:

  • Obviously, higher selling books are more likely to be available for free
  • The number of books with the same minimum and suggested prices are the roughly the same across the lists at about one quarter
  • The average non-free minimum price is slightly less for higher selling books, but roughly $12-$14
  • The average non-free suggested price is much higher for higher grossing books at roughly $19-$22, compared to $12-$14 for higher selling books

I did some further analysis of the raw data and a particular title stood out to me: ‘How to Do What You Love & Earn What You’re Worth as a Programmer‘. What made this stand out was it’s ranking at number 2 on number of copies sold (8191 copies), but just number 28 on gross revenue. Based upon the minimum price of $9.99, this translates into minimum revenue of $81,828.09. But this book is at number 28 on the earnings list, meaning that possibly 27 other books each earned more than $81,828.09. But there’s no a single book that has earned more than this book that has a minimum price times copies (or suggested price times copies for that matter), that is higher than this book. Which is very odd.

I know of two possible explanations, but I don’t know if either is true.

One is that this book once was free, or a lot cheaper than it’s current minimum price, which explains why it has sold many copies but (comparatively) grossed so little.

The second is that people who buy books on Leanpub pay a lot more than minimum or even suggested prices.

I think the first explanation is true but hope that it’s the second.

Here’s my script:

$: << File.dirname(__FILE__)+'/lib'

require 'book_list'
require 'watir-webdriver'

profile = Selenium::WebDriver::Firefox::Profile.new
profile['permissions.default.image'] = 2 #no images
browser = Watir::Browser.new :firefox, :profile => profile

book_list = BookList.new 'bestsellers', 'https://leanpub.com/most_copies_lifetime'

browser.goto book_list.url
browser.links(:class => 'book-link').each_with_index do |link, index|
  book_list.add_book link.text, link.href, index + 1
end

book_list.books.each do |book|
  browser.goto book.url
  book.min_price = browser.element(:css => 'span[itemprop="lowPrice"]').text
  book.suggested_price =  browser.element(:css => 'span[itemprop="highPrice"]').text
  if browser.strong(:text => /^This book has (\d+) readers!$/).exists?
    book.copies_sold = browser.strong(:text => /^This book has (\d+) readers!$/).text.match(/^This book has (\d+) readers!$/).captures.first
  end
end

book_list.to_csv 'copies.csv'

browser.close
require 'book'

class BookList

  attr_reader :name, :books, :url

  def initialize name, url
    @name = name
    @url = url
    @books = []
  end

  def add_book name, url, rank
    @books << Book.new(name, url, rank)
  end

  def to_csv filename
    File.open(filename, 'w') do |file|
      @books.each do |book|
        file.puts book.to_csv_string
      end
    end
  end
end
class Book

  attr_reader :name, :url, :rank
  attr_accessor :min_price, :suggested_price, :copies_sold

  def initialize name, url, rank
    @name = name
    @url = url
    @rank = rank
  end

  def to_csv_string
    "#{name.gsub(",","")},#{url},#{rank},#{min_price},#{suggested_price},#{copies_sold},"
  end
end
Categories
Writing

On writing a book

I recently started spending my spare time writing an agile software testing book with the intention to complete it and self publish it. But then I changed my mind. Here’s why: I don’t see any future in non-fiction1 books as we know them.

Why would you want to write a non-fiction books?

It’s a lot of work and so there must be some motivation:

  • You want to be famous: but with 1.85 million Amazon Kindle books currently for sale, yours will need to be pretty special to actually achieve this outcome.
  • You want to be rich: a typical traditional book earns the author about $1.50 in royalties. Even a Leanpub top selling self published eBook may have around 3000 readers at approx $8 commission per book which works out at about $24,000: probably not even commiserate to the time spent writing the book.
  • You want to share your knowledge: this is the big one, and the reason I want to write a book. But you have to remember that there are more public ways to share your knowledge besides writing a closed non-fiction book.

Writing a non-fiction book is essentially a waterfall process

My biggest gripe about writing a non-fiction book is that it is essentially a waterfall process. You spend a long time writing a book. You then spend more time editing it. You then get someone else to QA it (by which time you’ve probably lost interest). You then get it ‘published’ by finally ‘sending it to the printers’, whatever that means in this eBook age.

We all get why we shouldn’t build software in a big-bang waterfall style approach, so why should writing a non-fiction book be any different.

Leanpub tries to move away from the waterfall model

Leanpub goes a fair way towards solving the waterfall book problem by allowing authors to self publish non-complete non-fiction books as they are written. But the process of releasing updates is clunky, as it essentially means your readers need to download a complete new version of your eBook each time. And you get a single page to take comments/feedback for your entire in progress book.

So why not just blog instead?

I still believe that web blogging is still the best mechanism for writing non fiction material iteratively for easy consumption. It is not only indexed for search, but has in built support for distribution: RSS and email, as well as a way to solicit rapid contextual feedback. The downsides to blogging are it’s hard to offer a way for readers to provide monetary support, and hard to collate content together in neat package for consumption.

How about both?

I truly believe that knowledge should be free, available freely on the web for anyone to access, not tied up in a book. But, there are benefits of collating this information in an eBook as a distribution mechanism. If this package is then available to purchase, at whatever price the reader wishes to pay, then it allows the reader to pay for the convenience of collation/distribution or to thank the author for well written content.

My new book

My new agile software testing book will start with a collection of freely available blog posts which will eventually be bundled together into a Leanpub eBook in a convenient variety of formats for purchase at whatever price you wish to pay. That’s the future of publishing.


[1] I do believe there’s a future in authors writing and publishing fiction books in a waterfall fashion: I buy, borrow and read a lot of them and can see myself doing this for some time. I am not a believer in the piece meal approach to fiction, but this has been done in the past in the form of serials.