/** Процент выполнения цели стримера: 0, если данных нет или знаменатель пустой. */ export function goalPercent(earned?: number, needed?: number): number { if (!needed || needed <= 0 || !earned || earned <= 0) return 0; return Math.min(100, Math.round((earned / needed) * 100)); }