Skip to content

Methodology & Safety Data

Last updated: March 2026

Section 01

Introduction

Juliapp is a community-powered safety mapping platform built on the principle that safety information should be transparent, accessible, and community-driven. Our mission is to empower individuals with real-time awareness of their surroundings so they can make informed decisions about their routes, timing, and travel.

Every data point on the Juliapp map originates from a community member who witnessed or experienced a safety-relevant event. Reports are collected through a structured submission process, enriched with contextual metadata (category, severity, time, location, environment), and displayed on an interactive map in real time.

This page explains exactly how data is collected, processed, scored, and displayed — because we believe the methodology behind safety tools should be as transparent as the data itself.

Section 02

Report Categories

When a user creates a safety report (a "pin"), they select a category that best describes the incident. Each category is designed to capture a distinct type of safety concern.

CategoryDescriptionExamples
HarassmentVerbal, sexual, or persistent unwanted attention directed at an individualCatcalling, verbal intimidation, sexual harassment, following
StalkingRepeated or persistent surveillance, following, or threatening behaviorBeing followed on foot or by vehicle, repeated appearances, surveillance
Dark AreaEnvironmental hazard related to poor visibility, infrastructure danger, or unsafe conditionsBroken streetlights, poorly lit passages, construction hazards, obstructed pathways
AggressionPhysical violence, robbery, or direct confrontational threatAssault, robbery, bag snatching, physical altercation, armed threat
IntoxicatedPresence of intoxicated individuals behaving erratically or aggressivelyAggressive drunk behavior, drug use in public, erratic/unpredictable conduct
OtherAny safety concern that does not fit the above categoriesSuspicious activity, vandalism, unusual gatherings, animal hazards

Categories are intentionally broad to remain inclusive without being overwhelming. Users can add a free-text description to provide additional detail beyond the selected category.

Section 03

Severity Levels

Each report includes a user-assessed severity level that communicates the perceived level of danger. Severity affects how prominently a pin is displayed on the map and how it factors into route danger scoring.

LevelLabelIndicatorDescriptionExamples
1Low / MildGreenMinor concern, no immediate physical dangerSuspicious loitering, minor vandalism, broken streetlight
2Medium / ModerateYellowModerate risk, heightened awareness recommendedVerbal harassment, petty theft area, aggressive panhandling
3High / DangerOrangeSignificant risk, active caution advisedRepeated theft incidents, aggressive confrontation, stalking pattern
4Critical / EmergencyRedImmediate danger, emergency-level threatAssault in progress, active emergency, armed threat
SOS alerts are a special category of critical-severity reports triggered through the emergency button. They broadcast the user's live location to trusted contacts and nearby community members, and are styled with high-visibility pulsing indicators on the map.

Section 04

Environment Context

Reports include an environment context that describes how the reporter was traveling at the time of the incident. This metadata enables time-and-mode-specific safety analysis.

EnvironmentDescription
On footWalking or running in any outdoor environment
TransitUsing metro, train, or tram systems
BusOn a bus or at a bus stop
CyclingOn a bicycle, scooter, or similar micro-mobility vehicle
VehicleIn a car, taxi, or ride-share
IndoorInside a building, venue, or enclosed public space

Day vs. Night Reporting

Time of day fundamentally changes the safety landscape of any location. Juliapp distinguishes between day reports (06:00–20:00) and night reports (20:00–06:00) based on the timestamp of the incident.

  • Night-time incidents are filtered and weighted separately in the routing algorithm, since safety conditions often differ dramatically after dark.
  • The filter bar allows users to view reports by time-of-day: morning, afternoon, evening, or night.
  • Route planning factors in whether the trip is occurring during day or night hours, adjusting danger scores accordingly.

Section 05

Urban Context Categories

Beyond how the reporter was traveling, Juliapp captures where the incident occurred in terms of urban typology. This spatial metadata enables pattern analysis across different types of urban infrastructure.

ContextDescription
StreetPublic road, sidewalk, or pedestrian path
ParkingParking lot, underground garage, or parking structure
Store / MallCommercial area, shopping center, or retail environment
MetroMetro station, platform, or underground passage
Bus stopBus stop, bus shelter, or transit interchange
ParkPublic park, garden, green space, or playground
Restaurant / BarFood and drink establishment, terrace, or nightlife venue
BuildingResidential building entrance, lobby, hallway, or stairwell
OtherAny context not covered above (user can specify in free text)

Urban context data helps identify spatial safety patterns — for example, whether incidents cluster around transit stations, parking areas, or parks at specific times. This information is used in neighborhood safety scoring and city-level analytics.

Section 06

Community Verification System

Juliapp relies on community participation to validate the accuracy and relevance of safety reports. Multiple mechanisms work together to establish trust.

Confirm & Refute

Any user can confirm or refute an existing report. This crowdsourced validation creates a confirmation score for each pin:

  • Reports with more confirmations are displayed more prominently and carry greater weight in danger scoring.
  • Reports with a high refutation ratio may be visually de-emphasized or flagged for review.
  • Users can only vote once per pin, preventing manipulation.

Identity Verification

Users can optionally verify their identity through a third-party provider (Didit). Verified users receive a visible badge on their profile. Reports from verified users carry additional weight in the confirmation system, as their identity has been independently confirmed.

Impact Score & Milestones

Juliapp tracks each user's positive contribution to community safety through an impact scoring system. Points are earned for:

  • Creating reports that receive community confirmations
  • Confirming or refuting other users' reports
  • Participating in community discussions
  • Maintaining reporting streaks (consecutive days of activity)
  • Completing community challenges (weekly community goals)

