Rank the States on Your Own Criteria

// Normalize the values to unit volume function norm_vals (vals) { min = max = vals[0]; for (i = 0 ; i < 10 ; i++) { if (vals[i] < min) { min = vals[i]; } if (vals[i] > max) { max = vals[i]; } } range = max - min; for (i = 0 ; i < 10 ; i++) { vals[i] = (vals[i] - min) / range; } } // Calculate the sum of all the parameters for a particular state function sum_states (pop,gov1,area,gov2,ins,inc,vote,dep,fin,tax,blm,efi,pland,job,liv,land,crm,pres,urba,gun,urbc,gov3,nea,geo,ii,weight) { rv = 0; rv += (pop[ii] * weight[0]); rv += (gov1[ii] * weight[1]); rv += (area[ii] * weight[2]); rv += (gov2[ii] * weight[3]); rv += (ins[ii] * weight[4]); rv += (inc[ii] * weight[5]); rv += (vote[ii] * weight[6]); rv += (dep[ii] * weight[7]); rv += (fin[ii] * weight[8]); rv += (tax[ii] * weight[9]); rv += (blm[ii] * weight[10]); rv += (efi[ii] * weight[11]); rv += (pland[ii] * weight[12]); rv += (job[ii] * weight[13]); rv += (liv[ii] * weight[14]); rv += (land[ii] * weight[15]); rv += (crm[ii] * weight[16]); rv += (pres[ii] * weight[17]); rv += (urba[ii] * weight[18]); rv += (gun[ii] * weight[19]); rv += (urbc[ii] * weight[20]); rv += (gov3[ii] * weight[21]); rv += (nea[ii] * weight[22]); /* // Location, locked if ((weight[23] != 0) && (geo[ii] == 1)) { rv += (1.0 * weight[23]); } // Location, isolated if ((weight[24] != 0) && (geo[ii] == 2)) { rv += (1.0 * weight[24]); } // Location, canada if ((weight[25] != 0) && (geo[ii] == 3)) { rv += (1.0 * weight[25]); } // Location, coast if ((weight[26] != 0) && (geo[ii] == 4)) { rv += (1.0 * weight[26]); } */ return (rv); } // Sort numerically function numberorder (a, b) { return a-b; } // The main workhorse function compute(form) { // The current data Pop = new Array(); Pop.push(494); Pop.push(635); Pop.push(634); Pop.push(613); Pop.push(757); Pop.push(796); Pop.push(904); Pop.push(1321); Pop.push(1259); Pop.push(1287); Area = new Array(); Area.push(97105); Area.push(570374); Area.push(68994); Area.push(9249); Area.push(75898); Area.push(1955); Area.push(145556); Area.push(82751); Area.push(8969); Area.push(30865); Ins = new Array(); Ins.push(42.5); Ins.push(38.1); Ins.push(72.5); Ins.push(54.3); Ins.push(68.1); Ins.push(48.3); Ins.push(56.1); Ins.push(47.2); Ins.push(43.3); Ins.push(67.3); Geo = new Array(); Geo.push(1); Geo.push(2); Geo.push(3); Geo.push(3); Geo.push(1); Geo.push(4); Geo.push(3); Geo.push(3); Geo.push(4); Geo.push(4); Vote = new Array(); Vote.push(213); Vote.push(288); Vote.push(290); Vote.push(291); Vote.push(316); Vote.push(328); Vote.push(411); Vote.push(488); Vote.push(567); Vote.push(647); Fin = new Array(); Fin.push(4.7); Fin.push(6.1); Fin.push(4.2); Fin.push(4.3); Fin.push(13.8); Fin.push(8.7); Fin.push(10.9); Fin.push(7.7); Fin.push(8.2); Fin.push(11.4); Blm = new Array(); Blm.push(45.9); Blm.push(67); Blm.push(3.9); Blm.push(6.4); Blm.push(6.3); Blm.push(2); Blm.push(28.8); Blm.push(62.7); Blm.push(12.8); Blm.push(1); Pland = new Array(); Pland.push(47.782); Pland.push(23.77); Pland.push(62.684); Pland.push(7.791); Pland.push(69.186); Pland.push(1.812); Pland.push(91.1); Pland.push(24.52); Pland.push(7.36); Pland.push(29.103); Liv = new Array(); Liv.push(29.72); Liv.push(24.86); Liv.push(28.23); Liv.push(27.63); Liv.push(29.02); Liv.push(25.93); Liv.push(23.98); Liv.push(25.56); Liv.push(31.81); Liv.push(28.53); Crm = new Array(); Crm.push(3518); Crm.push(4236); Crm.push(2418); Crm.push(2769); Crm.push(2332); Crm.push(4053); Crm.push(3689); Crm.push(3133); Crm.push(2322); Crm.push(2688); UrbA = new Array(); UrbA.push(25.5); UrbA.push(44.3); UrbA.push(35.8); UrbA.push(17.3); UrbA.push(25.8); UrbA.push(67.8); UrbA.push(25.9); UrbA.push(46.7); UrbA.push(44.6); UrbA.push(24.6); UrbC = new Array(); UrbC.push(39.8); UrbC.push(21.4); UrbC.push(20.0); UrbC.push(20.9); UrbC.push(26.2); UrbC.push(12.2); UrbC.push(28.1); UrbC.push(19.7); UrbC.push(14.6); UrbC.push(15.6); Gov1 = new Array(); Gov1.push(13.4); Gov1.push(19.1); Gov1.push(14.4); Gov1.push(13.0); Gov1.push(12.7); Gov1.push(9.2); Gov1.push(16.5); Gov1.push(13.1); Gov1.push(7.7); Gov1.push(14.1); Gov2 = new Array(); Gov2.push(9.4); Gov2.push(9.7); Gov2.push(9.1); Gov2.push(9.7); Gov2.push(8.3); Gov2.push(6.9); Gov2.push(10.8); Gov2.push(9.5); Gov2.push(6.2); Gov2.push(9.8); Inc = new Array(); Inc.push(37.9); Inc.push(51.6); Inc.push(34.6); Inc.push(40.9); Inc.push(35.3); Inc.push(47.4); Inc.push(33.0); Inc.push(37.6); Inc.push(49.5); Inc.push(37.2); Dep = new Array(); Dep.push(1.14); Dep.push(1.63); Dep.push(1.95); Dep.push(1.12); Dep.push(1.50); Dep.push(0.86); Dep.push(1.67); Dep.push(1.24); Dep.push(0.71); Dep.push(1.31); Tax = new Array(); Tax.push(9.8); Tax.push(6.3); Tax.push(10.2); Tax.push(11.0); Tax.push(9.1); Tax.push(10.2); Tax.push(10.0); Tax.push(10.5); Tax.push(8.6); Tax.push(12.8); Efi = new Array(); Efi.push(4.41); Efi.push(6.01); Efi.push(5.00); Efi.push(5.59); Efi.push(4.47); Efi.push(4.56); Efi.push(5.20); Efi.push(3.92); Efi.push(4.55); Efi.push(6.22); Job = new Array(); Job.push(27.45); Job.push(48.65); Job.push(34.35); Job.push(36.65); Job.push(55.6); Job.push(75.95); Job.push(79.9); Job.push(185.9); Job.push(105.7); Job.push(65.4); Land = new Array(); Land.push(10); Land.push(10); Land.push(10); Land.push(0); Land.push(10); Land.push(0); Land.push(10); Land.push(6.7); Land.push(3.3); Land.push(3.3); Pres = new Array(); Pres.push(69.9); Pres.push(59.8); Pres.push(61.0); Pres.push(41.4); Pres.push(60.8); Pres.push(42.2); Pres.push(59.1); Pres.push(68.2); Pres.push(48.6); Pres.push(44.5); Gun = new Array(); Gun.push(-4); Gun.push(-8); Gun.push(-5); Gun.push(-5); Gun.push(-3); Gun.push(2); Gun.push(-6); Gun.push(-3); Gun.push(0); Gun.push(-10); Gov3 = new Array(); Gov3.push(22.0); Gov3.push(29.6); Gov3.push(18.5); Gov3.push(13.9); Gov3.push(17.5); Gov3.push(13.3); Gov3.push(20.0); Gov3.push(17.3); Gov3.push(13.8); Gov3.push(15.4); Nea = new Array(); Nea.push(1.16); Nea.push(2.15); Nea.push(1.41); Nea.push(1.46); Nea.push(0.86); Nea.push(1.16); Nea.push(1.57); Nea.push(0.84); Nea.push(0.84); Nea.push(1.42); num = 27; // First, normalize all the data norm_vals (Pop); norm_vals (Area); norm_vals (Ins); norm_vals (Vote); norm_vals (Fin); norm_vals (Blm); norm_vals (Pland); norm_vals (Liv); norm_vals (Crm); norm_vals (UrbA); norm_vals (UrbC); norm_vals (Gov1); norm_vals (Gov2); norm_vals (Inc); norm_vals (Dep); norm_vals (Tax); norm_vals (Efi); norm_vals (Job); norm_vals (Land); norm_vals (Pres); norm_vals (Gun); norm_vals (Gov3); norm_vals (Nea); // norm_vals (Geo); // Grab the weights weight = new Array(); for (i = 0 ; i < num ; i++) { if ((document.forms[0].elements[i].value < -10) || (document.forms[0].elements[i].value > 10)) { var msg; msg = "All Weights must be between -10 and 10 (inclusive)" alert (msg); return (false); } if (document.forms[0].elements[i].value == "") { weight[i] = 0; } else { weight[i] = document.forms[0].elements[i].value; } } // Calculate the results sums = new Array(); for (i = 0 ; i < 10 ; i++) { rv = sum_states (Pop,Gov1,Area,Gov2,Ins,Inc,Vote,Dep,Fin,Tax, Blm,Efi,Pland,Job,Liv,Land,Crm,Pres,UrbA,Gun,UrbC, Gov3,Nea,Geo,i,weight); sums[i] = rv; } Wy = sums[0]; Ak = sums[1]; Nd = sums[2]; Vt = sums[3]; Sd = sums[4]; De = sums[5]; Mt = sums[6]; Id = sums[7]; Nh = sums[8]; Me = sums[9]; form.wy.value = Wy; form.ak.value = Ak; form.nd.value = Nd; form.vt.value = Vt; form.sd.value = Sd; form.de.value = De; form.mt.value = Mt; form.id.value = Id; form.nh.value = Nh; form.me.value = Me; sums.sort(numberorder); rank = new Array(); rank[0] = 0; rank[1] = 0; rank[2] = 0; rank[3] = 0; rank[4] = 0; rank[5] = 0; rank[6] = 0; rank[7] = 0; rank[8] = 0; rank[9] = 0; for (i = 0 ; i < 10 ; i++) { if (sums[i] == Wy) { rank[0] = 10 - i; } if (sums[i] == Ak) { rank[1] = 10 - i; } if (sums[i] == Nd) { rank[2] = 10 - i; } if (sums[i] == Vt) { rank[3] = 10 - i; } if (sums[i] == Sd) { rank[4] = 10 - i; } if (sums[i] == De) { rank[5] = 10 - i; } if (sums[i] == Mt) { rank[6] = 10 - i; } if (sums[i] == Id) { rank[7] = 10 - i; } if (sums[i] == Nh) { rank[8] = 10 - i; } if (sums[i] == Me) { rank[9] = 10 - i; } } form.wy_r.value = rank[0]; form.ak_r.value = rank[1]; form.nd_r.value = rank[2]; form.vt_r.value = rank[3]; form.sd_r.value = rank[4]; form.de_r.value = rank[5]; form.mt_r.value = rank[6]; form.id_r.value = rank[7]; form.nh_r.value = rank[8]; form.me_r.value = rank[9]; return (0); }

