Skip to content
LeitaguDocs

Loading…

Pages

Product

How Leitagu works

The shopper journey from first message to the store's product page, including the exact rules for matching, suggestions, room fit and availability.

Updated 16 October 2026View as Markdown

A shopper chats with Leitagu, answers up to four short questions or types freely, and gets products from one catalogue of Estonian stores, grouped by how closely they match. A saved room lets Leitagu check free wall and floor space, suggest what to add, and show products in a 3D view where the shopper can keep the ones they like. This page walks through the journey end to end and explains the matching rules in plain words, as they are built in the app today.

All products, prices, stock levels, store cities and delivery times in the app are example data. The rules on this page are real.

The journey at a glance

  1. Sign in and start a chat.
  2. Say what you are looking for, or tap an example prompt.
  3. Answer up to four short questions (what, size, budget, how soon), or skip straight to results.
  4. Optionally link a room: from a template, the room editor or a photo.
  5. See results grouped as "Very close", "Close", "Other options" and "Slightly over your limits", each with a one-line reason.
  6. Try products in the 3D room, browse through them and keep the ones you like.
  7. Refine in plain words: "cheaper", "darker", "only things I can take home today in Tartu".
  8. Ask "What could go here?" for ideas that fit the room's free space.
  9. Save favourites and see later whether their price has changed.
  10. Open the product in the store's own web shop.

Accounts and languages

  • Today you need an account: sign up with an email address and a password of at least 10 characters. There is no password reset or email verification yet.
  • The requirements call for full use without an account, with sign-in (by an emailed link) asked for only when it adds value, such as saving favourites or alerts. That is planned, not built.
  • The interface is in Estonian and English, and you can switch at any time. Leitagu replies in the language you use in the app.

Chats

  • You can run several chats at once, for example one for a sideboard and one for a dining table. Each chat gets a title from your first message or the category, and you can rename or delete it.
  • A new chat opens with a greeting and example prompts, for example "Hele tammepuhvet alla 500 €", "Valge kummut max 120 cm lai" and "Pähklipuust diivanilaud, saan kohe kaasa võtta" (in English: "Light oak sideboard under €500", "White chest of drawers max 120 cm wide", "Walnut coffee table I can take home today").
  • On a computer, the chat is on the left, the 3D room on the top right and the products below it. "Expand" shows the products full screen with the room as a small floating window. On a phone these become three tabs: Chat, Room and Products.

Guided questions

After your first message, Leitagu asks the questions it still needs, one at a time. Each comes with tap-to-answer chips, you can type an answer instead, and "Show results now" is always offered.

Question Chips offered Asked when
What do you want to find? The eight categories, "Anything", and "Replace: [piece]" if you picked a piece in your room No category yet
Any size limits? "Fits your room: up to N cm" (room linked, storage furniture), "Same width as now: N cm" (when replacing a piece), up to 60, 100, 140 or 180 cm wide, "No limit". You can also type, for example "max 140 wide, 45 deep". No width, depth or height limit yet
What is your budget per item? Under €200, €500 or €1000, "No limit" No maximum price yet
How soon do you need it? Take it home today, See it in a store first, Delivered within 2 weeks, Doesn't matter No availability choice yet
Which city? Tallinn, Tartu, Pärnu, Narva, All cities You chose "today" or "see it first"

Questions already answered by your text are skipped. So "valge kummut alla 300 €, max 120 lai" goes straight to the timing question.

When results appear, Leitagu lists what it assumed for anything you didn't set, for example "Assumed: no size limit, delivery time does not matter."

Typing in your own words

