FAILURE MAP
← Case archive

FA-63436 / Actuarial life tables / Open access

Select and ultimate mortality lookup: Survival subtracts rates instead of multiplying · case 01

Multi-year survival is slightly too low.

Verified by executionVariant 1 · 7 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

n-year survival is computed as 1 minus the sum of rates.

VERIFIED REPAIR

Multiply one-year survival probabilities.

Unsuccessful approach: Keeping only the last year discards earlier years.

Case contract

Input select {issue age: [q for durations 0..period-1]}, ultimate {attained age: q}, issue_age, period, dur, n. For each duration k in dur..dur+n-1 use the select rate row[issue][k] while k<period, else the ultimate rate at attained age issue+k. Missing rows -> 'no select row' / 'no ultimate rate'. Return [rates, survival over the n years rounded to 6].

Why this case matters

Life-table arithmetic compounds across ages, so one misplaced index or assumption shifts every downstream value.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(x):
    S=x['select']; U=x['ultimate']; a=x['issue_age']; s=x['period']
    out=[]; surv=Fraction(1)
    for k in range(x['dur'],x['dur']+x['n']):
        if k<s:
            row=S.get(str(a))
            if row is None: return 'no select row'
            q=row[k]
        else:
            q=U.get(str(a+k))
            if q is None: return 'no ultimate rate'
        out.append(q); surv-=Fraction(q,100000)
    return [out, round(float(surv),6)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 31, 'period': 3, 'dur': 0, 'n': 5}, [[46, 62, 80, 149, 161], 0.995029]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 41, 'period': 3, 'dur': 1, 'n': 4}, [[122, 140, 269, 281], 0.991904]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 31, 'period': 3, 'dur': 2, 'n': 3}, [[80, 149, 161], 0.996105]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 42, 'period': 3, 'dur': 4, 'n': 3}, [[293, 305, 317], 0.990878]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 31, 'period': 3, 'dur': 0, 'n': 1}, [[46], 0.99954]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 32, 'period': 3, 'dur': 0, 'n': 5}, [[52, 68, 86, 162, 174], 0.994591]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 33, 'period': 3, 'dur': 1, 'n': 4}, [[74, 92, 174, 186], 0.99475]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 34, 'period': 3, 'dur': 2, 'n': 3}, [[98, 186, 198], 0.995187]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 31, 'period': 3, 'dur': 4, 'n': 3}, [[162, 174, 186], 0.994789]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 43, 'period': 3, 'dur': 0, 'n': 1}, [[118], 0.99882]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 33, 'period': 3, 'dur': 0, 'n': 5}, [[58, 74, 92, 175, 187], 0.994153]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 40, 'period': 3, 'dur': 1, 'n': 4}, [[116, 134, 259, 271], 0.992222]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 45, 'period': 3, 'dur': 2, 'n': 3}, [[164, 319, 331], 0.991881]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 36, 'period': 3, 'dur': 4, 'n': 3}, [[223, 235, 247], 0.992967]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 33, 'period': 3, 'dur': 0, 'n': 1}, [[58], 0.99942]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 34, 'period': 3, 'dur': 0, 'n': 5}, [[64, 80, 98, 188, 200], 0.993715]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 33, 'period': 3, 'dur': 1, 'n': 4}, [[74, 92, 176, 188], 0.99471]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 32, 'period': 3, 'dur': 2, 'n': 3}, [[86, 164, 176], 0.995746]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 45, 'period': 3, 'dur': 4, 'n': 3}, [[332, 344, 356], 0.989715]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 34, 'period': 3, 'dur': 0, 'n': 1}, [[64], 0.99936]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 35, 'period': 3, 'dur': 0, 'n': 5}, [[70, 86, 104, 201, 213], 0.993277]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 34, 'period': 3, 'dur': 1, 'n': 4}, [[80, 98, 189, 201], 0.994332]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 45, 'period': 3, 'dur': 2, 'n': 3}, [[164, 321, 333], 0.991841]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 37, 'period': 3, 'dur': 4, 'n': 3}, [[237, 249, 261], 0.992549]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 37, 'period': 3, 'dur': 0, 'n': 1}, [[82], 0.99918]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
