[Please send any comments to Ahbee0@gmail.com,MaverickOne@gmail.com ]

Here is a way to estimate your serve speed from digital video footage of the serve using the following 3 pieces of information:

  1. The frame rate of your camera. It is usually 29.97 frames per second in USA, unless you used some special feature like the 240 fps "smooth slow motion" in some Sony camcorders.
  2. Estimate of the distance traveled in the air by your serve. The distance from the middle of the baseline to the cross of the service T is 60 feet; the distance from the middle of the baseline to the wide coners of the service box is 61.5 ft. The fact that the serve is hit from a height of 8 or 9 feet increases the distance by 0.5 ft. But typically serves are struck a little inside the baseline, so you have to reduce by that distance. If your serve lands about a foot inside the service line, you have to estimate and subtract that distance as well.
  3. Number of frames. Play the video in frame by frame mode, count the number of frames between contact with racket and subsequent contact with the floor. You may have to estimate partial frames.
  4. An example of an Andy Roddick serve from the 2007 AO is included for those who wish to calculate an accurate calculation or who wish to verify the validity of the Speed Calculator. Click Here for Example.

The calculation below relies on the reported finding that a serve with an initial speed of mph slows down to mph over a distance of feet
Click here for Mobile Version
Serve Speed Calculator
Frame rate of your camera frames/sec
Distance traveled in air feet
Number of frames

Initial Speed mph kph
Final Speed mph
Avg Speed until bounce mph
Distance(recalc) feet
Travel Time sec
Fall due to gravity ft

Formula used in the above calculation

$$ Speed_{mph} = \frac{e^{K \times distance} - 1}{5280 K \times FrameCount} ( FrameRate \times 3600 ) $$

$K = \frac{\ln(V_i/V_f)}{S}$
$V_f$ = Final velocity of this known serve, measured in other ways, in mph
5280 = number of feet in one 1 mile
3600 = number of seconds in 1 hour
$e$ & $ln$ : Anyone who would bother to read this far should know what they are


import math
# published numbers  from a now dead link

# A constant for formula:
K= math.log(120./87)/60

def init_speed(nf, d=60, fps=29.97):
    speed = ( math.exp(K*d) - 1) / (5280.*K * nf) * fps * 3600
    return round(speed*100)/100

def avg_speed(nf, d=60, fps=29.97):
    speed = d / (nf / fps ) * (3600./5280.)
    return round(speed*100)/100

The main assumptions are :
  1. The motion of the ball after the hit is only affected by the drag force of the air alone, which is assumed to be proportional to the square of the veolocity. There is the obvious force of gravity, but being a vertical force, it doesn't significantly affect the calculation.
  2. A $V_0$ mph serve slows down to $V_f$ mph over S feet. We need these numbers from some external source such as this website (unfortunately, it no longer works) reporting a study done on Sampras' serve

Deriving the Speed formula (requires Calculus)

In words

A Tennis ball is slowed significantly by air resistance. Therefore a simple formula of $speed = \frac{distance\ traveled}{time}$ , will be a poor approximation of the initial speed immediately after impact, which is what we care about. The air resistance, or drag force, is known to be proportional to the velocity of the ball. Applying Newton's second law gives us a simple differential equation. Then we just need to determine the values of constants that arise. To do that, we use an initial condition and some data from a now dead website - a Pete Sampras serve clocked at 120 mph slowed down to 87 mph after traveling 60 feet.

The math

Applying Newton's second law ($F = m a \implies a = \frac{F}{m}$) to the motion under a drag force,

$ \frac{dv}{dt} = \frac{-kv^2}{m}$

Drag force is $-kv^2$ where $k$ is a constant related to the drag coefficient. since $m$ is essentially a constant (mass of a tennis ball), Let us combine the constants $c$ and $m$ into one constant: $c = k/m$ to simplify our job

$ \frac{dv}{dt} = -c v^2$

The above first order differential equation is separable (the easiest kind) and therefore can be written
$\frac{dv}{v^2} = -c dt$

By integrating both sides and rearranging a little, we get

D is the constant of integration, and when you set t=0 above, you can see that D must be equal to $\frac{1}{v_0}$



where v0 is the initial velocity, the velocity immediately after contact with racquet.

Integrating the solution for v, we get distance s


E is yet another constant of integration. Knowing that the distance s is 0 when time t=0, we calculate $E = -\ln(1/v_0)/c$

Substituting for E,




$ e^{sc} = ctv_0 + 1$

$v_0 = e^{sc}/ct - 1$ ...... (3)

This $v_0$, the initial velocity immediately after racquet impact, is what we are after. From our camcorder experiment, we know s, the distance traveled and we know t, the time it took to travel that distance; t = (frames * FrameRate). The only unknown in the above formula is c, the modified drag coefficient for a Tennis ball. Time to calibrate our model using a known fact about Sampras' serve - that a 120 mph serve slows down to 87 mph over 60 feet. Substituting the numbers into Equation (1),

$87 = \frac{1}{ct_1 + 1/120}$

$t_1$ above is whatever time that 120 mph serve took to travel 60 ft(= 60/5280 miles). Therefore,


Now applying Equation (2) to the point of the bounce,

$60/5280 = \frac{\ln(120ct_1 + 1)}{c}$

We can plug in the expression for ct1 from Equation (4)

$ 60/5280 = \frac{\ln(120 \times 0.00316092 + 1)}{c}$

$ c = \frac{\ln(120 \times 0.00316092 + 1)}{60/5280}$

$c = 28.3$

We plug this c into Equation (3) to get
$v_0 = \frac{e^{28.3 s} - 1}{28.3 t} $

We want to be able to express the formula in terms of number of video frames rather than time.
t = (F / frame_rate_sec) / 3600
The 3600 is to convert time to hours. If distance s is expressed in feet want to convert the distance s to miles by dividing by 5280. Thus we finally arrive at the formula:


$v_0$ is the initial speed of the serve,
s is the distance traveled by the serve during the observed interval
F is the number frames of video it took the ball to travel this distance
frame_rate is usually 29.97 with most camcorders.

Comments about this method compared to using a consumer Radar gun

Compared to using a radar gun, this method requires several extra steps.

There are several sources of error, such as estimating the number of frames and the actual distance, but they are all manageable and in your control( you can minimize them by being careful). A consumer Radar can give significantly wrong speeds depending on how far the ball traveled before entering the range of the radar and the angle between direction of the ball and the Radar's line of sight at the instant it "sees" the ball. Also, once in a while, Radars give you totally wild numbers. If you suddenly hit one serve that is 5mph mpre than every other serve, you will never know if it was an erroneous reading or if you actually did something very right. That will never happen with Video method. If your serve took 0.5 secs to bounce, it is going to be 15 frames in the video. If you serve 5 mph faster, it will be a whole frame quicker and impossible to miss. Even better, you can replay the video and study what you did differently and try to incorporate that permanently into your service motion.

This method gives you very visual proof that anyone can see. They don't have to take your word.

You can tape someone while they are playing a match and estimate their speed. You can walk around your club with a camcorder and measure the pace of anyone's serve or groundstrokes. OTOH, A consumer radar can never be used in a match because it need to be placed on the court.