โ† Back to the Tool
Contents
๐Ÿ’ฐ
Item Value
getAvg(item) โ€” the foundation of every other calculation
getAvg used everywhere

Every value displayed and compared in the tool comes from this function. It prefers the site's own smoothed average, falling back to a midpoint if unavailable.

// Priority 1 โ€” use bssmvalues.com's smoothed graph value if cached_graph_value > 0: return cached_graph_value // Priority 2 โ€” midpoint of min/max range return (value_min + value_max) / 2

If both value_min and value_max are missing or non-numeric, the item is treated as unpriced and excluded from value-based calculations.

๐Ÿท๏ธ
Tier System
getTier(avg) โ€” community-defined value brackets

Tiers are community labels, not official game categories. The tool walks this table top-to-bottom and assigns the first tier whose range contains the item's avg value.

TierMinMaxNotes
Legendary100โˆžTop-tier, usually limited items
Epic10100High-end tradeable items
Ultra-Rare310Actively traded mid-tier
Very Rare13Common target for upgrading
Rare0.51Standard entry point
Uncommon0.10.5Low-end, useful as adds
Common0.010.1Filler / quest items
Basic00.01Near-zero value
โš ๏ธ Tiers are a community convention, not a game mechanic. Items tend to trade within ยฑ1 tier. Jumping 2+ tiers in a single trade is significantly harder regardless of value matching.
๐Ÿงฎ
Trading Calculator
Verdict labels, trade type detection, and adds suggestions
Verdict Thresholds
diff = yourTotal โˆ’ theirTotal pct = |diff| / theirTotal ร— 100 pct โ‰ค 5% โ†’ Fair Trade โœ“ pct โ‰ค 15% AND diff < 0 โ†’ Close โ€” LB (suggests adds) diff > 0 โ†’ OP (you overpaid) diff < 0 โ†’ LB (you underpaid)

Both the raw value difference and the percentage are shown simultaneously. For example: OP +3.50 (+18.2%).

Trade Type Detection UP / DG
yourItems > 1 AND theirItems = 1 โ†’ โฌ† UP (Upgrading) yourItems = 1 AND theirItems > 1 โ†’ โฌ‡ DG (Downgrading) both sides > 1 โ†’ โ†” Multi-item trade
๐Ÿ’ก In an UP trade expect to OP slightly. In a DG trade require OP from them. This is a community convention, not enforced by the tool.
Adds Suggestion

When you're LB by โ‰ค15%, the tool finds items from the full catalogue that could close the gap:

gap = |diff| candidates = items where avg โ‰ค gap ร— 1.2 sorted by: |item.avg โˆ’ gap| ascending show top: 4 results
๐ŸŽฏ
Trade Success %
calcTradeSuccess(combo, targetValue) โ€” core probability estimate

Estimates the likelihood a trade offer gets accepted in the BSS trading hub. Output is always between 5 and 95 โ€” a trade can never be guaranteed or impossible.

n = number of items you're offering total = sum of avg values of your items base = 60 // ~60% baseline acceptance rate in the hub // Factor 1: Value closeness (0โ€“60 pts) valueDiff = |total โˆ’ targetValue| / targetValue valueScore = max(0, 1 โˆ’ valueDiff ร— 2.5) ร— 60 // Factor 2: Overpay bonus (0โ€“+15 pts) opRatio = (total โˆ’ targetValue) / targetValue opBonus = if OPing: min(15, opRatio ร— 40) // Factor 3: Item count penalty (โ€“5 per extra item) countPenalty = (n โˆ’ 1) ร— 5 // Factor 4: Tier distance penalty (โ€“8 per tier jumped) avgComboTier = average tier index of your items targetTierIdx = tier index of target item (0=Legendary โ€ฆ 7=Basic) tierDistance = max(0, targetTierIdx โˆ’ avgComboTier) tierPenalty = tierDistance ร— 8 // Final score raw = base + valueScore + opBonus โˆ’ countPenalty โˆ’ tierPenalty result = clamp(round(raw), 5, 95)
FactorMax contributionDirection
Base rate60 ptsAlways added
Value closeness+60 ptsReduces as values diverge
Overpay bonus+15 ptsScales with how much you OP
Item countโˆ’5 per extra item1 item = 0 penalty, 4 items = โˆ’15
Tier distanceโˆ’8 per tier jumpedSame tier = 0, 3 tiers = โˆ’24
โš ๏ธ This is an estimate based on BSS trading conventions, not a real probability derived from actual trade data. Use it as a guide, not a guarantee.
๐Ÿ“Š
Demand Adjustment
calcTradeSuccessAdj โ€” applied on top of base success when Sort Mode is not Value