new issue through select period[[46, 62, 80, 149, 161], 0.99502][[46, 62, 80, 149, 161], 0.995029]Failed
mid-select start[[122, 140, 269, 281], 0.99188][[122, 140, 269, 281], 0.991904]Failed
last select year[[80, 149, 161], 0.9961][[80, 149, 161], 0.996105]Failed
fully ultimate[[293, 305, 317], 0.99085][[293, 305, 317], 0.990878]Failed
no select row for issue ageno select rowno select rowPassed
runs off ultimate tableno ultimate rateno ultimate ratePassed
single year[[46], 0.99954][[46], 0.99954]Passed

SHA-256 / c477c577196913d1c7788d0552e74ae82505976b737d03c931b3837248e7bc94

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(x):
    S=x['select']; U=x['ultimate']; a=x['issue_age']; s=x['period']
    out=[]; surv=Fraction(1)
    for k in range(x['dur'],x['dur']+x['n']):
        if k<s:
            row=S.get(str(a))
            if row is None: return 'no select row'
            q=row[k]
        else:
            q=U.get(str(a+k))
            if q is None: return 'no ultimate rate'
        out.append(q); surv=1-Fraction(q,100000)
    return [out, round(float(surv),6)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 31, 'period': 3, 'dur': 0, 'n': 5}, [[46, 62, 80, 149, 161], 0.995029]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 41, 'period': 3, 'dur': 1, 'n': 4}, [[122, 140, 269, 281], 0.991904]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 31, 'period': 3, 'dur': 2, 'n': 3}, [[80, 149, 161], 0.996105]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 42, 'period': 3, 'dur': 4, 'n': 3}, [[293, 305, 317], 0.990878]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 31, 'period': 3, 'dur': 0, 'n': 1}, [[46], 0.99954]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 32, 'period': 3, 'dur': 0, 'n': 5}, [[52, 68, 86, 162, 174], 0.994591]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 33, 'period': 3, 'dur': 1, 'n': 4}, [[74, 92, 174, 186], 0.99475]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 34, 'period': 3, 'dur': 2, 'n': 3}, [[98, 186, 198], 0.995187]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 31, 'period': 3, 'dur': 4, 'n': 3}, [[162, 174, 186], 0.994789]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 43, 'period': 3, 'dur': 0, 'n': 1}, [[118], 0.99882]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 33, 'period': 3, 'dur': 0, 'n': 5}, [[58, 74, 92, 175, 187], 0.994153]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 40, 'period': 3, 'dur': 1, 'n': 4}, [[116, 134, 259, 271], 0.992222]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 45, 'period': 3, 'dur': 2, 'n': 3}, [[164, 319, 331], 0.991881]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 36, 'period': 3, 'dur': 4, 'n': 3}, [[223, 235, 247], 0.992967]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 33, 'period': 3, 'dur': 0, 'n': 1}, [[58], 0.99942]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 34, 'period': 3, 'dur': 0, 'n': 5}, [[64, 80, 98, 188, 200], 0.993715]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 33, 'period': 3, 'dur': 1, 'n': 4}, [[74, 92, 176, 188], 0.99471]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 32, 'period': 3, 'dur': 2, 'n': 3}, [[86, 164, 176], 0.995746]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 45, 'period': 3, 'dur': 4, 'n': 3}, [[332, 344, 356], 0.989715]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 34, 'period': 3, 'dur': 0, 'n': 1}, [[64], 0.99936]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 35, 'period': 3, 'dur': 0, 'n': 5}, [[70, 86, 104, 201, 213], 0.993277]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 34, 'period': 3, 'dur': 1, 'n': 4}, [[80, 98, 189, 201], 0.994332]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 45, 'period': 3, 'dur': 2, 'n': 3}, [[164, 321, 333], 0.991841]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 37, 'period': 3, 'dur': 4, 'n': 3}, [[237, 249, 261], 0.992549]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 37, 'period': 3, 'dur': 0, 'n': 1}, [[82], 0.99918]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
