def estimate_yield(land_size, crop_type, annual_rainfall):
    """
    Estimates crop yield in kg based on land size and rainfall.
    Base yield assumes 1000kg per hectare.
    """
    base_yield_per_ha = 1000
    
    # Simple rainfall multiplier logic
    if annual_rainfall < 400:
        rainfall_multiplier = 0.5
    elif annual_rainfall > 1000:
        rainfall_multiplier = 0.8  # Potential flooding/runoff issues
    else:
        rainfall_multiplier = 1.2
        
    # Crop specific multipliers
    crop_multipliers = {"maize": 1.5, "sorghum": 1.2, "beans": 0.9}
    crop_mod = crop_multipliers.get(crop_type.lower(), 1.0)
    
    total_yield = land_size * base_yield_per_ha * rainfall_multiplier * crop_mod
    return round(total_yield, 2)