From 5126bda5369f666a09c76e6476ed0160eb5e9c45 Mon Sep 17 00:00:00 2001
From: Kainhofer Reinhold <reinhold.kainhofer@generali.com>
Date: Wed, 26 Feb 2020 17:37:59 +0100
Subject: [PATCH] Dynamics step 1: Implement blockStart argument

-) All cashflows and present values will start at time 'start' rather than at 0. This can be used to implement dynmics, etc.
-) What is not yet implemented is to combine multiple tariff blocks into one single contract
---
 Auswertungen/2019-02-27_Bestimmung_Datum.xlsx | Bin 0 -> 15172 bytes
 R/HelperFunctions.R                           | 103 ++--
 R/InsuranceContract.R                         | 201 ++++---
 R/InsuranceParameters.R                       |   3 +-
 R/InsuranceTarif.R                            | 507 +++++++++---------
 R/exportInsuranceContract_xlsx.R              |  71 +--
 .../Endowment_Dynamic_From0_Baseline.xlsx     | Bin 0 -> 58713 bytes
 inst/Beispiele/Endowment_Dynamic_From5.xlsx   | Bin 0 -> 70452 bytes
 inst/Beispiele/Example_Endowment.R            | 152 ++++++
 9 files changed, 653 insertions(+), 384 deletions(-)
 create mode 100644 Auswertungen/2019-02-27_Bestimmung_Datum.xlsx
 create mode 100644 inst/Beispiele/Endowment_Dynamic_From0_Baseline.xlsx
 create mode 100644 inst/Beispiele/Endowment_Dynamic_From5.xlsx
 create mode 100644 inst/Beispiele/Example_Endowment.R

diff --git a/Auswertungen/2019-02-27_Bestimmung_Datum.xlsx b/Auswertungen/2019-02-27_Bestimmung_Datum.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..98f294c02b38517e8c41e5e81d06805aa4093286
GIT binary patch
literal 15172
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

literal 0
HcmV?d00001

diff --git a/R/HelperFunctions.R b/R/HelperFunctions.R
index 249c30a..b33d073 100644
--- a/R/HelperFunctions.R
+++ b/R/HelperFunctions.R
@@ -59,13 +59,31 @@ deathBenefit.annuityDecreasing = function(interest) {
 }
 
 mergeValues = function(starting, ending, t) {
-  rbind(starting[1:t,], ending[-1:-t,])
+  # if either starting or ending is missing, always use the other, irrespective of t:
+  if (missing(ending) || is.null(ending)) {
+    starting
+  } else if (missing(starting) || is.null(starting)) {
+    ending
+  } else if (t == 0) {
+    ending
+  } else {
+    rbind(starting[1:t,], ending[-1:-t,])
+  }
 }
 mergeValues3D = function(starting, ending, t) {
-  abind(starting[1:t,,], ending[-1:-t,,], along = 1)
+  # if either starting or ending is missing, always use the other, irrespective of t:
+  if (missing(ending) || is.null(ending)) {
+    starting
+  } else if (missing(starting) || is.null(starting)) {
+    ending
+  } else if (t == 0) {
+    ending
+  } else {
+    abind(starting[1:t,,], ending[-1:-t,,], along = 1)
+  }
 }
 # Caution: px is not neccessarily 1-qx, because we might also have dread diseases so that px=1-qx-ix! However, the ix is not used for the survival present value
