Jump to content

Widget:Solvency2 BalanceSheet

From Insurer Brain
Revision as of 10:21, 31 March 2026 by Wikilah admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

<style> /* ── Reset & Container ──────────────────────────────────── */

  1. insurerbrain-module-solvency2-bs *,
  2. insurerbrain-module-solvency2-bs *::before,
  3. insurerbrain-module-solvency2-bs *::after {
 box-sizing: border-box;
 margin: 0;
 padding: 0;

}

  1. insurerbrain-module-solvency2-bs {
 --ib-accent: #1a5276;
 --ib-accent-light: #d4e6f1;
 --ib-correct: #1e8449;
 --ib-correct-bg: #d5f5e3;
 --ib-correct-border: #82e0aa;
 --ib-wrong: #922b21;
 --ib-wrong-bg: #fadbd8;
 --ib-wrong-border: #f1948a;
 --ib-neutral-bg: #f8f9fa;
 --ib-neutral-border: #c8ccd1;
 --ib-text: #202122;
 --ib-text-muted: #54595d;
 --ib-radius: 4px;
 --ib-transition: 0.25s ease;
 max-width: 52rem;
 padding: 1.5rem 0;
 color: var(--ib-text);

}

/* ── Progress Bar ────────────────────────────────────────── */

  1. insurerbrain-module-solvency2-bs .ib-progress-wrap {
 display: flex;
 align-items: center;
 gap: 0.75rem;
 margin-bottom: 1.25rem;

}

  1. insurerbrain-module-solvency2-bs .ib-progress-label {
 white-space: nowrap;
 color: var(--ib-text-muted);
 font-size: 0.875em;
 min-width: 6.5rem;

}

  1. insurerbrain-module-solvency2-bs .ib-progress-track {
 flex: 1;
 height: 6px;
 background: var(--ib-neutral-bg);
 border: 1px solid var(--ib-neutral-border);
 border-radius: 3px;
 overflow: hidden;

}

  1. insurerbrain-module-solvency2-bs .ib-progress-fill {
 height: 100%;
 width: 0%;
 background: var(--ib-accent);
 border-radius: 3px;
 transition: width 0.4s ease;

}

/* ── Question Card ───────────────────────────────────────── */

  1. insurerbrain-module-solvency2-bs .ib-card {
 background: var(--ib-neutral-bg);
 border: 1px solid var(--ib-neutral-border);
 border-radius: var(--ib-radius);
 padding: 1.5rem;
 margin-bottom: 1rem;

}

  1. insurerbrain-module-solvency2-bs .ib-q-header {
 display: flex;
 align-items: baseline;
 gap: 0.5rem;
 margin-bottom: 1rem;

}

  1. insurerbrain-module-solvency2-bs .ib-q-number {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-width: 1.75rem;
 height: 1.75rem;
 background: var(--ib-accent);
 color: #fff;
 border-radius: 50%;
 font-size: 0.8em;
 font-weight: 700;
 flex-shrink: 0;

}

  1. insurerbrain-module-solvency2-bs .ib-q-topic {
 font-size: 0.8em;
 color: var(--ib-text-muted);
 border: 1px solid var(--ib-neutral-border);
 border-radius: 2px;
 padding: 0.1rem 0.45rem;
 margin-left: auto;
 white-space: nowrap;

}

  1. insurerbrain-module-solvency2-bs .ib-q-text {
 margin-bottom: 1.25rem;
 line-height: 1.55;

}

