def get_grade_explanation(grade, normal_grades=False):
    """Converts grade explanation code to logical english
    
    Example HH => To be continued """
    explanation = {'HH': 'To be continued', 'IP': 'In progress', 'J':
        'Absent', 'K': 'Incomplete', 'KE': 'Further extension granted',
        'K*': 'Further extension granted', 'KF': 'Incomplete - Failed',
        'KK': 'Completion requirement waived', 'L': 'Deferred', 'LE':
        'Deferred - extension granted', 'L*':
        'Deferred - extension granted', 'NA': 'Grade not yet available',
        '&&': 'Grade not yet available', 'NE': 'No evaluation', 'NR':
        'No grade reported by the instructor (recorded by the Registrar)',
        'P': 'Pass', 'Q': 'Course continues in following term', 'R':
        'Course credit', 'W': 'Permitted to withdraw', 'WF':
        'Withdraw - failing', 'WL':
        'Faculty permission to withdraw from a deferred examination', 'W--':
        'No grade: student withdrew from the University', '--':
        'No grade: student withdrew from the University', 'CO':
        'Complete [Academic Integrity Tutorial]', 'IC':
        'Incomplete [Academic Integrity Tutorial]'}
    normal_explanation = {'A': '85 - 100', 'A-': '80 - 84', 'B+': '75 - 79',
        'B': '70 - 74', 'B-': '65 - 69', 'C+': '60 - 64', 'C': '55 - 59',
        'D': '50 - 54', 'F': '0 - 49', 'S': 'Satisfactory', 'U':
        'Unsatisfactory'}
    if normal_grades:
        explanation.update(normal_explanation)
    if grade in explanation:
        return explanation[grade]
    else:
        return ''