-calculatePVSurvival = function(px=1-qx, qx=1-px, advance, arrears=c(0), ..., m=1, mCorrection = list(alpha=1, beta=0), v=1) {
+calculatePVSurvival = function(px = 1 - qx, qx = 1 - px, advance, arrears = c(0), ..., m = 1, mCorrection = list(alpha = 1, beta = 0), v = 1, start = 0) {
   # assuming advance and arrears have the same dimensions...
   init = advance[1]*0;
   l = max(length(qx), length(advance), length(arrears));
@@ -76,7 +94,7 @@ calculatePVSurvival = function(px=1-qx, qx=1-px, advance, arrears=c(0), ..., m=1
   # TODO: Make this work for matrices (i.e. currently advance and arrears are assumed to be one-dimensional vectors)
   # TODO: Replace loop by better way (using Reduce?)
   res = rep(0, l+1);
-  for (i in l:1) {
+  for (i in l:(start + 1)) {
     # coefficients for the payments (including corrections for payments during the year (using the alpha(m) and beta(m)):
     advcoeff = mCorrection$alpha - mCorrection$beta*(1-p[i]*v);
     arrcoeff = mCorrection$alpha - (mCorrection$beta + 1/m)*(1-p[i]*v);
@@ -87,64 +105,64 @@ calculatePVSurvival = function(px=1-qx, qx=1-px, advance, arrears=c(0), ..., m=1
 }
 
 
-calculatePVGuaranteed = function(advance, arrears=c(0), ..., m=1, mCorrection = list(alpha=1, beta=0), v=1) {
+calculatePVGuaranteed = function(advance, arrears = c(0), ..., m = 1, mCorrection = list(alpha = 1, beta = 0), v = 1, start = 0) {
   # assuming advance and arrears have the same dimensions...
   init = advance[1]*0;
   l = max(length(advance), length(arrears));
-  advance = pad0(advance, l, value=init);
-  arrears = pad0(arrears, l, value=init);
+  advance = pad0(advance, l, value = init);
+  arrears = pad0(arrears, l, value = init);
 
   # TODO: Make this work for matrices (i.e. currently advance and arrears are assumed to be one-dimensional vectors)
   # TODO: Replace loop by better way (using Reduce?)
-  res = rep(0, l+1);
-  for (i in l:1) {
+  res = rep(0, l + 1);
+  for (i in l:(start + 1)) {
     # coefficients for the payments (including corrections for payments during the year (using the alpha(m) and beta(m)):
-    advcoeff = mCorrection$alpha - mCorrection$beta*(1-v);
-    arrcoeff = mCorrection$alpha - (mCorrection$beta + 1/m)*(1-v);
+    advcoeff = mCorrection$alpha - mCorrection$beta * (1 - v);
+    arrcoeff = mCorrection$alpha - (mCorrection$beta + 1 / m) * (1 - v);
     # The actual recursion:
-    res[i] = advance[i]*advcoeff + arrears[i]*arrcoeff + v*res[i+1];
+    res[i] = advance[i]*advcoeff + arrears[i]*arrcoeff + v*res[i + 1];
   }
   res[1:l]
 }
 
 
 # TODO: So far, we are assuming, the costs array has sufficient time steps and does not need to be padded!
-calculatePVCosts = function(px=1-qx, qx=1-px, costs, ..., v=1) {
+calculatePVCosts = function(px = 1 - qx, qx = 1 - px, costs, ..., v = 1, start = 0) {
   l = max(length(qx), dim(costs)[1]);
-  p = pad0(px, l, value=0);
+  p = pad0(px, l, value = 0);
   costs = costs[1:l,,];
 
   # Take the array structure from the cash flow array and initialize it with 0
   res = costs*0;
   prev = res[1,,]*0;
   # Backward recursion starting from the last time:
-  for (i in l:1) {
+  for (i in l:(start + 1)) {
     # cat("values at iteration ", i, ": ", v, q[i], costs[i,,], prev);
     res[i,,] = costs[i,,] + v*p[i]*prev;
-    prev=res[i,,];
+    prev = res[i,,];
   }
   res
 }
 
-calculatePVDeath = function(px, qx, benefits, ..., v=1) {
+calculatePVDeath = function(px, qx, benefits, ..., v = 1, start = 0) {
   init = benefits[1]*0; # Preserve the possible array structure of the benefits -> vectorized calculations possible!
   l = max(length(qx), length(benefits));
-  q = pad0(qx, l, value=1);
-  p = pad0(px, l, value=0);
-  benefits = pad0(benefits, l, value=init);
+  q = pad0(qx, l, value = 1);
+  p = pad0(px, l, value = 0);
+  benefits = pad0(benefits, l, value = init);
 
   # TODO: Make this work for matrices (i.e. currently benefits are assumed to be one-dimensional vectors)
   # TODO: Replace loop by better way (using Reduce?)
-  res = rep(init, l+1);
-  for (i in l:1) {
+  res = rep(init, l + 1);
+  for (i in l:(start + 1)) {
     # Caution: p_x is not neccessarily 1-q_x, because we might also have dread diseases, so that px=1-qx-ix!
-    res[i] = v*q[i]*benefits[i] + v*p[i]*res[i+1];
+    res[i] = v * q[i] * benefits[i] + v * p[i] * res[i + 1];
   }
   res[1:l]
 }
 
-calculatePVDisease = function(px = 1 - qx - ix, qx = 1 - ix - px, ix = 1 - px - qx, benefits, ..., v = 1) {
-  init = benefits[1]*0;
+calculatePVDisease = function(px = 1 - qx - ix, qx = 1 - ix - px, ix = 1 - px - qx, benefits, ..., v = 1, start = 0) {
+  init = benefits[1] * 0;
   l = min(length(ix), length(qx), length(benefits));
   qx = pad0(qx, l, value = 1);
   ix = pad0(ix, l, value = 0);
@@ -154,7 +172,7 @@ calculatePVDisease = function(px = 1 - qx - ix, qx = 1 - ix - px, ix = 1 - px -
   # TODO: Make this work for matrices (i.e. currently benefits are assumed to be one-dimensional vectors)
   # TODO: Replace loop by better way (using Reduce?)
   res = rep(init, l + 1);
-  for (i in l:1) {
+  for (i in l:(start + 1)) {
     res[i] = v * ix[i] * benefits[i] + v * px[i] * res[i + 1];
   }
   res[1:l]
@@ -195,16 +213,33 @@ correctionPaymentFrequency = function(i, m = 1, order = 0) {
 }
 
 #' @export
-pad0 = function(v, l, value=0) {
-    if (l >= length(v)) {
-        c(v, rep(value, l - length(v)))
-    } else {
-        v[0:l]
-    }
+pad0 = function(v, l, value = 0, start = 0) {
+  # 3 cases: desired length<=start => only 0
+  #          desired length within start+v => cut v
+  #          desired length longer than start+v => pad with 0/value
+  if (l <= start) {
+    rep(0, l)
+  } else if (start <= l && l <= start + length(v)) {
+    c(rep(0, start), v[0:(l - start)])
+  } else {
+    # Need padding
+    c(rep(0, start), v, rep(value, l - length(v) - start))
+  }
+}
+
+#' Set all entries of the given vector to 0 up until index 'start'
+#' @export
+head0 = function(v, start = 0) {
+  if (start == 0) {
+    v
+  } else {
+    c(rep(0, start), tail(v, -start))
+  }
 }
+
 #' @export
-padLast = function(v, l) {
-    pad0(v, l, tail(v, n = 1))
+padLast = function(v, l, start = 0) {
+    pad0(v, l, value = tail(v, n = 1), start = start)
 }
 
 #' Taken from the R Cookbook:
diff --git a/R/InsuranceContract.R b/R/InsuranceContract.R
index 6137a45..09afc3a 100644
--- a/R/InsuranceContract.R
+++ b/R/InsuranceContract.R
@@ -28,6 +28,9 @@ InsuranceContract = R6Class(
         #### Caching values for this contract, initialized/calculated when the object is created
         Values = InsuranceContract.Values,
 
+        #### List of all tariff blocks (independently calculated, but combined to one contract, e.g. dynamic/sum increases)
+        blocks = list(),
+
         #### Keeping the history of all contract changes during its lifetime
         history = list(),
 
@@ -60,8 +63,7 @@ InsuranceContract = R6Class(
             }
 
             self$consolidateContractData(tarif = tarif, ...);
-# browser();
-            self$calculateContract(calculate = calculate);
+            self$calculateContract(calculate = calculate, start = self$Parameters$ContractData$blockStart);
         },
 
         addHistorySnapshot = function(time = 0, comment = "Initial contract values", type = "Contract", params = self$Parameters, values = self$Values) {
@@ -81,36 +83,36 @@ InsuranceContract = R6Class(
 
         consolidateContractData = function(...) {
             args = list(...);
-            
+
             # Calculate YOB, age, contract closing etc. from each other
             # 1. Contract date (if not given) is NOW, unless age + YOB is given => Then year is derived as YOB+age
             if (is.null(self$Parameters$ContractData$contractClosing)) {
               if (!is.null(self$Parameters$ContractData$age) && !is.null(self$Parameters$ContractData$YOB)) {
                 # Use current day, but determine year from YOB and age
-                self$Parameters$ContractData$contractClosing = Sys.Date() %>% 
+                self$Parameters$ContractData$contractClosing = Sys.Date() %>%
                   'year<-'(self$Parameters$ContractData$YOB + self$Parameters$ContractData$age);
               }
             }
-            
-            # 2. Current age: If YOB is given, calculate from contract closing and YOB, otherwise assume 40 
+
+            # 2. Current age: If YOB is given, calculate from contract closing and YOB, otherwise assume 40
             if (is.null(self$Parameters$ContractData$age)) {
               if (is.null(self$Parameters$ContractData$YOB)) {
                 self$Parameters$ContractData$age = 40; # No information to derive age => Assume 40
                 warning("InsuranceContract: Missing age, no information to derive age from YOB and contractClosing => Assuming default age 40. Tariff: ", self$tarif$name)
               } else {
-                self$Parameters$ContractData$age = year(self$Parameters$ContractData$contractClosing) - 
+                self$Parameters$ContractData$age = year(self$Parameters$ContractData$contractClosing) -
                   self$Parameters$ContractData$YOB;
               }
             }
             if (is.null(self$Parameters$ContractData$YOB)) {
               self$Parameters$ContractData$YOB = year(self$Parameters$ContractData$contractClosing) - self$Parameters$ContractData$age;
             }
-            
+
             # Evaluate policy period, i.e. if a function is used, calculate its numeric value
             self$Parameters$ContractData$policyPeriod = valueOrFunction(
               self$Parameters$ContractData$policyPeriod,
               params = self$Parameters, values = self$Values);
-            
+
             #### #
             # PREMIUM PAYMENT PERIOD (default: policyPeriod, can be given as function or numeric value)
             #### #
@@ -127,7 +129,7 @@ InsuranceContract = R6Class(
             self$Parameters$ContractData$deferralPeriod = valueOrFunction(
               self$Parameters$ContractData$deferralPeriod,
               params = self$Parameters, values = self$Values);
-            
+
             #### #
             # COSTS PARAMETERS: can be a function => evaluate it to get the real costs
             #### #
@@ -178,50 +180,105 @@ InsuranceContract = R6Class(
         },
 
 
-        calculateContract = function(calculate = "all") {
-            self$Values$transitionProbabilities = self$determineTransitionProbabilities();
+
+
+
+        calculateContract = function(calculate = "all", start = 0, preservePastPV = TRUE, recalculatePremiums = TRUE, recalculatePremiumSum = TRUE) {
+            self$Values$int = self$determineInternalValues(start = start)
+            self$Values$transitionProbabilities = mergeValues(
+              starting = self$Values$transitionProbabilities,
+              ending = self$determineTransitionProbabilities(start = start),
+              t = start)
             if (calculate == "probabilities") return();
 
-            self$Values$cashFlowsBasic = self$determineCashFlowsBasic();
-            self$Values$cashFlows = self$determineCashFlows();
-            self$Values$unitPremiumSum = self$determinePremiumSum();
-            self$Values$cashFlowsCosts = self$determineCashFlowsCosts();
+            self$Values$cashFlowsBasic = mergeValues(
+                starting = self$Values$cashFlowsBasic,
+                ending = self$determineCashFlowsBasic(start = start),
+                t = start);
+            self$Values$cashFlows = mergeValues(
+                starting = self$Values$cashFlows,
+                ending = self$determineCashFlows(start = start),
+                t = start);
+
+            if (recalculatePremiumSum) {
+                # Premium waiver: Premium sum is not affected by premium waivers, i.e. everything depending on the premium sum uses the original premium sum!
+                self$Values$unitPremiumSum = self$determinePremiumSum(start = start);
+            }
+            self$Values$cashFlowsCosts = mergeValues3D(
+                starting = self$Values$cashFlowsCosts,
+                ending = self$determineCashFlowsCosts(start = start),
+                t = start);
             if (calculate == "cashflows") return();
-            
-            self$Values$presentValues = self$calculatePresentValues();
-            self$Values$presentValuesCosts = self$calculatePresentValuesCosts();
+
+
+            # Shall we re-calculate PV or preserve the old ones???
+            pv = self$calculatePresentValues(start = start)
+            pvCost = self$calculatePresentValuesCosts(start = start)
+            oldPV = self$Values$presentValues
+            if (preservePastPV) {
+                # Preserve past present values, i.e. the PV represents the PV
+                # with the knowledge of the past, even though the future CF
+                # might have changed meanwhile, so the PV at time 0 is no
+                # longer the PV of the current cash flows... The PV at time t
+                # always represents the information available at time t, but no
+                # future chagnes.
+                # This is useful to preserver the PV information neede to
+                # calculate the premiums from the past.
+                if (!is.null(self$Values$presentValues)) {
+                    self$Values$presentValues = self$Values$presentValues[1:NCOL(pv)]
+                }
+                self$Values$presentValues = mergeValues(starting = self$Values$presentValues, ending = pv, t = start)
+                self$Values$presentValuesCosts = mergeValues3D(starting = self$Values$presentValuesCosts, ending = pvCost, t = start)
+            } else {
+                # Recalculate present value for times before start, i.e. make all PV consistent with the current cash flows
+                self$Values$presentValues = pv
+                self$Values$presentValuesCosts = pvCost
+            }
             if (calculate == "presentvalues") return();
-            
+
             # the premiumCalculation function returns the premiums AND the cofficients,
             # so we have to extract the coefficients and store them in a separate variable
-            res = self$calculatePremiums();
+            res = self$calculatePremiums(start = start);
             self$Values$premiumCoefficients = res[["coefficients"]];
+            # TODO: Store premiums in a data.frame???
             self$Values$premiums = res[["premiums"]]
+            self$Values$int$premiumCalculationTime = start
             if (calculate == "premiums") return();
-            
+
+# TODO-start:
+# the premiumCalculation function returns the premiums AND the cofficients,
+# so we have to extract the coefficients and store them in a separate variable
+# res = self$calculatePremiums(start = start);
+# self$Values$premiumCoefficients = mergeValues(starting = self$Values$premiumCoefficients, ending=res[["coefficients"]], t = t);
+# self$Values$premiums = mergeValues(starting= = res[["premiums"]]
+
             # Update the cash flows and present values with the values of the premium
-            pvAllBenefits = self$calculatePresentValuesBenefits()
-            self$Values$presentValues = cbind(self$Values$presentValues, pvAllBenefits)
+            pvAllBenefits = self$calculatePresentValuesBenefits(start = start)
+            if (preservePastPV) {
+                self$Values$presentValues = mergeValues(starting = oldPV, ending = cbind(pv, pvAllBenefits), t = start)
+            } else {
+                self$Values$presentValues = cbind(pv, pvAllBenefits)
+            }
 
-            self$Values$absCashFlows = self$calculateAbsCashFlows();
-            self$Values$absPresentValues = self$calculateAbsPresentValues();
+            self$Values$absCashFlows       = mergeValues(starting = self$Values$absCashFlows,       ending = self$calculateAbsCashFlows(start = start), t = start);
+            self$Values$absPresentValues   = mergeValues(starting = self$Values$absPresentValues,   ending = self$calculateAbsPresentValues(start = start), t = start);
             if (calculate == "absvalues") return();
-            
-            self$Values$reserves = self$calculateReserves();
-            self$Values$reservesBalanceSheet = self$calculateReservesBalanceSheet();
+
+            self$Values$reserves           = mergeValues(starting = self$Values$reserves,           ending = self$calculateReserves(start = start), t = start);
+            self$Values$reservesBalanceSheet = mergeValues(starting = self$Values$reservesBalanceSheet,ending = self$calculateReservesBalanceSheet(start = start), t = start);
             if (calculate == "reserves") return();
-            self$Values$basicData = self$getBasicDataTimeseries()
-            self$Values$premiumComposition = self$premiumAnalysis();
-            self$Values$premiumCompositionSums = self$premiumCompositionSums();
-            self$Values$premiumCompositionPV = self$premiumCompositionPV();
+            self$Values$basicData          = mergeValues(starting = self$Values$basicData,          ending = self$getBasicDataTimeseries(start = start), t = start);
+            self$Values$premiumComposition = mergeValues(starting = self$Values$premiumComposition, ending = self$premiumAnalysis(start = start), t = start);
+            self$Values$premiumCompositionSums = mergeValues(starting = self$Values$premiumCompositionSums, ending = self$premiumCompositionSums(start = start), t = start);
+            self$Values$premiumCompositionPV = mergeValues(starting = self$Values$premiumCompositionPV, ending = self$premiumCompositionPV(start = start), t = start);
             if (calculate == "premiumcomposition") return();
-            
-            self$profitParticipation();
+
+            self$profitParticipation(start = start); # TODO-start
             if (calculate == "profitparticipation") return();
-            
+
             self$addHistorySnapshot(
-                time    = 0,
-                comment = "Initial contract values",
+                time    = start,
+                comment = ifelse(start == 0, "Initial contract values", paste("Contract recalculation at time ", start)),
                 type    = "Contract",
                 params  = self$Parameters,
                 values  = self$Values
@@ -229,53 +286,57 @@ InsuranceContract = R6Class(
             if (calculate == "history") return();
         },
 
-        determineTransitionProbabilities = function() {
-            self$tarif$getTransitionProbabilities(params = self$Parameters);
+        determineInternalValues = function(start = 0) {
+          self$tarif$getInternalValues(params = self$Parameters, start = start);
+        },
+
+        determineTransitionProbabilities = function(start = 0) {
+            self$tarif$getTransitionProbabilities(params = self$Parameters, values = self$Values, start = start);
         },
-        determineCashFlowsBasic = function() {
-            self$tarif$getBasicCashFlows(params = self$Parameters);
+        determineCashFlowsBasic = function(start = 0) {
+            self$tarif$getBasicCashFlows(params = self$Parameters, values = self$Values, start = start);
         },
-        determineCashFlows = function() {
-            self$tarif$getCashFlows(params = self$Parameters, values = self$Values);
+        determineCashFlows = function(start = 0) {
+            self$tarif$getCashFlows(params = self$Parameters, values = self$Values, start = start);
         },
-        determinePremiumSum = function() {
+        determinePremiumSum = function(start = 0) {
             sum(self$Values$cashFlows$premiums_advance + self$Values$cashFlows$premiums_arrears);
         },
-        determineCashFlowsCosts = function() {
-            self$tarif$getCashFlowsCosts(params = self$Parameters, values = self$Values);
+        determineCashFlowsCosts = function(start = 0) {
+            self$tarif$getCashFlowsCosts(params = self$Parameters, values = self$Values, start = start);
         },
-        calculatePresentValues = function() {
-            self$tarif$presentValueCashFlows(params = self$Parameters, values = self$Values);
+        calculatePresentValues = function(start = 0) {
+            self$tarif$presentValueCashFlows(params = self$Parameters, values = self$Values, start = start);
         },
-        calculatePresentValuesCosts = function() {
-            self$tarif$presentValueCashFlowsCosts(params = self$Parameters, values = self$Values);
+        calculatePresentValuesCosts = function(start = 0) {
+            self$tarif$presentValueCashFlowsCosts(params = self$Parameters, values = self$Values, start = start);
         },
-        calculatePremiums = function() {
-            self$tarif$premiumCalculation(params = self$Parameters, values = self$Values);
+        calculatePremiums = function(start = 0) {
+            self$tarif$premiumCalculation(params = self$Parameters, values = self$Values, start = start);
         },
-        calculatePresentValuesBenefits = function() {
-            self$tarif$presentValueBenefits(params = self$Parameters, values = self$Values);
+        calculatePresentValuesBenefits = function(start = 0) {
+            self$tarif$presentValueBenefits(params = self$Parameters, values = self$Values, start = start);
         },
-        calculateAbsCashFlows = function() {
-            self$tarif$getAbsCashFlows(params = self$Parameters, values = self$Values);
+        calculateAbsCashFlows = function(start = 0) {
+            self$tarif$getAbsCashFlows(params = self$Parameters, values = self$Values, start = start);
         },
-        calculateAbsPresentValues = function() {
-            self$tarif$getAbsPresentValues(params = self$Parameters, values = self$Values);
+        calculateAbsPresentValues = function(start = 0) {
+            self$tarif$getAbsPresentValues(params = self$Parameters, values = self$Values, start = start);
         },
-        calculateReserves = function() {
-            self$tarif$reserveCalculation(params = self$Parameters, values = self$Values);
+        calculateReserves = function(start = 0) {
+            self$tarif$reserveCalculation(params = self$Parameters, values = self$Values, start = start);
         },
-        calculateReservesBalanceSheet = function() {
-            self$tarif$reserveCalculationBalanceSheet(params = self$Parameters, values = self$Values);
+        calculateReservesBalanceSheet = function(start = 0) {
+            self$tarif$reserveCalculationBalanceSheet(params = self$Parameters, values = self$Values, start = start);
         },
-        premiumAnalysis = function() {
-            self$tarif$premiumDecomposition(params = self$Parameters, values = self$Values);
+        premiumAnalysis = function(start = 0) {
+            self$tarif$premiumDecomposition(params = self$Parameters, values = self$Values, start = start);
         },
-        premiumCompositionSums = function() {
-            self$tarif$calculateFutureSums(self$Values$premiumComposition);
+        premiumCompositionSums = function(start = 0) {
+            self$tarif$calculateFutureSums(self$Values$premiumComposition, start = start);
         },
-        premiumCompositionPV = function() {
-            self$tarif$calculatePresentValues(self$Values$premiumComposition, params = self$Parameters);
+        premiumCompositionPV = function(start = 0) {
+            self$tarif$calculatePresentValues(self$Values$premiumComposition, params = self$Parameters, start = start);
         },
 
         profitParticipation = function(...) {
@@ -294,7 +355,7 @@ InsuranceContract = R6Class(
         },
 
 
-        getBasicDataTimeseries = function() {
+        getBasicDataTimeseries = function(start = 0) {
             self$tarif$getBasicDataTimeseries(params = self$Parameters, values = self$Values);
         },
 
diff --git a/R/InsuranceParameters.R b/R/InsuranceParameters.R
index 3c75578..5895c0d 100644
--- a/R/InsuranceParameters.R
+++ b/R/InsuranceParameters.R
@@ -95,6 +95,7 @@ InsuranceContract.ParameterDefaults = list(
         deferralPeriod = 0,                     # Aufschubzeit bei Leibrenten
         guaranteedPeriod = 0,                   # Garantiezeit bei Leibrenten
         contractClosing = NULL,                 # Contract closing date (day/month is relevant for balance sheet reserves)
+        blockStart = 0,                         # When the current tariff block starts (main block starts a 0, dynamic increases start leter!)
 
         premiumPayments = "in advance",         # Prämienzahlungsweise (vor-/nachschüssig)
         benefitPayments = "in advance",         # Leistungszahlungsweise (vor-/nachschüssig)
@@ -166,7 +167,7 @@ InsuranceContract.ParameterDefaults = list(
         profitClass = NULL,
         profitRates = NULL                     # General, company-wide profit rates, key columns are year and profitClass
     ),
-    
+
     Hooks = list(
       # Functions with signature function(x, params, values, ...), default NULL is equivalent to function(x, ...) {x}
       adjustCashFlows = NULL,
diff --git a/R/InsuranceTarif.R b/R/InsuranceTarif.R
index cc1caf8..2f0e8b2 100644
--- a/R/InsuranceTarif.R
+++ b/R/InsuranceTarif.R
@@ -65,6 +65,20 @@ InsuranceTarif = R6Class(
       self$Parameters
     },
 
+    # Get some internal parameters cached (length of data.frames, policy periods cut at max.age, etc.)
+    getInternalValues = function(params, start = 0) {
+      p = c()
+      age = params$ContractData$technicalAge
+      maxAge = getOmega(params$ActuarialBases$mortalityTable)
+      policyPeriod = params$ContractData$policyPeriod
+      list(
+        l = min(maxAge - age, policyPeriod) + 1,
+        policyTerm = min(maxAge - age, policyPeriod),
+        premiumTerm = min(policyPeriod, params$ContractData$premiumPeriod)
+      )
+    },
+
+
     getAges = function(params) {
       ages = ages(params$ActuarialBases$mortalityTable, YOB = params$ContractData$YOB);
       age = params$ContractData$technicalAge;
@@ -74,9 +88,10 @@ InsuranceTarif = R6Class(
       ages
     },
 
-    getTransitionProbabilities = function(params) {
+    getTransitionProbabilities = function(params, values, start = 0) {
       age = params$ContractData$technicalAge;
       ages = self$getAges(params);
+      # TODO: Use the start parameter to include possible selection tables (i.e. contract/block starts at time 'start' => qx depend on when contract started, e.g. immediate annuities in DAV 2004-R)
       q = deathProbabilities(params$ActuarialBases$mortalityTable, YOB = params$ContractData$YOB, ageDifferences = params$ContractData$ageDifferences);
       if (age > 0) {
         q    = q[-age:-1];
@@ -90,6 +105,7 @@ InsuranceTarif = R6Class(
         i = rep(0, length(q));
       }
       i = pad0(i, length(q));
+      # TODO: Implement case where invalidity/disease does NOT end the contract!
       df = data.frame(age = ages, q = q, i = i, p = 1 - q - i, row.names = ages - age)
       df
     },
@@ -103,144 +119,151 @@ InsuranceTarif = R6Class(
     #   - for single premiums it will be c(1, 0, 0, ...),
     #   - for increasing premiums it will be (1+increase)^(0:(premiumPeriod-1))
     # and 0 after the premium period
-    getPremiumCF = function(len, params, values) {
-        premPeriod = min(params$ContractData$premiumPeriod, params$ContractData$policyPeriod, len);
-        if (is.null(params$ContractData$premiumIncrease)) {
-            pad0(rep(1, premPeriod - 1), len);
+    getPremiumCF = function(len, params, values, start = 0) {
+      premPeriod = min(params$ContractData$premiumPeriod, params$ContractData$policyPeriod, len);
+      if (is.null(params$ContractData$premiumIncrease)) {
+        pad0(rep(1, premPeriod - 1), len, start = start);
+      } else {
+        inc = valueOrFunction(params$ContractData$premiumIncrease, premiumPeriod = premPeriod, params = params, values = values)
+        if (is.vector(inc) && length(inc) > 1) {
+          # If premiumIncrease is (or returns) a vector, treat it as
+          # relative premium amounts, ie. c(1, 1.1, 1.2) means +10% of
+          # the initial premium for the second and third year
+          pad0(inc, len, start = start)
         } else {
-            inc = valueOrFunction(params$ContractData$premiumIncrease, premiumPeriod = premPeriod, params = params, values = values)
-            if (is.vector(inc) && length(inc) > 1) {
-                # If premiumIncrease is (or returns) a vector, treat it as
-                # relative premium amounts, ie. c(1, 1.1, 1.2) means +10% of
-                # the initial premium for the second and third year
-                pad0(inc, len)
-            } else {
-                pad0(inc ^ (0:(premPeriod - 1)), len)
-            }
+          pad0(inc ^ (0:(premPeriod - start - 1)), len, start = start)
         }
+      }
     },
 
-    # Get the unit annuity cash flow (guaranteed and contingent) for the whole annuity payment period.
+    # Get the unit annuity cash flow (guaranteed and contingent) for the whole annuity payment period (after potential deferral period)
     #   - For constant annuity it will be rep(1, annuityPeriod),
     #   - for increasing annuities it will be (1+increase)^(0:(premiumPeriod-1))
     # and 0 after the premium period
-    getAnnuityCF = function(len, params, values) {
-        annuityPeriod = min(params$ContractData$policyPeriod - params$ContractData$deferralPeriod, len);
-        if (is.null(params$ContractData$annuityIncrease)) {
-            pad0(rep(1, annuityPeriod), len);
+    getAnnuityCF = function(len, params, values, start = 0) {
+      annuityPeriod = min(params$ContractData$policyPeriod - params$ContractData$deferralPeriod, len);
+      if (is.null(params$ContractData$annuityIncrease)) {
+        pad0(rep(1, annuityPeriod), len, start = start);
+      } else {
+        inc = valueOrFunction(params$ContractData$annuityIncrease, annuityPeriod = annuityPeriod, params = params, values = values)
+        if (is.vector(inc) && length(inc) > 1) {
+          # If annuityIncrease is (or returns) a vector, treat it as
+          # relative annuity amounts, ie. c(1, 1.1, 1.2) means +10% of
+          # the initial annuity for the second and third year
+          pad0(inc, len, start = start)
         } else {
-            inc = valueOrFunction(params$ContractData$annuityIncrease, annuityPeriod = annuityPeriod, params = params, values = values)
-            if (is.vector(inc) && length(inc) > 1) {
-                # If annuityIncrease is (or returns) a vector, treat it as
-                # relative annuity amounts, ie. c(1, 1.1, 1.2) means +10% of
-                # the initial annuity for the second and third year
-                pad0(inc, len)
-            } else {
-                # a numeric value means constant yearly increases (multiplicative)
-                pad0(inc ^ (0:annuityPeriod), len)
-            }
+          # a numeric value means constant yearly increases (multiplicative)
+          pad0(inc ^ (0:annuityPeriod), len, start = start)
         }
+      }
     },
 
-    # Get the unit death cash flow for the whole protection period.
+    # Get the unit death cash flow for the whole protection period (after potential deferral period!)
     #   - For constant death benefit it will be rep(1, policyPeriod),
     #   - for linearly decreasing sum insured it will be (policyPeriod:0)/policyPeriod
-    getDeathCF = function(len, params, values) {
-        period = params$ContractData$policyPeriod - params$ContractData$deferralPeriod;
-        if (is.null(params$ContractData$deathBenefit)) {
-            pad0(rep(1, period), len)
+    getDeathCF = function(len, params, values, start = 0) {
+      period = params$ContractData$policyPeriod - params$ContractData$deferralPeriod;
+      if (is.null(params$ContractData$deathBenefit)) {
+        pad0(rep(1, period), len, start = start)
+      } else {
+        benefit = valueOrFunction(params$ContractData$deathBenefit, len = len, params = params, values = values)
+        if (is.vector(benefit) && length(benefit) > 1) {
+          # If deathBenefit is (or returns) a vector, treat it as
+          # relative annuity amounts, ie. c(1, 1.1, 1.2) means +10% of
+          # the initial annuity for the second and third year
+          pad0(benefit, len, start = start)
         } else {
-            benefit = valueOrFunction(params$ContractData$deathBenefit, len = len, params = params, values = values)
-            if (is.vector(benefit) && length(benefit) > 1) {
-                # If deathBenefit is (or returns) a vector, treat it as
-                # relative annuity amounts, ie. c(1, 1.1, 1.2) means +10% of
-                # the initial annuity for the second and third year
-                pad0(benefit, len)
-            } else {
-                # constant death benefit
-                pad0(rep(benefit, period), len)
-            }
+          # constant death benefit
+          pad0(rep(benefit, period), len, start = start)
         }
+      }
     },
 
-    getBasicCashFlows = function(params) {
-        age = params$ContractData$technicalAge;
-        maxAge = getOmega(params$ActuarialBases$mortalityTable)
-        policyPeriod = params$ContractData$policyPeriod;
-        deferralPeriod = params$ContractData$deferralPeriod;
-        guaranteedPeriod = params$ContractData$guaranteedPeriod;
-        maxlen = min(maxAge - age, policyPeriod);
-
-        cf = data.frame(
-            guaranteed = rep(0, maxlen + 1),
-            survival = rep(0, maxlen + 1),
-            death = rep(0, maxlen + 1),
-            disease = rep(0, maxlen + 1),
-            sumInsured = rep(1, maxlen + 1)
-        );
-        if (self$tariffType == "annuity") {
-            annuityPeriod = maxlen - deferralPeriod;
-            annuityCF = self$getAnnuityCF(len = annuityPeriod, params = params, values = values)
-            # guaranteed payments exist only with annuities (first n years of the payment)
-            cf$guaranteed = c(
-                rep(0, deferralPeriod),
-                head(annuityCF, n = guaranteedPeriod),
-                rep(0, max(0, maxlen + 1 - deferralPeriod - guaranteedPeriod)));
-            cf$survival = c(
-                rep(0, deferralPeriod + guaranteedPeriod),
-                if (guaranteedPeriod > 0) tail(annuityCF, n = -guaranteedPeriod) else annuityCF,
-                # rep(1, max(0, maxlen - deferralPeriod - guaranteedPeriod)),
-                0)
-            cf$sumInsured = c(
-                rep(1, deferralPeriod), # increases/decreases of annuities happen only after deferral!
-                annuityCF,
-                0)
-
-        } else if (self$tariffType == "terme-fix") {
-            cf$guaranteed = c(rep(0, policyPeriod), 1);
-
-        } else if (self$tariffType == "dread-disease") {
-            cf$disease = c(
-                rep(0, deferralPeriod),
-                rep(1, maxlen - deferralPeriod),
-                0);
+    getBasicCashFlows = function(params, values, start = 0) {
+      deferralPeriod = params$ContractData$deferralPeriod;
+      guaranteedPeriod = params$ContractData$guaranteedPeriod;
+
+      zeroes = pad0(0, values$int$l)
+
+      cf = data.frame(
+        guaranteed = zeroes,
+        survival = zeroes,
+        death = zeroes,
+        disease = zeroes,
+        sumInsured = c(rep(0, start), rep(1, values$int$l - start))
+      );
+      if (self$tariffType == "annuity") {
+        annuityPeriod = values$int$policyTerm - deferralPeriod;
+        # getAnnuityCF correctly handles start inside and after deferral period!
+        annuityCF = self$getAnnuityCF(len = annuityPeriod, params = params, values = values, start = max(0, start - deferralPeriod))
+        # guaranteed payments exist only with annuities (first n years of the payment)
+        cf$guaranteed = pad0(
+          c(
+            rep(0, deferralPeriod),
+            head(annuityCF, n = guaranteedPeriod)
+          ), values$int$l);
+        cf$survival = pad0(c(
+          rep(0, deferralPeriod + guaranteedPeriod),
+          if (guaranteedPeriod > 0) tail(annuityCF, n = -guaranteedPeriod) else annuityCF,
+          0), values$int$l)
+
+        if (start <= deferralPeriod) {
+          # start current contract block within deferral period
+          # increases/decreases of annuities happen only after deferral!
+          cf$sumInsured = c(rep(0, start), rep(1, deferralPeriod - start), annuityCF, 0)
         } else {
-            # For endowments, use the death factor here in the basic death CF
-            # to fix the relation of death to survival benefit
-            deathCF = self$getDeathCF(maxlen - deferralPeriod, params = params, values = values)
-
-            if (self$tariffType == "endowment" || self$tariffType == "pureendowment" || self$tariffType == "endowment + dread-disease") {
-                cf$survival = c(rep(0, policyPeriod), 1);
-            }
-            if (self$tariffType == "endowment" || self$tariffType == "wholelife" || self$tariffType == "endowment + dread-disease") {
-                cf$death = c(
-                    rep(0, deferralPeriod),
-                    deathCF,
-                    0);
-                cf$sumInsured = c(
-                    rep(0, deferralPeriod),
-                    deathCF,
-                    1);
-            }
-            if (self$tariffType == "endowment + dread-disease") {
-              cf$disease = c(
-                rep(0, deferralPeriod),
-                rep(1, maxlen - deferralPeriod),
-                0);
-            }
+          # start current contract block after deferral period
+          cf$sumInsured = c(rep(0, deferralPeriod), annuityCF, 0)
+        }
+
+
+      } else if (self$tariffType == "terme-fix") {
+        # Begin of bock does not have any influence
+        cf$guaranteed = c(rep(0, values$int$policyTerm), 1);
+
+      } else if (self$tariffType == "dread-disease") {
+        # potential Payments start after deferral period and after start of this block
+        cf$disease = c(
+          rep(0, max(deferralPeriod, start)),
+          rep(1, values$int$l - 1 - max(deferralPeriod, start)),
+          0);
+      } else {
+        # For endowments, use the death factor here in the basic death CF
+        # to fix the relation of death to survival benefit
+        deathCF = self$getDeathCF(values$int$l - 1 - deferralPeriod, params = params, values = values, start = max(0, start - deferralPeriod))
+
+        if (self$tariffType == "endowment" || self$tariffType == "pureendowment" || self$tariffType == "endowment + dread-disease") {
+          cf$survival = c(rep(0, values$int$policyTerm), 1); # start of block does not have any influence!
+        }
+        if (self$tariffType == "endowment" || self$tariffType == "wholelife" || self$tariffType == "endowment + dread-disease") {
+          # start of block already properly handled in deathCF
+          cf$death = c(
+            rep(0, deferralPeriod),
+            deathCF,
+            0);
+          cf$sumInsured = c(
+            rep(0, deferralPeriod),
+            deathCF,
+            1);
+        }
+        if (self$tariffType == "endowment + dread-disease") {
+          cf$disease = c(
+            rep(0, max(deferralPeriod, start)),
+            rep(1, values$int$l - 1 - max(deferralPeriod, start)),
+            0);
         }
-        cf
+      }
+      cf
     },
 
-    getCashFlows = function(params, values) {
+    getCashFlows = function(params, values, start = 0) {
       age = params$ContractData$technicalAge;
-      maxAge = getOmega(params$ActuarialBases$mortalityTable)
 
       if (is.null(values$cashFlowsBasic)) {
-        values$cashFlowsBasic = self$getBasicCashFlows(params);
+        values$cashFlowsBasic = self$getBasicCashFlows(params, values, start = start);
       }
-      cflen = length(values$cashFlowsBasic$survival);
-      zeroes = pad0(0, cflen);
+      cflen = values$int$l
+      zeroes = pad0(0, cflen)
       ages = pad0(self$getAges(params), cflen);
       cf = data.frame(
         premiums_advance   = zeroes,
@@ -259,7 +282,7 @@ InsuranceTarif = R6Class(
 
       # Premiums:
       if (!params$ContractState$premiumWaiver) {
-        premiums = self$getPremiumCF(len = cflen, params = params, values = values)
+        premiums = self$getPremiumCF(len = cflen, params = params, values = values, start = start)
         if (params$ContractData$premiumPayments == "in advance") {
           cf$premiums_advance = premiums;
         } else {
@@ -293,29 +316,21 @@ InsuranceTarif = R6Class(
       applyHook(params$Hooks$adjustCashFlows, cf, params, values)
     },
 
-    getCashFlowsCosts = function(params, values) {
-      age = params$ContractData$technicalAge;
-      maxAge = getOmega(params$ActuarialBases$mortalityTable)
-      policyPeriod = params$ContractData$policyPeriod;
-      premiumPeriod = params$ContractData$premiumPeriod;
-
-      maxlen = min(maxAge - age, policyPeriod) + 1;
-      policyPeriod = min(maxAge - age, policyPeriod);
-      premiumPeriod = min(policyPeriod, premiumPeriod);
-
+    getCashFlowsCosts = function(params, values, start = 0) {
+      # Cost cash flows start at block start time (function argument "start" => one-off alpha costs start are charged at that time!)
       dm = dim(params$Costs);
       dmnames = dimnames(params$Costs);
-      cf = array(0, dim = list(maxlen, dm[1], dm[2]), dimnames = list(0:(maxlen - 1), dmnames[[1]], dmnames[[2]]));
-      cf[1,,] = cf[1,,] + params$Costs[,,"once"]
-      for (i in 1:premiumPeriod) {
+      cf = array(0, dim = list(values$int$l, dm[1], dm[2]), dimnames = list(0:(values$int$l - 1), dmnames[[1]], dmnames[[2]]));
+      cf[start + 1,,] = cf[start + 1,,] + params$Costs[,,"once"]
+      for (i in (start + 1):values$int$premiumTerm) {
         cf[i,,] = cf[i,,] + params$Costs[,,"PremiumPeriod"];
       }
-      if (premiumPeriod < policyPeriod) {
-        for (i in (premiumPeriod + 1):policyPeriod) {
+      if (values$int$premiumTerm < values$int$policyTerm) {
+        for (i in (max(start, values$int$premiumTerm) + 1):values$int$policyTerm) {
           cf[i,,] = cf[i,,] + params$Costs[,,"PremiumFree"];
         }
       }
-      for (i in 1:policyPeriod) {
+      for (i in (start + 1):values$int$policyTerm) {
         cf[i,,] = cf[i,,] + params$Costs[,,"PolicyPeriod"];
       }
 
@@ -331,79 +346,78 @@ InsuranceTarif = R6Class(
       applyHook(params$Hooks$adjustCashFlowsCosts, cf, params, values)
     },
 
-    presentValueCashFlows = function(cashFlows, params, values) {
+    presentValueCashFlows = function(cashFlows, params, values, start = 0) {
 
-      len = length(values$cashFlows$premiums_advance);
       qq = self$getTransitionProbabilities(params);
-      qx = pad0(qq$q, len);
-      ix = pad0(qq$i, len);
-      px = pad0(qq$p, len);
+      qx = pad0(qq$q, values$int$l);
+      ix = pad0(qq$i, values$int$l);
+      px = pad0(qq$p, values$int$l);
 
       i = params$ActuarialBases$i;
       v = 1/(1 + i);
       benefitFreqCorr = correctionPaymentFrequency(i = i,
-            m = params$ContractData$benefitFrequency,
-            order = params$ActuarialBases$benefitFrequencyOrder);
+                                                   m = params$ContractData$benefitFrequency,
+                                                   order = params$ActuarialBases$benefitFrequencyOrder);
       premiumFreqCorr = correctionPaymentFrequency(i = i,
-            m = params$ContractData$premiumFrequency,
-            order = params$ActuarialBases$premiumFrequencyOrder);
+                                                   m = params$ContractData$premiumFrequency,
+                                                   order = params$ActuarialBases$premiumFrequencyOrder);
 
+      # TODO: Calculate all present values only from start time of block onwards!
       pvRefund = calculatePVDeath(
-            px, qx,
-            values$cashFlows$death_GrossPremium,
-            v = v);
+        px, qx,
+        values$cashFlows$death_GrossPremium,
+        v = v, start = start);
       pvRefundPast = calculatePVDeath(
-            px, qx,
-            values$cashFlows$death_Refund_past,
-            v = v) * (values$cashFlows[,"death_GrossPremium"] - values$cashFlows[,"premiums_advance"]);
+        px, qx,
+        values$cashFlows$death_Refund_past,
+        v = v, start = start) * (values$cashFlows[,"death_GrossPremium"] - values$cashFlows[,"premiums_advance"]);
 
       pv = cbind(
         premiums = calculatePVSurvival(
-              px, qx,
-              values$cashFlows$premiums_advance, values$cashFlows$premiums_arrears,
-              m = params$ContractData$premiumFrequency, mCorrection = premiumFreqCorr,
-              v = v),
+          px, qx,
+          values$cashFlows$premiums_advance, values$cashFlows$premiums_arrears,
+          m = params$ContractData$premiumFrequency, mCorrection = premiumFreqCorr,
+          v = v, start = start),
         guaranteed = calculatePVGuaranteed(
-              values$cashFlows$guaranteed_advance, values$cashFlows$guaranteed_arrears,
-              m = params$ContractData$benefitFrequency, mCorrection = benefitFreqCorr,
-              v = v),
+          values$cashFlows$guaranteed_advance, values$cashFlows$guaranteed_arrears,
+          m = params$ContractData$benefitFrequency, mCorrection = benefitFreqCorr,
+          v = v, start = start),
         survival = calculatePVSurvival(
-              px, qx,
-              values$cashFlows$survival_advance, values$cashFlows$survival_arrears,
-              m = params$ContractData$benefitFrequency, mCorrection = benefitFreqCorr,
-              v = v),
+          px, qx,
+          values$cashFlows$survival_advance, values$cashFlows$survival_arrears,
+          m = params$ContractData$benefitFrequency, mCorrection = benefitFreqCorr,
+          v = v, start = start),
         death_SumInsured = calculatePVDeath(
-              px, qx,
-              values$cashFlows$death_SumInsured,
-              v = v),
+          px, qx,
+          values$cashFlows$death_SumInsured,
+          v = v, start = start),
         disease_SumInsured = calculatePVDisease(
-              px, qx, ix,
-              values$cashFlows$disease_SumInsured, v = v),
+          px, qx, ix,
+          values$cashFlows$disease_SumInsured, v = v, start = start),
         death_GrossPremium = pvRefund,
         death_Refund_past = pvRefundPast,
         death_Refund_future = pvRefund - pvRefundPast,
         death_PremiumFree = calculatePVDeath(
-              px, qx,
-              values$cashFlows$death_PremiumFree, v = v)
+          px, qx,
+          values$cashFlows$death_PremiumFree, v = v, start = start)
       );
 
-      rownames(pv) <- pad0(rownames(qq), len);
+      rownames(pv) <- pad0(rownames(qq), values$int$l);
       pv
     },
 
-    presentValueCashFlowsCosts = function(params, values) {
-      len = dim(values$cashFlowsCosts)[1];
+    presentValueCashFlowsCosts = function(params, values, start = 0) {
+      len = values$int$l;
       q = self$getTransitionProbabilities(params);
       qx = pad0(q$q, len);
       px = pad0(q$p, len);
-
       v = 1/(1 + params$ActuarialBases$i)
-      pvc = calculatePVCosts(px, qx, values$cashFlowsCosts, v = v);
+      pvc = calculatePVCosts(px, qx, values$cashFlowsCosts, v = v, start = start);
       pvc
     },
 
     # Cost values (CF, present values, etc.) are an Tx5x3 matrix => convert to Tx15 matrix (alpha | Zillmer | beta | gamma)
-    costValuesAsMatrix = function(costValues) {
+    costValuesAsMatrix = function(costValues, start = 0) {
       dm = dim(costValues);
       nm = dimnames(costValues);
       colnames = t(outer(nm[[2]], nm[[3]], paste, sep = "."));
@@ -414,7 +428,7 @@ InsuranceTarif = R6Class(
       res
     },
 
-    getAbsCashFlows = function(params, values) {
+    getAbsCashFlows = function(params, values, start = 0) {
 
         # TODO: Set up a nice list with coefficients for each type of cashflow,
         # rather than multiplying each item manually (this also mitigates the risk
@@ -450,7 +464,7 @@ InsuranceTarif = R6Class(
       cbind(values$cashFlows, values$cashFlowsCosts)
     },
 
-    getAbsPresentValues = function(params, values) {
+    getAbsPresentValues = function(params, values, start = 0) {
       pv = values$presentValues;
 
       #pv[,"age"] = pv[,"premiums"];
@@ -472,7 +486,7 @@ InsuranceTarif = R6Class(
     },
 
 
-    presentValueBenefits = function(params, values) {
+    presentValueBenefits = function(params, values, start = 0) {
       # TODO: Here we don't use the securityLoading parameter => Shall it be used or are these values to be understood without additional security loading?
       benefits    = values$presentValues[,"survival"] +
                     values$presentValues[,"guaranteed"] +
@@ -496,9 +510,10 @@ InsuranceTarif = R6Class(
     # When getPremiumCoefficients is called, the values$premiums array has NOT been filled! Instead,
     # some of the premium fields (all required for the current calculation) have
     # been set in the passed "premiums" argument.
-    getPremiumCoefficients = function(type="gross", coeffBenefits, coeffCosts, premiums, params, values) {
+    getPremiumCoefficients = function(type = "gross", coeffBenefits, coeffCosts, premiums, params, values, start = 0) {
       # Merge a possibly passed loadings override with the defaults of this class:
       securityLoading = valueOrFunction(params$Loadings$security, params = params, values = values);
+      t = as.character(start)
 
       coeff = list(
         "SumInsured" = list("benefits" = coeffBenefits*0, "costs" = coeffCosts*0),
@@ -512,7 +527,7 @@ InsuranceTarif = R6Class(
       coeff.benefits = (1 + securityLoading);
       if (type == "gross") {
           # TODO: How to include this into the Zillmer premium calculation?
-          coeff.benefits = coeff.benefits * (1 + sum(values$presentValuesCosts["0", c("alpha", "beta", "gamma"), "NetPremium"]) / values$presentValues[["0","premiums"]])
+          coeff.benefits = coeff.benefits * (1 + sum(values$presentValuesCosts[t, c("alpha", "beta", "gamma"), "NetPremium"]) / values$presentValues[[t,"premiums"]])
       }
       coeff[["SumInsured"]][["benefits"]][["guaranteed"]]       = coeff.benefits;
       coeff[["SumInsured"]][["benefits"]][["survival"]]         = coeff.benefits;
@@ -564,30 +579,36 @@ InsuranceTarif = R6Class(
       coeff
     },
 
-    premiumCalculation = function(params, values) {
+    premiumCalculation = function(params, values, start = 0) {
       loadings = params$Loadings;
       sumInsured = params$ContractData$sumInsured
       values$premiums = c("unit.net" = 0, "unit.Zillmer" = 0, "unit.gross" = 0, "net" = 0, "Zillmer" = 0, "gross" = 0, "written" = 0);
       coefficients = list("gross" = c(), "Zillmer" = c(), "net" = c());
 
+      # Get the present values of the premiums, claims and costs at time 'start' (where the premium is to be calculated)
+      t = as.character(start)
+      pv = values$presentValues[t,]
+      pvCost = values$presentValuesCosts[t,,]
+
+
       # net, gross and Zillmer premiums are calculated from the present values using the coefficients on each present value as described in the formulas document
-      coeff = self$getPremiumCoefficients("gross", values$presentValues["0",]*0, values$presentValuesCosts["0",,]*0, premiums = values$premiums, params = params, values = values)
-      enumerator  = sum(coeff[["SumInsured"]][["benefits"]] * values$presentValues["0",]) + sum(coeff[["SumInsured"]][["costs"]] * values$presentValuesCosts["0",,]);
-      denominator = sum(coeff[["Premium"   ]][["benefits"]] * values$presentValues["0",]) + sum(coeff[["Premium"   ]][["costs"]] * values$presentValuesCosts["0",,]);
+      coeff = self$getPremiumCoefficients("gross", pv * 0, pvCost * 0, premiums = values$premiums, params = params, values = values, start = start)
+      enumerator  = sum(coeff[["SumInsured"]][["benefits"]] * pv) + sum(coeff[["SumInsured"]][["costs"]] * pvCost);
+      denominator = sum(coeff[["Premium"   ]][["benefits"]] * pv) + sum(coeff[["Premium"   ]][["costs"]] * pvCost);
       values$premiums[["unit.gross"]] = enumerator/denominator * (1 + loadings$ongoingAlphaGrossPremium);
       values$premiums[["gross"]] = values$premiums[["unit.gross"]] * sumInsured;
       coefficients[["gross"]] = coeff;
 
-      coeff = self$getPremiumCoefficients("net", values$presentValues["0",]*0, values$presentValuesCosts["0",,]*0, premiums = values$premiums, params = params, values = values)
-      enumerator  = sum(coeff[["SumInsured"]][["benefits"]] * values$presentValues["0",]) + sum(coeff[["SumInsured"]][["costs"]] * values$presentValuesCosts["0",,]);
-      denominator = sum(coeff[["Premium"   ]][["benefits"]] * values$presentValues["0",]) + sum(coeff[["Premium"   ]][["costs"]] * values$presentValuesCosts["0",,]);
+      coeff = self$getPremiumCoefficients("net", pv*0, pvCost*0, premiums = values$premiums, params = params, values = values, start = start)
+      enumerator  = sum(coeff[["SumInsured"]][["benefits"]] * pv) + sum(coeff[["SumInsured"]][["costs"]] * pvCost);
+      denominator = sum(coeff[["Premium"   ]][["benefits"]] * pv) + sum(coeff[["Premium"   ]][["costs"]] * pvCost);
       values$premiums[["unit.net"]] = enumerator/denominator;
       values$premiums[["net"]] = values$premiums[["unit.net"]] * sumInsured;
       coefficients[["net"]] = coeff;
 
-      coeff = self$getPremiumCoefficients("Zillmer", values$presentValues["0",]*0, values$presentValuesCosts["0",,]*0, premiums = values$premiums, params = params, values = values);
-      enumerator  = sum(coeff[["SumInsured"]][["benefits"]] * values$presentValues["0",]) + sum(coeff[["SumInsured"]][["costs"]] * values$presentValuesCosts["0",,]);
-      denominator = sum(coeff[["Premium"   ]][["benefits"]] * values$presentValues["0",]) + sum(coeff[["Premium"   ]][["costs"]] * values$presentValuesCosts["0",,]);
+      coeff = self$getPremiumCoefficients("Zillmer", pv * 0, pvCost * 0, premiums = values$premiums, params = params, values = values, start = start);
+      enumerator  = sum(coeff[["SumInsured"]][["benefits"]] * pv) + sum(coeff[["SumInsured"]][["costs"]] * pvCost);
+      denominator = sum(coeff[["Premium"   ]][["benefits"]] * pv) + sum(coeff[["Premium"   ]][["costs"]] * pvCost);
       values$premiums[["unit.Zillmer"]] = enumerator/denominator;
       values$premiums[["Zillmer"]] = values$premiums[["unit.Zillmer"]] * sumInsured;
       coefficients[["Zillmer"]] = coeff;
@@ -614,12 +635,12 @@ InsuranceTarif = R6Class(
 
       partnerRebate = valueOrFunction(loadings$partnerRebate, params = params, values = values);
 
-      pv.unitcosts = values$presentValuesCosts["0","unitcosts","SumInsured"] * sumInsured +
-          values$presentValuesCosts["0","unitcosts","SumPremiums"] * values$unitPremiumSum * values$premiums[["gross"]] +
-          values$presentValuesCosts["0","unitcosts","GrossPremium"] * values$premiums[["gross"]] +
-          values$presentValuesCosts["0","unitcosts","NetPremium"] * values$premiums[["net"]] +
-          values$presentValuesCosts["0","unitcosts","Constant"];
-      premium.unitcosts = pv.unitcosts / values$presentValues[["0", "premiums"]] + valueOrFunction(loadings$unitcosts, params = params, values = values);
+      pv.unitcosts = pvCost["unitcosts","SumInsured"] * sumInsured +
+        pvCost["unitcosts","SumPremiums"] * values$unitPremiumSum * values$premiums[["gross"]] +
+        pvCost["unitcosts","GrossPremium"] * values$premiums[["gross"]] +
+        pvCost["unitcosts","NetPremium"] * values$premiums[["net"]] +
+        pvCost["unitcosts","Constant"];
+      premium.unitcosts = pv.unitcosts / pv[["premiums"]] + valueOrFunction(loadings$unitcosts, params = params, values = values);
       values$premiums[["unitcost"]] = premium.unitcosts;
 
 
@@ -635,21 +656,22 @@ InsuranceTarif = R6Class(
       list("premiums" = values$premiums, "coefficients" = coefficients)
     },
 
-    reserveCalculation = function(params, values) {
+    reserveCalculation = function(params, values, start = 0) {
+      t = as.character(start)
       securityFactor = (1 + valueOrFunction(params$Loadings$security, params = params, values = values));
       ppScheme      = params$ProfitParticipation$profitParticipationScheme;
 
       # Net, Zillmer and Gross reserves
       resNet = values$absPresentValues[,"benefitsAndRefund"] * securityFactor - values$premiums[["net"]] * values$absPresentValues[,"premiums.unit"];
-      BWZcorr = values$absPresentValues["0", "Zillmer"] / values$absPresentValues["0", "premiums"] * values$absPresentValues[,"premiums"];
+      BWZcorr = values$absPresentValues[t, "Zillmer"] / values$absPresentValues[t, "premiums"] * values$absPresentValues[,"premiums"];
       resZ = resNet - BWZcorr;
 
       resAdeq = values$absPresentValues[,"benefitsAndRefund"] * securityFactor +
-        values$absPresentValues[,"alpha"] + values$absPresentValues[,"beta"] + values$absPresentValues["gamma"] -
+        values$absPresentValues[,"alpha"] + values$absPresentValues[,"beta"] + values$absPresentValues[,"gamma"] -
         values$premiums[["gross"]] * values$absPresentValues[,"premiums.unit"];
 
       #values$premiums[["Zillmer"]] * values$absPresentValues[,"premiums"];
-      resGamma = values$absPresentValues[,"gamma"] - values$absPresentValues["0", "gamma"] / values$absPresentValues["0", "premiums"] * values$absPresentValues[,"premiums"]
+      resGamma = values$absPresentValues[,"gamma"] - values$absPresentValues[t, "gamma"] / values$absPresentValues[t, "premiums"] * values$absPresentValues[,"premiums"]
 
       advanceProfitParticipation = 0;
       if (!is.null(ppScheme)) {
@@ -657,17 +679,17 @@ InsuranceTarif = R6Class(
       }
       resConversion = (resZ + resGamma) * (1 - advanceProfitParticipation);
 
-      # Alpha refund: Distribute alpha-costs to 5 year (or if shorter, the policy period):
-      r = min(params$ContractData$policyPeriod, 5);
+      # Alpha refund: Distribute alpha-costs to 5 years (or if shorter, the policy period), always starting at time 'start':
+      r = min(params$ContractData$policyPeriod - start, 5);
       ZillmerSoFar = Reduce("+", values$absCashFlows$Zillmer, accumulate = TRUE);
       ZillmerTotal = sum(values$absCashFlows$Zillmer);
       len = length(ZillmerSoFar);
       if (params$Features$alphaRefundLinear) {
-        ZillmerVerteilungCoeff = pad0((0:r)/r, len, 1);
+        ZillmerVerteilungCoeff = pad0((0:r)/r, len, 1, start = start);
       } else {
         q = self$getTransitionProbabilities(params);
         # vector of all ä_{x+t, r-t}
-        pvAlphaTmp = calculatePVSurvival(q = pad0(q$q, len), advance = pad0(rep(1,r), len), v = 1/(1 + params$ActuarialBases$i));
+        pvAlphaTmp = calculatePVSurvival(q = pad0(q$q, len), advance = pad0(rep(1,r), len), v = 1/(1 + params$ActuarialBases$i), start = start);
         ZillmerVerteilungCoeff = (1 - pvAlphaTmp/pvAlphaTmp[[1]]);
       }
       alphaRefund = ZillmerSoFar - ZillmerVerteilungCoeff * ZillmerTotal;
@@ -677,6 +699,7 @@ InsuranceTarif = R6Class(
 
       # Collect all reserves to one large matrix
       res = cbind(
+            "SumInsured"  = head0(rep(params$ContractData$sumInsured, values$int$l), start = start),
             "net"         = resNet,
             "Zillmer"     = resZ,
             "adequate"    = resAdeq,
@@ -712,8 +735,10 @@ InsuranceTarif = R6Class(
 
       # Calculate new sum insured after premium waiver
       Storno = 0; # TODO: Implement storno costs
-      newSI = (surrenderValue - values$absPresentValues[,"death_Refund_past"] * securityFactor - c(Storno)) /
-        (values$absPresentValues[, "benefits"] * securityFactor + values$absPresentValues[, "gamma_nopremiums"]) * params$ContractData$sumInsured;
+      premiumfreePV = (values$absPresentValues[, "benefits"] * securityFactor + values$absPresentValues[, "gamma_nopremiums"]); # PV of future premium free claims + costs
+      newSI = ifelse(premiumfreePV == 0, 0,
+        (surrenderValue - values$absPresentValues[,"death_Refund_past"] * securityFactor - c(Storno)) /
+        premiumfreePV * params$ContractData$sumInsured);
 
       cbind(res,
             "PremiumsPaid" = Reduce("+", values$absCashFlows$premiums_advance, accumulate = TRUE),
@@ -722,7 +747,7 @@ InsuranceTarif = R6Class(
       )
     },
 
-    getBalanceSheetReserveFactor = function(params, years=1) {
+    getBalanceSheetReserveFactor = function(params, years = 1, start = 0) {
       balanceDate = params$ActuarialBases$balanceSheetDate
       year(balanceDate) = year(params$ContractData$contractClosing);
       if (balanceDate < params$ContractData$contractClosing) {
@@ -744,7 +769,7 @@ InsuranceTarif = R6Class(
       baf
     },
 
-    reserveCalculationBalanceSheet = function(params, values) {
+    reserveCalculationBalanceSheet = function(params, values, start = 0) {
       reserves = values$reserves;
       years = length(reserves[,"Zillmer"]);
       # Balance sheet reserves:
@@ -792,39 +817,27 @@ InsuranceTarif = R6Class(
     },
 
 
-    getBasicDataTimeseries = function(params, values) {
-        # TODO: Find a general solution to cut the policyPeriod at the maximum age (currently this code is duplicated all over!)
-        age = params$ContractData$age;
-        maxAge = getOmega(params$ActuarialBases$mortalityTable)
-        policyPeriod = params$ContractData$policyPeriod;
-        maxlen = min(maxAge - age, policyPeriod) + 1;
-        policyPeriod = min(maxAge - age, policyPeriod);
-        premiumPeriod = min(policyPeriod, params$ContractData$premiumPeriod);
+    getBasicDataTimeseries = function(params, values, start = 0) {
         res = cbind(
-            "PremiumPayment" = c(
-                rep(1, premiumPeriod),
-                rep(0, maxlen - premiumPeriod)),
-            "SumInsured" = c(
-                rep(params$ContractData$sumInsured, policyPeriod),
-                0),
-            "Premiums" = c(
-                head(values$absCashFlows$premiums_advance + values$absCashFlows$premiums_arrears, premiumPeriod),
-                rep(0, maxlen - premiumPeriod)),
-            "InterestRate" = rep(params$ActuarialBases$i, maxlen),
-            "PolicyDuration" = rep(policyPeriod, maxlen),
-            "PremiumPeriod" = rep(premiumPeriod, maxlen)
+            "PremiumPayment" = values$premiumComposition[, "charged"] > 0,
+            "SumInsured" = values$reserves[, "SumInsured"],
+            "Premiums" = values$absCashFlows$premiums_advance + values$absCashFlows$premiums_arrears,
+            "InterestRate" = rep(params$ActuarialBases$i, values$int$l),
+            "PolicyDuration" = rep(values$int$policyTerm, values$int$l),
+            "PremiumPeriod" = rep(values$int$premiumTerm, values$int$l)
         );
-        rownames(res) = 0:policyPeriod;
+        rownames(res) = 0:(values$int$l-1);
         res
     },
 
-    premiumDecomposition = function(params, values) {
+    premiumDecomposition = function(params, values, start = 0) {
       loadings   = params$Loadings;
       sumInsured = params$ContractData$sumInsured;
       premiums   = values$premiums;
       v          = 1/(1 + params$ActuarialBases$i);
       l          = dim(values$reserves)[[1]];
       ppScheme   = params$ProfitParticipation$profitParticipationScheme;
+      t          = as.character(start)
 
       # TODO: This assumes all premiums are paid in advance!
       premium.gross    = values$absCashFlows[,"premiums_advance"];
@@ -893,49 +906,50 @@ InsuranceTarif = R6Class(
 
       # Gross premium = net + zillmeredAlpha + unzillmeredAlpha + beta + gamma premium
       unit.premiumCF   = premium.gross / premiums[["gross"]];
-      premium.gamma    = unit.premiumCF * values$absPresentValues["0", "gamma"] / values$absPresentValues["0", "premiums.unit"];
-      premium.beta     = unit.premiumCF * values$absPresentValues["0", "beta"]  / values$absPresentValues["0", "premiums.unit"];
-      premium.alpha    = unit.premiumCF * values$absPresentValues["0", "alpha"] / values$absPresentValues["0", "premiums.unit"];
+      premium.gamma    = unit.premiumCF * values$absPresentValues[t, "gamma"] / values$absPresentValues[t, "premiums.unit"];
+      premium.beta     = unit.premiumCF * values$absPresentValues[t, "beta"]  / values$absPresentValues[t, "premiums.unit"];
+      premium.alpha    = unit.premiumCF * values$absPresentValues[t, "alpha"] / values$absPresentValues[t, "premiums.unit"];
       premium.Zillmer  = unit.premiumCF * premiums[["Zillmer"]];
-      premium.alpha.Zillmer = unit.premiumCF * values$absPresentValues["0", "Zillmer"] / values$absPresentValues["0", "premiums.unit"];
+      premium.alpha.Zillmer = unit.premiumCF * values$absPresentValues[t, "Zillmer"] / values$absPresentValues[t, "premiums.unit"];
       premium.alpha.noZ = premium.alpha - premium.alpha.Zillmer; # ungezillmerter Teil der Abschlusskosten
 
       premium.net       = unit.premiumCF * premiums[["net"]];
 
       securityLoading   = valueOrFunction(params$Loadings$security, params = params, values = values);
-      premium.risk.actual   = v * (values$absCashFlows[,"death"] - c(values$reserves[,"net"][-1], 0)) * pad0(values$transitionProbabilities$q, l);
+      premium.risk.actual   = v * head0(values$absCashFlows[,"death"] - c(values$reserves[,"net"][-1], 0), start = start) * pad0(values$transitionProbabilities$q, l);
       premium.risk.security = v * (values$absCashFlows[,"death"] * securityLoading) * pad0(values$transitionProbabilities$q, l);
       premium.risk          = premium.risk.actual + premium.risk.security;
-      premium.risk.disease.actual   = v * (values$absCashFlows[,"disease_SumInsured"] - c(values$reserves[,"net"][-1], 0)) * pad0(values$transitionProbabilities$i, l);
+      # TODO-start: Make sure the premium components are 0 before start!
+      premium.risk.disease.actual   = v * head0(values$absCashFlows[,"disease_SumInsured"] - c(values$reserves[,"net"][-1], 0), start = start) * pad0(values$transitionProbabilities$i, l);
       premium.risk.disease.security = v * (values$absCashFlows[,"disease_SumInsured"] * securityLoading) * pad0(values$transitionProbabilities$i, l);
       premium.risk.disease          = premium.risk.disease.actual + premium.risk.disease.security;
-      premium.savings       = getSavingsPremium(
+      premium.savings       = head0(getSavingsPremium(
           values$reserves[,"net"], v = v,
           survival_advance = values$absCashFlows[,"survival_advance"] + values$absCashFlows[,"guaranteed_advance"],
           survival_arrears = values$absCashFlows[,"survival_arrears"] + values$absCashFlows[,"guaranteed_arrears"]
-      );
+      ), start = start)
 
-      premium.Zillmer.risk.actual   = v * (values$absCashFlows[,"death"] - c(values$reserves[,"contractual"][-1], 0)) * pad0(values$transitionProbabilities$q, l);
+      premium.Zillmer.risk.actual   = v * head0(values$absCashFlows[,"death"] - c(values$reserves[,"contractual"][-1], 0), start = start) * pad0(values$transitionProbabilities$q, l);
       premium.Zillmer.risk.security = v * (values$absCashFlows[,"death"] * securityLoading) * pad0(values$transitionProbabilities$q, l);
       premium.Zillmer.risk          = premium.Zillmer.risk.actual + premium.Zillmer.risk.security;
-      premium.Zillmer.risk.disease.actual   = v * (values$absCashFlows[,"disease_SumInsured"] - c(values$reserves[,"contractual"][-1], 0)) * pad0(values$transitionProbabilities$i, l);
+      premium.Zillmer.risk.disease.actual   = v * head0(values$absCashFlows[,"disease_SumInsured"] - c(values$reserves[,"contractual"][-1], 0), start = start) * pad0(values$transitionProbabilities$i, l);
       premium.Zillmer.risk.disease.security = v * (values$absCashFlows[,"disease_SumInsured"] * securityLoading) * pad0(values$transitionProbabilities$i, l);
       premium.Zillmer.risk.disease          = premium.Zillmer.risk.disease.actual + premium.Zillmer.risk.disease.security;
 
 
-      premium.Zillmer.savings  = getSavingsPremium(
+      premium.Zillmer.savings  = head0(getSavingsPremium(
           values$reserves[,"contractual"], v = v,
           survival_advance = values$absCashFlows[,"survival_advance"] + values$absCashFlows[,"guaranteed_advance"],
           survival_arrears = values$absCashFlows[,"survival_arrears"] + values$absCashFlows[,"guaranteed_arrears"]
-      );
-      premium.Zillmer.amortization = getSavingsPremium(
+      ), start = start)
+      premium.Zillmer.amortization = head0(getSavingsPremium(
               pmin(0, values$reserves[,"contractual"]), v = v
-      );
-      premium.Zillmer.actsavings = getSavingsPremium(
+      ), start = start)
+      premium.Zillmer.actsavings = head0(getSavingsPremium(
               pmax(0, values$reserves[,"contractual"]), v = v,
               survival_advance = values$absCashFlows[,"survival_advance"] + values$absCashFlows[,"guaranteed_advance"],
               survival_arrears = values$absCashFlows[,"survival_arrears"] + values$absCashFlows[,"guaranteed_arrears"]
-      );
+      ), start = start)
 
       res = cbind(
         "charged"         = premium.charged,
@@ -981,14 +995,17 @@ InsuranceTarif = R6Class(
       res
     },
 
-    calculateFutureSums = function(values, ...) {
-      rcumsum = function(vec) rev(cumsum(rev(vec)));
+    calculateFutureSums = function(values, ..., start = 0) {
+      rcumsum = function(vec) c(
+        head(vec, start),
+        rev(cumsum(rev(tail(vec, length(vec) - start))))
+      )
       apply(values, 2, rcumsum)
     },
-    calculatePresentValues = function(values, params) {
+    calculatePresentValues = function(values, params, start = 0) {
       len = dim(values)[1];
       q = self$getTransitionProbabilities(params);
-      pv = function(vec) calculatePVSurvival(px = pad0(q$p, len), advance = vec, v = 1/(1 + params$ActuarialBases$i));
+      pv = function(vec) calculatePVSurvival(px = pad0(q$p, len), advance = vec, v = 1/(1 + params$ActuarialBases$i), start = start);
       apply(values, 2, pv)
     },
 
diff --git a/R/exportInsuranceContract_xlsx.R b/R/exportInsuranceContract_xlsx.R
index 6704721..44d2da9 100644
--- a/R/exportInsuranceContract_xlsx.R
+++ b/R/exportInsuranceContract_xlsx.R
@@ -7,9 +7,9 @@ NULL
 
 
 
-################################################
-# Helper Functions
-################################################
+################################################ #
+# Helper Functions                            ####
+################################################ #
 
 
 writeAgeQTable = function(wb, sheet, probs, crow = 1, ccol = 1, styles = list()) {
@@ -189,13 +189,13 @@ setInsuranceValuesLabels = function(vals) {
 }
 
 
-################################################################################
+############################################################################### #
 #
 # The actual export function
 #
 #    exportInsuranceContract.xlsx(contract, filename)
 #
-################################################################################
+############################################################################### #
 
 
 #' @export
@@ -207,7 +207,7 @@ exportInsuranceContract.xlsx = function(contract, filename) {
   qp = contract$Values$transitionProbabilities[1:nrrows,]; # extract the probabilities once, will be needed in every sheet
 
   ############################################### #
-  # Style information
+  # Style information                          ####
   ############################################### #
   styles = list(
     header = createStyle(border = "TopBottomLeftRight", borderColour = "#DA9694", borderStyle = "medium",
@@ -228,7 +228,7 @@ exportInsuranceContract.xlsx = function(contract, filename) {
   );
 
   ############################################### #
-  # General Workbook setup
+  # General Workbook setup                     ####
   ############################################### #
   wb = openxlsx::createWorkbook();
 
@@ -251,7 +251,7 @@ exportInsuranceContract.xlsx = function(contract, filename) {
   crow = crow + 4;
 
   ############################################### #
-  # Basic parameters
+  # Basic parameters                           ####
   ############################################### #
   values = c(
     "Sum insured"         = contract$Parameters$ContractData$sumInsured,
@@ -307,9 +307,9 @@ exportInsuranceContract.xlsx = function(contract, filename) {
 
 
 
-  ################################################
-  # Print out Basic contract data as time series
-  ################################################
+  ################################################# #
+  # Print out Basic contract data as time series ####
+  ################################################# #
 
   sheet = "Basisdaten";
   addWorksheet(wb, sheet);
@@ -346,9 +346,9 @@ exportInsuranceContract.xlsx = function(contract, filename) {
 
 
 
-  ################################################
-  # Print out Reserves
-  ################################################
+  ############################################### #
+  # Print out Reserves                         ####
+  ############################################### #
 
   sheet = "Reserven";
   addWorksheet(wb, sheet);
@@ -371,9 +371,9 @@ exportInsuranceContract.xlsx = function(contract, filename) {
   setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE)
 
 
-  ################################################
-  # Print out Profit Participation
-  ################################################
+  ################################################ #
+  # Print out Profit Participation              ####
+  ################################################ #
 
   if (!is.null(contract$Values$profitParticipation)) {
   sheet = "Gewinnbeteiligung";
@@ -432,9 +432,9 @@ exportInsuranceContract.xlsx = function(contract, filename) {
 
   }
 
-  ################################################
-  # Print out premium decomposition
-  ################################################
+  ############################################### #
+  # Print out premium decomposition            ####
+  ############################################### #
 
   # Age, death and survival probabilities
   crow = 4;
@@ -462,9 +462,9 @@ exportInsuranceContract.xlsx = function(contract, filename) {
 
   setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE)
 
-  ################################################
-  # Print out absolute values of present values
-  ################################################
+  ################################################ #
+  # Print out absolute values of present values ####
+  ################################################ #
 
   sheet = "abs.Barwerte";
   addWorksheet(wb, sheet);
@@ -480,9 +480,9 @@ exportInsuranceContract.xlsx = function(contract, filename) {
   setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE)
 
 
-  ################################################
-  # Print out absolute values for cash flows
-  ################################################
+  ############################################### #
+  # Print out absolute values for cash flows   ####
+  ############################################### #
 
   # Age, death and survival probabilities
   ccol = 1;
@@ -496,9 +496,9 @@ exportInsuranceContract.xlsx = function(contract, filename) {
   setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE)
 
 
-  ################################################
-  # Print out present values
-  ################################################
+  ############################################### #
+  # Print out present values                   ####
+  ############################################### #
 
   sheet = "Barwerte";
   addWorksheet(wb, sheet);
@@ -510,17 +510,20 @@ exportInsuranceContract.xlsx = function(contract, filename) {
   # We add six lines before the present values to show the coefficients for the premium calculation
   ccol = ccol + writeAgeQTable(wb, sheet, probs = qp, crow = crow + 6, ccol = 1, styles = styles);
 
+  # Time the premium was last calculated (i.e. access the present values at that time rather than 0 in the formulas for the premium)
+  tPrem = contract$Values$int$premiumCalculationTime
+
   # Store the start/end columns of the coefficients, since we need them later in the formula for the premiums!
   w1 = writePremiumCoefficients(wb, sheet, contract$Values$premiumCoefficients, type = "benefits", crow = crow, ccol = ccol - 2, tarif = contract$tarif);
   area.premiumcoeff = paste0(int2col(ccol), "%d:", int2col(ccol + w1 - 1), "%d");
-  area.premiumvals  = paste0("$", int2col(ccol), "$", crow + 6 + 2, ":$", int2col(ccol + w1 - 1), "$", crow + 6 + 2);
+  area.premiumvals  = paste0("$", int2col(ccol), "$", crow + 6 + 2 + tPrem, ":$", int2col(ccol + w1 - 1), "$", crow + 6 + 2 + tPrem);
   ccol = ccol + writeValuesTable(wb, sheet, as.data.frame(setInsuranceValuesLabels(contract$Values$presentValues)),
                                  crow = crow + 6, ccol = ccol, tableName = "PresentValues_Benefits", styles = styles,
                                  caption = "Leistungsbarwerte", valueStyle = styles$pv0) + 1;
 
   w2 = writePremiumCoefficients(wb, sheet, contract$Values$premiumCoefficients, type = "costs", crow = crow, ccol = ccol - 2, tarif = contract$tarif);
   area.costcoeff = paste0(int2col(ccol), "%d:", int2col(ccol + w2 - 1), "%d");
-  area.costvals  = paste0("$", int2col(ccol), "$", crow + 6 + 2, ":$", int2col(ccol + w2 - 1), "$", crow + 6 + 2);
+  area.costvals  = paste0("$", int2col(ccol), "$", crow + 6 + 2 + tPrem, ":$", int2col(ccol + w2 - 1), "$", crow + 6 + 2 + tPrem);
   ccol = ccol + writeValuesTable(wb, sheet, as.data.frame(costPV),
                                  crow = crow + 6, ccol = ccol, tableName = "PresentValues_Costs", styles = styles,
                                  caption = "Kostenbarwerte", valueStyle = styles$cost0) + 1;
@@ -542,9 +545,9 @@ exportInsuranceContract.xlsx = function(contract, filename) {
   setColWidths(wb, sheet, cols = 1:50, widths = "auto", ignoreMergedCells = TRUE)
 
 
-  ################################################
-  # Print out cash flows
-  ################################################
+  ############################################## #
+  # Print out cash flows                      ####
+  ############################################## #
 
   sheet = "Cash-Flows";
   addWorksheet(wb, sheet);
diff --git a/inst/Beispiele/Endowment_Dynamic_From0_Baseline.xlsx b/inst/Beispiele/Endowment_Dynamic_From0_Baseline.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..1c3fff9eea0c370d183403f308a622513ac23a3d
GIT binary patch
literal 58713
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
B=uQ9t

literal 0
HcmV?d00001

diff --git a/inst/Beispiele/Endowment_Dynamic_From5.xlsx b/inst/Beispiele/Endowment_Dynamic_From5.xlsx
new file mode 100644
index 0000000000000000000000000000000000000000..fd254f947f0b9236fe4a7162967f03c07e28a5f8
GIT binary patch
literal 70452
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%0Dl~+U0g_*!RV;<lw%Oev!ptyAoDy
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%0Du@8acRZ&hYg&rQ-$`8Lx!Kgi&9
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

literal 0
HcmV?d00001

diff --git a/inst/Beispiele/Example_Endowment.R b/inst/Beispiele/Example_Endowment.R
new file mode 100644
index 0000000..e7fe5ee
--- /dev/null
+++ b/inst/Beispiele/Example_Endowment.R
@@ -0,0 +1,152 @@
+library(LifeInsuranceContracts)
+
+################################################################### #
+#              DEFINITION TARIF                                  ####
+################################################################### #
+#
+# Beispieltarif:
+#    endowment with regular premiums
+#    death benefit = survival benefit
+#    Costs: Alpha: 4% of premium sum up-front (2,5% Zillmer)
+#           Beta:  5% of each premium paid
+#           Gamma: 0,1% of sum insured per year over the whole contract maturity
+#           Unitcosts: 10 EUR + 5% Premium Sum (max. 50 EUR), during premium period
+################################################################### #
+
+costs.Bsp = initializeCosts();
+costs.Bsp[["alpha", "SumPremiums", "once"]] = 0.04;
+costs.Bsp[["Zillmer", "SumPremiums", "once"]] = 0.025; # deutsche Beschränkung der Zillmerung
+costs.Bsp[["beta", "GrossPremium", "PremiumPeriod"]] = 0.05;
+costs.Bsp[["gamma", "SumInsured", "PolicyPeriod"]] = 0.001;
+
+costs.Bsp.Unterjaehrigkeit = list("1" = 0.0, "2" = 0.01, "4" = 0.015, "12" = 0.02);
+
+# Stückkosten: 10EUR + 5% PS, maximal 50
+costs.Bsp.Stueckkosten       = function (params, values) { min(50, 10 + 0.05*values$premiums[["gross"]]) }
+
+
+surrender.Bsp = function(surrenderReserve, params, values) {
+  n = params$ContractData$policyPeriod - params$ContractData$blockStart;
+  # Rückkaufsabschlag linear fallend von 10 auf 0%:
+  sf = c(rep(0, start), 1 - 0.1 * (1 - (0:n)/n));
+  surrenderReserve * sf
+}
+
+#' @export
+Tarif.Bsp = InsuranceTarif$new(
+  name = "Example Tariff - Standard Endowment",
+  type = "endowment",
+  tarif = "BSP",
+  desc = "Gemischte Versicherung (Standardtarif)",
+  #premiumPeriod = 1,
+  #alphaRefundLinear = FALSE,
+
+  mortalityTable = mort.AT.census.2011.unisex,
+  i = 0.005,
+  costs = costs.Bsp,
+  unitcosts = costs.Bsp.Stueckkosten,
+
+  premiumFrequencyOrder = -1, # Unterjährige Prämienzahlung wird nicht im BW berücksichtigt, sondern durch Prämienaufschlag
+  premiumFrequencyLoading = costs.Bsp.Unterjaehrigkeit,
+  premiumRefund = 0,
+  tax = 0.04,
+
+  surrenderValueCalculation = surrender.Bsp
+);
+
+#
+# contract.Bsp.DynStart = InsuranceContract$new(
+#   Tarif.Bsp,
+#   age = 45, policyPeriod = 5, premiumPeriod = 5,
+#   premiumFrequency = 12,
+#   sumInsured = 100000,
+#   contractClosing = as.Date("2030-07-01")
+# );
+# exportInsuranceContractExample(contract.Bsp.DynStart, t = 5, basename = "Endowment_Dynamic_From0_Baseline");
+# showVmGlgExamples(contract.Bsp.Dyn, t = 10)
+
+
+contract.Bsp.DynStart$Values$cashFlowsBasic
+contract.Bsp.DynStart$Values$cashFlows
+contract.Bsp.DynStart$Values$cashFlowsCosts
+contract.Bsp.DynStart$Values$presentValues
+
+
+contract.Bsp.Dyn = InsuranceContract$new(
+  Tarif.Bsp,
+  age = 35, policyPeriod = 15, premiumPeriod = 15,
+  premiumFrequency = 12,
+  sumInsured = 100000,
+  contractClosing = as.Date("2020-07-01"),
+  blockStart = 10
+);
+exportInsuranceContract.xlsx(contract.Bsp.Dyn, filename = "Endowment_Dynamic_From5.xlsx");
+
+
+# exportInsuranceContractExample(contract.Bsp.Dyn, t = 5, basename = "Endowment_Dynamic_From5");
+# showVmGlgExamples(contract.Bsp.Dyn, t = 10)
+
+
+contract.Bsp.Dyn$Values$cashFlowsBasic
+contract.Bsp.Dyn$Values$cashFlows
+contract.Bsp.Dyn$Values$cashFlowsCosts
+contract.Bsp.Dyn$Values$presentValues
+contract.Bsp.Dyn$Values$reserves
+contract.Bsp.Dyn$Values$premiumComposition
+
+
+################################################################### #
+#              EXAMPLE CONTRACT                                  ####
+################################################################### #
+
+
+contract.Bsp = InsuranceContract$new(
+  Tarif.Bsp,
+  age = 35, policyPeriod = 15, premiumPeriod = 15,
+  premiumFrequency = 12,
+  sumInsured = 100000,
+  contractClosing = as.Date("2020-07-01")
+);
+exportInsuranceContractExample(contract.Bsp, t = 5);
+showVmGlgExamples(contract.Bsp, t = 10)
+
+
+contract.Bsp$Values$cashFlowsBasic
+contract.Bsp$Values$cashFlows
+contract.Bsp$Values$cashFlowsCosts
+contract.Bsp$Values$presentValues
+# contract.U17_3J$Values$presentValuesCosts
+contract.Bsp$Values$premiumSum
+contract.Bsp$Values$premiums
+contract.Bsp$Values$premiumComposition
+contract.Bsp$Values$reserves
+
+
+################################################################### #
+#              DYNAMIC INCREASE                                  ####
+################################################################### #
+
+
+contract.Bsp.Dyn = InsuranceContract$new(
+  Tarif.Bsp,
+  age = 35, policyPeriod = 15, premiumPeriod = 15,
+  premiumFrequency = 12,
+  sumInsured = 100000,
+  contractClosing = as.Date("2020-07-01"),
+  blockStart = 10
+);
+exportInsuranceContractExample(contract.Bsp.Dyn, t = 5);
+showVmGlgExamples(contract.Bsp.Dyn, t = 10)
+
+
+contract.Bsp.Dyn$Values$cashFlowsBasic
+contract.Bsp.Dyn$Values$cashFlows
+contract.Bsp.Dyn$Values$cashFlowsCosts
+contract.Bsp.Dyn$Values$presentValues
+# contract.Bsp.Dyn$Values$presentValuesCosts
+contract.Bsp.Dyn$Values$premiumSum
+contract.Bsp.Dyn$Values$premiums
+contract.Bsp.Dyn$Values$premiumComposition
+contract.Bsp.Dyn$Values$reserves
+contract.Bsp.Dyn$Values$basicData
+
-- 
GitLab