Products Insurance and reinsurance
ICS
Insurance Capital Standard
Group capital built up from its charges, with every step and every part shown.
The ICS is the IAIS capital standard for internationally active insurance groups. GraphAtlas takes the charges that the models of the group produce and works the rest as the texts prescribe, which is the aggregation through the correlation tables, operational risk, the tax effect and the limits on the capital resources that count. It shows each step, the part of the requirement that rests on each charge, and a receipt that a second program reproduces.
Try the calculation Request a walkthrough
- Verification
- 20 statements. 6 proved, 1 certified, 13 tested.
- Regime
- IAIS Insurance Capital Standard, Level 1 and 2 texts of December 2024
- Set by
-
- International Association of Insurance Supervisors
- Built for
-
- Group risk and capital
- Group supervisors liaison
- Finance
- Version
- 2.0
Try it
Run it on sample data
Choose the group, the IAIS example or the mutual, or change any figure, and read the requirement as you type. The build-up shows each step from the charges to the requirement, and the ledger shows which charges carry it. Open the tax effect to switch to the limited rule, and the capital resources to count what the group holds against the requirement.
Fig. 1 The ICS capital requirement of a group, from its charges to the capital that covers it
Verifying receipt
The group
A composite group, with the limits on its capital resources biting. Its figures are illustrative. All amounts are in million euros.
The ICS capital requirement is 2,967 million euros. The insurance risk charge is 3,431, and the tax effect takes 604 off it. The capital resources that count cover it 1.86 times.
The charges
A charge is the fall in capital resources under a stress, after management actions. The group’s own models work it out, and the plate takes it as given. A stress that raises capital has a charge of zero.
Operational risk435
Each line of business takes the larger of a share of its premium and a share of its liabilities, and adds a share of the premium growth above 20%. The charge is added after the aggregate, and it is not diversified.
The tax effect22%, default rule
Work the rate out from the entities
One entity to a line, the name, the rate in per cent and the earnings of the last three years, apart by commas. A loss counts as zero, and the earnings weight the rates.
3 entities read. Each loss counts as zero, the earnings of the three years weight the rates, and the group rate is 23.03%. The IAIS prints 23.03% for these entities.
The rule
Capital resources5,529 counts
From the charges to the requirement
| Step | EUR m | Drawn to scale |
|---|---|---|
| The charges on their own | 6,350 | |
| Diversification inside the categories | −1,691 | |
| Diversification between the categories | −1,663 | |
| Aggregate of the five categories | 2,996 | |
| Operational risk | +435 | |
| Insurance risk charge | 3,431 | |
| Tax effect | −604 | |
| Non-insurance entities | +140 | |
| ICS capital requirement | 2,967 |
Each bar starts where the one before it ends. A hatched bar takes away.
Where the insurance risk charge comes from
A part is what a charge adds to the insurance risk charge once everything is counted. The text has no rule for it, and this is the Euler allocation, so the parts add up to the charge. The parts add up to the charge.
| Charge | On its own | Part | Diversified away | Size of the part |
|---|---|---|---|---|
| 989 after its own table | 1,680 | 565 | 1,115 | |
| Non-life | 780 | 391 | 389 | |
| 571 after its own table | 880 | 304 | 576 | |
| 1,729 after its own table | 2,420 | 1,420 | 1,000 | |
| Credit | 590 | 316 | 274 | |
| Aggregate of the five categories | 6,350 | 2,996 | 3,354 | |
| Operational riskNot diversified | 435 | 435 | – | |
| Insurance risk charge | 6,785 | 3,431 | 3,354 |
The tax effect
The default rule takes 80% of the notional tax effect, which is 604, off the insurance risk charge.
| Figure | EUR m |
|---|---|
| Notional tax effectThe insurance risk charge, 3,431, times the group rate of 22.00%. | 755 |
| Taken offThe default rule takes 80% of the notional effect. | 604 |
Capital resources that count
| Element | Held | Limit | Counts | Left out |
|---|---|---|---|---|
| Tier 1 Unlimited | 3,600 | – | 3,600 | – |
| Tier 1 Limited | 520 | 297 | 445 | – |
| Tier 1 that counts | 4,120 | – | 4,045 | – |
| Tier 2 Paid-Up and other elements | 1,200 | – | 1,200 | – |
| Tier 2 basket | 550 | 445 | 445 | 105 |
| Tier 2 Non-Paid-Up | – | 0 | – | – |
| Moved from Tier 1 Limited | – | – | 75 | – |
| Tier 2 together | 1,720 | 1,483 | 1,483 | 237 |
| Capital resources that count | 5,870 | – | 5,529 | 341 |
- Tier 1 Limited counts up to 10% of the requirement, and up to 15% where what is above 10% has a loss absorbency mechanism. Tier 2 counts up to 50%.
- The basket takes the pension fund asset at 50%, the deferred tax asset at 100% and software intangibles at 10%, up to 15% of the requirement.
- 75 of Tier 1 Limited is over its limit and moves to Tier 2, where it counts if there is room.
5,529 of capital resources count against a requirement of 2,967, a cover of 1.86 times. The text defines no ICS ratio, so this is the capital that counts divided by the requirement, and the figure is ours.
The correlation tablesFour tables
The charges are put together with these tables. The check factors each one as L D L transpose in exact fractions and rebuilds it entry by entry, which shows that it is positive definite, so that every square root in the formula is real.
The check runs in this page, on the tables as they are typed in the source.
| Mortality | Longevity | Morbidity and disability | Lapse | Expense | |
|---|---|---|---|---|---|
| Mortality | 1 | −0.25 | 0.25 | 0 | 0.25 |
| Longevity | −0.25 | 1 | 0 | 0.25 | 0.25 |
| Morbidity and disability | 0.25 | 0 | 1 | 0 | 0.5 |
| Lapse | 0 | 0.25 | 0 | 1 | 0.5 |
| Expense | 0.25 | 0.25 | 0.5 | 0.5 | 1 |
| Interest rate | Spread, up stress | Equity | Real estate | Currency | Asset concentration | |
|---|---|---|---|---|---|---|
| Interest rate | 1 | 0.25 | 0.25 | 0.25 | 0.25 | 0 |
| Spread, up stress | 0.25 | 1 | 0.75 | 0.5 | 0.25 | 0 |
| Equity | 0.25 | 0.75 | 1 | 0.5 | 0.25 | 0 |
| Real estate | 0.25 | 0.5 | 0.5 | 1 | 0.25 | 0 |
| Currency | 0.25 | 0.25 | 0.25 | 0.25 | 1 | 0 |
| Asset concentration | 0 | 0 | 0 | 0 | 0 | 1 |
| Interest rate | Spread, down stress | Equity | Real estate | Currency | Asset concentration | |
|---|---|---|---|---|---|---|
| Interest rate | 1 | 0.25 | 0.25 | 0.25 | 0.25 | 0 |
| Spread, down stress | 0.25 | 1 | 0 | 0 | 0.25 | 0 |
| Equity | 0.25 | 0 | 1 | 0.5 | 0.25 | 0 |
| Real estate | 0.25 | 0 | 0.5 | 1 | 0.25 | 0 |
| Currency | 0.25 | 0.25 | 0.25 | 0.25 | 1 | 0 |
| Asset concentration | 0 | 0 | 0 | 0 | 0 | 1 |
| Life | Non-life | Catastrophe | Market | Credit | |
|---|---|---|---|---|---|
| Life | 1 | 0 | 0.25 | 0.25 | 0.25 |
| Non-life | 0 | 1 | 0.25 | 0.25 | 0.25 |
| Catastrophe | 0.25 | 0.25 | 1 | 0.25 | 0.25 |
| Market | 0.25 | 0.25 | 0.25 | 1 | 0.25 |
| Credit | 0.25 | 0.25 | 0.25 | 0.25 | 1 |
Against a second program
Agrees to fourteen digits
The program takes the tables as they are printed and the one square root of each table at sixty digits. Its figures for this group are set beside the ones here.
| Figure | Here | Second program | Difference |
|---|---|---|---|
| Life charge | 988.6354 | 988.6354 | 0 |
| Catastrophe charge | 571.1392 | 571.1392 | 0 |
| Market charge | 1,729.2195 | 1,729.2195 | 0 |
| Aggregate of Table 34 | 2,996.4502 | 2,996.4502 | 0 |
| Operational risk | 434.3000 | 434.3000 | 0 |
| Insurance risk charge | 3,430.7502 | 3,430.7502 | 0 |
| Tax effect | 603.8120 | 603.8120 | 1.9×10−16 |
| ICS capital requirement | 2,966.9382 | 2,966.9382 | 1.5×10−16 |
| Capital resources that count | 5,528.5098 | 5,528.5098 | 0 |
Inputs and outputs
What goes in. What comes out
The plate runs a slice of the engine. This is the whole shape of it.
What goes in
- Charges
- Eighteen charges, each the fall in capital resources under one stress after management actions, from the models of the group. A charge is zero or more, and at most 1,000,000,000,000. A stress that raises capital has a charge of zero.
- Operational exposures
- For non-life business and for life business with risk, the premium of the year, the premium of the year before and the gross current estimate. For life business where the policyholder bears the risk, the gross current estimate.
- Non-insurance charge
- The risk charge of the entities that are not insurers, which the text adds after the tax effect.
- Tax
- The group effective tax rate, which the plate can work out from the entities of the group, and the rule. Under the limited rule, up to eight tax sub-groups with their liabilities and carry-back capacity, five years of earnings, a projected loss and the net deferred tax.
- Capital resources
- Tier 1 Unlimited and Limited with the part of Limited that has a loss absorbency mechanism, Tier 2, Non-Paid-Up, the three items of the Tier 2 basket, and whether the group is a mutual. They are optional.
What comes out
- Charge of each category
- Life, non-life, catastrophe, market and credit, each after its own table.
- Insurance risk charge
- The five categories put together with Table 34, plus operational risk, with the diversification that was taken away within the categories and between them.
- Tax effect
- What comes off the insurance risk charge, with the four components under the limited rule and what each tax sub-group counts.
- ICS capital requirement
- The insurance risk charge less the tax effect, plus the charge for the non-insurance entities.
- Capital resources that count
- What counts, what the limits leave out and the limit on each element, with the cover of the requirement.
- Parts of the charge
- The part of the insurance risk charge that rests on each charge. The parts add up to it, and a charge that offsets another takes a negative part.
- Receipt
- A hash of the rule, every number that went in and every number that came out. Anyone can recompute it.
What the plate covers
In the plate above
- The five categories of insurance risk with Table 6 for life, independent catastrophe scenarios, the two tables of six rows from Table 16 for the two directions of the spread stress, and Table 34 for the top.
- The operational charge of Table 33, added after the aggregate and not diversified.
- The group effective tax rate of a set of entities, and the tax effect under the default rule and under the limited rule with its four components.
- The limits on Tier 1 Limited, Tier 2 and the Tier 2 basket, for a group and for a mutual, and the cover of the requirement.
- The part of the requirement that rests on each charge, the correlation tables with an exact check that each is positive definite, and a second program in exact fractions that agrees on the three groups.
In the licensed engine, not the plate
- The charges. The plate takes them as given. The stress scenarios, the valuation and the management actions behind each charge belong to the product of the group and not to a page.
- The non-insurance entities. The charge for them has its own rules, and the plate takes it as one figure.
- The cap on management actions of L1-84, which limits what they may take off a charge. The charges here are taken after them.
- Whether capital resources are eligible and what is deducted from them. The plate takes the amount of each tier as it is held.
- National texts. A jurisdiction that applies the ICS can differ from the IAIS text, and the plate follows the IAIS text.
Clause map
Every rule has an address
Each row names the clause, the function that carries it and the statements that check it. A test opens each file and confirms the function exists.
| Reference | Rule | Carried by | Checked by |
|---|---|---|---|
| L2-143, Table 6 | The life charge is the root of the form of Table 6 over the charges of the five life risks. Mortality and longevity offset each other at minus 25 per cent, which is the only negative entry. The charge is never below 96.8 per cent of the largest charge and never above their sum. A longevity charge of a quarter of the mortality charge takes it 3.2 per cent below the mortality charge. | LIFE_ src/ | Proved IC-01 Proved IC-02 Certified IC-07 Tested IC-08 Tested IC-09 |
| L2-199 | The four catastrophe scenarios are independent. The catastrophe charge is the root of the sum of their squares. | CATASTROPHE_ src/ | Tested IC-08 Tested IC-09 |
| L2-203, Table 16 | The market charge has seven rows, of which two are the up stress and the down stress of one spread. As printed the table is not a correlation matrix, because the two spread rows are fully correlated with each other and differ in their correlation with equity and real estate. A spread charge is one charge, so it counts in one row, and the table of six rows that is left for each direction is positive definite. | MARKET_ src/ | Proved IC-03 Certified IC-07 Tested IC-08 Tested IC-09 |
| Rule of this product, the spread stress | The text gives a spread charge for an up stress and for a down stress, and does not say which row of Table 16 the larger uses. The engine reads the row of the direction that gave the larger. A down stress that grows past the up stress turns the row, and the market charge can then fall, because equity is correlated at 75 per cent with the spread under the up stress and at nothing under the down stress. Only when the two are equal does the engine take the larger of the two results, and it says so. | SPREAD_ src/ | Tested IC-09 Tested IC-17 |
| L2-335, Table 34 | The five categories are life, non-life, catastrophe, market and credit. Life and non-life are independent, and every other pair has a correlation of 25 per cent. The aggregate is at least the root of the sum of the squares of the five charges and at most their sum. | TOP_ src/ | Proved IC-03 Certified IC-07 Tested IC-08 |
| L1-141 and L2-329 to L2-334, Table 33 | The operational charge of a line of business is the larger of a share of its premium and a share of its liabilities, plus a share of the premium that is above 120 per cent of the year before. Life business where the policyholder bears the risk has a share of its liabilities. The charge is added after the aggregate and is never diversified. | operational src/ | Tested IC-08 Tested IC-10 |
| L1-141 and L2-335, the requirement | The insurance risk charge is the aggregate of the five categories plus the operational charge. The tax effect comes off it, and the charge for the non-insurance entities is added after, with no tax effect of its own. A group with nothing has a requirement of zero. | ics src/ | Tested IC-11 |
| L2-339 | The group effective tax rate is the average of the rates of the insurance entities, weighted by the earnings that each made in the previous three years. A loss counts as zero in its own year. The three entities that the IAIS prints give 23.03 per cent. | group src/ | Tested IC-12 |
| L2-348 | Under the default rule the tax effect is 80 per cent of the notional tax effect, which is the requirement before tax times the group effective tax rate. | UTILISATION_ src/ | Proved IC-05 Tested IC-13 |
| L2-349 to L2-353 | The group-wide supervisor can limit the tax effect to four components. Component a is the sum over the tax sub-groups of the smaller of its share of the notional effect, by insurance liabilities, and its carry-back capacity, less 15 per cent. Component b is half of five years of earnings times the group rate, and zero for a projected loss. Component c is a net deferred tax liability and d a net asset held to 15 per cent of the requirement. The sum a plus b plus c less d is held between zero and 80 per cent of the notional effect. The IAIS example gives 2,005. | tax src/ | Proved IC-05 Tested IC-13 |
| L1-72, L2-122 and L2-127 | Tier 1 Limited counts up to 10 per cent of the requirement, or 15 per cent when the part above 10 per cent has a loss absorbency mechanism. What is above the limit moves to Tier 2, which counts up to 50 per cent. The Tier 2 basket is half of the pension fund asset, all of the deferred tax asset and a tenth of the software intangibles, held to 15 per cent. | qualifying src/ | Proved IC-06 Tested IC-14 |
| L2-129 | A mutual counts Tier 1 Limited up to 30 per cent of the requirement and Non-Paid-Up up to 10 per cent, and Tier 1 Limited and Tier 2 together up to 60 per cent. | LIMIT_ src/ | Proved IC-06 Tested IC-14 |
| Rule of this product, the cover | The text defines no ICS ratio. The cover is the capital resources that count divided by the requirement, and the figure is ours. The limits are shares of the requirement, so they rise and fall with it. | cover src/ | Tested IC-14 |
| Rule of this product, what a group may say | A charge is zero or more, finite and at most 1,000,000,000,000, and a charge below zero is refused with the reason that a stress which raises capital has a charge of zero. A wrong exposure, non-insurance charge or tax rule is refused with a message that says what is wrong. The checks run in a fixed order. A group that gives no resources gets no result for them, which is not resources of zero. | ics src/ | Tested IC-15 |
| Rule of this product, where the requirement comes from | The text has no rule for where the capital comes from. A risk takes its share inside its category, the category takes its share of Table 34, and the part of the risk is the product of the two. This is the Euler allocation, and each part is what the insurance risk charge changes by when its charge is scaled. The parts add up to the charge, the operational charge is a part of its own, and a charge that offsets another takes a negative part. | ics src/ | Proved IC-04 Tested IC-16 |
| Rule of this product, a second program | A program that shares no code with the engine works every case in exact fractions and takes each square root once, at sixty digits. For 50 cases that use both directions of the spread and a tie, every outcome of the tax rule, both lines of operational risk and every limit on capital resources, the two agree to 3e-15. | ics src/ | Tested IC-18 |
| Rule of this product, what the requirement does | The requirement doubles when every amount doubles, to the last digit, through the tax rule and the limits. The tax effect never takes it below a fifth of the insurance risk charge. A larger charge never gives a smaller requirement, except in a pair that offsets and in the spread. The tax effect never falls when earnings, the deferred tax liability or carry-back capacity rise. | ics src/ | Tested IC-19 |
| Receipt of a calculation | The receipt covers the rule, every number that went in and every number that came out, in a fixed order, with the tax rule and its sub-groups. It is the same for the same input and changes when any input moves by one unit or any choice is turned over. | ics src/ | Tested IC-20 Tested KE-03 |
Verification
What we claim, and how it is checked
Every statement is registered, and each says which level of assurance it has earned. The ladder is explained on the verification page.
Proved
True for every input.
- IC-01
For any five charges of the life risks that are not below zero, the quantity under the root of the life charge, which is the form of Table 6 of the Level 2 text, is at least 15/16 of the square of each charge and at most the square of their sum. So the life charge is never below the root of 15/16, which is 96.8 per cent, of its largest charge, and never above the sum of the charges. The floor is reached with a mortality charge of 4 and a longevity charge of 1, so that no higher floor can be proved.
24 checks, decided by Z3 5.3.3.0 (WebAssembly) and rerun from the emitted file by Z3 5.3.3 (native) and cvc5 1.4.2 (native, nl-cov). 4 broken variants are refuted. proofs/smt2/IC-01.smt2
- IC-02
With a mortality charge M above zero and a longevity charge L, and nothing else in the life risks, the quantity under the root of the life charge is M² + L² − M × L / 2. It is below M² for any L above zero and below M / 2, it equals M² at M / 2, and it is above M² beyond. It is lowest at L = M / 4, where it is 15/16 of M². A longevity charge of a quarter of the mortality charge therefore lowers the life charge by 3.2 per cent, and a larger one lowers the requirement too, as long as it is below half.
5 checks, decided by Z3 5.3.3.0 (WebAssembly) and rerun from the emitted file by Z3 5.3.3 (native) and cvc5 1.4.2 (native, nl-cov). 4 broken variants are refuted. proofs/smt2/IC-02.smt2
- IC-03
For charges that are not below zero, the quantity under the root of the market charge, in the row of Table 16 for an upward spread stress and in the row for a downward one, and the quantity under the root of the top level of Table 34, are each at least the sum of the squares of the charges and at most the square of their sum. So each aggregate is at least the root of the sum of the squares, which is what no correlation at all gives, and at most the sum of the charges. The charge of a category is real, and diversification never lifts it above the plain sum.
31 checks, decided by Z3 5.3.3.0 (WebAssembly) and rerun from the emitted file by Z3 5.3.3 (native) and cvc5 1.4.2 (native, nl-cov). 3 broken variants are refuted. proofs/smt2/IC-03.smt2
Show the other 3 Show fewer
- IC-04
Before the operational charge, a life, catastrophe or market risk has the part of the insurance risk charge that is its share inside its category, c × (R × c) / A, times the weighted charge of the category over the aggregate. Non-life and credit take their own charge times that factor. The parts add up to the aggregate. The terms c × (R × c) of each table add up to the square of the charge of their category, and the terms of Table 34 add up to the square of the aggregate. Terms that add up to the square of a number add up to it when divided by it. A factor times shares that add up to a charge adds up to the factor times it.
7 checks, decided by Z3 5.3.3.0 (WebAssembly) and rerun from the emitted file by Z3 5.3.3 (native) and cvc5 1.4.2 (native, nl-cov). 5 broken variants are refuted. proofs/smt2/IC-04.smt2
- IC-05
The tax effect taken off the insurance risk charge lies between zero and 80 per cent of the notional effect, which is the requirement times the group effective tax rate, so at least a fifth of the requirement is left. The carry-back component is at most 85 per cent of the notional effect. The net deferred tax asset is at most 15 per cent of the requirement and is never held against a net liability. An asset can only lower what is used, and a sum of components between nothing and the cap is what is used. It holds for any notional effect up to the requirement and any three sub-groups, capacity, earnings and deferred taxes.
10 checks, decided by Z3 5.3.3.0 (WebAssembly) and rerun from the emitted file by Z3 5.3.3 (native) and cvc5 1.4.2 (native, nl-cov). 6 broken variants are refuted. proofs/smt2/IC-05.smt2
- IC-06
For any capital resources and any requirement, what counts and what is left out add up to what is held, for a group that is not mutual and for a mutual. For a group that is not mutual, Tier 1 Limited counts up to 15 per cent of the requirement, Tier 2 up to 50 per cent and the basket up to 15 per cent, and none of the Non-Paid-Up capital counts. For a mutual, Tier 1 Limited counts up to 30 per cent, Non-Paid-Up up to 10 per cent, and Tier 1 Limited and Tier 2 together up to 60 per cent. What Tier 1 Limited has over its limit moves to Tier 2. What is left out is not below zero and what counts is not above what is held.
20 checks, decided by Z3 5.3.3.0 (WebAssembly) and rerun from the emitted file by Z3 5.3.3 (native) and cvc5 1.4.2 (native, nl-cov). 7 broken variants are refuted. proofs/smt2/IC-06.smt2
Certified
True for the case in hand, with evidence anyone can recheck.
- IC-07
Four correlation tables are positive definite. They are Table 6 for life, Table 34 for the categories, and the six by six tables of Table 16 for the up stress and for the down stress of the spread. An exact LDL factorisation shows it, a separate checker accepts it, and a certificate with one pivot or one entry changed is refused. The engine finds no certificate for the whole seven row Table 16, where a vector makes the form negative, so the two spread rows are never in one aggregation. It finds none for a life table with mortality and longevity at minus 100 per cent, or for a top table in which a pair is correlated beyond what the others allow.
tests/kernel/ics.test.tssrc/kernel/certify.tssrc/kernel/rational.ts
Tested
True on every input we tried.
- IC-08
The tables and rules are as the IAIS Level 2 text of 5 December 2024 prints them. Table 6 has the five life risks, symmetric, and only mortality and longevity offset each other, at minus 25 per cent. The four catastrophe scenarios are independent. Table 16 has seven rows, and each direction of the spread stress has the six by six table left when the other is taken out. Table 34 has life and non-life independent and every other pair at 25 per cent. Table 33 has the factors of operational risk, with growth above 20 per cent. The tax rules are those of L2-339 and L2-348 to L2-353, and the limits on resources those of L2-122, L2-127 and L2-129.
tests/kernel/ics.test.ts
- IC-09
The life charge is the root of the form of Table 6, and a longevity charge under half the mortality charge lowers it below what mortality alone sets, which is what the negative entry means. The catastrophe charge is the root of the sum of the squares of the four scenarios. The market charge is read from Table 16 in the row of the larger of the two spread stresses, and the smaller has no effect. When the stresses are equal and not zero the text gives no direction, so the engine takes the larger of the two results and says that there was a tie. With no spread charge there is none.
tests/kernel/ics.test.ts
- IC-10
The operational charge of a line is the larger of its premium charge and its liability charge, plus the growth charge, with the charge on life business without risk added for the group, at the factors of Table 33. Premium counts as growth only above 120 per cent of the year before, at the factor of its line and on top of the larger charge, and at exactly 120 per cent or after a fall there is none. The engine says which of premium and liabilities decides, and takes the premium when they are equal. A group with no business has none. The charge is added after the aggregation and is never diversified.
tests/kernel/ics.test.ts
Show the other 10 Show fewer
- IC-11
The five categories are aggregated with Table 34, so life and non-life, which are independent, add in quadrature, and five equal charges give the root of 9.5 times the square. The tax effect comes off the insurance risk charge, and the charge for the non-insurance entities is added after it with no tax effect of its own. A group with nothing has a requirement of zero. The undiversified sum is every charge and the operational charge, and two diversification figures, between the categories and within them, explain the rest. The sample group has the charges that the second program confirms.
tests/kernel/ics.test.ts
- IC-12
The group effective tax rate weights the rate of each entity by the earnings that it made in the previous three years. The example that the IAIS prints, three entities at 30, 25 and 20 per cent, gives 23.03 per cent. Each loss is set to zero in its own year and not against the sum of the three years. The rate of one entity is its own, and the unit of the earnings does not change the result. When no entity made a profit there is nothing to weight the rates by, and the engine refuses, as it does for an entity that is not one.
tests/kernel/ics.test.ts
- IC-13
Under the default rule the tax effect is 80 per cent of the notional effect, which is the requirement times the group effective tax rate. A supervisor can limit it by four components. Component a is the smaller of the share by liabilities of the notional effect and the carry-back capacity of each tax sub-group, summed, less 15 per cent. Component b is half of five years of earnings times the rate, and zero for a projected loss. Component c is a net deferred tax liability and d a net asset held to 15 per cent of the requirement, and a group has one of them. The sum a plus b plus c less d is held between zero and 80 per cent of the notional effect. The IAIS example gives 2,005.
tests/kernel/ics.test.ts
- IC-14
Tier 1 Limited counts up to 10 per cent of the requirement, or 15 per cent when the part above 10 has a loss absorbency mechanism. What is above the limit moves to Tier 2, which counts up to 50 per cent. The Tier 2 basket is half of the pension fund asset, all of the deferred tax asset and a tenth of the software intangibles, held to 15 per cent. A mutual counts Tier 1 Limited up to 30 per cent, Non-Paid-Up up to 10 per cent, and Tier 1 Limited with Tier 2 up to 60 per cent. The limits are shares of the requirement after tax and with the non-insurance charge, so they rise and fall with it, and what does not count is exactly what is above them. The text defines no ICS ratio.
tests/kernel/ics.test.ts
- IC-15
A charge below zero is refused with a message that names it and says that a charge is the fall in capital resources under its stress, so a stress that raises them has a charge of zero. A charge that is not finite, or is above 1,000,000,000,000 in size, is refused by name. A wrong exposure, non-insurance charge or tax rule is refused with a message that says what is wrong. The checks run in a fixed order, charges first, then exposures, the non-insurance charge, the tax rule and last the resources. A group that gives no resources gets no result for them, which is not resources of zero.
tests/kernel/ics.test.ts
- IC-16
The text has no rule for where the capital comes from. The product gives one, the Euler allocation through three levels. A risk takes its share inside its category, the category takes its share of Table 34, and the part of the risk is the product of the two. The parts add up to the insurance risk charge for every case of the second program. The operational charge is a part of its own, and non-life and credit have a line each. Each part is what the insurance risk charge changes by when its charge is scaled, which a numerical derivative confirms for eleven charges. A longevity charge under a quarter of the mortality charge takes a negative part.
tests/kernel/ics.test.ts
- IC-17
The text gives a spread charge for an up stress and for a down stress, and does not say which row of Table 16 the larger of the two uses. The engine reads the row of the direction that gave the larger. So a down stress that grows past the up stress turns the row, and the market charge can then fall, because equity is correlated at 75 per cent with the spread under the up stress and at nothing under the down stress. Only when the two are equal and not zero does the engine take the larger of the two results, and the result says so.
tests/kernel/ics.test.ts
- IC-18
A second program that shares no code with the engine works every case in exact fractions and takes each square root once, to 60 digits. For 50 cases that use both directions of the spread and a tie, every outcome of the tax rule, both lines of operational risk on both of their binds and every limit on capital resources, every figure agrees with the engine to a relative error under 3e-15, and the amounts left out, which are differences of sums, to 1e-14. The saved answers are what the program says now, so that nobody edited them by hand.
tests/kernel/ics.test.tsscripts/verify/ics_oracle.pytests/support/ics-oracle.json
- IC-19
Over generated groups, the requirement doubles when every amount doubles, to the last digit, through the tax rule and the limits. The tax effect never takes the requirement below a fifth of the insurance risk charge, and the parts add up to that charge. A larger charge never gives a smaller requirement, except in a pair that offsets and in the spread. Each category charge lies between its largest part and the sum of its parts. The group tax rate lies between the lowest and the highest rate of the entities that made a profit. The tax effect never falls when earnings, the deferred tax liability or carry-back capacity rise, and never rises with the asset.
tests/kernel/ics.test.ts
- IC-20
The receipt of a calculation holds the rule, every number that went in and every number that came out, in a fixed order. It carries the tax rule with its sub-groups, and no resources as nothing. It is the same for the same input, and different when any input moves by one unit or any choice is turned over. It never carries a minus zero, which would give another hash.
tests/kernel/ics.test.ts
Use it
The same call, anywhere
This sample is written from the input the plate starts with, so the code and the numbers cannot drift apart.
import {
groupEffectiveTaxRate,
ics,
icsReceiptPayload,
} from '@graphatlas/kernel/ics';
import type { IcsInput } from '@graphatlas/kernel/ics';
import { receipt } from '@graphatlas/kernel/receipt';
// The example of section 6.3 of the IAIS technical note on the ICS. The note gives a
// requirement before tax of 10,000 and not what it is made of, so all of it is mortality here.
const input: IcsInput = {
charges: {
life: {
mortality: 10000,
longevity: 0,
morbidity: 0,
lapse: 0,
expense: 0,
},
nonLife: 0,
catastrophe: {
natural: 0,
terrorism: 0,
pandemic: 0,
creditAndSurety: 0,
},
market: {
interestRate: 0,
spreadUp: 0,
spreadDown: 0,
equity: 0,
realEstate: 0,
currency: 0,
concentration: 0,
},
credit: 0,
},
exposures: {
nonLife: { gwp: 0, gwpPrevious: 0, liabilities: 0 },
lifeRisk: { gwp: 0, gwpPrevious: 0, liabilities: 0 },
lifeNonRiskLiabilities: 0,
},
tax: {
rate: 0.3,
limit: {
subGroups: [
{ name: 'US', liabilities: 8000, carryBack: 100 },
{ name: 'UK', liabilities: 2000, carryBack: 1000 },
{ name: 'Korea', liabilities: 6000, carryBack: 0 },
{ name: 'Japan', liabilities: 4000, carryBack: 0 },
],
earnings: 8100,
projectedLoss: false,
dtl: 700,
dta: 250,
},
},
nonInsurance: 0,
resources: null,
};
const run = ics(input);
const hash = await receipt(icsReceiptPayload(input, run));
// Section 6.1 of the same note. Three entities, each with a rate and the earnings of three years.
const rate = groupEffectiveTaxRate([
{ name: 'Entity A', rate: 0.3, earnings: [500, 700, -200] },
{ name: 'Entity B', rate: 0.25, earnings: [1000, -100, 900] },
{ name: 'Entity C', rate: 0.2, earnings: [2000, 500, 1500] },
]); const out = {
insuranceRiskCharge: 10000,
tax: {
notional: 3000,
cap: 2400,
a: 340,
b: 1215,
c: 450,
d: 0,
utilisable: 2005,
},
requirement: 7995,
rate: 0.2303,
receipt: '295fe1c1374532438415e2ed3f416164e15bbf5d1dc0187c84422a33d8ddf82d',
}; The call and the numbers come from the engine that built this page, run on the same input as the plate above. The sample is the example of the tax effect that the IAIS works through, and the plate has it as one of its three groups. The tax figures are the ones that the note prints, and the rate is the example of its section 6.1. The plate compares its own receipt with the one printed here. Values are rounded to four places for display. The receipt hashes the unrounded numbers.
Runs on
- Browser
- Edge
- Node.js
- Python
- JVM
- .NET
- Excel
- Command line
- Container
Green surfaces are measured on every build of this site. Each must return the same receipt, bit for bit. The others are packaged targets that the build does not measure. How the platform works
Changes
When the rule moves, so does the engine
Publications that touch this regime, and the release that answered each.
-
Clarification on the valuation of insurance contract liabilities
Shipped as ICS 1.9, 11 days later