final double referenceStartTime = TimeCalculator.getTimeBetween(date, getReferenceStartDate());
final ZonedDateTime naturalPaymentEndDate = getPaymentDate().minusMonths(_monthLag - _conventionalMonthLag);
final double naturalPaymentEndTime = TimeCalculator.getTimeBetween(date, naturalPaymentEndDate);
final ZonedDateTime naturalPaymentstartDate = naturalPaymentEndDate.minusMonths(12);
final double naturalPaymentStartTime = TimeCalculator.getTimeBetween(date, naturalPaymentstartDate);
return new CouponInflationYearOnYearMonthlyWithMargin(_factor, getCurrency(), paymentTime, getPaymentYearFraction(), getNotional(), getPriceIndex(), referenceStartTime, naturalPaymentStartTime,
referenceEndTime, naturalPaymentEndTime, _payNotional);
}