{{ cat.icon }}
{{ cat.label }}
{{ cat.badge }}
Theme Accent
UI Density
Text Size
⚙️ Filters
Quick Toggles
Cellar Limits
Price Range
LPA Range
QPR Range
Country / Area
Min Volume
Cellar Explorer / Whisky
{{ profileTitle }}
{{ headerTitle }}
{{ syncLabel }}
{{ profileLabel }}
STATUS
{{ updateProgressStr }}
{{ updateIcon }} {{ updateHtml }}
Sort
Filter shops AllNone
{{ sh.name }}{{ sh.check }}
Bottle Shop €/70cl {{ savingsHeader }} Rating Actions
{{ row.mono }}
{{ row.name }} UNICORN NEW {{ row.gapDaysStr }} ATL {{ row.healthLabel }} {{ row.priceDropStr }} {{ cb.label }}
{{ row.sub }}
{{ row.shop }}{{ row.ownPriceStr }}
{{ row.otherBestStr }}
{{ row.per70Str }}
{{ row.unicornTag }}
{{ row.unicornNote }}
{{ row.vanishedTag }}
{{ row.vanishedNote }}
{{ row.dia }}{{ row.pctStr }} {{ row.saveEurStr }}
{{ row.baseStr }}
{{ row.ratingStr }}
{{ row.qprStr }}
Add to wishlist
⚑ Flag an issue
Tell the admin what's wrong with this row.
No bottles match your search and shop filters.
Showing {{ visibleCount }} of {{ totalCount }} results
{{ footerLeft }}{{ footerRight }}
Wishlist Owner
{{ currentPersonName }}’s Wishlist
Type Alko catalog names to add. They will match incoming scraped prices automatically.
{{ sug.name }}
Raw Wishlist ({{ activeWishlistCount }})
{{ item.name }}
No items on this wishlist.
Wishlist Status ({{ activeHitsCount }})
{{ catGroup.label }}
{{ hit.name }}
{{ hit.shop }} · {{ hit.savStr }}
{{ hit.priceStr }}
{{ hitsEmptyLabel }}
📦 Bundle by Shop Settings
Select packaging sizes (parcel thresholds) and shipping preferences to optimize shipping costs dynamically.
Presets:
Fwd Fee:
👥 Group Allocations by Shop
Consolidated wishlist items available across retailers. The breakdown below shows the total investment required from each member.
{{ col.flag }} {{ col.shopLabel }}
{{ catGroup.label }}
{{ itm.matchedProduct }}
Query: "{{ itm.bottle }}"
{{ itm.priceStr }} {{ itm.badgeHtml }}
{{ wsh.initial }}
Progress: {{ col.parcelStr }}
Subtotal: {{ col.orderValueStr }}
Shipping:
{{ col.shipCostStr }}
{{ col.shipDetailsStr }}
GRAND TOTAL: {{ col.grandTotalStr }}
Member Investments
{{ alloc.initial }} {{ alloc.name }} {{ alloc.amountStr }}
TOTAL VALUE: {{ col.orderValueStr }}
No matching wishlist items at any shop.
🛒 Multi-Shop Basket Optimiser
Calculates the cheapest way to buy your matched wishlist across Whisky, Gin, Rum and Vodka by consolidating shipping (EU) or minimizing stops (Nordic).
Booked Ferry:
Solving optimal combinations...
No wishlist items available for optimization. Add matched bottles to your wishlist first.
{{ card.title }} RECOMMENDED
{{ card.subtitle }}
Stops list:
{{ stLabel.name }}
{{ shopGroup.label }} ({{ shopGroup.itemCount }})
{{ itm.matchedProduct }}
Query: "{{ itm.bottle }}"
{{ itm.priceStr }} {{ itm.volStr }}
⚠️ Unavailable ({{ card.unavailableCount }})
• "{{ unItm.name }}"
Products Subtotal: {{ card.productsCostStr }}
Landed Shipping: {{ card.shippingCostStr }}
Total Price: {{ card.productsCostStr }}
Savings vs. Alko: {{ card.savingsCostStr }}
{{ m.name }} {{ m.priceStr }} ({{ m.savingsStr }})
GRAND TOTAL: {{ card.grandTotalStr }}
⚡ System Scrapers Status
Monitor retailer data updates or trigger manual scrape queues.
Retailer Shop Country Type Last Scraped Time Whisky Rum Gin Vodka Status
{{ scr.flag }} {{ scr.name }} {{ scr.name }} BASE
{{ scr.country }} {{ scr.type }} {{ scr.lastScraped }} {{ scr.whiskyCount }} {{ scr.rumCount }} {{ scr.ginCount }} {{ scr.vodkaCount }} {{ scr.statusText }} {{ scr.healthText }}
Live Scraping Monitor
{{ sseStatusText }}
Overall Progress {{ overallProgressText }}
{{ activeShopProgressName }} {{ activeShopProgressText }}
{{ log.text }}
{{ detail.mono }}
{{ detail.name }} UNICORN NEW {{ detail.gapDaysStr }} ATL {{ detail.priceDropStr }} {{ cb.label }}
{{ detail.sub }}
{{ detail.imageEl }}
{{ detail.mono }}
⤢ zoom
Best €/70cl
{{ detail.per70Str }}
{{ detail.savLabel }}
{{ detail.savValue }}
{{ detail.savSub }}
Rating
{{ detail.ratingStr }}
Value Metrics
LPA: {{ detail.eurLpaStr }} QPR: {{ detail.qprStr }}
Tasting notes · Alko
{{ detail.flavour }}
Price history · €/70cl by shop · all scrapes
{{ lg.name }}
{{ g.label }} {{ xx.label }}
{{ detail.priceChart.tipDate }}{{ detail.priceChart.tipCount }} lines
{{ ti.name }}{{ ti.priceStr }}
No trusted price history for this product.
Available at {{ detail.offerCount }} shops
{{ o.shop }} BESTUNVERIFIED MATCH
{{ o.ship }} · {{ o.savStr }}{{ o.metaStr }}
{{ o.per70Str }}
No current offers in this cellar.
Add to whose wishlist?
⚑ Flag an issue
{{ zoomEl }}
System Changelog
Distill.ai updates
v4.1.0 August 2026 (Wishlist Truth & Data Health)
  • Wishlist truth — saved bottles no longer disappear just because they are not discounted. Alko-only bottles, last-seen bottles and products that are currently not stocked all remain visible with an honest status.
  • Restock radar — bottles returning after a real availability gap wear a BACK badge, with a quick filter for finding them immediately.
  • Vanished view — recently disappeared bottles have their own view with the last shop, price and sighting date, while Alko delistings remain in their existing Unicorn flow.
  • Shop-health signals — the scraper panel and affected deal rows now show failed, degraded and stale shops instead of silently presenting old prices as current.
  • Cleaner ABV data — implausible strengths are rejected at every ingestion boundary, title parsing is safer across shops, and field-coverage drops are recorded before bad metadata can affect matching.
  • Safer releases — the dashboard shell refreshes across deployments, release bundles are verified before promotion, and Cloud-owned wishlist data survives both upgrades and automatic rollbacks.
