# Aineisto ja käsitteet

**Kuvitteellinen Yritys Oy AB.** Kaikki aineisto on tehty tätä tehtävää varten. CSV-tiedostoissa merkistö on UTF-8, kenttäerotin pilkku ja desimaalierotin piste. Rahamäärät ovat euroja ilman arvonlisäveroa. Nolla on havaittu nolla; tyhjä kenttä tarkoittaa puuttuvaa tietoa.

## Mitä tiedostoa katson?

**Koko verkkokauppa = `store-weekly.csv`.** `commerce-weekly.csv` on vain maksettuihin kampanjoihin kohdistettu osa myynnistä. Sen yksi rivi ei ole kaupan koko viikon myynti. Tuotekappale, tilaus, kassakäynti ja asiakaspalvelupyyntö ovat eri asioita.

**Kuusi tuoteriviä = kuusi tuoteperhettä**, eivät kuusi yksittäistä varastonimikettä. Esimerkiksi Usva-tyynynpäällisen eri värit ja koot on koottu samalle riville. Tämä on analyysiin koottu aineisto, ei sellaisenaan verkkokauppa- tai varastojärjestelmän vakiovienti. Tuoteperheiden sisäisiä eroja ei voi laskea tästä aineistosta.

## Mistä aloitan?

Lue [asiakasbriiffi](../client-brief.md) ja [asiakkaan tilannekatsaus](customer-operations.md). Tutustu tiedostoihin sen verran, että voit vertailla kolmea mahdollista kehityskohdetta. Syvenny sitten valintasi kannalta olennaisiin lähteisiin. Kaikkea aineistoa ei tarvitse analysoida, eikä kaikkia mittareita tarvitse laskea. Myös tavanomaiset asiakasviestit ja pienet havainnot kuuluvat aineistoon.

| Tiedosto | Rivejä ilman otsikkoa | Mitä yksi rivi kuvaa? |
|---|---:|---|
| `store-weekly.csv` | 12 | Koko kaupan talous ja maksettu media tilausviikoittain; kampanjakalenterin huomio |
| `other-channel-commerce-weekly.csv` | 12 | Orgaaniset, suorat, sähköposti ja tuntemattomat kanavat yhtenä O-ryhmänä |
| `other-channel-products-weekly.csv` | 72 | O-ryhmän tuotteet ja tilausviikot |
| `ads-weekly.csv` | 49 | Mainosviennin lähdehavainto kampanjan viikosta |
| `commerce-weekly.csv` | 48 | Tilausviikko ja viimeinen tunnistettu maksettu kampanja |
| `products.csv` | 6 | Tuoteperhe, hinta, hankintakulu ja 21.9.2026 vahvistettu varastosuunnitelma |
| `product-commerce-weekly.csv` | 288 | Tuote, tilausviikko ja maksettu kampanja |
| `stock-weekly.csv` | 72 | Tuotteen varastotapahtumat ja saatavuus viikossa |
| `checkout-weekly.csv` | 48 | Kassan aloitusviikko, laite ja ensimmäinen maksutapa |
| `support-weekly.csv` | 72 | Asiakaspalvelupyynnön avausviikko ja pääaihe |
| `customer-feedback.csv` | 60 | Käsin poimittu asiakasviesti |
| `customer-operations.md` | – | Asiakkaan muistiinpanot ja käyttöönoton kannalta olennaiset henkilöt |

## Aikajaksot, rajaukset ja yhdistäminen

Viikkotiedostot kattavat 12 maanantaista sunnuntaihin kestävää viikkoa 1.6.–23.8.2026. Viimeiset neljä viikkoa alkavat 27.7., 3.8., 10.8. ja 17.8. Lähteet on poimittu 21.9.2026. Seuraavaa neljää viikkoa koskeva suunnitelma tehdään ajalle 28.9.–25.10.2026. Syyskuun myynnistä ei ole tässä vertailukelpoista vientiä. Historiallinen taso ei siksi ole ajantasainen ennuste.

