Developing an appropriate time series model to predict sales based on past month record I have been operating an online business for two years in a row now, so I have my monthly sales data for about two years. My business for every month is certainly affected by seasonal swing ( performs better at Christmas, etc), and probably some other factors that I am not aware of.
In order to predict future sales better, and in order to gauge the effectiveness of my sales campaign, or the impact of new competitors, I want to be able to develop an appropriate time series model to extrapolate my current sales data into future. This is so that when I compare the result of my prediction with the actual result, I can quantitatively test the effectiveness of my sales campaign, or the impact of competitors.
My question is, given that I have 2 years worth of sales data, is there anyway I can formulate a predictive time-series model for this?
Note: I am interested more in the background concepts and theories, rather than the black box tools. Speaking of tools, I have mathematica, matlab, R, Excel, Google Spreadsheet.... you name it. 
 A: first, you don't have a lot of data to play with, only 24 observations. In your case it means that you barely have a couple of parameters to estimate reliably. the most systematic way in forecasting is to come up with a data generation process (DGP). you make an assumption about what is the true process for your sales, then try to estimate its parameters.
consider a pure time series model with AR(1) DGP: $x_t=\phi x_{t-1}+c$, i.e. your sales this month are weighted average of sales last month plus and a constant. you already have 3 parameters (two coefficient and an error variance), which means about 8 observations per parameter - clearly not a lot.
since your sales are seasonal, we must do something about it. one way is to add multiplicative seasonality: $(1-L)(1-L^{12})x_t=c$ in lag operator notation, or in expanded form: $x_t=c+\phi_1x_{t-1}+\phi_{12}x_{t-12}-\phi_1\phi_{12}x_{r-13}$. 
this adds one more parameter to estimate, so you go down to 6 observations per parameter - a real stretch.
in Matlab this model is specified as arima('ARLags',1,'SARLags',12)
this is assuming that your sales are stable, i.e. generally not growing.
if you think that your sales are growing, then you have two options: random walk (RW) and a time trend. 
in Matlab RW is specified with arima('D',1,'SARLags',12)
obviously, these are only examples of different DGPs. whatever you do keep in mind the number of parameters to estimate. with 24 observations your model must be very simple, 4 parameters at most (including variances).
A: Here is what you should do
Make two graphs:


*

*Sales vs. Time for the entire 24 months

*Sales vs. Time with the second year plotted on top of the first year


Look at them. Annotate the dates of any special promotions, or known competitive activity. "December" is usually pretty obvious, but add a note if helps call it out. 
Go ahead and fit a time series model - any model (there are hundreds). The model may give you a slightly better forecast for the next period (t+1) than your judgement. At least, it'll challenge your judgement. Beyond the next period (t+n, n>1), any time series model is crap.†  So forget about quantitatively evaluating the effectiveness of sales campaigns or effects of competitors. If you compare actual sales to predictions, you'll find the predictions are crap. Predicting the future is hard, and no method changes that basic fact.
You'll find your two graphs more useful. Study those for a while, then spend the rest of your time coming up with ideas on how to increase sales - this will be a far more profitable use of your time that trying to fit a time series model. 
† You have more hope if you can creating a predictive model based on leading indicators - i.e., housing sales for the prior month may be useful to predict the sales of window shades in the current month. 