new issue through select period[[46, 62, 80, 149, 161], 0.99839][[46, 62, 80, 149, 161], 0.995029]Failed
mid-select start[[122, 140, 269, 281], 0.99719][[122, 140, 269, 281], 0.991904]Failed
last select year[[80, 149, 161], 0.99839][[80, 149, 161], 0.996105]Failed
fully ultimate[[293, 305, 317], 0.99683][[293, 305, 317], 0.990878]Failed
no select row for issue ageno select rowno select rowPassed
runs off ultimate tableno ultimate rateno ultimate ratePassed
single year[[46], 0.99954][[46], 0.99954]Passed

SHA-256 / 8b92baab6314e47a8cc3b4c4e0f4b408e115d104a08da8c6f6ed572ea53e16e4

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(x):
    S=x['select']; U=x['ultimate']; a=x['issue_age']; s=x['period']
    out=[]; surv=Fraction(1)
    for k in range(x['dur'],x['dur']+x['n']):
        if k<s:
            row=S.get(str(a))
            if row is None: return 'no select row'
            q=row[k]
        else:
            q=U.get(str(a+k))
            if q is None: return 'no ultimate rate'
        out.append(q); surv*=1-Fraction(q,100000)
    return [out, round(float(surv),6)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 31, 'period': 3, 'dur': 0, 'n': 5}, [[46, 62, 80, 149, 161], 0.995029]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 41, 'period': 3, 'dur': 1, 'n': 4}, [[122, 140, 269, 281], 0.991904]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 31, 'period': 3, 'dur': 2, 'n': 3}, [[80, 149, 161], 0.996105]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 42, 'period': 3, 'dur': 4, 'n': 3}, [[293, 305, 317], 0.990878]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 101, '31': 113, '32': 125, '33': 137, '34': 149, '35': 161, '36': 173, '37': 185, '38': 197, '39': 209, '40': 221, '41': 233, '42': 245, '43': 257, '44': 269, '45': 281, '46': 293, '47': 305, '48': 317, '49': 329, '50': 341, '51': 353, '52': 365, '53': 377, '54': 389, '55': 401, '56': 413, '57': 425, '58': 437, '59': 449}, 'issue_age': 31, 'period': 3, 'dur': 0, 'n': 1}, [[46], 0.99954]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 32, 'period': 3, 'dur': 0, 'n': 5}, [[52, 68, 86, 162, 174], 0.994591]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 33, 'period': 3, 'dur': 1, 'n': 4}, [[74, 92, 174, 186], 0.99475]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 34, 'period': 3, 'dur': 2, 'n': 3}, [[98, 186, 198], 0.995187]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 31, 'period': 3, 'dur': 4, 'n': 3}, [[162, 174, 186], 0.994789]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 102, '31': 114, '32': 126, '33': 138, '34': 150, '35': 162, '36': 174, '37': 186, '38': 198, '39': 210, '40': 222, '41': 234, '42': 246, '43': 258, '44': 270, '45': 282, '46': 294, '47': 306, '48': 318, '49': 330, '50': 342, '51': 354, '52': 366, '53': 378, '54': 390, '55': 402, '56': 414, '57': 426, '58': 438, '59': 450}, 'issue_age': 43, 'period': 3, 'dur': 0, 'n': 1}, [[118], 0.99882]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 33, 'period': 3, 'dur': 0, 'n': 5}, [[58, 74, 92, 175, 187], 0.994153]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 40, 'period': 3, 'dur': 1, 'n': 4}, [[116, 134, 259, 271], 0.992222]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 45, 'period': 3, 'dur': 2, 'n': 3}, [[164, 319, 331], 0.991881]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 36, 'period': 3, 'dur': 4, 'n': 3}, [[223, 235, 247], 0.992967]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 103, '31': 115, '32': 127, '33': 139, '34': 151, '35': 163, '36': 175, '37': 187, '38': 199, '39': 211, '40': 223, '41': 235, '42': 247, '43': 259, '44': 271, '45': 283, '46': 295, '47': 307, '48': 319, '49': 331, '50': 343, '51': 355, '52': 367, '53': 379, '54': 391, '55': 403, '56': 415, '57': 427, '58': 439, '59': 451}, 'issue_age': 33, 'period': 3, 'dur': 0, 'n': 1}, [[58], 0.99942]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 34, 'period': 3, 'dur': 0, 'n': 5}, [[64, 80, 98, 188, 200], 0.993715]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 33, 'period': 3, 'dur': 1, 'n': 4}, [[74, 92, 176, 188], 0.99471]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 32, 'period': 3, 'dur': 2, 'n': 3}, [[86, 164, 176], 0.995746]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 45, 'period': 3, 'dur': 4, 'n': 3}, [[332, 344, 356], 0.989715]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 104, '31': 116, '32': 128, '33': 140, '34': 152, '35': 164, '36': 176, '37': 188, '38': 200, '39': 212, '40': 224, '41': 236, '42': 248, '43': 260, '44': 272, '45': 284, '46': 296, '47': 308, '48': 320, '49': 332, '50': 344, '51': 356, '52': 368, '53': 380, '54': 392, '55': 404, '56': 416, '57': 428, '58': 440, '59': 452}, 'issue_age': 34, 'period': 3, 'dur': 0, 'n': 1}, [[64], 0.99936]]], [['new issue through select period', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 35, 'period': 3, 'dur': 0, 'n': 5}, [[70, 86, 104, 201, 213], 0.993277]], ['mid-select start', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 34, 'period': 3, 'dur': 1, 'n': 4}, [[80, 98, 189, 201], 0.994332]], ['last select year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 45, 'period': 3, 'dur': 2, 'n': 3}, [[164, 321, 333], 0.991841]], ['fully ultimate', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 37, 'period': 3, 'dur': 4, 'n': 3}, [[237, 249, 261], 0.992549]], ['no select row for issue age', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 55, 'period': 3, 'dur': 0, 'n': 2}, 'no select row'], ['runs off ultimate table', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 45, 'period': 3, 'dur': 1, 'n': 20}, 'no ultimate rate'], ['single year', {'select': {'30': [40, 56, 74], '31': [46, 62, 80], '32': [52, 68, 86], '33': [58, 74, 92], '34': [64, 80, 98], '35': [70, 86, 104], '36': [76, 92, 110], '37': [82, 98, 116], '38': [88, 104, 122], '39': [94, 110, 128], '40': [100, 116, 134], '41': [106, 122, 140], '42': [112, 128, 146], '43': [118, 134, 152], '44': [124, 140, 158], '45': [130, 146, 164], '46': [136, 152, 170], '47': [142, 158, 176], '48': [148, 164, 182], '49': [154, 170, 188]}, 'ultimate': {'30': 105, '31': 117, '32': 129, '33': 141, '34': 153, '35': 165, '36': 177, '37': 189, '38': 201, '39': 213, '40': 225, '41': 237, '42': 249, '43': 261, '44': 273, '45': 285, '46': 297, '47': 309, '48': 321, '49': 333, '50': 345, '51': 357, '52': 369, '53': 381, '54': 393, '55': 405, '56': 417, '57': 429, '58': 441, '59': 453}, 'issue_age': 37, 'period': 3, 'dur': 0, 'n': 1}, [[82], 0.99918]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
new issue through select period[[46, 62, 80, 149, 161], 0.995029][[46, 62, 80, 149, 161], 0.995029]Passed
mid-select start[[122, 140, 269, 281], 0.991904][[122, 140, 269, 281], 0.991904]Passed
last select year[[80, 149, 161], 0.996105][[80, 149, 161], 0.996105]Passed
fully ultimate[[293, 305, 317], 0.990878][[293, 305, 317], 0.990878]Passed
no select row for issue ageno select rowno select rowPassed
runs off ultimate tableno ultimate rateno ultimate ratePassed
single year[[46], 0.99954][[46], 0.99954]Passed

SHA-256 / ca7e3c092253e529a19fd3157ff242c54f07657d07f329fa243fa54c7ab42a11

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:47:14.326954+00:00.

Case digest / 97dfd6018126bef390b619c315a500af1554f98e9f489adcafd58b7a17d78667