v4.0.0 August 2026 (Matching & Identity Overhaul)
  • Rebuilt matching engine — a ground-up rewrite, precision-first: it will not merge different ages, cask finishes, editions or strengths, so phantom deals are gone by design. A learned scorer trained on thousands of human decisions rules the borderline calls, and anything genuinely uncertain goes to a human instead of being guessed.
  • Permanent product identity — every bottle now has a stable ID. Price history follows the product through every rebuild instead of being stranded or pinned to the wrong bottle, and saved links keep working.
  • Prices are the shop's own price — shipping is no longer folded into what you see. A €119 bottle reads €119. Real parcel costs are applied where they belong, in the basket optimiser, on top of shelf prices.
  • Savings are only quoted on confirmed matches — if a bottle's match hasn't been verified yet, you'll still see the bottle and its price, just no saving against Alko. Nothing is claimed that hasn't been checked.
  • Cleaner tables — listings a shop has quietly stopped updating are hidden until they come back, bottles Alko has delisted move to Unicorns, and Alko-only bottles finally have a table of their own.
  • Filters and rows that behave — per-field clear buttons and a clear-all, a shop filter showing each shop's full catalogue with apply/reset, cross-shop prices colour-coded by how much they overpay, readable tooltips, and clicking a scoped row actually opens it.