/* ── Options ─────────────────────────────────────────────── */

  1. insurerbrain-module-solvency2-bs .ib-options {
 display: flex;
 flex-direction: column;
 gap: 0.5rem;

}

  1. insurerbrain-module-solvency2-bs .ib-option {
 display: flex;
 align-items: flex-start;
 gap: 0.75rem;
 padding: 0.75rem 1rem;
 border: 1px solid var(--ib-neutral-border);
 border-radius: var(--ib-radius);
 background: #fff;
 cursor: pointer;
 transition: border-color var(--ib-transition), background var(--ib-transition);
 line-height: 1.45;

}

  1. insurerbrain-module-solvency2-bs .ib-option:hover:not(.ib-disabled) {
 border-color: var(--ib-accent);
 background: var(--ib-accent-light);

}

  1. insurerbrain-module-solvency2-bs .ib-option.ib-selected:not(.ib-disabled) {
 border-color: var(--ib-accent);
 background: var(--ib-accent-light);

}

  1. insurerbrain-module-solvency2-bs .ib-option.ib-disabled {
 cursor: default;
 opacity: 0.85;

}

  1. insurerbrain-module-solvency2-bs .ib-option.ib-correct-answer {
 border-color: var(--ib-correct-border);
 background: var(--ib-correct-bg);
 opacity: 1;

}

  1. insurerbrain-module-solvency2-bs .ib-option.ib-wrong-answer {
 border-color: var(--ib-wrong-border);
 background: var(--ib-wrong-bg);
 opacity: 1;

}

  1. insurerbrain-module-solvency2-bs .ib-option-key {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 min-width: 1.5rem;
 height: 1.5rem;
 border: 1.5px solid var(--ib-neutral-border);
 border-radius: 50%;
 font-size: 0.8em;
 font-weight: 600;
 flex-shrink: 0;
 transition: border-color var(--ib-transition), background var(--ib-transition), color var(--ib-transition);

}

  1. insurerbrain-module-solvency2-bs .ib-option.ib-selected .ib-option-key {
 border-color: var(--ib-accent);
 background: var(--ib-accent);
 color: #fff;

}

  1. insurerbrain-module-solvency2-bs .ib-option.ib-correct-answer .ib-option-key {
 border-color: var(--ib-correct);
 background: var(--ib-correct);
 color: #fff;

}

  1. insurerbrain-module-solvency2-bs .ib-option.ib-wrong-answer .ib-option-key {
 border-color: var(--ib-wrong);
 background: var(--ib-wrong);
 color: #fff;

}

  1. insurerbrain-module-solvency2-bs .ib-option-text {
 padding-top: 0.1rem;

}

/* ── Feedback ────────────────────────────────────────────── */

  1. insurerbrain-module-solvency2-bs .ib-feedback {
 margin-top: 1rem;
 padding: 0.85rem 1rem;
 border-radius: var(--ib-radius);
 border-left: 4px solid transparent;
 line-height: 1.5;
 display: none;

}

  1. insurerbrain-module-solvency2-bs .ib-feedback.ib-show {
 display: block;
 animation: ibFadeIn 0.3s ease;

}

  1. insurerbrain-module-solvency2-bs .ib-feedback.ib-fb-correct {
 background: var(--ib-correct-bg);
 border-left-color: var(--ib-correct);
 color: var(--ib-correct);

}

  1. insurerbrain-module-solvency2-bs .ib-feedback.ib-fb-wrong {
 background: var(--ib-wrong-bg);
 border-left-color: var(--ib-wrong);
 color: var(--ib-wrong);

}

  1. insurerbrain-module-solvency2-bs .ib-feedback strong {
 display: block;
 margin-bottom: 0.25rem;

}

  1. insurerbrain-module-solvency2-bs .ib-feedback .ib-explanation {
 color: var(--ib-text);
 font-size: 0.92em;

}

/* ── Navigation ──────────────────────────────────────────── */

  1. insurerbrain-module-solvency2-bs .ib-nav {
 display: flex;
 justify-content: flex-end;
 gap: 0.5rem;
 margin-top: 1rem;

}

  1. insurerbrain-module-solvency2-bs .ib-btn {
 padding: 0.55rem 1.25rem;
 border: 1px solid var(--ib-accent);
 border-radius: var(--ib-radius);
 background: var(--ib-accent);
 color: #fff;
 font-size: 0.9em;
 font-weight: 600;
 cursor: pointer;
 transition: opacity var(--ib-transition);

}

  1. insurerbrain-module-solvency2-bs .ib-btn:hover {
 opacity: 0.85;

}

  1. insurerbrain-module-solvency2-bs .ib-btn:disabled {
 opacity: 0.4;
 cursor: default;

}

  1. insurerbrain-module-solvency2-bs .ib-btn-outline {
 background: transparent;
 color: var(--ib-accent);

}

