Last Updated: October 30, 2025 Current Version: v1.1.0
This document tracks which recommended investment features are already implemented vs need to be built in the CS2 Float Checker API.
Status: 100% Implemented
Endpoint: GET /api/price-history/:marketHashName?timeframe=30
Features Available:
- ✅ 7/14/30 day price charts
- ✅ Historical price data from multiple marketplaces
- ✅ Price points with date/quantity
What's Missing:
- ❌ All-time high/low tracking
- ❌ Average price calculation
- ❌ Volatility indicator
- ❌ Moving averages
Status: 100% Implemented
Endpoint: GET /api/price/:marketHashName
Features Available:
- ✅ Buff163 pricing (USD + CNY)
- ✅ Skinport pricing (USD + EUR)
- ✅ CSFloat pricing
- ✅ CS.MONEY pricing
- ✅ Steam Community Market pricing
- ✅ Lowest/highest price detection
- ✅ Direct marketplace URLs
- ✅ 5-minute caching
- ✅ Listing counts per marketplace
Status: 100% Implemented
Features Available:
- ✅ Batch price check (50 items) -
POST /api/batch/prices - ✅ Batch float rarity (100 items) -
POST /api/batch/rarity - ✅ Batch float premium (50 items) -
POST /api/batch/float-premium - ✅ Batch add investments (50 items) -
POST /api/portfolio/batch/add - ✅ Batch delete investments (100 items) -
POST /api/portfolio/batch/delete
Status: 50% Implemented
Features Available:
- ✅ Batch add investments (can import from CSV via frontend)
- ✅ Duplicate detection (database constraints)
- ✅ Export to CSV/JSON -
GET /api/portfolio/export/:userId
What's Missing:
- ❌ Direct Steam trade history API integration
- ❌ CSFloat trade tracker import
- ❌ Automatic file upload endpoint
Action Required: Add these endpoints:
POST /api/import/steam
Body: { steamId: string; apiKey: string; startDate?: Date }
POST /api/import/csv
Body: FormData (CSV file upload)Status: 100% Implemented (via Portfolio Sale Endpoint)
Endpoint: POST /api/portfolio/sale
Features Available:
- ✅ Automatic profit/loss calculation
- ✅ ROI percentage calculation
- ✅ Per-sale profit tracking
- ✅ Realized vs unrealized profit distinction
What Could Be Enhanced: Create standalone calculator endpoint:
POST /api/calculate/profit
Body: {
itemName: string;
buyPrice: number;
sellPrice: number;
quantity: number;
marketplace: 'Steam' | 'Buff163' | 'CSFloat' | etc;
}
Response: {
grossProfit: number;
fees: { steam: 15%, buff163: 2.5%, ... };
netProfit: number;
roi: number;
breakEvenPrice: number;
}Status: 100% Implemented
Features Available:
- ✅ Add/edit/delete investments -
POST/PATCH/DELETE /api/portfolio/... - ✅ Portfolio statistics -
GET /api/portfolio/stats/:userId - ✅ Asset allocation -
GET /api/portfolio/allocation/:userId - ✅ Portfolio health metrics -
GET /api/portfolio/health/:userId - ✅ Recent activity -
GET /api/portfolio/activity/:userId - ✅ Export CSV/JSON -
GET /api/portfolio/export/:userId - ✅ Investment scoring (1-10) -
POST /api/investment-score - ✅ Blue Gem pattern detection
Metrics Calculated:
- Total invested, current value, profit/loss, ROI
- Diversity score, risk score, liquidity score
- Safe/risky allocation percentages
- Category breakdown (Knives, Rifles, Cases, etc.)
Status: 100% Implemented
Endpoint: GET /api/float-rarity/:defindex/:paintindex/:floatvalue
Features Available:
- ✅ Rarity score (0-100)
- ✅ Rarity tier classification
- ✅ Percentile ranking
- ✅ Total samples seen
- ✅ Better/worse float counts
- ✅ Statistics (best/worst/avg floats)
Status: 100% Implemented
Endpoint: GET /api/ownership-history/:floatId
Features Available:
- ✅ Ownership history tracking
- ✅ Trade reversibility detection (<7 days)
- ✅ Risk assessment (HIGH/SAFE)
- ✅ Days remaining until safe
- ✅ Reversible until date
Status: 60% Implemented
Features Available:
- ✅ Portfolio health score (diversity, risk, liquidity) -
GET /api/portfolio/health/:userId - ✅ Asset allocation breakdown
- ✅ Diversification scoring
What's Missing:
- ❌ Stagnant items detection (no price change 30+ days)
- ❌ Top gainers/losers this week
- ❌ Rebalancing suggestions
Action Required:
GET /api/insights/:userId
Response: {
riskScore: number;
diversificationScore: number;
stagnantItems: Investment[];
weeklyTopGainers: Investment[];
weeklyTopLosers: Investment[];
rebalancingSuggestions: string[];
}Status: 100% Implemented
Endpoint: GET /api/recent-sales/:marketHashName
Features Available:
- ✅ Recent sales with float values
- ✅ Pattern seeds included
- ✅ Stickers data
- ✅ Sale date and marketplace
- ✅ Average sale price
- ✅ Automatic database storage for correlation analysis
Priority: HIGH (Most requested feature)
Endpoints Needed:
POST /api/alerts
Body: {
userId: string;
investmentId?: string;
itemName: string;
targetPrice?: number;
priceChangePercent?: number;
alertType: 'above' | 'below' | 'change';
notificationMethod: 'email' | 'webhook' | 'push';
}
GET /api/alerts/:userId
Response: { alerts: Alert[] }
DELETE /api/alerts/:alertIdDatabase Schema Needed:
CREATE TABLE price_alerts (
id SERIAL PRIMARY KEY,
user_id TEXT NOT NULL,
investment_id INTEGER REFERENCES portfolio_investments(id),
item_name TEXT NOT NULL,
target_price DECIMAL(10,2),
price_change_percent DECIMAL(5,2),
alert_type TEXT CHECK (alert_type IN ('above', 'below', 'change')),
notification_method TEXT CHECK (notification_method IN ('email', 'webhook', 'push')),
is_active BOOLEAN DEFAULT true,
last_triggered TIMESTAMP,
created_at TIMESTAMP DEFAULT NOW()
);Background Job Needed:
- Cron job to check prices every 5 minutes
- Compare current price vs alert conditions
- Send notifications (email/webhook/push)
- Update last_triggered timestamp
Priority: HIGH
Endpoints Needed:
POST /api/watchlist
Body: {
userId: string;
itemName: string;
targetPrice?: number;
notes?: string;
}
GET /api/watchlist/:userId
Response: {
items: Array<{
id: number;
itemName: string;
targetPrice: number;
currentPrice: number;
priceChange24h: number;
addedAt: Date;
}>
}
DELETE /api/watchlist/:watchlistIdDatabase Schema Needed:
CREATE TABLE watchlist (
id SERIAL PRIMARY KEY,
user_id TEXT NOT NULL,
item_name TEXT NOT NULL,
target_price DECIMAL(10,2),
notes TEXT,
added_at TIMESTAMP DEFAULT NOW(),
UNIQUE(user_id, item_name)
);Priority: MEDIUM
Endpoints Needed:
POST /api/inventory/connect
Body: {
userId: string;
steamId: string;
apiKey?: string;
}
POST /api/inventory/sync/:userId
Response: {
added: number;
removed: number;
updated: number;
totalValue: number;
items: Item[];
}
GET /api/inventory/history/:userId?days=30
Response: {
history: Array<{
date: Date;
totalValue: number;
itemCount: number;
}>
}Database Schema Needed:
CREATE TABLE inventory_connections (
id SERIAL PRIMARY KEY,
user_id TEXT NOT NULL UNIQUE,
steam_id TEXT NOT NULL,
api_key TEXT,
last_sync TIMESTAMP,
is_active BOOLEAN DEFAULT true,
created_at TIMESTAMP DEFAULT NOW()
);
CREATE TABLE inventory_snapshots (
id SERIAL PRIMARY KEY,
user_id TEXT NOT NULL,
snapshot_date DATE DEFAULT CURRENT_DATE,
total_value DECIMAL(10,2),
item_count INTEGER,
items JSONB,
created_at TIMESTAMP DEFAULT NOW(),
UNIQUE(user_id, snapshot_date)
);Priority: LOW (Advanced feature)
Endpoints Needed:
GET /api/tax-report/:userId?year=2025&method=FIFO
Response: {
year: number;
method: 'FIFO' | 'LIFO';
totalRealizedGains: number;
totalRealizedLosses: number;
netGains: number;
transactions: Array<{
date: Date;
itemName: string;
costBasis: number;
salePrice: number;
gain: number;
}>;
}
GET /api/tax-report/export/:userId?year=2025&format=csv
Response: CSV file downloadLogic Needed:
- FIFO/LIFO calculation methods
- Group by tax year
- Calculate cost basis per sale
- Generate IRS-compatible CSV format
Priority: LOW
Endpoints Needed:
PUT /api/portfolio/visibility/:userId
Body: { isPublic: boolean }
GET /api/leaderboard?metric=roi&limit=100
Response: {
rankings: Array<{
username: string;
roi: number;
portfolioValue: number;
rank: number;
}>
}
GET /api/portfolio/:userId/public
Response: { stats: PublicPortfolioStats }
POST /api/follow/:targetUserId
DELETE /api/unfollow/:targetUserId
GET /api/following/:userIdDatabase Schema Needed:
CREATE TABLE user_profiles (
user_id TEXT PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
avatar_url TEXT,
bio TEXT,
is_portfolio_public BOOLEAN DEFAULT false,
created_at TIMESTAMP DEFAULT NOW()
);
CREATE TABLE user_follows (
follower_id TEXT NOT NULL,
following_id TEXT NOT NULL,
created_at TIMESTAMP DEFAULT NOW(),
PRIMARY KEY (follower_id, following_id)
);Priority: MEDIUM
Endpoints Needed:
GET /api/recommendations/buy?userId=x&budget=100&riskLevel=medium
Response: {
recommendations: Array<{
itemName: string;
currentPrice: number;
reasoning: string;
confidence: number;
expectedROI: number;
timeframe: string;
}>
}
GET /api/recommendations/sell/:userId
Response: {
recommendations: Array<{
investmentId: number;
itemName: string;
currentPrice: number;
reasoning: string;
suggestedPrice: number;
}>
}AI Logic Needed:
- Trending up/down detection (30-day slope analysis)
- Undervalued detection (float rarity vs price ratio)
- Pattern value vs market price comparison
- Volume analysis (increasing = bullish signal)
- Risk-adjusted recommendations based on user's risk tolerance
Priority: HIGH (Required for production)
Endpoints Needed:
POST /api/auth/register
Body: { email: string; password: string; username: string }
POST /api/auth/login
Body: { email: string; password: string }
Response: { token: string; user: User }
POST /api/auth/logout
POST /api/auth/refresh-token
GET /api/auth/me
POST /api/auth/forgot-password
POST /api/auth/reset-passwordDatabase Schema Needed:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
user_id TEXT UNIQUE NOT NULL, -- UUID
email TEXT UNIQUE NOT NULL,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL,
is_verified BOOLEAN DEFAULT false,
verification_token TEXT,
reset_token TEXT,
reset_token_expires TIMESTAMP,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
CREATE TABLE sessions (
id SERIAL PRIMARY KEY,
user_id TEXT NOT NULL REFERENCES users(user_id),
token TEXT UNIQUE NOT NULL,
expires_at TIMESTAMP NOT NULL,
created_at TIMESTAMP DEFAULT NOW()
);Security Requirements:
- bcrypt password hashing
- JWT tokens
- Session management
- Email verification
- Rate limiting
| Feature | Status | Priority | Effort | Backend Ready |
|---|---|---|---|---|
| Price History | ✅ Complete | HIGH | - | 100% |
| Multi-Market Pricing | ✅ Complete | HIGH | - | 100% |
| Batch Operations | ✅ Complete | MEDIUM | - | 100% |
| Portfolio Tracker | ✅ Complete | HIGH | - | 100% |
| Float Rarity | ✅ Complete | HIGH | - | 100% |
| Trade Protection | ✅ Complete | MEDIUM | - | 100% |
| Recent Sales | ✅ Complete | MEDIUM | - | 100% |
| Export CSV/JSON | ✅ Complete | MEDIUM | - | 100% |
| Asset Allocation | ✅ Complete | MEDIUM | - | 100% |
| Health Metrics | ✅ Complete | MEDIUM | - | 100% |
| Trade History Import | MEDIUM | 2-3 days | 50% | |
| Market Insights | MEDIUM | 1-2 days | 60% | |
| Profit Calculator | LOW | 1 day | 80% | |
| Price Alerts | ❌ Not Started | HIGH | 3-5 days | 0% |
| Watchlist | ❌ Not Started | HIGH | 2-3 days | 0% |
| Inventory Sync | ❌ Not Started | MEDIUM | 5-7 days | 0% |
| Authentication | ❌ Not Started | HIGH | 5-7 days | 0% |
| Tax Reporting | ❌ Not Started | LOW | 3-4 days | 0% |
| Social Features | ❌ Not Started | LOW | 7-10 days | 0% |
| AI Recommendations | ❌ Not Started | MEDIUM | 5-7 days | 0% |
Goal: Get to feature parity with competitors
-
Authentication System (5-7 days) ⭐ CRITICAL
- Required for all user-specific features
- Blocks production deployment
-
Price Alerts (3-5 days) ⭐ HIGH VALUE
- Most requested feature
- High user engagement
- Background job + notification system
-
Watchlist (2-3 days) ⭐ HIGH VALUE
- Common in finance apps
- Easy to implement
- Drives return visits
Goal: Add automation and insights
-
Market Insights Enhancements (1-2 days)
- Top gainers/losers
- Stagnant items
- Rebalancing suggestions
-
Trade History Import (2-3 days)
- Steam API integration
- CSV upload endpoint
- Automatic duplicate detection
-
Profit Calculator Standalone (1 day)
- What-if scenarios
- Fee calculations per marketplace
- Break-even calculator
Goal: Differentiate from competitors
-
Inventory Sync (5-7 days)
- Steam API OAuth
- Daily snapshots
- Value tracking over time
-
AI Recommendations (5-7 days)
- Trending detection
- Undervalued item finder
- Risk-adjusted suggestions
-
Tax Reporting (3-4 days)
- FIFO/LIFO calculations
- Annual reports
- CSV export for accountants
Goal: Build community and retention
- Social Features (7-10 days)
- Public portfolios
- Leaderboards
- Follow system
These features can be added very quickly:
-
Currency Converter (2 hours)
- Add USD/EUR/GBP/CNY conversions
- Use existing price data
-
Dark Mode Toggle (1 hour)
- Backend: Add user preference storage
PATCH /api/user/preferences { theme: 'dark' | 'light' }
-
Item Notes Enhancement (2 hours)
- Already in database schema
- Just add UI support
-
Daily P&L Widget (3 hours)
- Calculate 24h portfolio value change
GET /api/portfolio/daily-change/:userId
-
Email Notifications (4 hours)
- Add SendGrid/SMTP integration
- Send weekly portfolio summaries
Based on your investment research, focus on these for Pro tier:
- ✅ Basic float inspection
- ✅ Simple pricing (Steam only)
- ✅ Portfolio tracking (up to 10 items)
- ✅ Investment Score (already implemented)
- ✅ Float percentile ranking (already implemented)
- ✅ Multi-market pricing (already implemented)
- ✅ 30-day price trends (already implemented)
- ✅ Pattern value scoring (already implemented)
- ❌ Price Alerts (NOT YET - HIGH PRIORITY)
- ❌ Watchlist (NOT YET - HIGH PRIORITY)
- ✅ Portfolio health metrics (already implemented)
- ❌ Market crash alerts (NOT YET)
- ❌ Trade-up calculator (NOT YET)
- ❌ AI recommendations (NOT YET)
- ❌ Inventory sync (NOT YET)
- ❌ Tax reporting (NOT YET)
- ✅ Export CSV/JSON (already implemented)
- ❌ API access (NOT YET)
Conclusion: You're 60-70% done with Pro tier features, but 0% done with Elite tier differentiators.
- Immediate Priority: Authentication system (blocks production)
- Quick Wins: Price alerts + Watchlist (high demand, medium effort)
- Monetization Focus: Complete Pro tier features before Elite tier
- Differentiation: AI recommendations + Inventory sync (unique features)
Internal use only. Not for public distribution.