public Integer monthIndex(String candidateMonth) {
        if (candidateMonth == null) {
            return null;
        }
        candidateMonth = candidateMonth.toUpperCase();
        // First, try for an exact match
        Integer monthIndex = monthMap.get(candidateMonth);
        // If no match, try an abbrev of four characters if possible
        if (monthIndex == null && candidateMonth.length() > 4) {
            monthIndex = monthMap.get(candidateMonth.substring(0, 4));
        }
        // If still no match, truncate to 3 characters and retry
        // Consider where candidateMonth="DEC." and abbrev="DEC".
        if (monthIndex == null && candidateMonth.length() > 3) {
            monthIndex = monthMap.get(candidateMonth.substring(0, 3));
        }
        return monthIndex;
    }