You can always type instead of tapping, in Estonian or English. Leitagu turns the message into search settings, then asks its next question or, if results are already showing, runs the search again.

  • Categories, wood and colour: "puhvet", "kummut", "riiul", "diivanilaud", "tamm", "pähkel", "valge", "must", "hele", "tume".
  • Material and style: "täispuit", "spoon", "skandinaavia", "japandi", "industrial".
  • Limits: "alla 300 €", "120 cm lai", "45 sügav", "90 cm kõrge".
  • Stores: "ainult Aatrium", "ilma JYSKita", "only Home4You".
  • Timing and place: "täna kaasa", "tahan poes näha", "kiire tarne", "Tartus".
  • Relative changes: "odavam" or "cheaper" lowers the price limit by about 20%; "tumedam" or "heledam" moves the tone one step darker or lighter.
  • Other filters: "soodus" (on sale only), "cheapest first", "lapse- ja lemmikloomasõbralik" (child and pet safe), "ise kokkupandav" (flat-pack).
  • A room: mentioning one of your saved rooms by its name links it to the chat. With the Claude connection, a looser reference such as "for my bedroom" also works.
  • Ideas: "mida siia lisada?" or "what should I add?" asks for suggestions.

How the message is read depends on the setup:

  • With the Claude connection (an Anthropic API key on the server), Claude reads the message and returns settings from Leitagu's fixed vocabulary. It also handles corrections ("it's walnut, not oak"), what should match ("only the style matters"), how strict to be ("exact match"), and short questions about furniture or the app. It is instructed never to list or invent products, prices or stock, and never to re-add a filter you removed unless you ask for it again.
  • Without it, a built-in keyword parser handles the common phrasings above. It doesn't handle corrections, match strictness or "what should match"; matching then uses tone and style together at normal strictness.

Filters you can see and change

Every active setting is shown as a chip above the message box, for example "Width ≤ 140 cm", "Price ≤ €300", "Tartu" or "light". Chips for the look (tone, wood, finish and so on) have a dashed border; chips for limits have a solid one. Tap a chip to change it, or × to remove it. Either way the search runs again. A filter you removed stays removed.

Rooms

A room is a simple model of a real room. It is saved once and can be used in any number of chats.

Creating a room

Template Size (width × depth, cm) What is in it
Living room 480 × 400 A grey sofa, a rug, an armchair, a plant and a floor lamp. A window on the back wall, a door on the left wall.
Dining room 440 × 400 A light oak veneer dining table, a white bookcase, two chairs, a rug and a plant. A window on the back wall, a door on the left wall.
Bedroom 380 × 360 A bed, a rug and a plant. A window on the left wall, a door on the back wall.
Empty room 400 × 360 Nothing, with one window on the back wall.

All templates are 260 cm high. Their measurements are meant to be typical for Estonian flats.

From a photo. You can also send a photo, either in the chat or from "New room". This needs the Claude connection; without it the option is turned off and the app says why.

  • The browser shrinks the photo (to 1280 pixels on the long side) before sending it.
  • Claude estimates the room type, the length of the wall the camera faces and the room's depth (from typical furniture sizes), the wall and floor colours, windows and doors, and up to ten pieces of furniture with their type, colour, material, wood, tone, finish, style, legs, handles, fronts, size and position.
  • If a sheet of white paper is visible, Claude corrects the colour reading for it and Leitagu says so. If not, Leitagu suggests using one next time.
  • A close-up of a single piece also works; the room then contains just that piece.
  • The ceiling height is set to 260 cm. Measurements are estimates, and the app asks you to check them.
  • Each person can send up to 20 photos an hour for analysis.

Editing a room

The room editor covers:

  • name, room type, width, depth and height;
  • wall and floor colour;
  • windows and doors: which wall, position, width and, for windows, the sill height;
  • the furniture in the room: type, name, colour, material, wood, tone, finish, style, legs, fronts, handles, size, placement (back wall, left wall or floor), and whether the piece is existing or planned.

Every change saves automatically and shows in a live 3D preview.

The room model has two walls, the back wall and the left wall, drawn as a cut-away. Windows, doors and wall-standing furniture can only be on those two walls.

Using a room in a chat

  • Link a room by picking it in the chat, creating a new one, or naming it in a message.
  • Tap a piece in the room to search based on it. Leitagu shows what it sees ("Selected: Dining table. I see:" followed by its material, wood, tone and other attributes, and a colour swatch), and those attributes become the look to match.
  • If you then pick "Replace: [piece]", results are shown in that piece's place, and the size question offers "Same width as now".

How matching works

