ArgumentChecker.notNull(issuerMulticurves, "Issuer and multi-curves provider");
final MulticurveProviderInterface multicurves = issuerMulticurves.getMulticurveProvider();
final Currency ccy = bond.getCurrency();
final double notional = bond.getCoupon().getNthPayment(0).getNotional();
final MultipleCurrencyAmount pv = presentValue(bond, issuerMulticurves);
final MultipleCurrencyMulticurveSensitivity sensiPv = presentValueCurveSensitivity(bond, issuerMulticurves);
final double df = multicurves.getDiscountFactor(ccy, bond.getSettlementTime());
final Map<String, List<DoublesPair>> resultMap = new HashMap<>();
final List<DoublesPair> listDf = new ArrayList<>();
listDf.add(new DoublesPair(bond.getSettlementTime(), bond.getSettlementTime() / df));
resultMap.put(multicurves.getName(ccy), listDf);
MulticurveSensitivity result = MulticurveSensitivity.ofYieldDiscounting(resultMap);
result = result.multipliedBy(pv.getAmount(ccy) / notional);
result = result.plus(sensiPv.getSensitivity(ccy).multipliedBy(1 / (df * notional)));
return result;
}