v3.7.0 June 2026 (Enrichment, Optimiser & QPR)
  • Deep catalogue enrichment — pull region, age, cask and ABV from each EU shop's detail pages (whiskyworld, finedrams, weinquelle, domwhisky, whisky.de & more) into product views, cached and resilient to IP blocks via circuit-breaker, throttling and progress-saving flushes.
  • Multi-shop basket optimiser — builds the cheapest basket across shops, consolidating EU parcels and minimising Nordic ship stops, with per-member group allocations.
  • QPR & LPA — new quality-per-€ (QPR) leaderboard and €/LPA figures, plus a glossary tab, tooltips and Min/Max LPA & QPR filters.
  • Ratings sources overhauled — fixed gin (ginventory) and rum (RumX) lookups, dropped fake vodka scores, and normalised all ratings to an indicative 0–100 scale.
  • Sharper matching gates — special/limited-edition, ABV-strength, rum-variant and age-statement gates kill phantom deals and cross-edition mismatches.
  • Filter tray & custom badges — collapsible left filter tray, a combined country/area filter, and extensible profile-specific badges.
  • Security hardening — Argon2 password hashing, input validation, endpoint test coverage and Secure session cookies under TLS.
  • Match fixes — split conflated editions (e.g. Chivas Regal 18 vs XV) and corrected Eckerö multi-pack bottle volumes.
v3.6.0 June 2026 (Self-Referential Price Alerts & CLI Refactor)
  • Self-referential price-drop alerts — the catalog now tracks and alerts on local shop price drops independently of the Alko baseline.
  • Full-category scrape & process by default — CLI entry points now process all profiles and categories; flags only narrow scope.
  • Playwright scraper optimisation — converted the browser-based whisky.de scraper to plain HTTP, leaving Playwright only for the onboard ship preorder flow.
  • Visual polish — replaced category emoji with custom per-category inline SVG icons.
  • Faster non-whisky runs — load the large ratings cache only for whisky; threaded category checks stop false wishlist hits.
  • Persistent mismatch flags — user flags double-write to match_flags.json so reports survive cloud redeploys; shorter nicknames.
  • Robustness & easter eggs — multi-pack volume matching, atomic snapshot writes, column sorting, and the Octomore Overload easter egg.
v3.5.0 June 2026 (Rum, Gin & Vodka go live)
  • Rum, Gin and Vodka are now browsable in the dashboard — pick them from the category rail on the left (flagged new!). Full deals & unicorns tables, search/filter, detail modals and price-history charts work per category.
  • Each category compares against a category-specific Alko baseline — rum priced against rum, gin against gin — no cross-category noise.
  • Vodka matcher gained named-edition, organic and numeric/proof-edition gates so a plain bottle no longer matches its premium siblings (Belvedere 10, Stoli Gold, Crystal Head editions, Absolut Elyx…).
  • Wishlist matching reliability fix; Excel export now opt-in (faster everyday runs) with a cloud share bundle.
v3.4.0 June 2026 (Category Matching: Gin & Vodka)
  • Added dedicated gin and vodka matching engines so deals compare like-for-like — a London Dry no longer matches a Pink or Sloe, and Absolut Citron no longer matches Absolut Watermelon.
  • Smarter category routing: bottles are matched within their own spirit category even when the name omits it (flavoured vodkas), with Estonian Viin and Polish Wódka now recognised.
  • Named-edition awareness for gin (Hendrick’s Orbium vs Oasium, Tanqueray Rangpur) and alcohol-free 0.0% bottles kept separate from full-strength.
  • Gin & vodka catalogue enrichment (style / sub-type + flavour) feeding richer product detail views.
v3.3.0 June 2026 (Settings & Accent Themes)
  • Added interactive sidebar ⚙️ settings popover with positioning arrow and outside-click auto-dismissal.
  • Wired custom Theme Accent Selector supporting Gold, Deep Amber, Emerald Green, Violet, and Cyberpunk Pink themes.
  • Implemented UI Density Selector (Cozy vs Compact) and accessibility Text Size Toggles with local storage persistence.
  • Integrated real-time client-side table filters for Min/Max Price and Min Volume.
v3.2.0 June 2026 (Announcements)
  • Configurable status bar announcement ticker updating live without server restarts.
  • Support for profile targeting: restrict status bar announcements to [nordic] or [eu] profiles.
  • Premium auto-rotating ticker with subtle slide transitions, pause-on-hover, and manual page navigation.
v3.1.0 June 2026 (Wishlist & Pricing)
  • Configurable forwarding fees in the EU Profile to support custom shipping splits.
  • Implemented Group Allocations tab for Nordic profile to auto-reconstruct shopping splits by member.
  • Added active bottle pricing, volumes, and database canonical references to wishlist matches.
  • Optimized Cellar Explorer loading times by slicing lists to 100 rows with a manual **Load More** button.
