# How can I calculate a rate between two “moving” data sets?

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)

-

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

-
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