Rank the States on Your Own Criteria


The following ranking system is easier and allows more freedom than the spreadsheet, but it can also be trickier! Refer to the State Data page and follow the instructions below.

To assign weights, ask yourself if a large number for a particular item is good or bad. For instance, if a large population is good, then assign the weight a large positive value. If a large population is bad, assign the weight a large negative value. If you don't care, the weight value should be zero (or near zero). Weights can be any value from -10 to 10 (inclusive). (Note the legend for each variable at the bottom.)

Once you've entered the weights, click on the 'Calculate' button and the results will appear in the labeled boxes below. Interpreting the results is easy: the higher (more positive) the value, the higher your preference for that state! The ranking of the state (1 thru 10) is also shown.

General Data
Weights
Economic and Political Data
Weights
Pop Gov1
Area Gov2
Ins Inc
Vot Dep
Fin Tax
Blm EFI
Pland Job
Liv Land
Crm Pres
UrbA Gun
UrbC Gov3
NEA

StateScoreRank StateScoreRank StateScoreRank
WY:AK:ND:
VT:SD:DE:
MT:ID:NH:
ME:

Pop=Population in 1000's
Area=Area in square miles
Ins=% of state population born inside the state, from Census
Geo=Geography ("Coast" is best; "Locked" is worst)
Vot=1000's of ballots cast in 2000 presidential election (lower numbers are better)
Fin=total campaign funds raised by all US House & Senate candidates in most expensive election of last 6 years, in millions of $ (lower numbers are better)
Blm=% of state's territory owned by federal government (lower numbers are better)
PLand= amount of private and locally owned land (not state or federal), in millions of square miles
Liv=Livability rating, 2002, from Morgan Quitno Press (higher numbers are supposed to be better - but the factors that go into the rating are sometimes dubious)
Crm=violent and property crimes per hundred thousand residents, 2001 (lower numbers are better)
UrbA=population in urbanized areas as % of total population
UrbC=population in urban clusters as % of total population (rban clusters are densely populated small towns)

Gov1=Federal, state, and local government spending as a percentage of Gross State Product (lower numbers are better)
Gov2=State and local government spending as a percentage of Gross State Product (lower numbers are better)
Inc=Median household income in $1000s (higher is better)
Dep=$ this state gets back in federal expenditures for every $1 paid in federal taxes, 2001 (lower is better)
Tax=State and local taxes (all sources) as a percentage of income, 2000 (lower is better)
EFI=Economic Freedom Index (lower numbers are better)
Job=1000's of new jobs forecast, 1998-2008 (higher is better: this variable is more important than current unemployment rate)
Land=lack of statewide land planning schemes, 10-point scale (higher is better)
Pres=sum of vote percentages for Republican, Libertarian, and Constitution presidential candidates in last election (higher numbers are better: in presidential elections votes for Republicans generally indicate a rough support for the free market over socialism, whereas on the state level both Republicans and Democrats may differ from the positions of the national parties)
Gun=severity of state gun control laws, as estimated by the poorly-named Open Society Institute (states that score lower are better for us!)
Gov3=Percentage of state population employed by state and local governments, 2001
NEA=Percentage of state population in the National Education Association or American Federation of Teachers

fsp-corner-right.png