Takes the base success % and adjusts it based on demand levels of what you're giving vs what you're asking for.

Sort ModeFormula
๐Ÿ’ฐ Value No adjustment โ€” base score returned unchanged
โš–๏ธ Both base
โˆ’ (targetDemand / 5) ร— 15  (up to โˆ’15 for high-demand target)
+ (avgYourDemand / 5) ร— 12  (up to +12 for high-demand offer)
๐Ÿ“Š Demand 50 + (avgYourDemand โˆ’ targetDemand) ร— 12
(value math thrown out โ€” only demand gap matters)
๐Ÿ’ก Why this matters: Offering high-demand items means the other person wants what you're giving โ€” they're more likely to accept. Asking for high-demand items means you're competing with many other people LFing the same thing โ€” harder to acquire.
๐Ÿ“ˆ
Upgrader
Target pool filtering, combo generation, and sorting
Target Pool Filter

Items from the full catalogue are shown as upgrade targets only if their value is within ยฑ10% of your combo's total value:

comboTotal ร— 0.90 โ‰ค target.avg โ‰ค comboTotal ร— 1.10
Combo GenerationallSubsets()

Every possible non-empty combination of your items is generated using bit masking:

// For each number from 1 to 2โฟ โˆ’ 1: // treat it as a bitmask where each bit = one item for mask = 1 to (2^n โˆ’ 1): include item[i] if bit[i] of mask is set max items: 8 (2โธ โˆ’ 1 = 255 combos)

Capped at 8 items to prevent browser lag. Combos that produce the same target are deduplicated, keeping only the highest success % per target.

Sorting Logic
Sort ModeOrder
๐ŸŽฏ Best Chancesuccess % descending
๐Ÿ’ฒ Best Valuetarget.avg descending
๐ŸŽฒ Custom %|success โˆ’ yourTarget| ascending
๐Ÿ“Š Demand mode overrideRe-sort by target.demand descending after above
โœจ
Wishlist
Coverage bar, gap value, and trade path matching
Coverage Bar
targetTotal = sum of avg values of all wanted items pct = min(1, myTotal / targetTotal) // Colour thresholds pct โ‰ฅ 0.90 โ†’ green (can afford) pct โ‰ฅ 0.60 โ†’ amber (getting close) pct < 0.60 โ†’ red (significantly short)
Gap Value

This determines what value the tool searches for in singles and pairs โ€” either the full target or just the remaining gap:

if you have items AND you're short of target: gapVal = targetTotal โˆ’ myTotal // find what you still need else: gapVal = targetTotal // find something for the full target
Match Windows
Match typeFilterSort (Value mode)Sort (Demand mode)
Singles|item.avg โˆ’ gapVal| / gapVal โ‰ค 30%Closest to gapValdemand descending
Pairs|A+B โˆ’ gapVal| / gapVal โ‰ค 25%Closest sumavg demand of pair
Best Offers|comboTotal โˆ’ targetTotal| / targetTotal โ‰ค 15%success % descendingdemand adjusted

Best Offers only appear when your have-items contain subsets that actually cover the full target within 15%.

๐Ÿ—‘๏ธ
Trasher Score
calcTrashScore(item, invAvg) โ€” 0 to 100, higher = more trashable

invAvg = average value of all items in your drop zone that have a numeric value (unpriced items are excluded from this average).

Sort ModeFormulaWhat it measures
๐Ÿ’ฐ Value round(min(100, max(0, (1 โˆ’ avg/invAvg) ร— 70 + 30))) How far below your inventory average the item is
๐Ÿ“Š Demand round((1 โˆ’ demand/5) ร— 100) How rarely this item is traded or requested in the hub
โš–๏ธ Both round((1 โˆ’ demand/5) ร— 60 + min(40, (1 โˆ’ avg/invAvg) ร— 40)) 60% demand + 40% value blend
// Score interpretation score โ‰ฅ 61 โ†’ TRASH (red) score โ‰ฅ 31 โ†’ MAYBE (amber) score < 31 โ†’ KEEP (green)
โš ๏ธ Limited / seasonal items are never recommended for trash โ€” the Recommender protects these regardless of their score.
๐Ÿ’Ž
Portfolio Health
calcPortfolioHealth() โ€” 0 to 100 overall score, shown in Recommender

