Deep analysis of French renting bike company



This website presents both an advanced real-time analysis and a business intelligence analysis of the Velo'v bike-sharing network.
Using your phone, you can locate easily the nearest station to take your bike from, or the nearest station to let your bike.
You can see all the stations status and district stats at a glance, as well as the high-fidelity results of the Business Intelligence analysis.




jQueryChartJSLeafletTalend ETLQlik Sense


BI - Velo'v

Real-Time Network Health Analysis
Velo'v station status in real-time.
District real-time statistics.
Results of a complex Business Intelligence analysis


Official Velo'v Logo
Official Simplified Velo'v Logo

Key Functionalities

The user can browse trough velov stations in real-time:
  • He can click a station to see available bikes
  • He can search a particular station
  • He is geolocated automatically
  • He can see advanced stats on each district
  • He can also see advanced stats on the global network

The user can also see results of the Business Intelligence analysis done in 2016.



Red: Excitement, Energy, Sport#E11F26
Gray: Neutral, Formal#E0E0E0


Occupied station slot
Empty station slot


Website FontRoboto - Google Fonts
Website Title FontPoiret One - Google Fonts
Icon FontMaterial Icons Font - Google Fonts

Station Status

Opened Station
Full Station
Empty Station
Closed Station


Map Layers

Base map | Tile Layer

The Base Map is a layer from OpenStreetMap called mapnik - GrayScale, a very clear layer with all information from the classic layer of OpenStreetMap.

Districts | Objects Pane - Polygons

Districts' bounds are stored in a JavaScript variable, then draw on the map.

Bike Stations | Marker Pane

Bike Stations are retrieved from the JCDecaux API, owner of the Velo'v network.

Map Custom Controls

A custom control, that permits to reset the position and zoom of the map, needs to be added using JavaScript.

Another control was added and permits to show the legend on hover.

Map Legend

Legend appears on hover on the information control.


jQueryFast, small and feature-rich JavaScript library
ChartJSSimple, clean and engaging JavaScript charts
LeafletLibrary for interactive maps
MDBootstrapMost popular framework for building responsive websites


JC DecauxReal-Time updated API for Velo'v network status
Open Weather APIReal-Time weather

JC Decaux API

The JC Decaux API returns in real-time the status of all stations. For each station, it joins some attributes :
  • number (id of the district + id of the station)
  • name of the station
  • its address
  • latitude and longitude
  • its status (either opened or closed)
  • if the station is a bonus station
  • available bikes
  • available bike stands
  • bike stands (available bikes + available bike stands + out of order bike stands)


The user is geolocalized at each visit. Everytime, the map is zoomed to its position, and the closest station's details are opened automatically.

BI Process

Data FetchingPHP with Curl Script
DatabaseMySQL - 3.6 M lines
Data TransformationTalend ETL
Transformation ScriptsSQL scripts
Data VisualizationQlik Sense
Chart TransformationJavaScript
Chart IntegrationChartJS

Data Sources

Two APIs were fetched with a granularity of 5 minutes.
Velo'v network API
Date & Hour
Weather API
Static DataPopulation by districts

Data Transformation

Transformation scripts permits to manipulate data before loading it into QlikSense :
  • arrondpop | adds the population to each district
  • day of the week | adds the day label to each timestamp
  • hour correction | permits to truncate seconds to each timestamp
  • timestamp on date | adds the human-readable date
  • timestamp on hour | adds the human-readable hour
  • week number | adds the week number and day labels


This analysis permits to answer to these KPIs, useful to indicate the network health:
  1. Which stations are the most used? and districts?
  2. Which stations are the less used? and districts?
  3. Which stations appeared at least once a day without a bike?
  4. Which stations appeared at least once a day full?
  5. How many bikes are available though the day?
  6. How many bikes are used through the day?
  7. How many bikes are used according to the weather?
  8. Which stations are the most used, according to the weather?
  9. How many bike stands are out of order through the week?
  10. Which stations have the most out of order bikes?
  11. Which stations are the most often empty?
  12. Which stations are the most often full?
  13. How the stations are used along the week (hour-sampled) ?
  14. How the stations are used along the week (day-sampled) ?
  15. How many stations are installed by inhabitant (by district) ?
  16. How many bikes are available by inhabitant (by district) ?
  17. How many available bikes are in each station along the day?
  18. How many available stands are in each station along the day?
  19. Does the neighbour stations (<200 m) have a similar activity?
  20. Are there very active stations next to (< 200m) inactive ones?
  21. How long in average an empty station stays empty?
  22. How long in average a full station stays full?
  23. Are there any correlation between temperature and utilization?
  24. Are there any correlation between humidity and utilization?


Charts are built using QlikSense. After this, they are transformed into JSON data, then used to build interactive charts. This permits to have more engaging, beautiful and interactive charts through the entire website.