{"abstract":"A 3-year certain period guarantees four payments.","category":"Actuarial life tables","checks":8,"contract":"Input l (from issue age), defer n, guarantee g, term (None = to end of table), i. Payments at times n..end-1; the first g payments are certain once the annuitant survives the deferral (probability l_n/l_0), later payments need survival to k. PV = sum v^k * probability, rounded to 6. l_0=0 or negative n/g -> 'invalid'.","evaluation_group":"w2-actuarial_life_tables-deferred-annuity","failed_approach":"Measuring the guarantee from issue shortens it for deferred contracts.","family":"w2-actuarial_life_tables-deferred-annuity-guarantee-length","id":"FA-63526","implementations":{"attempt":{"sha256":"5b97e615b8343d72e128bbc2b8a466262fd991a2fe5a257686e42f11ed01e2e6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    l=x['l']; n=x['defer']; g=x['guarantee']\n    if l[0]==0 or n<0 or g<0: return 'invalid'\n    v=1/(1+Fraction(x['i'],1000))\n    end=len(l) if x['term'] is None else n+x['term']\n    pv=Fraction(0)\n    for k in range(n,end):\n        if k<g: p=Fraction(l[n],l[0]) if n<len(l) else Fraction(0)\n        elif k<len(l): p=Fraction(l[k],l[0])\n        else: p=Fraction(0)\n        pv+=v**k*p\n    return round(float(pv),6)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['deferred life annuity', {'l': [100000, 99425, 98729, 97949, 97087, 96107, 95028, 93784, 92377, 90810, 89083, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.165092], ['deferred with guarantee', {'l': [100000, 99601, 99126, 98552, 97886, 97134, 96271, 95279, 94142, 92851, 91413, 0], 'defer': 2, 'guarantee': 3, 'term': None, 'i': 40}, 6.88609], ['temporary payout', {'l': [100000, 99494, 98894, 98222, 97442, 96531, 95492, 94358, 93079, 91645, 90025, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 50}, 3.119058], ['guarantee and temporary', {'l': [100000, 99742, 99421, 99023, 98573, 98051, 97453, 96723, 95899, 94945, 93900, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 30}, 4.38474], ['immediate start with guarantee', {'l': [100000, 99473, 98853, 98163, 97396, 96503, 95471, 94337, 93076, 91640, 90021, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 30}, 9.199942], ['guarantee beyond table', {'l': [100000, 99732, 99382, 98953, 98453, 97891, 97269, 96569, 95775, 94887, 93901, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 40}, 3.086582], ['negative deferral rejected', {'l': [100000, 99743, 99467, 99108, 98688, 98191, 97622, 96977, 96250, 95440, 94526, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 50}, 'invalid'], ['long guarantee', {'l': [100000, 99500, 98941, 98284, 97559, 96739, 95786, 94750, 93541, 92187, 90659, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 50}, 6.356806]], [['deferred life annuity', {'l': [100000, 99639, 99241, 98781, 98223, 97589, 96861, 96051, 95098, 94027, 92805, 0], 'defer': 3, 'guarantee': 0, 'term': None, 'i': 30}, 6.372582], ['deferred with guarantee', {'l': [100000, 99452, 98797, 98029, 97159, 96187, 95047, 93797, 92387, 90778, 89023, 0], 'defer': 4, 'guarantee': 3, 'term': None, 'i': 30}, 5.365158], ['temporary payout', {'l': [100000, 99529, 99014, 98422, 97729, 96926, 96021, 95022, 93865, 92546, 91035, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 50}, 3.130189], ['guarantee and temporary', {'l': [100000, 99670, 99256, 98821, 98313, 97716, 97019, 96223, 95312, 94288, 93140, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.210353], ['immediate start with guarantee', {'l': [100000, 99636, 99214, 98737, 98202, 97601, 96899, 96082, 95137, 94084, 92887, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 30}, 9.299049], ['guarantee beyond table', {'l': [100000, 99642, 99238, 98780, 98243, 97614, 96891, 96080, 95192, 94166, 92986, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 40}, 3.063129], ['negative deferral rejected', {'l': [100000, 99479, 98876, 98201, 97410, 96494, 95459, 94308, 92981, 91500, 89852, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 50}, 'invalid'], ['long guarantee', {'l': [100000, 99390, 98668, 97867, 96967, 95943, 94769, 93439, 91943, 90256, 88419, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 40}, 6.592038]], [['deferred life annuity', {'l': [100000, 99543, 99004, 98363, 97657, 96846, 95934, 94889, 93723, 92371, 90872, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.235385], ['deferred with guarantee', {'l': [100000, 99391, 98670, 97831, 96888, 95814, 94642, 93297, 91819, 90158, 88344, 0], 'defer': 4, 'guarantee': 3, 'term': None, 'i': 30}, 5.339789], ['temporary payout', {'l': [100000, 99445, 98763, 97986, 97117, 96158, 95058, 93783, 92374, 90793, 89065, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 30}, 3.385146], ['guarantee and temporary', {'l': [100000, 99506, 98921, 98262, 97494, 96628, 95644, 94555, 93326, 91970, 90459, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.177467], ['immediate start with guarantee', {'l': [100000, 99400, 98704, 97934, 97051, 96039, 94912, 93626, 92187, 90563, 88738, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 40}, 8.765009], ['guarantee beyond table', {'l': [100000, 99605, 99143, 98601, 97974, 97220, 96340, 95361, 94272, 93011, 91588, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 30}, 3.362592], ['negative deferral rejected', {'l': [100000, 99538, 99023, 98427, 97731, 96898, 95975, 94913, 93762, 92450, 90990, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 40}, 'invalid'], ['long guarantee', {'l': [100000, 99742, 99431, 99074, 98681, 98184, 97623, 96993, 96245, 95379, 94421, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 30}, 6.951624]], [['deferred life annuity', {'l': [100000, 99552, 99040, 98449, 97784, 96996, 96124, 95119, 93959, 92653, 91175, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.248674], ['deferred with guarantee', {'l': [100000, 99650, 99233, 98753, 98217, 97625, 96914, 96124, 95227, 94238, 93109, 0], 'defer': 4, 'guarantee': 3, 'term': None, 'i': 50}, 4.817244], ['temporary payout', {'l': [100000, 99541, 99004, 98381, 97651, 96805, 95855, 94767, 93546, 92171, 90658, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 30}, 3.405761], ['guarantee and temporary', {'l': [100000, 99684, 99314, 98871, 98367, 97784, 97091, 96342, 95503, 94566, 93530, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.212994], ['immediate start with guarantee', {'l': [100000, 99629, 99188, 98678, 98073, 97409, 96662, 95781, 94808, 93739, 92513, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 50}, 8.509224], ['guarantee beyond table', {'l': [100000, 99526, 98971, 98341, 97641, 96828, 95872, 94821, 93645, 92330, 90850, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 50}, 2.705602], ['negative deferral rejected', {'l': [100000, 99514, 98941, 98308, 97591, 96770, 95833, 94741, 93537, 92173, 90635, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 40}, 'invalid'], ['long guarantee', {'l': [100000, 99471, 98835, 98117, 97316, 96411, 95386, 94204, 92904, 91431, 89771, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 30}, 6.887892]], [['deferred life annuity', {'l': [100000, 99548, 99032, 98423, 97743, 96931, 96031, 94996, 93863, 92586, 91170, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.244348], ['deferred with guarantee', {'l': [100000, 99713, 99355, 98955, 98497, 97963, 97377, 96683, 95909, 95036, 94075, 0], 'defer': 3, 'guarantee': 3, 'term': None, 'i': 30}, 6.425506], ['temporary payout', {'l': [100000, 99462, 98822, 98056, 97174, 96153, 95018, 93750, 92286, 90640, 88808, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 50}, 3.10892], ['guarantee and temporary', {'l': [100000, 99608, 99126, 98560, 97876, 97091, 96184, 95175, 94017, 92717, 91254, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.192524], ['immediate start with guarantee', {'l': [100000, 99596, 99155, 98629, 97982, 97235, 96414, 95466, 94413, 93234, 91907, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 50}, 8.493373], ['guarantee beyond table', {'l': [100000, 99386, 98696, 97939, 97062, 96051, 94927, 93629, 92182, 90560, 88773, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 40}, 2.945829], ['negative deferral rejected', {'l': [100000, 99409, 98713, 97891, 96950, 95872, 94685, 93348, 91853, 90211, 88349, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 30}, 'invalid'], ['long guarantee', {'l': [100000, 99625, 99173, 98672, 98103, 97425, 96665, 95806, 94813, 93715, 92493, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 40}, 6.643315]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"716a860dba42b8b90ca60f558f0836edd5d69d58c113e0e8bcb3c27ceb0a01ee","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    l=x['l']; n=x['defer']; g=x['guarantee']\n    if l[0]==0 or n<0 or g<0: return 'invalid'\n    v=1/(1+Fraction(x['i'],1000))\n    end=len(l) if x['term'] is None else n+x['term']\n    pv=Fraction(0)\n    for k in range(n,end):\n        if k-n<=g: p=Fraction(l[n],l[0]) if n<len(l) else Fraction(0)\n        elif k<len(l): p=Fraction(l[k],l[0])\n        else: p=Fraction(0)\n        pv+=v**k*p\n    return round(float(pv),6)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['deferred life annuity', {'l': [100000, 99425, 98729, 97949, 97087, 96107, 95028, 93784, 92377, 90810, 89083, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.165092], ['deferred with guarantee', {'l': [100000, 99601, 99126, 98552, 97886, 97134, 96271, 95279, 94142, 92851, 91413, 0], 'defer': 2, 'guarantee': 3, 'term': None, 'i': 40}, 6.88609], ['temporary payout', {'l': [100000, 99494, 98894, 98222, 97442, 96531, 95492, 94358, 93079, 91645, 90025, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 50}, 3.119058], ['guarantee and temporary', {'l': [100000, 99742, 99421, 99023, 98573, 98051, 97453, 96723, 95899, 94945, 93900, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 30}, 4.38474], ['immediate start with guarantee', {'l': [100000, 99473, 98853, 98163, 97396, 96503, 95471, 94337, 93076, 91640, 90021, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 30}, 9.199942], ['guarantee beyond table', {'l': [100000, 99732, 99382, 98953, 98453, 97891, 97269, 96569, 95775, 94887, 93901, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 40}, 3.086582], ['negative deferral rejected', {'l': [100000, 99743, 99467, 99108, 98688, 98191, 97622, 96977, 96250, 95440, 94526, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 50}, 'invalid'], ['long guarantee', {'l': [100000, 99500, 98941, 98284, 97559, 96739, 95786, 94750, 93541, 92187, 90659, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 50}, 6.356806]], [['deferred life annuity', {'l': [100000, 99639, 99241, 98781, 98223, 97589, 96861, 96051, 95098, 94027, 92805, 0], 'defer': 3, 'guarantee': 0, 'term': None, 'i': 30}, 6.372582], ['deferred with guarantee', {'l': [100000, 99452, 98797, 98029, 97159, 96187, 95047, 93797, 92387, 90778, 89023, 0], 'defer': 4, 'guarantee': 3, 'term': None, 'i': 30}, 5.365158], ['temporary payout', {'l': [100000, 99529, 99014, 98422, 97729, 96926, 96021, 95022, 93865, 92546, 91035, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 50}, 3.130189], ['guarantee and temporary', {'l': [100000, 99670, 99256, 98821, 98313, 97716, 97019, 96223, 95312, 94288, 93140, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.210353], ['immediate start with guarantee', {'l': [100000, 99636, 99214, 98737, 98202, 97601, 96899, 96082, 95137, 94084, 92887, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 30}, 9.299049], ['guarantee beyond table', {'l': [100000, 99642, 99238, 98780, 98243, 97614, 96891, 96080, 95192, 94166, 92986, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 40}, 3.063129], ['negative deferral rejected', {'l': [100000, 99479, 98876, 98201, 97410, 96494, 95459, 94308, 92981, 91500, 89852, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 50}, 'invalid'], ['long guarantee', {'l': [100000, 99390, 98668, 97867, 96967, 95943, 94769, 93439, 91943, 90256, 88419, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 40}, 6.592038]], [['deferred life annuity', {'l': [100000, 99543, 99004, 98363, 97657, 96846, 95934, 94889, 93723, 92371, 90872, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.235385], ['deferred with guarantee', {'l': [100000, 99391, 98670, 97831, 96888, 95814, 94642, 93297, 91819, 90158, 88344, 0], 'defer': 4, 'guarantee': 3, 'term': None, 'i': 30}, 5.339789], ['temporary payout', {'l': [100000, 99445, 98763, 97986, 97117, 96158, 95058, 93783, 92374, 90793, 89065, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 30}, 3.385146], ['guarantee and temporary', {'l': [100000, 99506, 98921, 98262, 97494, 96628, 95644, 94555, 93326, 91970, 90459, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.177467], ['immediate start with guarantee', {'l': [100000, 99400, 98704, 97934, 97051, 96039, 94912, 93626, 92187, 90563, 88738, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 40}, 8.765009], ['guarantee beyond table', {'l': [100000, 99605, 99143, 98601, 97974, 97220, 96340, 95361, 94272, 93011, 91588, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 30}, 3.362592], ['negative deferral rejected', {'l': [100000, 99538, 99023, 98427, 97731, 96898, 95975, 94913, 93762, 92450, 90990, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 40}, 'invalid'], ['long guarantee', {'l': [100000, 99742, 99431, 99074, 98681, 98184, 97623, 96993, 96245, 95379, 94421, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 30}, 6.951624]], [['deferred life annuity', {'l': [100000, 99552, 99040, 98449, 97784, 96996, 96124, 95119, 93959, 92653, 91175, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.248674], ['deferred with guarantee', {'l': [100000, 99650, 99233, 98753, 98217, 97625, 96914, 96124, 95227, 94238, 93109, 0], 'defer': 4, 'guarantee': 3, 'term': None, 'i': 50}, 4.817244], ['temporary payout', {'l': [100000, 99541, 99004, 98381, 97651, 96805, 95855, 94767, 93546, 92171, 90658, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 30}, 3.405761], ['guarantee and temporary', {'l': [100000, 99684, 99314, 98871, 98367, 97784, 97091, 96342, 95503, 94566, 93530, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.212994], ['immediate start with guarantee', {'l': [100000, 99629, 99188, 98678, 98073, 97409, 96662, 95781, 94808, 93739, 92513, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 50}, 8.509224], ['guarantee beyond table', {'l': [100000, 99526, 98971, 98341, 97641, 96828, 95872, 94821, 93645, 92330, 90850, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 50}, 2.705602], ['negative deferral rejected', {'l': [100000, 99514, 98941, 98308, 97591, 96770, 95833, 94741, 93537, 92173, 90635, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 40}, 'invalid'], ['long guarantee', {'l': [100000, 99471, 98835, 98117, 97316, 96411, 95386, 94204, 92904, 91431, 89771, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 30}, 6.887892]], [['deferred life annuity', {'l': [100000, 99548, 99032, 98423, 97743, 96931, 96031, 94996, 93863, 92586, 91170, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.244348], ['deferred with guarantee', {'l': [100000, 99713, 99355, 98955, 98497, 97963, 97377, 96683, 95909, 95036, 94075, 0], 'defer': 3, 'guarantee': 3, 'term': None, 'i': 30}, 6.425506], ['temporary payout', {'l': [100000, 99462, 98822, 98056, 97174, 96153, 95018, 93750, 92286, 90640, 88808, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 50}, 3.10892], ['guarantee and temporary', {'l': [100000, 99608, 99126, 98560, 97876, 97091, 96184, 95175, 94017, 92717, 91254, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.192524], ['immediate start with guarantee', {'l': [100000, 99596, 99155, 98629, 97982, 97235, 96414, 95466, 94413, 93234, 91907, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 50}, 8.493373], ['guarantee beyond table', {'l': [100000, 99386, 98696, 97939, 97062, 96051, 94927, 93629, 92182, 90560, 88773, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 40}, 2.945829], ['negative deferral rejected', {'l': [100000, 99409, 98713, 97891, 96950, 95872, 94685, 93348, 91853, 90211, 88349, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 30}, 'invalid'], ['long guarantee', {'l': [100000, 99625, 99173, 98672, 98103, 97425, 96665, 95806, 94813, 93715, 92493, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 40}, 6.643315]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"3858c958c95cef0d4156fe38cf5a2cf030a1128a6c95e4fe5119fab63dddb2bb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    l=x['l']; n=x['defer']; g=x['guarantee']\n    if l[0]==0 or n<0 or g<0: return 'invalid'\n    v=1/(1+Fraction(x['i'],1000))\n    end=len(l) if x['term'] is None else n+x['term']\n    pv=Fraction(0)\n    for k in range(n,end):\n        if k-n<g: p=Fraction(l[n],l[0]) if n<len(l) else Fraction(0)\n        elif k<len(l): p=Fraction(l[k],l[0])\n        else: p=Fraction(0)\n        pv+=v**k*p\n    return round(float(pv),6)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['deferred life annuity', {'l': [100000, 99425, 98729, 97949, 97087, 96107, 95028, 93784, 92377, 90810, 89083, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.165092], ['deferred with guarantee', {'l': [100000, 99601, 99126, 98552, 97886, 97134, 96271, 95279, 94142, 92851, 91413, 0], 'defer': 2, 'guarantee': 3, 'term': None, 'i': 40}, 6.88609], ['temporary payout', {'l': [100000, 99494, 98894, 98222, 97442, 96531, 95492, 94358, 93079, 91645, 90025, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 50}, 3.119058], ['guarantee and temporary', {'l': [100000, 99742, 99421, 99023, 98573, 98051, 97453, 96723, 95899, 94945, 93900, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 30}, 4.38474], ['immediate start with guarantee', {'l': [100000, 99473, 98853, 98163, 97396, 96503, 95471, 94337, 93076, 91640, 90021, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 30}, 9.199942], ['guarantee beyond table', {'l': [100000, 99732, 99382, 98953, 98453, 97891, 97269, 96569, 95775, 94887, 93901, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 40}, 3.086582], ['negative deferral rejected', {'l': [100000, 99743, 99467, 99108, 98688, 98191, 97622, 96977, 96250, 95440, 94526, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 50}, 'invalid'], ['long guarantee', {'l': [100000, 99500, 98941, 98284, 97559, 96739, 95786, 94750, 93541, 92187, 90659, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 50}, 6.356806]], [['deferred life annuity', {'l': [100000, 99639, 99241, 98781, 98223, 97589, 96861, 96051, 95098, 94027, 92805, 0], 'defer': 3, 'guarantee': 0, 'term': None, 'i': 30}, 6.372582], ['deferred with guarantee', {'l': [100000, 99452, 98797, 98029, 97159, 96187, 95047, 93797, 92387, 90778, 89023, 0], 'defer': 4, 'guarantee': 3, 'term': None, 'i': 30}, 5.365158], ['temporary payout', {'l': [100000, 99529, 99014, 98422, 97729, 96926, 96021, 95022, 93865, 92546, 91035, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 50}, 3.130189], ['guarantee and temporary', {'l': [100000, 99670, 99256, 98821, 98313, 97716, 97019, 96223, 95312, 94288, 93140, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.210353], ['immediate start with guarantee', {'l': [100000, 99636, 99214, 98737, 98202, 97601, 96899, 96082, 95137, 94084, 92887, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 30}, 9.299049], ['guarantee beyond table', {'l': [100000, 99642, 99238, 98780, 98243, 97614, 96891, 96080, 95192, 94166, 92986, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 40}, 3.063129], ['negative deferral rejected', {'l': [100000, 99479, 98876, 98201, 97410, 96494, 95459, 94308, 92981, 91500, 89852, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 50}, 'invalid'], ['long guarantee', {'l': [100000, 99390, 98668, 97867, 96967, 95943, 94769, 93439, 91943, 90256, 88419, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 40}, 6.592038]], [['deferred life annuity', {'l': [100000, 99543, 99004, 98363, 97657, 96846, 95934, 94889, 93723, 92371, 90872, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.235385], ['deferred with guarantee', {'l': [100000, 99391, 98670, 97831, 96888, 95814, 94642, 93297, 91819, 90158, 88344, 0], 'defer': 4, 'guarantee': 3, 'term': None, 'i': 30}, 5.339789], ['temporary payout', {'l': [100000, 99445, 98763, 97986, 97117, 96158, 95058, 93783, 92374, 90793, 89065, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 30}, 3.385146], ['guarantee and temporary', {'l': [100000, 99506, 98921, 98262, 97494, 96628, 95644, 94555, 93326, 91970, 90459, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.177467], ['immediate start with guarantee', {'l': [100000, 99400, 98704, 97934, 97051, 96039, 94912, 93626, 92187, 90563, 88738, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 40}, 8.765009], ['guarantee beyond table', {'l': [100000, 99605, 99143, 98601, 97974, 97220, 96340, 95361, 94272, 93011, 91588, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 30}, 3.362592], ['negative deferral rejected', {'l': [100000, 99538, 99023, 98427, 97731, 96898, 95975, 94913, 93762, 92450, 90990, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 40}, 'invalid'], ['long guarantee', {'l': [100000, 99742, 99431, 99074, 98681, 98184, 97623, 96993, 96245, 95379, 94421, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 30}, 6.951624]], [['deferred life annuity', {'l': [100000, 99552, 99040, 98449, 97784, 96996, 96124, 95119, 93959, 92653, 91175, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.248674], ['deferred with guarantee', {'l': [100000, 99650, 99233, 98753, 98217, 97625, 96914, 96124, 95227, 94238, 93109, 0], 'defer': 4, 'guarantee': 3, 'term': None, 'i': 50}, 4.817244], ['temporary payout', {'l': [100000, 99541, 99004, 98381, 97651, 96805, 95855, 94767, 93546, 92171, 90658, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 30}, 3.405761], ['guarantee and temporary', {'l': [100000, 99684, 99314, 98871, 98367, 97784, 97091, 96342, 95503, 94566, 93530, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.212994], ['immediate start with guarantee', {'l': [100000, 99629, 99188, 98678, 98073, 97409, 96662, 95781, 94808, 93739, 92513, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 50}, 8.509224], ['guarantee beyond table', {'l': [100000, 99526, 98971, 98341, 97641, 96828, 95872, 94821, 93645, 92330, 90850, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 50}, 2.705602], ['negative deferral rejected', {'l': [100000, 99514, 98941, 98308, 97591, 96770, 95833, 94741, 93537, 92173, 90635, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 40}, 'invalid'], ['long guarantee', {'l': [100000, 99471, 98835, 98117, 97316, 96411, 95386, 94204, 92904, 91431, 89771, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 30}, 6.887892]], [['deferred life annuity', {'l': [100000, 99548, 99032, 98423, 97743, 96931, 96031, 94996, 93863, 92586, 91170, 0], 'defer': 2, 'guarantee': 0, 'term': None, 'i': 30}, 7.244348], ['deferred with guarantee', {'l': [100000, 99713, 99355, 98955, 98497, 97963, 97377, 96683, 95909, 95036, 94075, 0], 'defer': 3, 'guarantee': 3, 'term': None, 'i': 30}, 6.425506], ['temporary payout', {'l': [100000, 99462, 98822, 98056, 97174, 96153, 95018, 93750, 92286, 90640, 88808, 0], 'defer': 3, 'guarantee': 0, 'term': 4, 'i': 50}, 3.10892], ['guarantee and temporary', {'l': [100000, 99608, 99126, 98560, 97876, 97091, 96184, 95175, 94017, 92717, 91254, 0], 'defer': 2, 'guarantee': 2, 'term': 5, 'i': 40}, 4.192524], ['immediate start with guarantee', {'l': [100000, 99596, 99155, 98629, 97982, 97235, 96414, 95466, 94413, 93234, 91907, 0], 'defer': 0, 'guarantee': 4, 'term': None, 'i': 50}, 8.493373], ['guarantee beyond table', {'l': [100000, 99386, 98696, 97939, 97062, 96051, 94927, 93629, 92182, 90560, 88773, 0], 'defer': 9, 'guarantee': 5, 'term': 5, 'i': 40}, 2.945829], ['negative deferral rejected', {'l': [100000, 99409, 98713, 97891, 96950, 95872, 94685, 93348, 91853, 90211, 88349, 0], 'defer': -1, 'guarantee': 0, 'term': None, 'i': 30}, 'invalid'], ['long guarantee', {'l': [100000, 99625, 99173, 98672, 98103, 97425, 96665, 95806, 94813, 93715, 92493, 0], 'defer': 1, 'guarantee': 6, 'term': 8, 'i': 40}, 6.643315]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic bounded teaching model of a stipulated toy actuarial contract. Rates are small synthetic tables, exact rationals are used where practical and floats are rounded at the output; it makes no claim of conformance with any published table, standard of practice or regulation. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-actuarial_life_tables-deferred-annuity-guarantee-length","generated_at":"2026-09-29T14:47:15.130322+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Life-table arithmetic compounds across ages, so one misplaced index or assumption shifts every downstream value.","repair":"Guarantee payments with k-n<g.","root_cause":"The guarantee test is inclusive.","sha256":"1a472746877c9a415eb4625a68748f97a487982d54f230ffa5e5d277778e16c1","title":"Deferred annuity with guaranteed period: Guarantee covers one payment too many · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.465,"exit_code":1,"observations":[{"actual":7.165092,"check":"deferred life annuity","expected":7.165092,"passed":true},{"actual":6.870388,"check":"deferred with guarantee","expected":6.88609,"passed":false},{"actual":3.119058,"check":"temporary payout","expected":3.119058,"passed":true},{"actual":4.381097,"check":"guarantee and temporary","expected":4.38474,"passed":false},{"actual":9.199942,"check":"immediate start with guarantee","expected":9.199942,"passed":true},{"actual":1.301025,"check":"guarantee beyond table","expected":3.086582,"passed":false},{"actual":"invalid","check":"negative deferral rejected","expected":"invalid","passed":true},{"actual":6.329092,"check":"long guarantee","expected":6.356806,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"deferred life annuity\", \"actual\": 7.165092, \"expected\": 7.165092, \"passed\": true}, {\"check\": \"deferred with guarantee\", \"actual\": 6.870388, \"expected\": 6.88609, \"passed\": false}, {\"check\": \"temporary payout\", \"actual\": 3.119058, \"expected\": 3.119058, \"passed\": true}, {\"check\": \"guarantee and temporary\", \"actual\": 4.381097, \"expected\": 4.38474, \"passed\": false}, {\"check\": \"immediate start with guarantee\", \"actual\": 9.199942, \"expected\": 9.199942, \"passed\": true}, {\"check\": \"guarantee beyond table\", \"actual\": 1.301025, \"expected\": 3.086582, \"passed\": false}, {\"check\": \"negative deferral rejected\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"long guarantee\", \"actual\": 6.329092, \"expected\": 6.356806, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.018,"exit_code":1,"observations":[{"actual":7.165092,"check":"deferred life annuity","expected":7.165092,"passed":true},{"actual":6.902463,"check":"deferred with guarantee","expected":6.88609,"passed":false},{"actual":3.119058,"check":"temporary payout","expected":3.119058,"passed":true},{"actual":4.392274,"check":"guarantee and temporary","expected":4.38474,"passed":false},{"actual":9.223078,"check":"immediate start with guarantee","expected":9.199942,"passed":false},{"actual":3.086582,"check":"guarantee beyond table","expected":3.086582,"passed":true},{"actual":"invalid","check":"negative deferral rejected","expected":"invalid","passed":true},{"actual":6.390564,"check":"long guarantee","expected":6.356806,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"deferred life annuity\", \"actual\": 7.165092, \"expected\": 7.165092, \"passed\": true}, {\"check\": \"deferred with guarantee\", \"actual\": 6.902463, \"expected\": 6.88609, \"passed\": false}, {\"check\": \"temporary payout\", \"actual\": 3.119058, \"expected\": 3.119058, \"passed\": true}, {\"check\": \"guarantee and temporary\", \"actual\": 4.392274, \"expected\": 4.38474, \"passed\": false}, {\"check\": \"immediate start with guarantee\", \"actual\": 9.223078, \"expected\": 9.199942, \"passed\": false}, {\"check\": \"guarantee beyond table\", \"actual\": 3.086582, \"expected\": 3.086582, \"passed\": true}, {\"check\": \"negative deferral rejected\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"long guarantee\", \"actual\": 6.390564, \"expected\": 6.356806, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.036,"exit_code":0,"observations":[{"actual":7.165092,"check":"deferred life annuity","expected":7.165092,"passed":true},{"actual":6.88609,"check":"deferred with guarantee","expected":6.88609,"passed":true},{"actual":3.119058,"check":"temporary payout","expected":3.119058,"passed":true},{"actual":4.38474,"check":"guarantee and temporary","expected":4.38474,"passed":true},{"actual":9.199942,"check":"immediate start with guarantee","expected":9.199942,"passed":true},{"actual":3.086582,"check":"guarantee beyond table","expected":3.086582,"passed":true},{"actual":"invalid","check":"negative deferral rejected","expected":"invalid","passed":true},{"actual":6.356806,"check":"long guarantee","expected":6.356806,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"deferred life annuity\", \"actual\": 7.165092, \"expected\": 7.165092, \"passed\": true}, {\"check\": \"deferred with guarantee\", \"actual\": 6.88609, \"expected\": 6.88609, \"passed\": true}, {\"check\": \"temporary payout\", \"actual\": 3.119058, \"expected\": 3.119058, \"passed\": true}, {\"check\": \"guarantee and temporary\", \"actual\": 4.38474, \"expected\": 4.38474, \"passed\": true}, {\"check\": \"immediate start with guarantee\", \"actual\": 9.199942, \"expected\": 9.199942, \"passed\": true}, {\"check\": \"guarantee beyond table\", \"actual\": 3.086582, \"expected\": 3.086582, \"passed\": true}, {\"check\": \"negative deferral rejected\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"long guarantee\", \"actual\": 6.356806, \"expected\": 6.356806, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}