Four factors, each scored 0โ€“100, then averaged into a single overall score.

FactorFormulaWhat it measures
Avg Demand (weightedAvgDemand / 5) ร— 100 How tradeable your inventory is on average
Diversity min(1, uniqueTierCount / 5) ร— 100 How many different value tiers are represented
Liquidity max(0, 1 โˆ’ spread) ร— 100
spread = weighted mean absolute deviation / total value
How close your items are to each other in value (tightly clustered = liquid)
Value Density min(1, avgValuePerItem / 10) ร— 100 Average value per item (caps at avg 10)
overall = round((demandScore + divScore + liqScore + densityScore) / 4) overall โ‰ฅ 70 โ†’ Healthy overall โ‰ฅ 45 โ†’ Fair overall < 45 โ†’ Needs Work
๐Ÿ“Š
Market Overview
Price change detection between refreshes

Before every data refresh, current values are snapshotted. After the refresh, each item is compared to its snapshot to detect significant changes.

// An item appears as a gainer or loser only if: |current โˆ’ previous| / previous โ‰ฅ 0.5% // The same threshold triggers the flash animation on item cards

Items below this threshold are considered noise and not shown as movers. In Value mode only demand โ‰ฅ3 items appear in the Most Demanded strip; in Demand mode all items are shown.

๐Ÿ”„
Trade Matcher
Direct paths and 2-step chains
Path typeFilterCombined success
Direct |comboTotal โˆ’ targetValue| / targetValue โ‰ค 15% calcTradeSuccessAdj(combo, target)
2-step chain Step 1: combo within ยฑ15% of intermediate
Step 2: intermediate within ยฑ30% of target
round(step1% ร— step2% / 100)

The 2-step search checks the top 30 items by value (below target value) as potential intermediates. Results sorted by combined success % descending.

๐Ÿค–
Recommender
Rule-based per-item recommendations across three modes

No numeric formula โ€” applies conditional rules to each item in your inventory. Limited items (marked _static, or avg โ‰ฅ50 + demand โ‰ฅ3) are protected from trash/trade-away recommendations in all modes.

ModeRuleAction shown
๐Ÿ“ˆ Gain ValuetrashScore โ‰ฅ 65 AND demand โ‰ค 2 AND not limitedTrade away (UP)
demand โ‰ฅ 4 AND avg โ‰ฅ invAvg โ†’ find target at 1.2โ€“3ร— value with demand โ‰ฅ yoursUpgrade (UP)
avg < 0.1 AND demand โ‰ค 1 AND not limitedUse as adds / Discard
๐Ÿ“Š High Demanddemand โ‰ฅ 4Keep & trade strategically
demand โ‰ค 1 AND not limitedSwap for higher-demand item
๐Ÿ’Ž What to Holdis limitedHold โ€” do not trash
demand โ‰ฅ 3 AND avg โ‰ฅ invAvgHold
demand โ‰ค 1 AND avg โ‰ค invAvg ร— 0.5 AND not limitedTrade away
๐Ÿ’ก The Recommender mode auto-syncs with the global Sort Mode โ€” switching to ๐Ÿ“Š Demand automatically activates High Demand mode, switching to ๐Ÿ’ฐ Value switches back to Gain Value.
โš–๏ธ
Sort Mode Effects
How ๐Ÿ’ฐ Value / โš–๏ธ Both / ๐Ÿ“Š Demand changes each section
Section๐Ÿ’ฐ Valueโš–๏ธ Both๐Ÿ“Š Demand
Browse / BrowsersSort by avg valueSort by avg valueSort by demand desc
Tier headersValue rangeValue rangeAvg demand/5
Success %Value onlyValue + demand adj.Demand gap only
Upgrader resultsBy sort modeDemand adjusted %Re-sort by target demand
Wishlist singlesClosest to gapClosest to gapdemand desc
Trasher score100% value60% demand + 40% value100% demand
CatalogueBy trash scoreBy trash scoreBy demand desc
Market demandedOnly demand โ‰ฅ3All itemsAll items
Recommender modeAuto โ†’ Gain ValueNo changeAuto โ†’ High Demand