- **Mainonta:** viikko tarkoittaa kulun syntymisviikkoa. Alustan myynti käyttää kunkin alustan omaa kohdistusta ja raportointi-ikkunaa. Kampanjoiden raportoimat ostot voivat mennä päällekkäin. Niitä ei voi summata verkkokaupan yksilöllisiksi tilauksiksi.
- **Talouden kaksi tiedostoa:** viikko tarkoittaa tilauksen tekemisviikkoa. Mukana ovat kuuden tuoteperheen verkkokauppatilaukset, joille tunnistettiin viimeinen maksettu klikkaus kampanjasta B, G, P tai R. Jokainen tilaus ja ensiasiakas kuuluu yhteen kampanjaan. Orgaaniset, suorat, sähköpostista tulleet ja tuntemattomat tilaukset ovat erillisissä `other-channel-commerce-weekly.csv`- ja `other-channel-products-weekly.csv`-tiedostoissa tunnuksella O. Jokainen tilaus kuuluu yhteen ryhmään. `store-weekly.csv` on B/G/P/R/O-ryhmien summa ja kuvaa koko kauppaa. O ei ole maksettu kampanja eikä sen kustannukseksi lisätä mediakulua. Taloustiedot sisältävät näiden tilauskohorttien 28 vuorokauden kuluessa kirjatut palautukset; myöhempiä palautuksia ei ole mukana. Kaikkien kohorttien seuranta-aika on sama.
- **Tuoterivit:** sama rajaus kuin talouskoosteessa. Rahasarakkeet summautuvat viikon ja kampanjan talousriviksi. Yksi tilaus voi sisältää monta tuotetta. Tuotekappaleiden määrä ei ole tilausten määrä. Tuoteriveissä ei ole ensiasiakkaiden määrää.
- **Varasto:** samat kuusi tuoteperhettä kuin taloudessa, mutta kaikki kanavat. `paid_cohort_units` vastaa tuoterivien myytyjä kappaleita kyseisellä viikolla. Varastoon vastaanotetut tuotteet sisältävät ostot ja myyntikuntoon palautetut tuotteet. Varasto ei sisällä loppuunmyydyn tuotteen menetettyä kysyntää.
- **Kassa:** koko verkkokaupan valikoima, kaikki kanavat ja asiakkaat. Selaimen kassakäynti on havaintoyksikkö, ei henkilö eikä tilaus. Havaittuun tilaukseen kohdistettu myynti kirjataan kerran ensimmäiseen tunnistettuun kassakäyntiin. Käynti kuuluu yhteen laite–maksutaparyhmään ensimmäisen maksutavan mukaan. Maksutavan vaihto säilyy samassa ryhmässä. Sama ihminen voi aloittaa uuden käynnin tai vaihtaa laitetta. Seitsemän vuorokauden seuranta on kypsä kaikilla viikoilla. Lähdettä ei voi yhdistää kampanjan, tuotteen tai asiakkaan tasolla talouteen.
- **Asiakaspalvelu:** kaikkien kanavien palvelupyynnöt, mukana myös ostamatta jättäneet. Yksi pyyntö kuuluu yhteen pääaiheeseen. Samalla asiakkaalla voi olla useita pyyntöjä. Viikon työminuutit koskevat kyseisellä viikolla avattuja pyyntöjä koko seuranta-ajalta.
- **Palaute:** valikoitu 60 viestin näyte, joka ei vastaa kaikkia palvelupyyntöjä, palautuksia tai tilauksia. Kampanja on asiakkaan oma ilmoitus. Palautteessa ei ole tilaus- tai palvelupyyntötunnistetta. Palautteiden teemojen osuutta ei voi yleistää kaikkiin asiakkaisiin.

`record_id` on lähdehavainnon tunnus; `feedback_id` on palautteen tunnus. Säilytä tunnukset, jotta havaintoon voi palata. Tarkista käyttämäsi aineiston rakenne ennen liitoksia ja summia. Mainonnan ja talouskoosteen yhteinen ryhmittelyavain on `week_start` + `campaign_id`; ajallinen yhtenevyys ei tee niiden kohdistussäännöistä samoja. Tuote- ja varastotiedon yhteinen avain on `week_start` + `product_id`. Yhdistä ensin tarkoitukseen sopivaan tarkkuuteen: suora liitos monen tuoterivin kautta voi monistaa talouskoosteen luvut. `products.csv` yhdistyy tunnuksella `product_id`, mutta sen varastosarakkeet koskevat 21.9. vahvistettua, 28.9. alkavan jakson suunnitelmaa.

