About Crime Indexes

The data in this section is derived from surveys conducted by visitors to our website. Questions in these surveys are designed to be similar to many scientific and government surveys.

Each entry in the survey is assigned a number within the range of -2 to +2, where -2 represents a strongly negative perception and +2 represents a strongly positive perception.

To ensure data accuracy, we have implemented filtering measures to identify and exclude potential spam from our calculations. Our algorithms identify users who exhibit spam-like behavior and their inputs are not considered in the calculations. This helps maintain the integrity of the data and provide reliable results.

To make survey results easier to interpret for our users, we present them on a scale ranging from 0 to 100. This scale allows for a clear and straightforward understanding of the data, enhancing user experience and facilitating meaningful comparisons.

Our current index, which is continuously updated, is generated using data up to 36 months old. We carefully select cities for inclusion in the index based on a minimum number of contributors to ensure statistical significance. Additionally, our semiannual index is calculated twice a year by incorporating the latest data into the historical view.

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

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

The Crime Index takes into account survey responses about:

  1. General perception of crime levels
  2. Perceived safety: Survey responses from residents and visitors regarding their feelings of safety while walking during daylight and at night.
  3. Concerns about specific crimes: Survey questions about worries regarding mugging, robbery, car theft, physical attacks by strangers, harassment in public places, and discrimination based on factors like skin color, ethnicity, gender, or religion.
  4. Property crimes: Assessment of the extent of property-related crimes, such as burglary, theft, vandalism, etc.
  5. Violent crimes: Evaluation of the perception of violent crimes, including assault, homicide, sexual offenses, etc.

It's important to note that the Crime Index provided by Numbeo is based on user-contributed data and perceptions, which may differ from official government statistics. The index serves as a comparative tool to assess the relative safety of different cities or countries, helping individuals make informed decisions and understand the crime landscape in specific locations.

Is this much less accurate than governmental statistics?

In some countries, governments have detailed statistics based on the number of reported crimes per capita. While these surveys are usually particularly good for comparing crime between two cities within the same country, they may not be as suitable for cross-country comparisons due to 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;