I have noticed that small dance floors seem to need more area per ticket sold than large ones. The simplest explanation that I could think of to account for this is that there are "edge effects", where the edge of the floor is less used than the rest. This may not be the real explanation, it is only a hypothesis.
A floor has width w, length l, and n attendees at a ball. The area of the floor is the product of length and width, l*w. If two balls with different sized floors needed the same area per ticket sold, then l1*w1/n1 would equal l2*w2/n2.
If the edge effect hypothesis is correct, a certain amount x must be subtracted from the length and width before calculating the effective area of the floor. Thus, for two equally crowded balls (l1-x)*(w1-x)/n1 would be the same as (l2-x)*(w2-x)/n2.
We can solve for x by using the quadratic key for equations of the form a*x*x + b*x + c = 0. The quadratic key gives x as x = -b (+ or -) the square root of (b*b -4*a*c), all divided by 2*a. An Oberon computer program which performs this calculation is:
MODULE edge; IMPORT In,Out,rm:=RealMath; TYPE str=ARRAY 80 OF CHAR; VAR l1,w1,l2,w2,n1,n2,x,d,a1,a2,b1,b2,c1,c2:REAL; str1:str; BEGIN Out.String('enter l1,w1,n1');Out.Ln; In.Real(l1);In.Real(w1);In.Real(n1);In.Line(str1); Out.String('enter l2,w2,n2');Out.Ln; In.Real(l2);In.Real(w2);In.Real(n2);In.Line(str1); c1:=l1*w1/n1;b1:=-(l1+w1)/n1;a1:=1.0/n1; c2:=l2*w2/n2;b2:=-(l2+w2)/n2;a2:=1.0/n2; a2:=a2-a1;b2:=b2-b1;c2:=c2-c1; IF b2<0.0 THEN x:=(-b2-rm.sqrt(b2*b2-4.0*a2*c2))/(2.0*a2);ELSE x:=(-b2+rm.sqrt(b2*b2-4.0*a2*c2))/(2.0*a2);END; Out.String('edge='); Out.RealFix(x,12,2);Out.Ln; d:=(l1-x)*(w1-x)/n1; Out.String('density='); Out.RealFix(d,12,2);Out.Ln; Out.String('Waldorf, actually 535,='); Out.RealFix((72-x)*(48-x)/d,12,2);Out.Ln; Out.String('Milwaukee, actually 370,='); Out.RealFix((90-x)*(30-x)/d,12,2);Out.Ln; Out.String('Detroit-37.7, actually 900,='); Out.RealFix((130-x)*(37.7-x)/d,12,2);Out.Ln; Out.String('Detroit-42, actually 900,='); Out.RealFix((130-x)*(42-x)/d,12,2);Out.Ln; Out.String('Veterans, actually 105,='); Out.RealFix((77-x)*(15-x)/d,12,2);Out.Ln; END edge.
The most extreme ball used in the study was in San Francisco in Nov 1999 in the green room of the War Memorial Veterans Building. The room is 36.6 by 96 feet. The dance floor was a function of the arrangement of tables and chairs. I stepped it off as 18 feet by 77 feet. It was not quite rectangular, the band bulged into the middle of one side about 3 feet. I believe that the 15 foot wide middle dominated the traffic flow, so it was effectively a 15 by 77 foot floor. There were 105 attendees. The floor was overcrowded for the whole evening, but I was able to dance from one end of the floor to the other with extreme difficulty.
I had stepped off the permanent floor at the Waldorf in NY as 49 by 67 at a ball in 2000. But when I called the management they said it is actually 48 by 72. This shows how inaccurate stepping off floors is. There were 535 attendees. The floor perhaps could have been very slightly more crowded without being considered overcrowded.
The permanent floor at Milwaukee was 30 by 90 according to the floor plan. There were 370 attendees in 2002. The crowding seemed comparable to the Waldorf.
The floor plan for arranging the furniture at the ball in Detroit in 2001 showed the floor as being 130 by 42 feet. However, it was not a permanent floor, and was determined by arrangement of the furniture. I stepped it off as 130 by 37.7, but considering my error at the Waldorf, I do not know what it really was. Presumably they had a tape measure; I did not. The floor was so crowded dancing was impossible in the beginning, then became possible after about an hour. Eventually the dancing was satisfactory. There were 900 in attendance.
We now run the program giving Waldorf and Milwaukee their actual values, assuming comparable crowding at the two balls:
./edge enter l1,w1,n1 72 48 535 enter l2,w2,n2 90 30 370 edge= 9.06 density= 4.58 Waldorf, actually 535,= 535.00 Milwaukee, actually 370,= 370.00 Detroit-37.7, actually 900,= 756.10 Detroit-42, actually 900,= 869.60 Veterans, actually 105,= 88.14
These values seem reasonable, since Detroit and Veteran's were overcrowded.