Trust score: buyer-only feedback history inflates seller feedback_count; 12-month ratio vs lifetime count mismatch #52
Labels
No labels
accessibility
backlog
browser-pool
bug
cloud
enhancement
feature
infra
paid-tier
performance
ux
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Circuit-Forge/snipe#52
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Two related edge cases in trust scoring that cause false positives for legitimate sellers:
1. Buyer feedback inflating
feedback_counteBay feedback is unified — buyer and seller transactions share one score. A user with 117 lifetime feedbacks all received as a buyer (sellers praising fast payment) will score 15/20 on
feedback_countand clear thelow_feedback_countsoft flag, even though they have zero seller experience. The count appears to signal an established seller but reflects buyer history only.2. 12-month ratio vs lifetime count cross-horizon mismatch
The scraper parses from search results:
feedback_count— eBay lifetime score (parenthetical)feedback_ratio— eBay 12-month percentageThese come from different time windows. The hard filter in
aggregator.py:...fires when a seller has high lifetime count but a low 12-month ratio (e.g. returned after a year away, got a couple of negatives from their first few recent sales). This incorrectly maps "established account with recent problems" to
established_bad_actorand zeroes the composite score.Observed example
Seller
jjcpryz: 117 lifetime feedbacks (all as buyer, all >1 year ago), 0 feedback in last 12 months, 89 active listings. First-time or returning seller — zero seller feedback history.Proposed fix
Short term (aggregator.py)
buyer_feedback_onlysoft flag: fires whenfeedback_count > 0but 12-month window shows 0 transactions (returning/new seller with buyer history)established_bad_actorhard filter to require a minimum recent transaction count, not just lifetime countdeclining_ratiosoft flag for high lifetime count + low ratio (replaces hard flag for established accounts)Medium term (scraper + seller profile)
recent_feedback_countalongside lifetimefeedback_countin the Seller modelrecent_feedback_countwhen availableFiles
app/trust/aggregator.py— hard filter logicapp/trust/metadata.py—_feedback_countand_feedback_ratioscorersapp/platforms/ebay/scraper.py— feedback parsing from search resultsapp/db/models.py— Seller model (may needrecent_feedback_countfield)Shipped in the Apr 19–May 4 sprint. Hard bad-actor filter now scoped to 20–500 lifetime count;
declining_ratiosoft flag added for 500+ accounts. False positive on high-volume established sellers resolved.