Matching runs in four steps: strict filters remove what you can't use, size and price limits allow a few labelled near misses, a similarity score compares the look, and the results are grouped and ordered.

Step 1: Strict filters

A product is left out completely if any of these fails:

  • Category. It must be the category you asked for. "Storage" covers sideboards, chests of drawers, cabinets, TV units and shelves; "table" covers dining, coffee and side tables.
  • Stores. It must be from a store you asked for, and not from one you excluded.
  • On sale only. It must have a sale price.
  • Flat-pack or assembled. It must match your choice.
  • Child and pet safe. If you ask for this, products marked as not safe are left out. Products with no information are shown with the note "Child/pet safety not confirmed".
  • Take it home today. It must be in stock in your city, or in any city if you didn't pick one.
  • See it in a store first. It must be on display or in stock in your city (or anywhere, if no city).
  • Delivered within 2 weeks (or another number of days you name). Its delivery time must be within the limit. Products with an unknown delivery time are left out.
  • Minimum price. It must not be cheaper than a minimum you set.
  • Active. Hidden or discontinued products never appear.
  • Has a size. Products without a width, depth and height never appear, because they can't be checked against size limits or placed in a room.

Step 2: Size and price limits, with near misses

Maximum width, depth, height and price work differently. A product over any of them is normally left out, but if it is no more than 12% over every limit it breaks, it can appear as a near miss. Leitagu adds two near misses when there are at least six normal results, three otherwise, and none in "what should I add" suggestions.

Near misses are always shown last, under "Slightly over your limits", with a dashed border and a note such as "Over the limit: 8 cm, €20".

Step 3: How similar is it?

The look to match (the reference) comes from what you described, a piece you tapped in your room, a product you chose "More like this" on, or, for suggestions, the room's overall look.

Leitagu compares up to ten attributes. Each comparison scores from 0 (no match) to 1 (same):

Attribute Full match Partial credit
Colour Same colour Falls with the colour difference (CIE76 ΔE); 0 at a difference of 35 or more
Tone Same of six steps: white-washed, very light, light, medium, dark, very dark One step apart 0.6, two steps 0.2
Undertone Same: warm, reddish, neutral or cool 0.45 if one of them is neutral
Finish Same 0.6 within a family: matte, oiled, waxed and textured; satin, lacquered and painted; gloss on its own
Wood Same species 0.3 for two different woods; 0 for wood against painted or no wood
Material Same 0.7 for solid wood against veneer
Style Same 0.55 for neighbouring styles: Scandinavian and Japandi, Scandinavian and mid-century, modern and Japandi, modern and Scandinavian, industrial and rustic, classic and rustic
Legs Same type None
Handles Same type and colour 0.7 for the same type, plus 0.3 if the colour matches or you didn't specify one
Fronts Same type None

An attribute counts only if both the reference and the product have it. The score is a weighted average of the attributes that count. The weights depend on what you said should match:

Attribute Tone and colour Style Both (default)
Colour 3 0.5 2.5
Tone 3 0.5 2
Undertone 2 0.2 1.5
Finish 1.5 0.5 1.2
Wood 1.5 0.5 1.2
Material 1.2 0.3 1
Style 0.5 3 2
Legs 0.5 2 1.5
Handles 0.3 1.5 1
Fronts 0.2 1 0.5

If you ask for an exact match, tone, undertone and finish count 1.6 times as much, material 1.5 times and colour 1.4 times, and products scoring under 45% are dropped.

If there is nothing to compare (for example, you asked only for "a chest of drawers under €300"), products have no score.

Matching uses product attributes and one colour per product. It does not compare images.

Step 4: Grouping and order

Group Score
Very close 75% or more
Close 50–74%
Other options Under 50%
Slightly over your limits Near misses, whatever their score

Within the results, products are ordered by score. When scores are equal, or there is nothing to compare, products on sale come first, then cheaper ones. "Cheapest first" orders everything by price and drops the groups.

What each result shows

