diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/i18n/AppMessages.java b/www-client/src/main/java/fr/agrometinfo/www/client/i18n/AppMessages.java
index f6cbd88b70f0cde3a1fa578ded409bc3d44ca1f6..0eb4dd502f617d2a077a45c4d6c58a3471e17f6c 100644
--- a/www-client/src/main/java/fr/agrometinfo/www/client/i18n/AppMessages.java
+++ b/www-client/src/main/java/fr/agrometinfo/www/client/i18n/AppMessages.java
@@ -55,6 +55,13 @@ public interface AppMessages extends Messages {
             + "{0} ({1}) and the normal value at {2} in {3}")
     String comparedValue(String indicator, String period, String region, Integer year);
 
+    /**
+     * @param date date of last modification
+     * @return translation
+     */
+    @DefaultMessage("Computed on {0,date,long}")
+    String computedOn(Date date);
+
     /**
      * @param details failure details
      * @return translation
diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/presenter/MapPresenter.java b/www-client/src/main/java/fr/agrometinfo/www/client/presenter/MapPresenter.java
index aa6c13d3989db1fe41603e81776eafe3ce8dfcc4..0a74e37f38a0d1bbe1fbf984f62851117d49cb2a 100644
--- a/www-client/src/main/java/fr/agrometinfo/www/client/presenter/MapPresenter.java
+++ b/www-client/src/main/java/fr/agrometinfo/www/client/presenter/MapPresenter.java
@@ -14,6 +14,7 @@ import elemental2.dom.HTMLDivElement;
 import fr.agrometinfo.www.client.App;
 import fr.agrometinfo.www.client.event.FeatureSelectEvent;
 import fr.agrometinfo.www.client.i18n.AppConstants;
+import fr.agrometinfo.www.client.i18n.AppMessages;
 import fr.agrometinfo.www.client.util.ApplicationUtils;
 import fr.agrometinfo.www.client.view.BaseView;
 import fr.agrometinfo.www.client.view.MapView;
@@ -21,6 +22,7 @@ import fr.agrometinfo.www.shared.dto.ChoiceDTO;
 import fr.agrometinfo.www.shared.dto.FeatureLevel;
 import fr.agrometinfo.www.shared.dto.IndicatorDTO;
 import fr.agrometinfo.www.shared.service.IndicatorService;
+import fr.agrometinfo.www.shared.service.IndicatorServiceFactory;
 
 /**
  * Presenter for the embedded map with indicator results.
@@ -60,6 +62,11 @@ public final class MapPresenter implements Presenter {
     private static final String VALUES_URL = ApplicationUtils.getApplicationUrl() + "/rs/"
             + IndicatorService.PATH + "/" + IndicatorService.PATH_VALUES;
 
+    /**
+     * I18N messages.
+     */
+    private static final AppMessages MSGS = GWT.create(AppMessages.class);
+
     /**
      * Container for the map.
      */