v3.0.0 June 2026 (SPA Core)
  • Complete UI overhaul into a premium, responsive dark-mode Single Page Application.
  • Added interactive Wishlist Editor Panel and auto-sync options.
  • Built real-time System Scrapers stream console monitoring via SSE connectivity.
🥃
About Distill.ai
The price revolution
Why does this exist?
Because Finland's state monopoly (Alko) thinks €80 for standard entry-level single malt is a "bargain". Distill.ai scrapes prices from European shops that actually want your money, then matches them against Alko's database. Value proposition: Find out exactly how much you save by skipping the state-approved highway robbery.
The Finnish Alcohol Market Paradox
  • Politicians in slow motion: Parliament is "actively debating" reforming the market. Progress is currently slower than a Laphroaig aging in a damp, freezing Islay warehouse.
  • Home delivery roulette: Ordering alcohol to your door in Finland is technically a constitutional mystery. Is it legal? Is it illegal? Will a customs officer drink it? Who knows! Distill.ai helps you bundle orders to make the border-run delivery logistics actually worth the anxiety.
Wannabe Connoisseurs Alert
No, you do not need to taste "hints of wet cardboard", "damp library book", "horse blanket", or "notes of crying orphans" to enjoy a dram. We deal in numbers: price, volume, and math. Leave the "notes of rain-slicked granite" to the blog posts.
Yes, water opens up the proof. Yes, ice is fine. Blends are built for a reason, and bourbon stands toe-to-toe with any scotch. We care about what is actually in the glass and how it tastes to the person holding it. Drink it how you want, and leave the snobbery to the amateurs.
✨ Financial Advice
"Don't let anyone talk you out of starting a 150€ whisky collection. That 520€ will be the best 5000€ you will ever spend!"
LPA (Litre of Pure Alcohol) Metric: €/LPA
Normalizes the price of any bottle to a 100% alcohol concentration, enabling fair value comparison across different sizes and strengths.
Formula
Price / (Volume in L × (ABV% / 100))
💡 Category Nuance: Crucial for comparing cask-strength vs. standard whiskies/rums. For Vodka, it is the primary value metric. Less relevant for Gin.
QPR (Quality-Price Ratio) Metric: €/pt
Measures the cost paid per rating point. A lower value indicates a highly rated bottle available at a relatively bargain price.
Formula
Price / Rating Score
💡 Category Nuance: Whiskies use Whiskybase (0–100 scale, typically 80–95). Rums use RumRatings. Gins have sparser reviews. Vodkas rarely have rating data.
Savings vs Alko Metric: € / %
The direct cost benefit of importing from Europe versus purchasing locally from Finland's state monopoly (Alko).
Formula
Alko Price/70cl − Shop Price/70cl
🚚 Shipping is not in here. Both sides are shelf prices, so every € shown is the shop's own. Shipping depends on your basket, not the bottle — the Basket Optimiser adds the real parcel cost (forwarder + domestic legs, free-over thresholds) once it knows what you're ordering.
💡 Category Nuance: High progressive taxation in Finland on alcohol volume and ABV makes savings massive on cask-strength spirits and premium whiskies/rums.
Other Indicators
  • 🦄 Unicorn (Not in Alko): Rare or specialty bottles that are completely unavailable via Alko.fi. Importing them is the only way to obtain them in Finland.
  • 🐻 Verokarhu's Reserve: The mirror image — bottles Alko stocks that no shop we track carries, so importing is not an option. Verokarhu is "the tax bear", the Finnish taxman: the joke is that these sit on his shelf and nobody else's. Note it is about the monopoly, not the country — only a handful are actually Finnish; the rest are mainstream bottles the travel-retail and mail-order shops in this profile simply don't stock. No saving is shown: Alko is the baseline.
  • 📉 All-Time Low: Mapped to historical scraping logs. Indicates the current merchant price is the lowest recorded since we started tracking.
🚧{{ toast }}

Distill.ai

Welcome to Distill.ai

Select your credentials to access the collection.

🔒
⚠ {{ errMsg }}

Authorized Access Only. All transactions and viewing history are cryptographically logged in the Vault Ledger.

© 2026 Viskisiepot

{{ infoModalTitle }}

{{ infoModalContent }}