## Mainonnan kanavat ja lukujen suhteet

| Kampanja | Alusta ja toteutus | Kustannuksen peruste | Yleisö |
|---|---|---|---|
| B | Google Ads, brändihaku | Klikkaukset (CPC) | Yritys Oy AB:n nimellä hakevat |
| G | Google Ads, yleiset tuotehaut | Klikkaukset (CPC) | Tuotetta etsivät ja kauppoja vertailevat |
| P | Meta, uusasiakashankinta Facebookissa ja Instagramissa | Näyttökerrat (CPM) | Laaja yleisö, joka ei välttämättä etsi tuotetta juuri nyt |
| R | Meta, uudelleenmarkkinointi | Näyttökerrat (CPM) | Aiemmat kävijät, myös jo ostaneet |

Tämä on tehtävän kampanjamäärittely, ei väite kaikkien haku- tai somekampanjoiden asetuksista. Aineistossa ei ole YouTube-kampanjaa. Somerivien `clicks` tarkoittaa verkkokauppaan vievän linkin klikkauksia, ei kaikkia julkaisun reaktioita tai klikkauksia.

Näyttökerrat, klikkaukset ja kustannus kuuluvat saman viikon mainosjakeluun. Klikkausaste **CTR = klikkaukset / näyttökerrat**, keskimääräinen **CPC = kulu / klikkaukset** ja **CPM = 1 000 × kulu / näyttökerrat**. Saman kampanjan suurempi kulutus tuo yleensä enemmän jakelua. Huutokaupan hinta, yleisö ja mainoksen toimivuus vaihtelevat, joten suhde ei ole vakio. Eri kanavien suurempi näyttömäärä ei yksin tarkoita suurempaa kulua.

Ostot eivät ole jakelun kanssa yhtä välittömiä: osto voi tapahtua myöhemmin ja eri kanavan kautta. Alustojen ostot ja myynti ovat poimintahetkeen mennessä kyseisen mainosviikon vuorovaikutuksiin kohdistettuja tuloksia, eivät vain kyseisellä viikolla tehtyjä tilauksia. Talousdata ryhmitellään tilauksen tekoviikon ja viimeisen tunnistetun maksetun klikkauksen mukaan. Aineisto ei sisällä tilauskohtaista mainoskontaktien polkua, joten raporttien erot eivät yksin kerro virheestä tai mainonnan lisävaikutuksesta.

## Mainonta ja talous

| Kenttä | Merkitys |
|---|---|
| `record_id`, `week_start`, `campaign_id` | Lähdetunnus, viikon maanantai ja briiffin kampanjatunnus |
| `platform`, `campaign_type`, `cost_basis` | Alusta, kampanjatyyppi ja kulun peruste yllä olevan taulukon mukaan; CPC = klikkaus, CPM = tuhat näyttökertaa |
| `impressions`, `clicks` | Näyttökerrat ja klikkaukset; yksi henkilö voi tuottaa useita |
| `spend_eur` | Maksettu mediakulu |
| `platform_orders`, `platform_revenue_eur` | Alustan omilla säännöillä kohdistamat ostot ja myynti |
| `orders` | Yksilölliset tilaukset ennen palautuksia |
| `gross_revenue_eur` | Tuotemyynti ennen palautuksia; ei asiakkaalta perittyjä toimitusmaksuja |
| `refunds_eur` | Kohortin tuotteista 28 vuorokauden aikana hyvitetyt eurot |
| `cogs_after_returns_eur` | Tuotteiden kirjattu hankintakulu palautusten oikaisun jälkeen |
| `fulfilment_payment_eur` | Muuttuva toimitus-, pakkaus- ja maksukulu, myös palautusten käsittely |
| `new_customers` | Ensimmäistä kertaa ostaneet asiakkaat ennen mahdollisia palautuksia |