Milestones are awarded at key thresholds and visible on the user's profile, incentivizing consistent, quality participation.

Section 07

Danger-Aware Routing Algorithm

Juliapp's trip planner does not just find the fastest route — it evaluates each route's safety profile using community-reported data. Here is how the algorithm works.

Route Corridor Analysis

For each candidate route returned by the routing engine, Juliapp samples up to 20 evenly-spaced waypoints along the path. At each waypoint, it checks for unresolved safety reports within a 200-meter radius. This creates a "corridor" of safety awareness around the entire route.

Severity-Weighted Scoring

Not all incidents carry equal weight. The danger score is computed as follows:

Report TypeWeightRationale
Standard report1 pointBase weight for any unresolved incident near the route
Emergency / SOS report3 pointsEmergency reports signal active, high-severity danger

The total danger score is the sum of all weighted incidents detected within the route corridor. Higher scores indicate routes that pass through areas with more reported incidents.

Time Decay & Night Filtering

The algorithm only considers recent, unresolved reports. Resolved incidents are excluded entirely. When traveling at night, the algorithm can optionally filter to only consider night-time reports (incidents that occurred between 22:00 and 06:00), providing time-relevant safety scoring.

Alternative Route Generation

The routing engine (OSRM) generates up to 3 alternative routes for each trip. Each route is independently scored for danger, and users see all options ranked by both travel time and safety. Available transport modes include:

ModeRouting EngineDanger Scoring
WalkOSRM (foot profile)Full corridor analysis with alternatives
BikeOSRM (bike profile)Full corridor analysis with alternatives
DriveOSRM (driving profile)Full corridor analysis with alternatives
TransitIDFM official schedulesNo danger rerouting (fixed transit lines)
Why no danger rerouting for transit? Public transit follows fixed routes and schedules. Juliapp cannot suggest alternative metro lines in the same way it suggests alternative walking paths. Instead, transit routes display nearby incidents along the line for awareness.

Section 08

Data Freshness & Lifecycle

Safety data is inherently time-sensitive. A report from 30 minutes ago is far more actionable than one from 3 days ago. Juliapp uses multiple mechanisms to reflect data freshness.

Time-Based Visual Styling

Pins on the map are styled to visually communicate recency. Recent reports appear with stronger visual presence (larger, more opaque, pulsing for emergencies), while older reports are progressively de-emphasized.

Filter Options

Users can filter the map by report age to focus on the most relevant data:

FilterShows Reports FromBest For
< 1 hourLast 60 minutesReal-time situational awareness
< 6 hoursLast 6 hoursCurrent-session safety overview
TodaySince midnightDaily safety picture
AnyAll available reportsPattern analysis and historical context

SOS Alert Expiry

SOS emergency alerts are designed for immediate, time-critical situations. If an SOS is not manually resolved by the user or a responder, it auto-expires after 2 hours. This prevents stale emergency markers from persisting on the map and causing unnecessary alarm.

Historical Data Retention

While the active map focuses on recent data, historical reports are retained in the database for pattern analysis, neighborhood safety scoring, and trend computation. Older reports are anonymized after 12 months in accordance with the privacy policy.

Section 09

Privacy by Design

Juliapp is built with privacy as a foundational principle, not an afterthought. Safety information and personal privacy are not mutually exclusive — here is how they coexist.

PrincipleImplementation
No precise home addressesJuliapp does not store or infer users' home locations. Reports are placed at user-selected map points, not derived from home address data.
Active-only locationGPS location is only accessed when the app is actively in use (map view, trip navigation, SOS). No background tracking occurs outside of active sessions.
Approximate report locationsReports are placed at the point the user taps on the map, which may be approximate. The system does not snap reports to exact addresses.
No real-name requirementUsers choose a display name freely. Identity verification is entirely optional and does not expose real names to other users.
GDPR-compliant processingAll data processing has a lawful basis (consent, contract, or legitimate interest). Users can access, rectify, export, or delete their data at any time.
EU data residencyAll primary data is stored in European Union data centers. Third-party processors comply with GDPR or have adequate safeguards.

For full details on data collection, retention, and your rights, see the Privacy Policy. Privacy.

Section 10

Limitations & Disclaimer

Juliapp is a powerful community tool, but it has important limitations that every user should understand.

  • Not a replacement for emergency services. Juliapp is a supplementary awareness tool. In case of immediate danger, always call your local emergency number: 112 (EU), 911 (US), 999 (UK), or 15 / 17 / 18 (France).
  • Community-dependent accuracy. Report accuracy and coverage depend entirely on community participation. Areas with fewer active users will have fewer reports, which does not necessarily mean those areas are safer.
  • No independent verification. Juliapp does not independently verify individual incident reports. While the community confirmation system helps surface reliable data, individual reports reflect the subjective perception of the reporter.
  • Indicative safety scores. Danger scores, neighborhood ratings, and route safety assessments are indicative, not absolute guarantees. A low danger score does not guarantee safety, and a high score does not mean danger is certain.
  • Temporal limitations. Safety conditions change rapidly. A location that was flagged an hour ago may be safe now, and vice versa. Always exercise personal judgment regardless of what the map shows.
  • Reporting bias. Certain types of incidents may be underreported (e.g., harassment) or overreported (e.g., perceived suspicious activity). Juliapp data reflects community reporting patterns, which may not perfectly mirror actual crime statistics.
Stay safe. Juliapp is designed to augment your situational awareness, not replace it. Trust your instincts, stay alert, and never hesitate to contact emergency services when you feel unsafe.