def convert_temperature(data):
    """
    Convert a temperature value between Celsius, Fahrenheit,
    Kelvin, and Rankine.

    Expected input dictionary:
    {
        "value": 25,
        "scale": "Celsius"
    }

    Returns:
    {
        "Celsius": 25.0,
        "Fahrenheit": 77.0,
        "Kelvin": 298.15,
        "Rankine": 536.67
    }
    """

    value = float(data["value"])
    scale = data["scale"].strip().lower()

    # Convert input to Celsius
    if scale == "celsius":
        c = value
    elif scale == "fahrenheit":
        c = (value - 32) * 5 / 9
    elif scale == "kelvin":
        c = value - 273.15
    elif scale == "rankine":
        c = (value - 491.67) * 5 / 9
    else:
        raise ValueError(
            "Invalid scale. Use: Celsius, Fahrenheit, Kelvin, or Rankine."
        )

    # Convert Celsius to all scales
    result = {
        "Celsius": round(c, 2),
        "Fahrenheit": round((c * 9 / 5) + 32, 2),
        "Kelvin": round(c + 273.15, 2),
        "Rankine": round((c + 273.15) * 9 / 5, 2)
    }

    return result


# Example usage
input_data = {
    "value": 300,
    "scale": "kelvin"
}

output = convert_temperature(input_data)