A product card shows a picture, the name, the price (with the old price if it is on sale) and either "today" or the delivery estimate. Clicking it opens the details:

  • store, size (W × D × H cm), material, the store's own colour name, and flat-pack or assembled;
  • availability: "Take home today: Tallinn (2 pcs)", "On display: Tallinn, Tartu", and "Home delivery 4–6 days" or "Not in stock, delivery 6–8 weeks";
  • a "why it matches" line built only from attributes that actually match, for example "Same light oak · warm undertone · veneer like yours · Scandinavian style". It can also mention how far under your width limit or budget the product is, and whether it is on sale;
  • warnings: "Wood-look foil, not real wood", "Child/pet safety not confirmed" or "Over the limit";
  • the score as "Match 82%", when there is one;
  • buttons: Keep in room (when a room is linked), Open in store, Save (favourite) and More like this.

Each results list also carries the note "Colours on screen differ from real life. For an exact tone, see the piece in a store."

When a product's data includes an image link from the store, the card shows that picture, loaded from the store's website. Otherwise, as for every example product, the picture is a 3D rendering built from the product's attributes.

Refining from results

  • Chips under the results: "Cheapest first" or "Best match first", "Take-home today only", "On sale only", "Back to the original reference" and, with a room linked, "What could go here?".
  • More like this makes that product the new reference. Category, size and budget stay the same. "Back to the original reference" undoes it.
  • Any typed change ("cheaper", "only Sotka", "45 cm deep") re-runs the search in the same chat.

"What should I add?" suggestions

Ask "What could go here?" (Mida siia lisada?) with a room linked, or type something like "what should I add?". Without a room, Leitagu asks you to pick or create one.

  1. Typical pieces. Leitagu starts from the pieces a room of that type usually has, in this order:

    Room type Typical pieces
    Living room TV unit, coffee table, shelf, sideboard, side table
    Dining room Sideboard, cabinet, shelf, dining table
    Bedroom Chest of drawers, side table, shelf
    Home office Shelf, cabinet, side table
    Hallway Chest of drawers, shelf, cabinet
    Kids' room Shelf, chest of drawers
    Other Shelf, sideboard, side table
  2. What's already there. It skips categories already in the room, whether existing or planned. Side tables are the exception: up to two, and only if the room has seating or a bed. A coffee table needs seating or a living room, and a dining table is suggested only in a dining room.

  3. Where it would fit. For wall pieces, Leitagu looks for a free stretch of wall that is long and high enough:

    Piece Shortest free wall Height needed Widest suggested Under a window?
    Sideboard 100 cm 75 cm 200 cm Yes
    TV unit 120 cm 45 cm 220 cm No
    Chest of drawers 70 cm 85 cm 130 cm Yes
    Shelf or bookcase 50 cm 150 cm 120 cm No
    Cabinet 60 cm 110 cm 110 cm No
    Side table 40 cm 50 cm 55 cm Yes

    The width limit is the widest suggested size or the free stretch minus 10 cm, whichever is smaller. Under a window, the height limit is the sill height minus 3 cm. Each stretch of wall is used for one idea only.

    For floor pieces, Leitagu looks for free floor for a typical coffee table (110 × 60 cm) or dining table (160 × 90 cm), allowing a piece 20% smaller, and searches for products up to 15% wider than typical (126 cm and 184 cm).

  4. The room's look. Colour, tone, undertone and wood come from the room's largest storage piece or table (by front area), preferring existing pieces. Sofas, armchairs, beds, chairs, rugs, plants and lamps are skipped, because they say little about which wood tone to buy. Style is the most common style among all the pieces.

  5. Your limits. Budget, stores, sale only, availability, city, delivery time, child safety and flat-pack carry over. An earlier category or size limit does not.

  6. The result. Up to four ideas, each with a reason and up to eight products that score at least 35% (or have nothing to compare). Ideas with no matching products are skipped. If nothing fits, Leitagu says so and suggests checking the room's measurements.

