Fashion forecasting is what you call it when you're respectable.1 What it actually is, most weeks, is someone arguing about whether barrel-leg jeans survive the autumn. The instinct is real. The methodology is improvised. I built a platform to make the instinct legible — to the person having it, and to anyone willing to put virtual money on it.1. "Trend" sits oddly in this sentence. The industry word; carrying both "what's in" and "what's measurable." A platform should be able to handle both.
The thing I've built is an ML-powered trend intelligence platform — part computer vision, part forecasting pipeline, part trading simulator. Upload an outfit photo and it tells you what you're wearing, what collection it's closest to, and what the colour palette says. Browse runway breakdowns from Prada to Miu Miu. Track hundreds of trend terms across categories. Then, if you're feeling brave, trade on them with virtual currency and see if your instincts beat the model's.
§01Five signals, one composite
The forecasting half of the platform reads from five data sources and merges them into a composite trend score per term:
- Google Trends search volume (via trendspyg) — the broadest signal, noisiest at the long tail. 25% weight.
- Bluesky firehose — real-time social mentions, completely open, no rate limits. 25% weight.
- Pinterest trend endpoints — what's being saved and pinned in fashion categories. 20% weight.
- Reddit — social mentions from fashion subreddits (r/fashion, r/femalefashionadvice, r/streetwear). 15% weight.
- YouTube Data API — video counts and view velocity for fashion content. 15% weight.
None of these is reliable on its own. Search volume spikes on a single celebrity sighting; Reddit threads over-index on whatever's contrarian this week; Bluesky is growing but the fashion community is still thin; Pinterest skews aspirational. Together, fed into a Holt exponential smoothing model, they're tolerable.22. Holt smoothing gives a baseline level and a velocity term — is this trend rising, flat, or fading? No seasonality modelling yet; the data isn't deep enough for that. 250-odd fashion terms tracked across colours, silhouettes, aesthetics, and fabrics.
// pullNone of these is reliable on its own. Together, they're tolerable.
§02The Trend Exchange
A forecast is a number. A trade is a number with skin in the game — even when the skin is virtual. The platform's Trend Exchange gives you S$1,000 in StyleCoins and lets you go long on trends you think are rising or short on trends you think are fading. Your portfolio tracks P&L in real time against the model's own house predictions.
The pricing mechanism is LMSR — Hanson's logarithmic market scoring rule.3 The advantage is automatic liquidity: even with a single trader, the market quotes a price. As you buy YES shares on "barrel-leg jeans," the price rises; the more you buy, the steeper it gets. The liquidity parameter b controls how much a given trade moves the market.3. Hanson, R. (2003). "Combinatorial Information Market Design." The cost function is C(q) = b · log(Σ exp(q_i / b)). The platform uses b = 100, which means a 10-share buy on a 50/50 market moves the price about 5 points. Virtual currency, real accountability.
§03What the camera sees
The feature I didn't plan to build but that ended up being the most fun: upload a photo of an outfit, and the platform breaks it down. Gemini Flash detects individual garments, classifies the style, extracts the colour palette, and matches what you're wearing against runway collections from eight major houses — Prada, Chanel, Saint Laurent, Gucci, Miu Miu, and three more. The Runway Decoder page does the same in reverse: browse a collection and see its colour distributions and silhouette breakdowns, cross-referenced against real-time search data.
Computer vision on fashion data is more interesting than it sounds, because the categories are soft. A "barrel-leg jean" and a "wide-leg trouser" overlap in silhouette but not in cultural signal. The model has to learn that the distinction matters — and that it shifts every season.
§04What I'm optimising for
Calibration, mostly. A trend platform that says "this will be big" 100 times wants the things it predicted to actually be big roughly 70 times when its confidence says 0.7, 30 times when its confidence says 0.3. The platform tracks this with Brier scores — public, falsifiable, with target dates. That's the only honest measure. Everything else — engagement, trades-on-platform, "feels right" — is downstream.
// pullCalibration, mostly.
The platform is live at fashion-web-psi.vercel.app. Next.js, serverless, deployed on Vercel's edge. The fashion calendar is unforgiving, the data is sparse, and the categories are soft — but there's something worth doing in trying to make quantitative what an industry has always priced in private.
— written between meetings, on a stolen Friday afternoon.