यह एक solo side project है, जिसे मैंने इस झुंझलाहट में बनाया कि ईंधन भरवाने के अगले दिन दाम नीचे आ जाते हैं।
Opinet public data से यह तो पता चल सकता है कि "आज कहाँ सस्ता है", लेकिन यह नहीं कि "आज भरवाना चाहिए या इंतज़ार करना चाहिए"। इसलिए मैंने 2022 से अब तक देशभर के 11,500 gas stations के daily price data में international oil prices (WTI·Dubai crude), exchange rate, और fuel tax variables जोड़कर 7 दिनों के price change का अनुमान लगाने वाला model बनाया, और हर सुबह उसे traffic light signal की तरह दिखाता हूँ। यह "शायद बढ़ेगा?" नहीं कहता, बल्कि "इंतज़ार करेंगे तो प्रति लीटर लगभग 40 won बचेंगे" जैसी राशि में बताता है।
मुख्य डिज़ाइन model नहीं, बल्कि यह है: prediction service का काम खत्म है अगर वह "इसे क्यों मानें?" का जवाब नहीं दे सकती। इसलिए मैं हर दिन कल की भविष्यवाणी को अपने-आप score करके वही report card ऐप के अंदर खुला दिखाता हूँ। 30,000+ cumulative scores, "नहीं बढ़ेगा" prediction की 99% accuracy, और "यहाँ सस्ता है" recommendation वास्तव में सस्ती निकली उसका अनुपात—सब कुछ। गलत होने पर numbers गिरते हुए users को दिखते हैं, और इसी वजह से मैं भी model को ढीले-ढाले तरीके से नहीं बना सकता था।
संरचना fixed cost 0 won के सिद्धांत पर सरल रखी गई है:
Opinet daily CSV → DuckDB (4.6GB time series, local) → features → prediction → scoring → serving snapshot, launchd से हर दिन 07:30 पर पूरी automation
Serving है FastAPI + vanilla JS single HTML (90KB), members और snapshots के लिए सिर्फ Supabase, hosting Render free plan पर (UptimeRobot ping से sleep रोकना)
Local currency affiliate gas stations के 6,473 स्थानों को Korea Minting and Security Printing Corporation public data से coordinates 150m+store-name matching के जरिए जोड़ा
एक बड़ी ठोकर भी लगी: एक दिन 57% gas stations 'hold' में चले गए, और मैंने दो दिन इसे खंगाला। वजह यह थी कि outlier gate के रूप में रखा गया "predicted change 40 won cutoff" actual distribution का p75 था। यानी 4 में 1 case को outlier मान रहा था। इसे p99.5 तक बढ़ाया और समस्या हल हो गई। इससे महसूस हुआ कि threshold अंदाज़े से नहीं, quantile से तय करना चाहिए। (विस्तृत dev log: velog link)
पिछले हफ्ते मैंने savings community में एक post डाली, तो दो दिनों में 730 लोग आए, और sign-up करने वालों में 82% 30–40 की उम्र के commute करने वाले लोग थे। बिना sign-up के सभी features इस्तेमाल किए जा सकते हैं और सब कुछ मुफ्त है।
Diesel prediction (अभी सिर्फ lookup उपलब्ध है), और city/county/district से भी अधिक granular regional units जैसी कई चीज़ों पर सोच रहा हूँ। इस्तेमाल करके अगर "हमारे इलाके की prediction अजीब है" जैसा feedback दें, तो मैं उसे report card से verify करके सुधारूँगा।
अभी कोई टिप्पणी नहीं है.