Here is an outline of some of the mistakes in your formula:
In the denominator of the equation, you are dividing the Standard Deviation by square root of n. You should not. Use your spreadsheet and make a column with 630 rows with value 1 for yes voters and 440 with -1 value for no voters, and use the Standard Deviation formula STDEV.S and you will get: SD = 0.98. If you use 0 instead of -1 as value for a no vote, you will get SD= 0.49. Which is way off from sqrt(((0.5*(1 - 0.5))/1070) = 0.000467!!!!
You are using 0.59 as the vote sample mean instead of 0.18
You are using 0.5 as the population mean, instead of 0 (explanation below).
The standard deviation you are using is the sample standard deviation, when it should be the population standard deviation.
We do not know what the population standard deviation is, but we do know the Random Population Mean, which is 0. at N = 2, "yes voters mean =0.5 and "No voters" mean = 0.5 and this Vote mean = "Yes voters" mean - "No voters" mean = 0.5 - 0.5 = 0. Therefore, the Vote's Random Population mean = 0. By using the Random Population Mean, your Z Score formula is measuring the distance from the opposite end of a population mean.
Therefore your formula should look like this:
z = (0.18 - 0) / 1 = 0.18 .
(additions to clarify and correct added on 8/15/2023)
And there are more explanations. A vote is limited by the percent axis[-1 , 1], where -1 is 100% opposed to the proposed issue in the vote and 1 is 100% in support of the issue, but the Z-Score is based on the Standard Normal Distribution which has the interval (-∞ , ∞). (advanced material: Mapping the two intervals means scaling by 𝝅 which truncates the Standard Normal Distribution interval to [-𝝅 , 𝝅] with 99% representation accuracy of the full Standard Deviation Interval. This 99% is not the same as the Confidence Interval) . Therefore, we need to multiply small z by 𝝅 to get capital Z:
Z = 𝝅z = 𝝅0.18 = 0.56
Your formula now should look like this: Z = 𝝅((0.18 - 0)/1) = 0.56
We need to account for the sample size, n, which I will not do here, as not needed, but you can do it by considering the MOE (Margin Of Error), etc. Without using the sample size as a factor, you can stop here, because using the sample size reduces Z. Z=0.56 is a maximum value. We know the answer is Z = 0.56 or less. Since Z=0.56 is an extremely low value, we know the sample is likely random, and we reject it as insignificant, without needing to use a sample size.
A second method to compute the Z Test (or Z Score) using a spreadsheet:
Using Excel, create a column with 631 "1" values for Yes voters, and 439 "-1" values for No voters, and I got this:
Vote mean = 0.17757
SD= 0.9845
You can use this to compute your Z Score as = (0.17757 - 0)/1 = 0.177
You still need to map the [-1 , 1] interval to [-𝝅 , 𝝅], to get 0.56
(end of additions to clarify and correct added on 8/15/2023)
There are many factors involved and you can see some of my related posts on this subject, using Z-Score in voting cases.
In a summary of the computations I use above, here are the factors:
YES support is 0.59
NO support is 0.41
Vote mean = YES - NO = 0.59 - 0.41 = 0.18 !!!!!!! The "vote mean" is not the same as the "yes voter's mean"!
random population mean = 0 . It is very important to understand this
random population SD = 1 , (Shifted from 0.5 read below)
a Yes Vote = 1
a No Vote = -1. It is very important to understand this, the opposite of 1 is -1, and is not 0. These are values representations and not boolean logic representations. Bad data representation is a main cause of error in vote statistical computations.
Third way to calculate for a Z score:
Now that you have the proper vote mean, and proper data representation, you can use online statistics calculators or your spreadsheet to confirm these results.
Regarding the Random Population mean = 0 (note, a mean of 1/2 = 0.5, is a middle point, and is the result of a translated and scaled interval [-1 , 1] to [0 , 1])). This creates one more type of interval (axis), which is the probability axis [0,1]. Now we have three axis to deal with, which complicates issues. The vote axis [-1 , 1] has been scaled down by 2, and shifted right by 0.5 to give the axis[0, 1] ). This is done in order to avoid negative probability values. If you want the interval to start and end with the normally used probability interval [0, 1], then a Yes vote value becomes 1 but a No value becomes 0 (not -1), and the population random mean becomes 0.5, and the random population SD = 0.5. This complicates computations of the Z-Score formula, because the Z-Score is based in the Standard Normal Distribution, which has a SD = 1. All this may get very confusing to some, and involves additional steps to get the same results.
Therefore, your instincts are very good about sensing a major error in your results. I will upload today if I can another post that would address this clearly. I am curious to know if this was a real-life example or a textbook example, and in either case, it is excellent in that it was asked!
Contact me for a public URL that shows you how to compute the complete answer. (I do not think I am allowed to post URLs here)
What is absolutely remarkable is that out of some 3k views of this post, not one good answer! Now there is a formula to compute what you want easily, and simplifies dramatically statistics computations in hypothesis testing. Awareness of this equation seems non-existent, even when the subject matter of voting is so important. Even at 59% YES vote, the residents of Ann Arbor are making a huge mistake adopting a vote with a z-score of 0.56 or less, when what is required is a Z-Score of 1.96 or higher.