@@ -70,6 +77,11 @@ public final class MapPresenter implements Presenter {
      */
     private View view;
 
+    /**
+     * Date of last modification of indicators values in database.
+     */
+    private String lastModification = "";
+
     /**
      * Load indicator values on the map.
      *
@@ -88,6 +100,7 @@ public final class MapPresenter implements Presenter {
         titleLines.add(indicator.getDescription() + "(" + indicator.getUnit() + ")");
         titleLines.add(regionName);
         titleLines.add(choice.getYear().toString());
+        titleLines.add(lastModification);
         final JsRestfulRequestFactory factory = new JsRestfulRequestFactory();
         final RestfulRequest request = factory.get(VALUES_URL);
         request.addQueryParam("indicator", choice.getIndicator());
@@ -124,6 +137,8 @@ public final class MapPresenter implements Presenter {
     @Override
     public void start() {
         GWT.log("MapPresenter.start()");
+        IndicatorServiceFactory.INSTANCE.getLastModification()
+                .onSuccess(date -> lastModification = MSGS.computedOn(date)).send();
         view = new MapView(container);
         view.setPresenter(this);
         view.init();
diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/ui/map/CanvasTitle.java b/www-client/src/main/java/fr/agrometinfo/www/client/ui/map/CanvasTitle.java
index b8bb9940ca1259d7ac4e961a39d57bed75d01135..54ee830c20b7cae17a01722caac5e2efa86a024d 100644
--- a/www-client/src/main/java/fr/agrometinfo/www/client/ui/map/CanvasTitle.java
+++ b/www-client/src/main/java/fr/agrometinfo/www/client/ui/map/CanvasTitle.java
@@ -62,7 +62,7 @@ public final class CanvasTitle extends CanvasWidget {
     /**
      * Keep space around logo, scale and text.
      */
-    private static final int PADDING = 3;
+    private static final int PADDING = 5;
 
     /**
      * @return total width of title box, PADDING included, limited to screen width.
@@ -114,7 +114,7 @@ public final class CanvasTitle extends CanvasWidget {
         int i = 0;
         final int x = PADDING + LOGO_WIDTH + (getWidth() - LOGO_WIDTH) / 2;
         for (final String line : lines) {
-            ctx.fillText(line, x, (double) LINE_HEIGHT + LINE_HEIGHT * i);
+            ctx.fillText(line, x, (double) PADDING + LINE_HEIGHT + LINE_HEIGHT * i);
             i++;
         }
         this.drawScale();
@@ -130,7 +130,7 @@ public final class CanvasTitle extends CanvasWidget {
         final int totalScaleHeight = 3 * LINE_HEIGHT;
         final double height = Math.max(//
                 LINE_HEIGHT * nbOfLines + 2d * BORDER_SIZE, //
-                LOGO_WIDTH / LOGO_SIZE_RATIO + BORDER_SIZE + totalScaleHeight);
+                BORDER_SIZE + PADDING + LOGO_WIDTH / LOGO_SIZE_RATIO + PADDING + totalScaleHeight + BORDER_SIZE);
         ctx.setFillStyle("#818181");
         ctx.fillRect(0, 0, getWidth(), height + 2 * PADDING);
         ctx.setFillStyle("#ffffff");
@@ -158,9 +158,9 @@ public final class CanvasTitle extends CanvasWidget {
     private void drawScale() {
         final int nbOfIntervals = colorIntervals.size();
         final double logoHeight = LOGO_WIDTH / LOGO_SIZE_RATIO;
-        final int cellWidth = getWidth() / (nbOfIntervals + 1);
+        final int cellWidth = (int) (getWidth() / (nbOfIntervals + 0.5));
         final int cellHeight = 2 * LINE_HEIGHT;
-        final double cellTop = logoHeight + BORDER_SIZE + PADDING;
+        final double cellTop = BORDER_SIZE + PADDING + logoHeight + PADDING;
         final double cellBottom = cellTop + cellHeight;
         final double labelTop = cellBottom + LINE_HEIGHT;
         final Context2d ctx = getCanvas().getContext2d();
diff --git a/www-client/src/main/resources/fr/agrometinfo/www/client/i18n/AppMessages_fr.properties b/www-client/src/main/resources/fr/agrometinfo/www/client/i18n/AppMessages_fr.properties
index 2505c7800fff5cad4721eeb5a45fd494b27e6611..9fdfc3c10021c28177d708f7619b4f37a0e5f91c 100644
--- a/www-client/src/main/resources/fr/agrometinfo/www/client/i18n/AppMessages_fr.properties
+++ b/www-client/src/main/resources/fr/agrometinfo/www/client/i18n/AppMessages_fr.properties
@@ -4,6 +4,7 @@ averageValue = Valeur moyenne de l’indicateur {0} ({1}) en {2} sur {3}
 cell = Maille n°{0}
 chartSubtitle = {0,date,medium}. Unité : {1}
 comparedValue = Écart moyen de la valeur de l’indicateur {0} ({1}) en {2} sur {3}
+computedOn = Calculé le {0,date,long}
 failureResponse = La communication avec le serveur a échoué : {0}
 failureStatusCode = Code d’état HTTP : {0}
 nbOfIndicatorPeriods[\=0] = Aucune période.
diff --git a/www-server/src/main/java/fr/agrometinfo/www/server/rs/IndicatorResource.java b/www-server/src/main/java/fr/agrometinfo/www/server/rs/IndicatorResource.java
index ef39990f9dac35a089f276e48ab8e7ae0d66b7f3..386c66a16c4fd305448b98114d70de62fcab2c56 100644
--- a/www-server/src/main/java/fr/agrometinfo/www/server/rs/IndicatorResource.java
+++ b/www-server/src/main/java/fr/agrometinfo/www/server/rs/IndicatorResource.java
@@ -200,6 +200,13 @@ public class IndicatorResource implements IndicatorService {
         }
     }
 
+    @GET
+    @Path(IndicatorService.PATH_LAST_MODIFICATION)
+    @Override
+    public Date getLastModification() {
+        return DateUtils.toDate(cacheService.getLastModification().toLocalDate());
+    }
+
     /**
      * @return indicator categories with their indicators
      */
diff --git a/www-server/src/main/java/fr/agrometinfo/www/server/service/CacheService.java b/www-server/src/main/java/fr/agrometinfo/www/server/service/CacheService.java
index 8c038d9f4ff838bcd75b4a6f8b0e589d519b326e..f34521eb6c75df6e3ffa2decf9ab50fbed8b0c71 100644
--- a/www-server/src/main/java/fr/agrometinfo/www/server/service/CacheService.java
+++ b/www-server/src/main/java/fr/agrometinfo/www/server/service/CacheService.java
@@ -22,6 +22,7 @@ import jakarta.ws.rs.core.EntityTag;
 import jakarta.ws.rs.core.HttpHeaders;
 import jakarta.ws.rs.core.Request;
 import jakarta.ws.rs.ext.RuntimeDelegate;
+import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.log4j.Log4j2;
 
@@ -62,6 +63,7 @@ public class CacheService {
     /**
      * Date of last modification of indicators values in database.
      */
+    @Getter
     @Setter
     @Inject
     @Named("lastModification")
diff --git a/www-shared/src/main/java/fr/agrometinfo/www/shared/service/IndicatorService.java b/www-shared/src/main/java/fr/agrometinfo/www/shared/service/IndicatorService.java
index cd3d6330c1f610e12e98cc02f29725d339d4a84a..711b5168ba973c077c09edcca648bfe188e1960b 100644
--- a/www-shared/src/main/java/fr/agrometinfo/www/shared/service/IndicatorService.java
+++ b/www-shared/src/main/java/fr/agrometinfo/www/shared/service/IndicatorService.java
@@ -1,5 +1,6 @@
 package fr.agrometinfo.www.shared.service;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -48,6 +49,17 @@ public interface IndicatorService {
      * Path for {@link IndicatorService#getYears()}.
      */
     String PATH_YEARS = "years";
+    /**
+     * Path for {@link IndicatorService#getLastModification()}.
+     */
+    String PATH_LAST_MODIFICATION = "last_modification";
+
+    /**
+     * @return Date of last modification of indicators values in database.
+     */
+    @GET
+    @Path(PATH_LAST_MODIFICATION)
+    Date getLastModification();
 
     /**
      * @return list of years of computed indicators.