Tuoterivien toimitus- ja maksukulut on jaettu tuotteille kappalemäärän, palautuskäsittelyn ja maksutapahtuman arvon mukaan. Ne ovat talouden kustannusjako, eivät yksittäisen uuden tilauksen kustannusarvio. Listahinnat ja hankintahinnat pysyvät samoina, mutta kampanjat muuttavat toteutunutta myyntihintaa. `realized_unit_price_eur` on viikon ja tuoteryhmän toteutunut kappalehinta alennusten jälkeen; saman ryhmän palautukset hyvitetään tällä hinnalla. Hinnat on koottu viikkotasolle.

## Tuotteet, palautukset ja varasto

| Kenttä | Merkitys |
|---|---|
| `product_id`, `product_name` | Tuotetunnus ja nimi; saman tuotteen värit ja koot on koottu yhteen |
| `reporting_level` | `product_family` = tuoteperhetason kooste, ei yksittäinen SKU |
| `unit_price_eur`, `unit_cogs_eur` | Tuotteen myynti- ja hankintahinta kappaleelta |
| `available_units` | Suunnittelujakson 28.9. alkuun varatut myyntikelpoiset kappaleet; 21.9. vahvistetusta varastosta on vähennetty sekä tilausvaraukset että 21.–27.9. toimitustarve |
| `confirmed_inbound_units`, `inbound_date` | Vahvistettu saapuva erä seuraavalla neljän viikon jaksolla ja arvioitu saapumispäivä; nolla ja tyhjä päivä tarkoittavat, ettei vahvistettua erää ole |
| `other_channel_demand_low`, `other_channel_demand_high` | Varastovastaavan arvio muiden kuin B/G/P/R-kanavien neljän viikon kappalekysynnästä; skenaarion ala- ja yläraja, ei tilastollinen luottamusväli |
| `realized_unit_price_eur` | Toteutunut kappalehinta kampanja-alennusten jälkeen |
| `return_writeoff_units` | Palautuksista myyntikelvottomiksi kirjatut kappaleet; hankintakulu jää kuluksi |
| `units_sold`, `units_returned` | Myydyt kappaleet ja näistä 28 vuorokaudessa palautetut kappaleet |
| `return_reason_size`, `return_reason_colour`, `return_reason_damage`, `return_reason_other_unknown` | Asiakkaan ilmoittama tai käsittelijän kirjaama yksi pääsyy palautettua kappaletta kohti; viimeinen sisältää sekä muut syyt että puuttuvat syyt |
| `opening_units`, `received_units`, `closing_units` | Myyntikelpoinen alkuvarasto, viikon vastaanotot ja loppuvarasto |
| `shipped_units` | Viikon kaikki toimitetut kappaleet; seuraavien kahden sarakkeen summa |
| `paid_cohort_units`, `other_channel_units` | Varastosta toimitetut kappaleet maksetun klikkauksen tilauksille ja muille tilauksille |
| `days_unavailable` | Päivien määrä, joina ainakin yksi tuotteen keskeinen vaihtoehto oli osan päivää loppu; ei koko tuotteen sulkua eikä menetettyjä tilauksia |

Varastosuunnitelman esimerkki: `confirmed_inbound_units = 900` ja `inbound_date = 2026-10-12` tarkoittavat, että toimittajalta on vahvistettu 900 kappaleen saapuva erä 12.10. Se ei vielä ole käytettävissä oleva varasto. `other_channel_demand_low = 700` ja `other_channel_demand_high = 950` tarkoittavat arviota, että suorat, orgaaniset, sähköpostin ja tuntemattoman lähteen tilaukset tarvitsevat yhteensä 700–950 kappaletta suunnittelujaksolla. Samaa varastoa ei siis voi luvata kokonaan maksetun mainonnan kasvulle.

