Tell me more ×
Cross Validated is a question and answer site for statisticians, data analysts, data miners and data visualization experts. It's 100% free, no registration required.

I own a software business that follows a common pattern: Interested people can download the software and try it free for 30 days, and if they like it, they can buy it at any time during those 30 days (or after). I'd like to calculate my "conversion rate," which I will define as the percentage of downloads that lead to sales within 30 days.

I don't track individual users, so I have no way of knowing whether downloader X ever ended up buying. I do, however, have time series data for the number of downloads each day and the number of sales each day. I have this data going back several years.

I would like to be able to do any of a few things with this information: 1. Compare this rate to a similar time period last year. 2. Determine whether the rate is generally increasing or decreasing. 3. Predict what the next X days sales might look like based on the last X days downloads.

Given that information and those goals, is it possible to determine (or at least approximate), a useful conversion rate? If so, how is it done?

(I'm a programmer who had one intro stats class in college, which was mostly about the probability of rolling dice. Answers that explain it like I'm 5 would be greatly appreciated)

share|improve this question

2 Answers

This is not a complete answer, but too long for a comment. A few notations: let $D(t)$ and $B(t)$ be the number of downloads / buys on day $t$, and let $C(i|t)$ be the conversion probability, that is the probability of buying $i$ days after downloading given that the download happened on day $t$. Then $$B(t) = \sum_{i=0}^\infty D(t-i) C(i|t-i)$$

You know $D$ and $B$, but would like to estimate $C$. If the conversion behaviour does not change over time, that is $C(i|t)=C(i)$, then the above formula reduces to a convolution with two known components. Fourier transforms give a standard solution for deconvolution, since the Fourier transform of a convolution equals the product of the two Fourier transforms. Here $\mathcal{F}(B) = \mathcal{F}(D) \mathcal{F}(C)$, so $C = \mathcal{F}^{-1}(\mathcal{F}(B)/\mathcal{F}(D))$.

I would certainly try this out, as this should at least give you an idea how your conversion probabilities look like.

Now, your main questions are in fact assuming that $C(i|t)$ does depend on $t$, and you also want to do statistical inference. This is where I hit the limits of my knowledge. Intuitively, if we allow $C(i|t)$ to change every day, then there is no way we could estimate its effect, so we would probably want to assume some smooth functional effect of $t$. This could be combined with some parametric or semiparametric (eg splines?) form for $C$ as a function of $i$. If you don't have too many parameters, perhaps you could do some numeric optimization.

For additional ideas, I would suggest time series and signal detection literature. This does seem like something that might have been solved already

share|improve this answer
Very interesting suggestion! Some remarks: 1. if you assume C(i|t) instead of C(i|t-i), you still have a convolution, and there is no really good a priori reason to suppose that this model will be worse. 2. when doing deconvolution (that's the official name), one is likely to run into problems and has to do regularization. Spline regularization is an option (pretty advanced); normally people just add a small constant to F(D) for starters. – AVB Mar 6 '12 at 18:43

As Aniko suggested this is classic time series problem. The objective will be to identify the Polynomial Distributed Lag function between an input (the number of downloads) and the output (number of purchases). This classically is called a Transfer Function and needs to be identified ( i.e. what lags are needed and what are the coefficients for each lag ) while controlling for level shifts and local time trends which may have been present in the past and may or may not have expired. Additionally there may be a day-of-the-week effect which needs to be incorporated so that our coefficients for the lags are correctly estimated. Furthermore there may be exceptional activity around holidays which need to be incorporated. If you wished to post your data I could take my comments down to ground zero and actually show you what your coefficients are . To close you might also have changed your price thus that could be another factor/variable to include in the predictive equation. Bye the way I saw this problem many years ago in the setting of where jobs come into an office and some are finished on day 1 , some on day 2 , etc. The statistical task was to predict the active number of jobs in the office for each day in the future given the history of arrivals.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.