How free wall space is worked out

  • Furniture whose footprint starts within 60 cm of a wall blocks that part of the wall. Rugs don't count.
  • Each door keeps its width plus 10 cm on each side clear for the swing.
  • Free wall is split where a window starts and ends. Under a window the tallest piece allowed is the sill height minus 3 cm; elsewhere it is the room height minus 10 cm.
  • Stretches shorter than 30 cm are ignored.
  • Free floor means at least 20 cm from the walls and 12 cm from other furniture (rugs don't count). Leitagu picks the free spot closest to the middle of the room, slightly towards the front.

The same calculation drives the "Fits your room: up to N cm" chip in the size question, which uses the longest free stretch minus 10 cm.

The 3D room and keeping products

  • When new results or suggestions appear and a room is linked, the best match is placed in the room straight away, as a preview.
  • Where it goes. A suggestion goes into the free spot found for that idea. A replacement takes the place of the piece it replaces. Otherwise, coffee and dining tables go on free floor, and other pieces go into the first gap along the back wall, then the left wall.
  • Browsing. The ‹ and › buttons in the room panel swap through the results in the same spot. Clicking a product card also previews it in the room.
  • Keeping. "Keep in room" saves the product to the room as a planned piece, with the catalogue's size and look. The room panel shows how many products you have kept and their total price. Keeping a replacement hides the piece it replaces; a newer replacement for the same piece takes the place of the earlier one.
  • Removing. Removing a kept product turns it back into a preview in the same place, so you can change your mind.
  • Viewing. Drag to rotate. The day and evening switch shows how warm evening light changes wood tones. The view is labelled "Illustration, not to scale".

Availability

Each product carries three kinds of availability data: how many are in stock in each city, which cities have it on display, and the delivery time in days. Leitagu knows four cities: Tallinn, Tartu, Pärnu and Narva.

  • Delivery estimates are shown as a range: up to 10 days as "4–6 days" (the number of days plus two), longer as weeks, for example "6–8 weeks".
  • Delivery over 14 days is highlighted on the card.
  • The filters are described in Step 1.

All availability data is example data today. Real per-store stock, display and delivery data has to come from stores.

Favourites

  • Tap Save (♡) on any product. The Favourites page lists saved products.
  • Each favourite remembers its price when you saved it and shows "Price dropped by €X" or "Price went up by €X" when it changes.
  • If a product is no longer sold, the favourite says so.
  • "More like this" on a favourite starts a new chat that searches from that product.

Going to the store

"Open in store" opens the product in a new tab, through a Leitagu link (/go/<product>). That link records a store visit (which product, and who, if signed in) and then sends you to the store's product page. If a product has no product link, as with the example data, it goes to the store's homepage instead. Stores see these visits only as totals in the partner app; see Analytics definitions. Leitagu has no checkout and takes no orders.

The same link is where affiliate parameters could be added later; none are added today. See Why join Leitagu.

What is not built yet

Feature Status
Real product data from stores Connections are built: a store connects its Shopify store, a product feed or a CSV upload in the partner app. No real store has connected yet, so all products are example data. Attributes are read from the store's fields and text; reading them from product images is planned. See the partner integrations guide.
Using Leitagu without an account; sign-in by emailed link; Google or Smart-ID sign-in Planned. Today an email and password are required.
Password reset and email verification Not built.
A button to delete your account Not built. The server can delete an account and everything in it.
Image-based matching: comparing product images, colour measured from product photos, a final check of the top results by a vision model Planned.
Store photos on product cards Partly built: a product with an image link in the store's data shows that photo, loaded from the store's website. Example products have none and show 3D renderings. Image rights are still to be settled with stores.
"Last checked" time on prices and stock Not built.
Price history, price-drop alerts, new-match alerts for saved searches, back-in-stock alerts Planned.
Favourites grouped into lists per room Planned. Rooms can hold kept products.
Shared lists, votes and comments for couples Planned for after the beta.
Thumbs up or down on results, "Did you find something?" Planned.
Radiators, sockets, skirting boards and sloped ceilings in rooms; furniture on the other two walls Not built. Obstacles are planned.
Complementary matching ("goes with it, not the same") within a category Planned.
Room-by-room planner with a total budget Planned for after the beta.
Second-hand listings Later, and an open question.
Russian interface Open question.