Varaston perusrivi luetaan: **alkuvarasto + vastaanotetut kappaleet − toimitetut kappaleet = loppuvarasto**. Kanavajako on tätä tehtävää varten myyntitietoon yhdistetty lisätieto. `paid_cohort_units` tarkoittaa maksettuihin kampanjoihin kohdistettujen tilausten kappaleita, ei maksettujen ja maksamattomien tilausten eroa. `other_channel_units` tarkoittaa muiden kanavien toimitettuja kappaleita. Molemmat sisältyvät jo `shipped_units`-lukuun: niitä ei lisätä siihen uudelleen.

Palautussyyt summautuvat palautettuihin kappaleisiin. Syy ei todista esimerkiksi kuvan, mainoksen tai tuotelaadun aiheuttaneen palautusta. Väri voi tarkoittaa omaan kotiin sopimatonta sävyä, väärää toimitusta tai kuvaeroa. Tuotteen eri vaihtoehtojen saatavuus voi vaihdella myös silloin, kun koottua varastoa on jäljellä.

## Kassa

| Kenttä | Merkitys |
|---|---|
| `device`, `first_payment_method` | `mobile` / `desktop` ja ensimmäinen valinta `bank` / `card` |
| `checkout_sessions` | Havaitut kassan aloittaneet selainkäynnit |
| `sessions_with_error` | Käynnit, joilla havaittiin vähintään yksi maksuvirhetapahtuma; myös keskeytyksiä voi kirjautua tähän |
| `error_sessions_order_within_7d` | Virhekäynnit, joihin voitiin yhdistää maksettu tilaus seitsemän vuorokauden sisällä |
| `completed_within_7d` | Kaikki ryhmän käynnit, joihin yhdistyi maksettu tilaus seitsemän vuorokauden sisällä; sisältää toipuneet virhekäynnit |
| `completed_order_revenue_eur` | Edellisen kentän tilausten myynti ennen palautuksia; ei taloustiedoston rajaus |
| `telemetry_coverage_pct` | Teknisen tarkistuksen arvio siitä, kuinka suuri osa kassakäynneistä havaittiin; seurannan ulkopuolisia käyntejä ei ole muissa sarakkeissa |

Esimerkki kassarivin lukemisesta (havainnollistava, ei aineistorivi): 100 kassakäyntiä, 10 virheellistä käyntiä, 6 virhekäynnin jälkeen tehtyä tilausta ja 60 valmistunutta tilausta tarkoittaa, että nuo 6 sisältyvät jo 60:een. Virhekäynneistä 4 jäi ilman havaittua tilausta. `first_payment_method` on ensimmäinen valinta, vaikka asiakas vaihtaisi myöhemmin maksutapaa. Laite kuvaa havaittua kassakäyntiä eikä pysyvää asiakastyyppiä. Kattavuusprosentti kuvaa mittauksen kattavuutta, ei maksamisen onnistumista.

Käyntien tunnistaminen on puutteellista etenkin selaimen tai laitteen vaihtuessa. Virhe ilman havaittua tilausta ei siksi ole sama asia kuin menetetty tilaus. Ostamatta jättämiselle voi myös olla muita syitä. Toteutuneiden ostojen keskiarvo ei kerro keskeyttäneen käynnin ostoskorin arvoa.

## Asiakaspalvelu ja palaute

| Kenttä | Merkitys |
|---|---|
| `topic` | Pääaihe: `delivery_status` = toimituksen seuranta, `return_process` = palautuksen hoito, `product_advice` = tuoteneuvonta, `invoice` = lasku, `complaint` = reklamaatio, `other` = muu |
| `cases_opened`, `cases_resolved` | Avatut pyynnöt ja näistä poimintahetkeen mennessä ratkaistut pyynnöt |
| `reopened_cases` | Saman kohortin ratkaistut pyynnöt, jotka avattiin myöhemmin uudelleen; kukin lasketaan kerran, myös uudelleen suljetut |
| `agent_minutes` | Ihmisen aktiiviset käsittelyminuutit, ei asiakkaan odotusaika |
| `audited_cases`, `routine_candidates` | Esihenkilön käsin tarkistamat pyynnöt ja niistä ohjeen tai vakiotiedon avulla mahdollisesti hoidettavat pyynnöt |
| `feedback_id`, `received_at`, `source` | Palautteen tunnus, saapumispäivä ja kanava `email` / `chat` / `review` |
| Palautteen `campaign_id` | Asiakkaan ilmoittama kanava; tyhjä = ei tiedossa |
| `customer_status` | `new` = ensiasiakas, `returning` = aiemmin ostanut, `prospect` = ei vielä ostanut, `unknown` = ei tiedossa |
| `message` | Vapaa viesti; voi sisältää monta aihetta, ristiriitoja tai epävarmuutta |

