Technical details:
The pricing model is an ensemble of four models (tree-based, boosting, plus ridge regression) plus a meta-model on log-transformed prices, trained on tens of thousands of real transaction records (not dealer asking prices, which skew high). There are actually two sets of models - point and quantile. This gives the user quantiles so they can get a feel for how certain the model is.
Performance is good - r2 ~= .76 and MAE around $230 (this latter figure is skewed upwards by rarer expensive guitars). The performance is significantly better with common guitar brands and models. Unexplained variance likely due to two factors: Some guitars simply “play better” and “sound better”. This is subjective but real in my experience, and is not something that can be expressed in a listing. Auction prices depend on who turns up on the day, and this in turn depends on what else is for sale in the auction.
Data is ~25k auction results. Listings filtered using batch ChatGPT calls to produce structured data. Traditional feature engineering, plus embeddings on text and images.
Stack is Python / FastAPI / Hetzner (hosting) / MongoDB. Google Cloud Storage for content and backups. Data logged to BigQuery for analytics.
The app
Freemium model: guest tier with free valuations, creating free log-in gives more guitar slots and valuations, Pro and Pro+ for heavier users and bigger collections.
The growth mechanic I landed on is awarding extra guitar slots and valuations on a successful referral through the app.
What I'd like feedback on:
If you're a guitar player/collector: try valuing something you actually know the rough value of and tell me how far off it is. Especially interested in results for vintage, boutique, and unusual instruments.
Otherwise any feedback on improving the UX would be great. Site: https://guitar-guru.app App Store: https://apps.apple.com/us/app/guitar-guru/id6761500318