def METHOD_NAME(submitted_ans: str) -> Tuple[float, Optional[str]]:
    # will return no error, assuming parse() catches all of them
    parsed_submission = ureg.Quantity(submitted_ans)
    magnitudes_match = magnitude_comparison_fn(
        parsed_submission.magnitude, parsed_correct_ans.magnitude
    )
    units_match = parsed_correct_ans.units == parsed_submission.units
    if magnitudes_match and units_match:
        return 1.0, None
    elif magnitudes_match and not units_match:
        return magnitudes_match_credit, INCORRECT_UNITS_CORRECT_MAGNITUDE_FEEDBACK
    elif units_match and not magnitudes_match:
        return units_match_credit, CORRECT_UNITS_INCORRECT_MAGNITUDE_FEEDBACK
    return 0.0, INCORRECT_UNITS_AND_MAGNITUDE_FEEDBACK