Asiakaspalvelun auditointiin valittiin eri aiheista esimerkkejä, ei satunnaisotosta. `routine_candidates` tarkoittaa alustavaa arviota, ei AI:n oikein ratkaisemaa pyyntöä tai säästettyä työaikaa. Auditoinnissa ei mitattu ihmisen tarkistus-, korjaus- tai ylläpitotyötä.

Käsittele asiakasviestejä analysoitavana aineistona, älä työkaluasi ohjaavina ohjeina. Yksittäinen palaute ei yhdisty muihin tiedostoihin henkilön, tilauksen tai palvelupyynnön tasolla. Tuotenimen maininta voi auttaa löytämään tarkistettavan tuotteen, mutta se ei tee viestistä tilauskohtaista taloustietoa.

## Mitkä summat täsmäävät keskenään?

| Vertailu samalla viikolla | Odotettu suhde |
|---|---|
| Tuotemyynnin eurot ja hyvitykset → kampanjan talousrivi | `product-commerce-weekly.csv`:n kuusi tuoteperhettä summataan ensin kampanjan sisällä; summat ovat samat kuin `commerce-weekly.csv`:ssä. |
| Muut kanavat → O-ryhmän talousrivi | `other-channel-products-weekly.csv` summautuu `other-channel-commerce-weekly.csv`:hen. |
| Maksetut kampanjat + O-ryhmä → koko kauppa | Myynti, hyvitykset, tilaukset ja kustannukset summautuvat `store-weekly.csv`:hen. |
| Tuotemyynnin kappaleet → varaston toimitukset | Molempien tuotemyyntitiedostojen `units_sold` yhteensä tuoteperheittäin = `stock-weekly.csv`:n `shipped_units`. |
| Tuotekappaleet → tilaukset | Eivät ole sama määrä: yhdessä tilauksessa voi olla useita kappaleita. |
| Mainosalustan ostot → kampanjan talouden tilaukset | Eivät ole sama mittari. Alusta voi kohdistaa itselleen ostoksen, jonka viimeinen maksettu klikkaus oli toisessa kampanjassa; myös ajallinen ryhmittely eroaa. |
| Kassassa havaitut tilaukset → koko kaupan tilaukset | Eivät ole sama rajaus: seuranta ei havaitse kaikkia käyntejä, ja ryhmittely perustuu kassakäynnin aloitukseen. |

Esimerkiksi 1.6. alkavan viikon koko kaupassa on **1 594 tilausta**, G-kampanjaan taloudessa kohdistuu **132 tilausta** ja Google Ads raportoi G-kampanjalle **157 ostoa**. 132 ei siis ole koko verkkokaupan tilausmäärä. Mainosalustojen rivejä ei pakoteta samoiksi talouden kampanjarivien kanssa, koska silloin aineistosta katoaisi todellinen kohdistusero.

## Laskukaavat

- **Nettomyynti** = myynti ennen palautuksia − palautukset.
- **Kate ennen mainontaa** = nettomyynti − tuotteiden hankintakulut − toimitus- ja maksukulut.
- **Kate mainonnan jälkeen** = kate ennen mainontaa − mediakulu. Kiinteät kulut ja Intention palkkio eivät sisälly lukuun.
- **Uusasiakashankinnan raportoitu kulu (nCAC)** = mediakulu / uusien asiakkaiden määrä.
- **Alustan ROAS** = alustan raportoima myynti / mediakulu.
- **Palautusaste euroissa** = palautukset / myynti ennen palautuksia. **Palautettujen kappaleiden osuus** = palautetut kappaleet / myydyt kappaleet. Nämä ovat eri mittareita.
- **Varaston täsmäytys** = alkuvarasto + vastaanotot − maksetun klikkauksen tilaukset − muut tilaukset = loppuvarasto.
- **Vapautuvan työajan arvo** = arvio säästyvistä tunneista × valittu tuntiarvo. Tämä ei ole kassasäästö, ellei jokin maksettava kulu poistu.

