async def METHOD_NAME(
    score: dict[str, Any],
    beatmap_path: Path,
    ctx: Context,
) -> None:
    beatmap = ctx.beatmaps.get(score["map_id"])
    if beatmap is None:
        beatmap = Beatmap(path=str(beatmap_path))
        ctx.beatmaps[score["map_id"]] = beatmap
    calculator = Calculator(
        mode=GameMode(score["mode"]).as_vanilla,
        mods=score["mods"],
        acc=score["acc"],
        combo=score["max_combo"],
        n_geki=score["ngeki"],  # Mania 320s
        n300=score["n300"],
        n_katu=score["nkatu"],  # Mania 200s, Catch tiny droplets
        n100=score["n100"],
        n50=score["n50"],
        n_misses=score["nmiss"],
    )
    attrs = calculator.performance(beatmap)
    new_pp: float = attrs.pp  # type: ignore
    if math.isnan(new_pp) or math.isinf(new_pp):
        new_pp = 0.0
    new_pp = min(new_pp, 9999.999)
    await ctx.database.execute(
        "UPDATE scores SET pp = :new_pp WHERE id = :id",
        {"new_pp": new_pp, "id": score["id"]},
    )
    if DEBUG:
        print(
            f"Recalculated score ID {score['id']} ({score['pp']:.3f}pp -> {new_pp:.3f}pp)",
        )