/* ── Results Screen ──────────────────────────────────────── */

  1. insurerbrain-module-solvency2-bs .ib-results {
 text-align: center;
 padding: 2rem 1rem;

}

  1. insurerbrain-module-solvency2-bs .ib-score-ring {
 position: relative;
 width: 9rem;
 height: 9rem;
 margin: 0 auto 1.5rem;

}

  1. insurerbrain-module-solvency2-bs .ib-score-ring svg {
 transform: rotate(-90deg);
 width: 100%;
 height: 100%;

}

  1. insurerbrain-module-solvency2-bs .ib-score-ring circle {
 fill: none;
 stroke-width: 8;

}

  1. insurerbrain-module-solvency2-bs .ib-ring-bg {
 stroke: var(--ib-neutral-border);

}

  1. insurerbrain-module-solvency2-bs .ib-ring-fill {
 stroke: var(--ib-correct);
 stroke-linecap: round;
 stroke-dasharray: 264;
 stroke-dashoffset: 264;
 transition: stroke-dashoffset 1s ease;

}

  1. insurerbrain-module-solvency2-bs .ib-score-label {
 position: absolute;
 inset: 0;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;

}

  1. insurerbrain-module-solvency2-bs .ib-score-pct {
 font-size: 2rem;
 font-weight: 700;
 color: var(--ib-text);

}

  1. insurerbrain-module-solvency2-bs .ib-score-sub {
 font-size: 0.85em;
 color: var(--ib-text-muted);

}

  1. insurerbrain-module-solvency2-bs .ib-results-msg {
 margin-bottom: 1.5rem;
 color: var(--ib-text-muted);
 line-height: 1.5;

}

  1. insurerbrain-module-solvency2-bs .ib-review-list {
 text-align: left;
 margin-top: 1.5rem;

}

  1. insurerbrain-module-solvency2-bs .ib-review-item {
 display: flex;
 align-items: flex-start;
 gap: 0.6rem;
 padding: 0.65rem 0;
 border-bottom: 1px solid var(--ib-neutral-border);
 font-size: 0.92em;
 line-height: 1.45;

}

  1. insurerbrain-module-solvency2-bs .ib-review-icon {
 flex-shrink: 0;
 width: 1.25rem;
 height: 1.25rem;
 border-radius: 50%;
 display: flex;
 align-items: center;
 justify-content: center;
 font-size: 0.7em;
 font-weight: 700;
 color: #fff;
 margin-top: 0.15rem;

}

  1. insurerbrain-module-solvency2-bs .ib-review-icon.ib-ri-correct {
 background: var(--ib-correct);

}

  1. insurerbrain-module-solvency2-bs .ib-review-icon.ib-ri-wrong {
 background: var(--ib-wrong);

}

/* ── Animation ───────────────────────────────────────────── */ @keyframes ibFadeIn {

 from { opacity: 0; transform: translateY(6px); }
 to { opacity: 1; transform: translateY(0); }

}

  1. insurerbrain-module-solvency2-bs .ib-animate-in {
 animation: ibFadeIn 0.3s ease;

}

/* ── Responsive ──────────────────────────────────────────── */ @media (max-width: 480px) {

 #insurerbrain-module-solvency2-bs .ib-card {
   padding: 1rem;
 }
 #insurerbrain-module-solvency2-bs .ib-option {
   padding: 0.6rem 0.75rem;
 }
 #insurerbrain-module-solvency2-bs .ib-q-topic {
   display: none;
 }

} </style>

 Question 1 / 10
 <button class="ib-btn ib-btn-outline" id="ib-s2-btn-restart" style="display:none;">Restart</button>
 <button class="ib-btn" id="ib-s2-btn-next" disabled>Next →</button>

