diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/TimeVariables.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/TimeVariables.kt
index 2e90edd67d3ae3aa8396d50c7f1258ada2b38e15..5a6537cc9503b2612060e550bb2e4e9fd23846df 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/TimeVariables.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/risk/TimeVariables.kt
@@ -76,14 +76,14 @@ object TimeVariables {
 
     /**
      * The timeRange until the calculated exposure figures are rated as stale.
-     * In days.
+     * In hours.
      */
-    private const val MAX_STALE_EXPOSURE_RISK_RANGE = 1
+    private const val MAX_STALE_EXPOSURE_RISK_RANGE = 48
 
     /**
      * Getter function for [MAX_STALE_EXPOSURE_RISK_RANGE]
      *
-     * @return stale threshold in days
+     * @return stale threshold in hours
      */
     fun getMaxStaleExposureRiskRange(): Int = MAX_STALE_EXPOSURE_RISK_RANGE
 
@@ -106,6 +106,7 @@ object TimeVariables {
      * Internal requirements: 2 hours = 7200000 milliseconds
      * Test value: 1 minute
      */
+    // todo exchange with real value (currently 120 min)
     private const val MANUAL_KEY_RETRIEVAL_DELAY = 60000L
 
     /**
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/transaction/RiskLevelTransaction.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/transaction/RiskLevelTransaction.kt
index 32e157f3771cbb6e23cb8a4fc9761b7b0b064267..df32874cc6044d524cff9c095c2d15f946c2d3ec 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/transaction/RiskLevelTransaction.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/transaction/RiskLevelTransaction.kt
@@ -33,7 +33,6 @@ import de.rki.coronawarnapp.transaction.RiskLevelTransaction.RiskLevelTransactio
 import de.rki.coronawarnapp.transaction.RiskLevelTransaction.RiskLevelTransactionState.RETRIEVE_APPLICATION_CONFIG
 import de.rki.coronawarnapp.transaction.RiskLevelTransaction.RiskLevelTransactionState.RETRIEVE_EXPOSURE_SUMMARY
 import de.rki.coronawarnapp.transaction.RiskLevelTransaction.RiskLevelTransactionState.UPDATE_RISK_LEVEL
-import de.rki.coronawarnapp.util.TimeAndDateExtensions.millisecondsToDays
 import de.rki.coronawarnapp.util.TimeAndDateExtensions.millisecondsToHours
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.withContext
@@ -284,7 +283,7 @@ object RiskLevelTransaction : Transaction() {
 
             /** we only return outdated risk level if the threshold is reached AND the active tracing time is above the
             defined threshold because [UNKNOWN_RISK_INITIAL] overrules [UNKNOWN_RISK_OUTDATED_RESULTS] */
-            if (timeSinceLastDiagnosisKeyFetchFromServer.millisecondsToDays() >
+            if (timeSinceLastDiagnosisKeyFetchFromServer.millisecondsToHours() >
                 TimeVariables.getMaxStaleExposureRiskRange() && isActiveTracingTimeAboveThreshold()
             ) {
                 return@executeState UNKNOWN_RISK_OUTDATED_RESULTS.also {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/TimeAndDateExtensions.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/TimeAndDateExtensions.kt
index 7f07904ca1cfbd92577c8e4da08f34834bb486aa..5169ec2f57af3806c8da5a6e6911e0832a53114a 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/TimeAndDateExtensions.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/TimeAndDateExtensions.kt
@@ -2,7 +2,6 @@ package de.rki.coronawarnapp.util
 
 import org.joda.time.DateTime
 import org.joda.time.DateTimeZone
-import org.joda.time.Instant
 import org.joda.time.chrono.GJChronology
 import org.joda.time.format.DateTimeFormat
 import java.util.Date
@@ -14,12 +13,6 @@ object TimeAndDateExtensions {
     private const val MS_TO_HOURS = (1000 * 60 * 60)
     private const val MS_TO_SECONDS = 1000
 
-    fun getCurrentHourUTC(): Int = DateTime(Instant.now(), DateTimeZone.UTC).hourOfDay().get()
-
-    fun Date.getHourFromUTCDate(): Int = DateTime(this, DateTimeZone.UTC).hourOfDay().get()
-
-    fun String.toMillis(): Long? = DateTime.parse(this).millis
-
     fun Date.toServerFormat(): String =
         DateTimeFormat.forPattern("yyyy-MM-dd").withChronology(GJChronology.getInstance())
             .withZoneUTC()
@@ -31,10 +24,6 @@ object TimeAndDateExtensions {
         return this.div(MS_TO_SECONDS)
     }
 
-    fun Long.millisecondsToDays(): Long {
-        return this.div(MS_TO_DAYS)
-    }
-
     fun Long.millisecondsToHours(): Long {
         return this.div(MS_TO_HOURS)
     }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/RiskLevelTransactionTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/RiskLevelTransactionTest.kt
index 83ec19259cf2fb8f836ef85ba7de0a96c403305b..db67511c30dbcf80eafd6701fef7667b3dfe5065 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/RiskLevelTransactionTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/transaction/RiskLevelTransactionTest.kt
@@ -118,14 +118,15 @@ class RiskLevelTransactionTest {
 
         val testRiskLevel = UNKNOWN_RISK_OUTDATED_RESULTS
 
-        val twoDaysAboveMaxStale = TimeUnit.DAYS.toMillis(TimeVariables.getMaxStaleExposureRiskRange().plus(2).toLong())
+        val twoHoursAboveMaxStale =
+            TimeUnit.HOURS.toMillis(TimeVariables.getMaxStaleExposureRiskRange().plus(2).toLong())
 
         // tracing is activated
         coEvery { InternalExposureNotificationClient.asyncIsEnabled() } returns true
 
         // the last time we fetched keys from the server is above the threshold
         every { TimeVariables.getLastTimeDiagnosisKeysFromServerFetch() } returns System.currentTimeMillis()
-            .minus(twoDaysAboveMaxStale)
+            .minus(twoHoursAboveMaxStale)
 
         // active tracing time is 1h above the threshold
         every { TimeVariables.getTimeActiveTracingDuration() } returns TimeUnit.HOURS.toMillis(