Laske jakson suhdeluvut summista, älä viikkojen prosenttien keskiarvona. Nollalla tai puuttuvalla jakajalla suhdelukua ei voi laskea. Pyöristys kahteen desimaaliin riittää. Erottele eurojen, tilausten, kappaleiden, käyntien ja palvelupyyntöjen nimittäjät. Historiallinen keskiarvo tai kohdistus ei osoita, mitä lisäpanostus aiheuttaisi. Uusien asiakkaiden myöhemmästä arvosta ei ole tietoa.

Kampanjan nCAC on **raportoitu suhdeluku**, ei osoitus siitä, että juuri kyseinen kampanja synnytti asiakkaan kiinnostuksen tai että seuraava uusi asiakas maksaisi saman verran. B ja R tavoittavat usein jo kiinnostuneita ihmisiä, mutta myös ensiasiakas voi hakea brändiä nimellä tai palata sivustolle ennen ensimmäistä ostostaan. Aiempi P- tai G-kosketus voi silloin jäädä viimeiseen maksettuun klikkaukseen perustuvan B- tai R-kohdistuksen taakse. Aineistossa ei ole asiakaskohtaista kontaktipolkua tai vertailuryhmää tämän vaikutuksen mittaamiseen.

## Prototyypin toiminnan näyttö

Aja ratkaisusi käyttötarkoitukseen sopivalla lähteellä tai dokumentoidulla otoksella. Näytä yksi todellinen syöte, sen tuottama tulos sekä oma tarkistuksesi. Kerro, mikä tuloksessa auttaa käyttäjää ja mikä jää ihmisen tarkistettavaksi.

**AI-apuväline** on toisen ihmisen käytettävissä oleva toteutus tai täsmällinen työnkulku, jossa AI tekee hyödyllisen tehtävän. **Oletus** on suunnittelussa käytetty väite, jota aineisto ei osoita todeksi. Työkalun tai menetelmän nimi ei itsessään tuo pisteitä.

## Koko kaupan vertailu

`store-weekly.csv`: `paid_media_spend_eur` on saman viikon neljän kampanjan mediakulu ilman viennin päällekkäisiä lähdehavaintoja. `net_revenue_eur` = `gross_revenue_eur` − `refunds_eur`. `campaign_note` kertoo viikon kaupallisen tapahtuman. Median osuus koko kaupan myynnistä ennen palautuksia = mediakulu / koko kaupan bruttotuotemyynti. Tämä ei ole mainonnan aiheuttaman myynnin mittari. Maksetun kohortin ROAS käyttää eri nimittäjää ja rajausta.

Palautusten hankintakulu = (myydyt − palautetut + myyntikelvottomat palautukset) × hankintahinta. Hyvitetty euro ei siis sellaisenaan ole palautusten poistamisella saatava lisäkate. Myyntikelvottomat kappaleet eivät palaudu myyntivarastoon. Varaston vastaanotot sisältävät ostot ja myyntikelpoisina vastaanotetut palautukset, eivät pelkästään juuri saman tilausviikon palautuksia.

Kassatiedot kuvaavat havaittuja käyntejä ja niihin tunnistettuja tilauksia, eivät kirjanpidon kokonaissummaa. Havaittu myynti on koko kaupan myynnin osajoukko; kattavuusarvio koskee käyntejä eikä sillä voi korjata myyntiä mekaanisesti. Asiakaspalvelussa toimitukset ja palautukset tulevat usein myyntiä myöhemmin. Palvelupyyntöjen määrä ei ole tilausten tai palautuskappaleiden määrä.
