(* the data *)
coffeedata  :=  
        List[{0,  355.29},  {40,  329.13},  {80, 276.48},  {84,  
            271},  {120,  221.33},  {160,  188.82},  {200,  
            193.75}, 
{240,  233.89},  {280,  
            290.94},  {320,  338.90},  {357,  356},  {360,  
            355.92},  {400,  334.24},  {440,  283.75}]

(* the plot of the data *)
p1  =  
        ListPlot[coffeedata,  
          PlotStyle -> {PointSize[0.02],  RGBColor[1, 0, 0]},  
          PlotRange -> {{0,  450},  {0,  360}},  
          PlotLabel ->  "Total Sales",  
          AxesLabel -> {"Day", "Sales ($)"},  
          TextStyle -> {FontSize -> 18}]

(* fit a model of the form A + B*Sin[C*t  +  D] 
 we can tell that C = 2  Pi*t/365 (why?) *)
Solve[{
A  +  
              B*Sin[2*Pi*0/365  +  D] == 
            355.29, 
A  +  
              B*Sin[2*Pi*40/365 +  D] == 
            329.13, 
A  +  
              B*Sin[2*Pi*120/365 +  D] == 
            221.33
},  {A,  B,  D}]

(* mathematica cannot find a solution using the Solve command *)
NSolve[{
A  +  
              B*Sin[2*Pi*0/365  +  D] == 
            355.29, 
A  +  
              B*Sin[2*Pi*40/365 +  D] == 
            329.13, 
A  +  
              B*Sin[2*Pi*120/365 +  D] == 
            221.33
},  {A,  B,   D}]

(* we' ll try FindRoot *)
FindRoot[{
A  +  
              B*Sin[2*Pi*0/365  +  D] == 
            355.29, 
A  +  
              B*Sin[2*Pi*40/365 +  D] == 
            329.13, 
A  +  
              B*Sin[2*Pi*120/365 +  D] == 
            221.33
},  {A,  200,  300}, { B, 70,  
          90},   {D,  1,  2},  MaxIterations -> 100]

(* the model *)

S[t_] = 
      270.996322349263 + 
        85.00116246926156`*
          Sin[2*Pi*t/365  +  1.699907199441746`]
p2 = 
      Plot[S[t],  {t,  0,  
          450},   PlotRange -> {{0,  450},  {0,  360}}]

(* the model along with the data *)

Show[p1,  p2]

R[t_] = D[S[t], t]

R[84]

(* Rate of change data *)
coffeeratedata  :=  
        List[{0,  R[0]},  {40,  R[40]},  {80, R[80]},  {84,  
            R[84]},  {120,  R[120]},  {160,  R[160]},  {200,  
            R[200]}, 
{240,  R[240]},  {280,  
            R[280]},  {320,  R[320]},  {357,  R[357]},  {360,  
            R[360]},  {400,  R[400]},  {440,  R[440]}]

(* plot of the rates of change *)
p3 = ListPlot[
          coffeeratedata,  
          PlotStyle -> {PointSize[0.02],  RGBColor[1, 0, 0]},  
          PlotRange -> {{0,  450},  {-2,  2}},  
          PlotLabel ->  "Sales Rate of Change",  
          AxesLabel -> {"Day", "Sales Rate of Change ($/d)"},  
          TextStyle -> {FontSize -> 
                18}]

(* plot of the rates of change suitable for plotting alongside the model *)
p4  =  
        ListPlot[
          coffeeratedata,   PlotStyle -> {PointSize[0.02],  
              RGBColor[1, 0, 0]},  
          PlotRange -> {{0,  450},  {-2,  2}},  
          PlotLabel ->  "Sales Rate of Change",  
          AxesLabel -> {"Day", "Sales Rate of Change ($/d)"},  
          TextStyle -> {FontSize -> 18}]

(* the rate model along with the data-- - 
            although they will have no way of determining this model *)

Show[p4,  
      Plot[R[t],  {t,  0,  450},  
        PlotRange -> {{0, 450}, {-2, 2}}]]