@buzzr/dfs-engine
    Preparing search index...

    Function gradeDfsBetFromGraded

    • Roll graded legs into bet status + payout split. Power plays are all-or-nothing; Flex plays look up the standard multiplier and scale the slip's displayed multiplier proportionally so any boost flows through to the demoted payout.

      Pending semantics:

      • Any 'pending' surviving leg → bet stays 'pending'.
      • 'dnp' legs are filtered out before counting (caller should have already recomputed multiplier via markLegDnp).

      Parameters

      • opts: {
            app: DfsApp;
            baseMultiplier: number | null;
            displayedMultiplier: number;
            legs: DfsBetLeg[];
            playType: DfsPlayType;
            profitBoostPct: number | null;
            stake: number;
        }
        • app: DfsApp
        • baseMultiplier: number | null
        • displayedMultiplier: number

          Slip-displayed multiplier — used for Power; for Flex we look up the schedule.

        • legs: DfsBetLeg[]
        • playType: DfsPlayType
        • profitBoostPct: number | null
        • stake: number

      Returns {
          bonusPayout: number;
          effectiveMultiplier: number;
          status: BetStatus;
          totalPayout: number;
          withdrawablePayout: number;
      }