diff --git a/www-server/src/main/java/fr/agrometinfo/www/server/dao/PraDailyValueDao.java b/www-server/src/main/java/fr/agrometinfo/www/server/dao/PraDailyValueDao.java
index 28912056144ad028f3ee6ab5534d51635d8d4111..f9dfa3774b1ca485426daa4c010a77ebec8ea738 100644
--- a/www-server/src/main/java/fr/agrometinfo/www/server/dao/PraDailyValueDao.java
+++ b/www-server/src/main/java/fr/agrometinfo/www/server/dao/PraDailyValueDao.java
@@ -125,13 +125,14 @@ public interface PraDailyValueDao {
     List<Indicator> findIndicators(Integer year);
 
     /**
-     * The last {@link DailyValue#getDate()} for the indicator on a year.
+     * The last {@link DailyValue#getDate()} for the indicator in a period.
      *
      * @param indicator indicator to search
-     * @param year      year
+     * @param firstDay  first day of period
+     * @param lastDay   last day of period
      * @return last date or null
      */
-    LocalDate findLastDate(Indicator indicator, Integer year);
+    LocalDate findLastDate(Indicator indicator, LocalDate firstDay, LocalDate lastDay);
 
     /**
      * @return the regions related to computed values
diff --git a/www-server/src/main/java/fr/agrometinfo/www/server/dao/PraDailyValueDaoHibernate.java b/www-server/src/main/java/fr/agrometinfo/www/server/dao/PraDailyValueDaoHibernate.java
index 28a1044a98765ca0b736280b410d4943f088d352..a6a4f32a3332e130207f4a5e9a9d98acbce8ac31 100644
--- a/www-server/src/main/java/fr/agrometinfo/www/server/dao/PraDailyValueDaoHibernate.java
+++ b/www-server/src/main/java/fr/agrometinfo/www/server/dao/PraDailyValueDaoHibernate.java
@@ -267,12 +267,13 @@ public class PraDailyValueDaoHibernate extends DaoHibernate<PraDailyValue> imple
     }
 
     @Override
-    public final LocalDate findLastDate(final Indicator indicator, final Integer year) {
+    public final LocalDate findLastDate(final Indicator indicator, final LocalDate firstDay, final LocalDate lastDay) {
         final var jpql = """
                 SELECT MAX(t.date)
                 FROM PraDailyValue AS t
-                WHERE t.indicator=:indicator AND EXTRACT(YEAR FROM t.date) = :year""";
-        return super.findOneByJPQL(jpql, Map.of(PARAM_INDICATOR, indicator, PARAM_YEAR, year), LocalDate.class);
+                WHERE t.indicator=:indicator AND t.date BETWEEN :firstDay AND :lastDay""";
+        final var params = Map.of(PARAM_INDICATOR, indicator, "firstDay", firstDay, "lastDay", lastDay);
+        return super.findOneByJPQL(jpql, params, LocalDate.class);
     }
 
     private List<PraDailyValue> findPraDailyValues(final String sql, final Map<String, Object> params) {
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 4783deeb54c8acd5bf464d2052f1f31a36a614fb..42d0fb970fca6efe8705b5006532993def9fec62 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
@@ -96,19 +96,6 @@ public class IndicatorResource implements IndicatorService {
      */
     private static final String PARAM_YEAR = "year";
 
-    /**
-     * Get the date related to the year.
-     *
-     * @param year year
-     * @param dateTemplate date template with YYYY for year and XXXX for previous year
-     * @return date from template.
-     */
-    private static LocalDate getDate(final Integer year, final String dateTemplate) {
-        return LocalDate.parse(dateTemplate//
-                .replace("YYYY", String.valueOf(year))//
-                .replace("XXXX", String.valueOf(year - 1)));
-    }
-
     private static String getTranslation(final Map<String, String> names, final Locale locale) {
         final var locales = List.of(locale, Locale.FRENCH, Locale.ENGLISH);
         for (final Locale l : locales) {
@@ -225,7 +212,7 @@ public class IndicatorResource implements IndicatorService {
      */
     private void addMetadata(final FeatureCollection collection, final Indicator indicator,
             final Integer year, final Locale locale, final boolean comparison) {
-        final var periodFirstDay = getDate(year, indicator.getPeriod().getFirstDay());
+        final var periodFirstDay = DateUtils.toLocalDate(year, indicator.getPeriod().getFirstDay());
         final Feature feature = new Feature();
         final MultiPolygon multiPolygon = new MultiPolygon();
         feature.setGeometry(multiPolygon);
@@ -357,9 +344,9 @@ public class IndicatorResource implements IndicatorService {
             throwWebApplicationException(Response.Status.BAD_REQUEST, indicatorUid + " is unknown for " + periodCode);
         }
 
-        final var firstDay = getDate(year, indicator.getPeriod().getFirstDay());
-        final var lastDay = getDate(year, indicator.getPeriod().getLastDay());
-        final var date = praDailyValueDao.findLastDate(indicator, year);
+        final var firstDay = DateUtils.toLocalDate(year, indicator.getPeriod().getFirstDay());
+        final var lastDay = DateUtils.toLocalDate(year, indicator.getPeriod().getLastDay());
+        final var date = praDailyValueDao.findLastDate(indicator, firstDay, lastDay);
         if (date == null) {
             throwWebApplicationException(Response.Status.NOT_FOUND,
                     "No value found for indicator " + indicatorUid + " in " + year);
@@ -474,7 +461,9 @@ public class IndicatorResource implements IndicatorService {
             throwWebApplicationException(Response.Status.BAD_REQUEST, indicatorUid + " is unknown for " + periodCode);
         }
         addMetadata(collection, indicator, year, locale, Boolean.TRUE.equals(comparison));
-        final LocalDate date = praDailyValueDao.findLastDate(indicator, year);
+        final LocalDate firstDay = DateUtils.toLocalDate(year, indicator.getPeriod().getFirstDay());
+        final LocalDate lastDay = DateUtils.toLocalDate(year, indicator.getPeriod().getLastDay());
+        final LocalDate date = praDailyValueDao.findLastDate(indicator, firstDay, lastDay);
         if (date == null) {
             throwWebApplicationException(Response.Status.NOT_FOUND,
                     "No value found for indicator " + indicatorUid + " in " + year);
diff --git a/www-server/src/main/java/fr/agrometinfo/www/server/util/DateUtils.java b/www-server/src/main/java/fr/agrometinfo/www/server/util/DateUtils.java
index c7c35af4085a284b79ffb31ea13fc8e40f3e70fa..2d5842dffd1bc2febc554a5dd6c12fbd4a6bb4f4 100644
--- a/www-server/src/main/java/fr/agrometinfo/www/server/util/DateUtils.java
+++ b/www-server/src/main/java/fr/agrometinfo/www/server/util/DateUtils.java
@@ -44,4 +44,18 @@ public interface DateUtils {
     static LocalDate toLocalDate(@NonNull final Date date) {
         return new java.sql.Timestamp(date.getTime()).toLocalDateTime().toLocalDate();
     }
+
+    /**
+     * Get the date related to the year.
+     *
+     * @param year         year
+     * @param dateTemplate date template with YYYY for year and XXXX for previous
+     *                     year
+     * @return date from template.
+     */
+    static LocalDate toLocalDate(final Integer year, final String dateTemplate) {
+        return LocalDate.parse(dateTemplate//
+                .replace("YYYY", String.valueOf(year))//
+                .replace("XXXX", String.valueOf(year - 1)));
+    }
 }
diff --git a/www-server/src/test/java/fr/agrometinfo/www/server/dao/DailyValueDaoHibernateTest.java b/www-server/src/test/java/fr/agrometinfo/www/server/dao/DailyValueDaoHibernateTest.java
index d7c373830536f6ca9f4716481dc40f4bc3bcaf38..e21ac9219e4b65ca7db754370fd146dad51acf6d 100644
--- a/www-server/src/test/java/fr/agrometinfo/www/server/dao/DailyValueDaoHibernateTest.java
+++ b/www-server/src/test/java/fr/agrometinfo/www/server/dao/DailyValueDaoHibernateTest.java
@@ -6,6 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import org.junit.jupiter.api.Test;
 
 import fr.agrometinfo.www.server.model.Indicator;
+import fr.agrometinfo.www.server.util.DateUtils;
 
 /**
  * Test DailyValueDao Hibernate implementation.
@@ -34,7 +35,9 @@ class DailyValueDaoHibernateTest {
     @Test
     void findAverageComputedValue() {
         final var indicator = indicatorDao.findByCodeAndPeriod("rainsum", "year");
-        final var date = praDailyValueDao.findLastDate(indicator, YEAR);
+        final var firstDay = DateUtils.toLocalDate(YEAR, indicator.getPeriod().getFirstDay());
+        final var lastDay = DateUtils.toLocalDate(YEAR, indicator.getPeriod().getLastDay());
+        final var date = praDailyValueDao.findLastDate(indicator, firstDay, lastDay);
         final var region = praDailyValueDao.findRegions().get(0);
         final var actual = dao.findAverageComputedValue(indicator, date, (int) region.getId());
         final Double expected = 22.d;
diff --git a/www-server/src/test/java/fr/agrometinfo/www/server/dao/PraDailyValueDaoHibernateTest.java b/www-server/src/test/java/fr/agrometinfo/www/server/dao/PraDailyValueDaoHibernateTest.java
index 20d7f63307b048a675db60eae0f5e51e1260d76a..93f527cb9a91412e3714c5857f1a50f84b62c3f0 100644
--- a/www-server/src/test/java/fr/agrometinfo/www/server/dao/PraDailyValueDaoHibernateTest.java
+++ b/www-server/src/test/java/fr/agrometinfo/www/server/dao/PraDailyValueDaoHibernateTest.java
@@ -7,6 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import org.junit.jupiter.api.Test;
 
 import fr.agrometinfo.www.server.model.Indicator;
+import fr.agrometinfo.www.server.util.DateUtils;
 
 /**
  * Test PraDailyValueDao Hibernate implementation.
@@ -26,7 +27,9 @@ class PraDailyValueDaoHibernateTest {
     @Test
     void find() {
         final var indicator = indicatorDao.findByCodeAndPeriod("rainsum", "year");
-        final var date = dao.findLastDate(indicator, DailyValueDaoHibernateTest.YEAR);
+        final var firstDay = DateUtils.toLocalDate(YEAR, indicator.getPeriod().getFirstDay());
+        final var lastDay = DateUtils.toLocalDate(YEAR, indicator.getPeriod().getLastDay());
+        final var date = dao.findLastDate(indicator, firstDay, lastDay);
         final var actual = dao.find(indicator, date);
         assertNotNull(actual);
     }
@@ -43,7 +46,9 @@ class PraDailyValueDaoHibernateTest {
     @Test
     void findLastDate() {
         final var indicator = indicatorDao.findByCodeAndPeriod("rainsum", "year");
-        final var actual = dao.findLastDate(indicator, YEAR);
+        final var firstDay = DateUtils.toLocalDate(YEAR, indicator.getPeriod().getFirstDay());
+        final var lastDay = DateUtils.toLocalDate(YEAR, indicator.getPeriod().getLastDay());
+        final var actual = dao.findLastDate(indicator, firstDay, lastDay);
         assertNotNull(actual);
     }