About Crime Indices At This Website

This section is based on surveys from visitors of this website. Questions for these surveys are similar to many similar scientific and government surveys.

Each entry in the survey is saved as the number in the range [-2, +2], with -2 having meaning of strongly negative and +2 meaning of strongly positive.

We filter surveys to eliminate potential spam, like people entering a large amount of data which are differentiating from the median value.

To present survey result, we use the scale [0, 100] for values since it is easier to read for users.

To generate a current index (which is always updated) we use data up to 36 months old. We include only cities for which there are at least a certain number of contributors. Our semiannual index is remade twice per year by pushing current index into this historical view.

Crime Index is an estimation of overall level of crime in a given city or a country. We consider crime levels lower than 20 as very low, crime levels between 20 and 40 as being low, crime levels between 40 and 60 as being moderate, crime levels between 60 and 80 as being high and finally crime levels higher than 80 as being very high.

Safety index is, on the other way, quite opposite of crime index. If the city has a high safety index, it is considered very safe.

Is this much less accurate than governmental statistics? In some countries, governments have a detailed statistics based on a number of reported crimes per capita. Those surveys are particular good in comparing crime between two cities in that country, but are not so good in cross country comparison for the following reasons:

Actual formulas to calculate indices are subject to change. At this moment, quite complex empirical formulas are used. Those formulas as written in the Java programming language are as follows:

    //assumes all input values are in the range [-2 , 2], where -2 means very low and 2 means very high
    protected void calculateIndex() {
    index = new CrimeIndex();
    double overall = 0.0;

    overall += 3 * getIndexPartPreCalc(level_of_crime);
    overall += getIndexPartPreCalc(crime_increasing);
    overall += getIndexPartPreCalc(-safe_alone_daylight);
    overall += getIndexPartPreCalc(-safe_alone_night);
    overall += getIndexPartPreCalc(worried_home_broken);
    overall += getIndexPartPreCalc(worried_mugged_robbed);
    overall += getIndexPartPreCalc(worried_car_stolen);
    overall += getIndexPartPreCalc(worried_things_car_stolen);
    overall += getIndexPartPreCalc(worried_attacked);
    overall += getIndexPartPreCalc(worried_insulted);
    overall += getIndexPartPreCalc(worried_skin_ethnic_religion);
    overall += getIndexPartPreCalc(problem_drugs);
    overall += getIndexPartPreCalc(problem_property_crimes);
    overall += getIndexPartPreCalc(problem_violent_crimes);
    overall += getIndexPartPreCalc(problem_corruption_bribery);

    index.main = overall / 17;
    index.exp = index.main / 2 + ((index.main > 20) ? Math.pow(index.main - 20, 1.65) : 0.0);

    double safety = 0.0;
    safety += 3 * getIndexPartPreCalc(-level_of_crime);
    safety += getIndexPartPreCalc(-crime_increasing);
    safety += getIndexPartPreCalc(safe_alone_daylight);
    safety += getIndexPartPreCalc(safe_alone_night);
    safety += getIndexPartPreCalc(-worried_home_broken);
    safety += getIndexPartPreCalc(-worried_mugged_robbed);
    safety += getIndexPartPreCalc(-worried_car_stolen);
    safety += getIndexPartPreCalc(-worried_things_car_stolen);
    safety += getIndexPartPreCalc(-worried_attacked);
    safety += getIndexPartPreCalc(-worried_insulted);
    safety += getIndexPartPreCalc(-worried_skin_ethnic_religion);
    safety += getIndexPartPreCalc(-problem_drugs);
    safety += getIndexPartPreCalc(-problem_property_crimes);
    safety += getIndexPartPreCalc(-problem_violent_crimes);
    safety += getIndexPartPreCalc(-problem_corruption_bribery);

    index.safety = safety / 17;

  protected double getIndexPartPreCalc(double internalValue) {
    return (internalValue + 2) * 25;