<script> (function() {

 /* ── Question Bank ───────────────────────────────────── */
 var questions = [
   {
     topic: "Valuation",
     text: "Under Solvency II, how must an insurer's assets be valued on the economic balance sheet?",
     options: [
       "At historical cost, consistent with IFRS 9",
       "At market-consistent (fair) value, using quoted market prices where available",
       "At the lower of cost and net realisable value",
       "At amortised cost with an impairment overlay"
     ],
     answer: 1,
     explanation: "Solvency II requires a market-consistent valuation framework. Assets must be valued at the amount for which they could be exchanged between knowledgeable, willing parties in an arm's-length transaction — effectively fair value, with quoted market prices used where an active market exists."
   },
   {
     topic: "Technical Provisions",
     text: "Technical provisions under Solvency II are equal to the sum of which two components?",
     options: [
       "Unearned Premium Reserve + Claims Outstanding Reserve",
       "Best Estimate Liability (BEL) + Risk Margin",
       "Solvency Capital Requirement + Risk Margin",
       "Best Estimate Liability (BEL) + Matching Adjustment"
     ],
     answer: 1,
     explanation: "Article 77 of the Solvency II Directive defines technical provisions as the sum of the Best Estimate Liability (BEL) — a probability-weighted average of future cash flows discounted using the risk-free rate term structure — and the Risk Margin, which represents the cost of holding capital to run off the obligations."
   },
   {
     topic: "Risk Margin",
     text: "What does the Risk Margin in Solvency II conceptually represent?",
     options: [
       "A buffer to protect against adverse reserve development",
       "The cost-of-capital that a reference undertaking would require to take over and run off the insurance obligations",
       "A regulatory add-on calibrated at the 99.5% VaR over one year",
       "The expected profit embedded in future premiums"
     ],
     answer: 1,
     explanation: "The Risk Margin is calculated using a cost-of-capital approach. It represents the cost a hypothetical reference undertaking would charge — above the Best Estimate — for holding the Solvency Capital Requirement needed to support the obligations until they are fully run off."
   },
   {
     topic: "Discount Rate",
     text: "Which rate curve is prescribed for discounting the Best Estimate Liability under Solvency II?",
     options: [
       "The insurer's own investment return assumptions",
       "Government bond yields of the currency of the obligation",
       "The risk-free interest rate term structure published by EIOPA",
       "The swap rate plus a fixed credit spread"
     ],
     answer: 2,
     explanation: "EIOPA publishes the relevant risk-free interest rate term structure each month. It is derived primarily from swap rates, adjusted to remove the credit risk component (Credit Risk Adjustment), and extrapolated beyond the Last Liquid Point toward an Ultimate Forward Rate."
   },
   {
     topic: "Own Funds",
     text: "Under Solvency II, 'Own Funds' that can cover the SCR are classified into how many quality tiers?",
     options: [
       "Two tiers",
       "Three tiers",
       "Four tiers",
       "Five tiers"
     ],
     answer: 1,
     explanation: "Own Funds are classified into three tiers based on their quality — primarily their permanence and loss-absorption capacity. Tier 1 is the highest quality (e.g. ordinary share capital, retained earnings), Tier 2 includes items like subordinated liabilities, and Tier 3 captures lower-quality items such as net deferred tax assets."
   },
   {
     topic: "SCR",
     text: "The Solvency Capital Requirement (SCR) under the Standard Formula is calibrated to which confidence level over which time horizon?",
     options: [
       "95.0% Value-at-Risk over a one-year period",
       "99.0% Value-at-Risk over a run-off period",
       "99.5% Value-at-Risk over a one-year period",
       "99.5% Tail Value-at-Risk over a one-year period"
     ],
     answer: 2,
     explanation: "The SCR corresponds to the Value-at-Risk of Basic Own Funds at a 99.5% confidence level over a one-year time horizon. This means the insurer should hold enough capital to survive a 1-in-200 year loss event."
   },
   {
     topic: "MCR",
     text: "What happens if an insurer's eligible Own Funds fall below the Minimum Capital Requirement (MCR)?",
     options: [
       "The insurer must submit a revised ORSA within 30 days",
       "The supervisor may ultimately withdraw the insurer's authorisation",
       "The insurer is placed into an automatic run-off of all existing policies",
       "A mandatory dividend suspension is triggered but operations continue"
     ],
     answer: 1,
     explanation: "Breaching the MCR represents the most severe regulatory threshold under Solvency II. If an insurer fails to restore Own Funds above the MCR within a short recovery period, the supervisory authority has the power to withdraw the firm's authorisation to write new business."
   },
   {
     topic: "Balance Sheet",
     text: "On the Solvency II balance sheet, the excess of assets over liabilities represents which of the following?",
     options: [
       "The Solvency Capital Requirement",
       "The Basic Own Funds",
       "The Risk Margin",
       "The Free Surplus"
     ],
     answer: 1,
     explanation: "The difference between the market-consistent value of assets and the total of technical provisions plus other liabilities equals the Basic Own Funds. When combined with any Ancillary Own Funds (off-balance-sheet items approved by the supervisor), this gives the total Own Funds available to meet capital requirements."
   },
   {
     topic: "Volatility Adjustment",
     text: "What is the primary purpose of the Volatility Adjustment (VA) under Solvency II?",
     options: [
       "To reflect the insurer's superior asset management skills",
       "To mitigate the effect of exaggerated bond spreads on the valuation of insurance liabilities",
       "To increase the SCR during periods of market stress",
       "To accelerate the convergence of the discount curve to the Ultimate Forward Rate"
     ],
     answer: 1,
     explanation: "The Volatility Adjustment is added to the risk-free rate curve to prevent artificial balance-sheet volatility when credit spreads widen beyond levels justified by fundamental default risk. It is particularly relevant for insurers that hold bonds to maturity and whose liabilities are not sensitive to short-term spread movements."
   },
   {
     topic: "Matching Adjustment",
     text: "Which condition must be satisfied for an insurer to apply the Matching Adjustment to its discount rate?",
     options: [
       "The insurer must use an internal model approved by the supervisor",
       "The portfolio of assets must be ring-fenced and assigned to a portfolio of obligations with predictable cash flows",
       "The insurer must demonstrate a Solvency Ratio above 150%",
       "The insurer must exclusively write long-term life business"
     ],
     answer: 1,
     explanation: "The Matching Adjustment may be applied when the insurer holds a ring-fenced, assigned portfolio of assets whose cash flows replicate the expected cash flows of the matched liabilities. The obligations must have predictable cash flows (e.g. annuities), and the asset portfolio must be managed separately from other business."
   }
 ];
 /* ── State ───────────────────────────────────────────── */
 var root = document.getElementById('insurerbrain-module-solvency2-bs');
 var qArea = root.querySelector('#ib-s2-question-area');
 var progText = root.querySelector('#ib-s2-progress-text');
 var progBar = root.querySelector('#ib-s2-progress-bar');
 var navEl = root.querySelector('#ib-s2-nav');
 var btnNext = root.querySelector('#ib-s2-btn-next');
 var btnRestart = root.querySelector('#ib-s2-btn-restart');
 var resultsEl = root.querySelector('#ib-s2-results');
 var currentQ = 0;
 var score = 0;
 var answered = false;
 var userAnswers = [];
 /* ── Render Question ─────────────────────────────────── */
 function renderQuestion() {
   var q = questions[currentQ];
   var keys = ['A', 'B', 'C', 'D'];
   answered = false;
   btnNext.disabled = true;
   btnNext.textContent = currentQ < questions.length - 1 ? 'Next \u2192' : 'See Results';
   progText.textContent = 'Question ' + (currentQ + 1) + ' / ' + questions.length;
   progBar.style.width = ((currentQ) / questions.length * 100) + '%';
var html = '
'; html += '
';
   html += '' + (currentQ + 1) + '';
   html += '' + q.topic + '';
html += '
'; html += '
' + q.text + '
'; html += '
';
   for (var i = 0; i < q.options.length; i++) {
html += '
';
     html += '' + keys[i] + '';
     html += '' + q.options[i] + '';
html += '
';
   }
html += '
'; html += '
'; html += '
';
   qArea.innerHTML = html;
   var opts = qArea.querySelectorAll('.ib-option');
   for (var j = 0; j < opts.length; j++) {
     opts[j].addEventListener('click', handleOptionClick);
     opts[j].addEventListener('keydown', function(e) {
       if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); handleOptionClick.call(this, e); }
     });
   }
 }
 /* ── Handle Answer ───────────────────────────────────── */
 function handleOptionClick() {
   if (answered) return;
   answered = true;
   var idx = parseInt(this.getAttribute('data-idx'), 10);
   var q = questions[currentQ];
   var isCorrect = idx === q.answer;
   if (isCorrect) score++;
   userAnswers.push({ qIndex: currentQ, chosen: idx, correct: isCorrect });
   var opts = qArea.querySelectorAll('.ib-option');
   for (var k = 0; k < opts.length; k++) {
     opts[k].classList.add('ib-disabled');
     if (parseInt(opts[k].getAttribute('data-idx'), 10) === q.answer) {
       opts[k].classList.add('ib-correct-answer');
     }
     if (parseInt(opts[k].getAttribute('data-idx'), 10) === idx && !isCorrect) {
       opts[k].classList.add('ib-wrong-answer');
     }
   }
   var fb = qArea.querySelector('#ib-s2-feedback');
   fb.className = 'ib-feedback ib-show ' + (isCorrect ? 'ib-fb-correct' : 'ib-fb-wrong');
   fb.innerHTML = '' + (isCorrect ? '\u2713 Correct' : '\u2717 Incorrect') + ''
     + '' + q.explanation + '';
   btnNext.disabled = false;
 }
 /* ── Show Results ────────────────────────────────────── */
 function showResults() {
   progBar.style.width = '100%';
   progText.textContent = 'Completed';
   qArea.style.display = 'none';
   navEl.style.display = 'none';
   resultsEl.style.display = 'block';
   var pct = Math.round((score / questions.length) * 100);
   var circumference = 2 * Math.PI * 42; // r=42
   var msg = pct >= 80 ? 'Excellent — you have a strong grasp of the Solvency II balance sheet.'
           : pct >= 50 ? 'Good effort. Review the explanations below to strengthen weaker areas.'
           : 'Keep studying. The Solvency II economic balance sheet has many nuances worth revisiting.';
var html = '
'; html += '
';
   html += '<svg viewBox="0 0 100 100"><circle class="ib-ring-bg" cx="50" cy="50" r="42"/>';
   html += '<circle class="ib-ring-fill" id="ib-s2-ring" cx="50" cy="50" r="42"/></svg>';
html += '
' + pct + '%'; html += '' + score + ' / ' + questions.length + '
'; html += '
'; html += '
' + msg + '
'; html += '
';
   for (var i = 0; i < userAnswers.length; i++) {
     var ua = userAnswers[i];
     var q = questions[ua.qIndex];
html += '
';
     html += ''
           + (ua.correct ? '\u2713' : '\u2717') + '';
     html += '' + q.text + '';
html += '
';
   }
html += '
'; html += '
';
   html += '<button class="ib-btn" id="ib-s2-btn-retry">Retake Quiz</button>';
html += '
'; html += '
';
   resultsEl.innerHTML = html;
   // Animate ring
   setTimeout(function() {
     var ring = root.querySelector('#ib-s2-ring');
     if (ring) {
       ring.style.strokeDashoffset = circumference - (circumference * pct / 100);
     }
   }, 60);
   var retryBtn = resultsEl.querySelector('#ib-s2-btn-retry');
   if (retryBtn) retryBtn.addEventListener('click', resetQuiz);
 }
 /* ── Reset ───────────────────────────────────────────── */
 function resetQuiz() {
   currentQ = 0;
   score = 0;
   answered = false;
   userAnswers = [];
   resultsEl.style.display = 'none';
   resultsEl.innerHTML = ;
   qArea.style.display = 'block';
   navEl.style.display = 'flex';
   btnRestart.style.display = 'none';
   renderQuestion();
 }
 /* ── Next Button ─────────────────────────────────────── */
 btnNext.addEventListener('click', function() {
   if (!answered) return;
   currentQ++;
   if (currentQ >= questions.length) {
     showResults();
   } else {
     renderQuestion();
   }
 });
 btnRestart.addEventListener('click', resetQuiz);
 /* ── Init ─────────────────────────────────────────────── */
 renderQuestion();

})(); </script>