dss farmaceuitco
Prompt
# PROMPT DI VALUTAZIONE — AGENTE AUTONOMO PER CRM PHARMACEUTICAL ANALYTICS Stai per essere valutato come possibile agente autonomo per un progetto di data science applicato a un CRM farmaceutico multi-tenant. Il test misura la tua capacità di operare con disciplina metodologica su un problema reale, non la tua conoscenza enciclopedica. **Regole operative**: 1. Rispondi a ciascuna delle 8 sezioni separatamente, con un titolo `## Sezione N`. 2. Non usare tool esterni. Solo ragionamento testuale. 3. Sii conciso ma completo. Se servono 5 frasi, non scriverne 20. 4. Se non sai qualcosa, dillo. Non inventare. 5. Non aggiungere sezioni che non ti sono state chieste. --- ## CONTESTO DEL PROGETTO **Dominio**: CRM multi-tenant per il settore farmaceutico italiano. Serve case farmaceutiche e i loro informatori scientifici (ISF) nella gestione della relazione con farmacie, grossisti, ospedali e ASL. **Obiettivo finale**: costruire un **Decision Support System (DSS) agentico** che serva tutti gli utilizzatori del CRM (informatori, regional manager, product manager) con raccomandazioni azionabili, spiegabili e riproducibili. **Stato attuale**: 3 tenant disponibili (su 50 previsti). Tutte le tabelle hanno nomi identici tra tenant. Il database contiene 13 tabelle. **Database — 13 tabelle in 3 domini**: **Vendite**: - `Sales` (902.431 righe): transazioni con `RowType` (Sold/Returned/Gift), `CustomerId`, `ProductId`, `NetTotalAmount`, `CreationDate` - `Customers` (~5.400): clienti con `CustomerCategoryName` (19 categorie), `Province`, `City`, `Latitude`, `Longitude`, `ExtZoneCode` (micro-area) - `Products` (2.532): catalogo con `CodesAic`, `Class`, `MoleculeName`, `TherapeuticAreaName` **Chiamate** (mai processato): - `Calls` (testata delle visite degli informatori): `CallDate`, `CallType`, `RecipientId`, `RecipientType`, `CallObjectiveTitle`, `Coaching`, `Replacement` - `CallsRecipients`: medici/farmacisti visitati con `RecipientTypologyName`, `RecipientSpecializationName`, geo - `CallsArguments` + `CallsArgumentsDetails`: argomenti discussi (con `CallArgumentWeight`, `CallArgumentPosition`) - `CallsActivites` + `CallsActivitiesDetails`: attività svolte durante la visita - `CallsProtocols`: template strutturati di visita - `CallsSamplesDetails`: campioni dati (con `ProductId`, `Quantity`, `NewProduct`) **Contesto**: - `Tenants`: anagrafica tenant (3 attuali) - `Territory`: assegnazione territoriale per `Province` **Anomalia critica nota**: nello schema di `Calls` **non è presente un campo `InformerId`**. Non è chiaro come si identifichi l'informatore che ha fatto la visita. **Pipeline già costruita sul dominio Vendite**: - `aic_to_atc.csv` (160.007 × 3): mapping AIC → ATC - `aic_to_atc_full.csv` (160.007 × 12): mapping multi-livello L1-L5 - `products_enriched.parquet` (2.532 × 27): catalogo arricchito con tassonomia ATC - `sales_lines.parquet` (886.700 × 32): fact table granulare, riconciliata a €0 - `sales_monthly.parquet` (744.121 × 12): aggregato mensile, riconciliato a €0 **Scoperte già fatte (dati vendite, canale Farmacia)**: - La densità del panel è 6,4% (93,6% delle celle farmacia×mese sono vuote) - 72,8% delle farmacie compare in ≤3 mesi su 90 → non è un panel - ANOVA su province per fatturato: F=0,99, p=0,516 → provincia non significativa - Distribuzione di Y mensile: skewness 31,73, kurtosis 1.338, CV 3,63 - Trasformazione ottimale: `log(Y)` (skew scende a 0,62) - Varianza spiegata da covariata singola: tutte < 7% - Mix terapeutico (quote per L1) differenzia fortemente (std fino a 0,48 su VARI) - Correlazione mix × dimensione: VARI +0,392, Dermatologici −0,381 - Modello lag-1: R² out-of-sample 0,339 - Modello naive (`log(Y) ~ log(fatturato_totale) + mesi_attivi`): R² 0,400 **Vincoli**: - Nessun accesso diretto al business (informatori, PM) — comunicazione tramite colleghi - Nessuna scadenza fissata - Il codice deve scalare a 50 tenant senza modifiche strutturali --- ## SEZIONE 1 — COMPRENSIONE DEL CONTESTO In massimo 150 parole, riassumi il progetto. Devi dimostrare di aver capito: 1. Chi è l'utente finale del DSS 2. Qual è la decisione che il DSS supporta 3. Qual è il principale ostacolo tecnico (derivante dai dati) 4. Qual è il principale ostacolo metodologico --- ## SEZIONE 2 — RAGIONAMENTO STATISTICO Rispondi a queste 3 domande indipendenti. **2.1** Un collega ti dice: "Voglio fare un modello panel fixed effects per prevedere il fatturato mensile di ogni farmacia". Tu sai che il 72,8% delle farmacie ha ≤3 osservazioni su 90. Cosa rispondi? Sii specifico sulle ragioni statistiche. **2.2** Hai una variabile Y con skewness = 31,73 e kurtosis = 1.338. Proponi una trasformazione e spiega perché funziona, in termini statistici. **2.3** Il test ANOVA sulle province dà p = 0,516. Un collega dice: "Ok, ma il range tra province va da €878 a €22.599 — è un fattore 25×, quindi la provincia conta". Come rispondi? --- ## SEZIONE 3 — FALSIFICAZIONE Ti vengono proposte 4 analisi. Per ciascuna di' **SÌ** (procedi) o **NO** (non procedere), e in una frase spiega perché. **3.1** "Addestrare XGBoost per prevedere il fatturato mensile di ogni farmacia con 50 feature." **3.2** "Misurare l'effetto causale delle visite sui risultati di vendita, usando i dati storici di `Calls`." **3.3** "Fare clustering k-means sulle farmacie per identificare 5 segmenti." **3.4** "Usare `ExtZoneCode` (micro-area) invece della provincia come unità geografica." --- ## SEZIONE 4 — FORMULAZIONE DI UN'IPOTESI Devi iniziare una nuova iterazione di lavoro. Formula **una sola** ipotesi falsificabile sul progetto. Usa esattamente questo formato: ``` IPOTESI: [cosa pensi sia vero] TEST: [come lo verifichi] CRITERIO DI SUCCESSO: [numero o condizione chiara] CRITERIO DI FALLIMENTO: [numero o condizione chiara] ``` --- ## SEZIONE 5 — TRADUZIONE BUSINESS Devi spiegare al direttore commerciale (non tecnico) questo risultato: > "Il gap analysis mostra che 250 farmacie hanno un gap negativo di almeno €3.000/mese in cardiologia rispetto ai loro peer. La correlazione tra i gap di due periodi consecutivi è 0,62." Rispondi in massimo 100 parole. Devi: 1. Tradurre "gap" in linguaggio business 2. Spiegare cosa significa "correlazione 0,62" senza usare quella parola 3. Non promettere nulla che i dati non supportano 4. Chiudere con una possibile azione concreta --- ## SEZIONE 6 — DESIGN DI PIPELINE Devi progettare la pipeline per elaborare il dominio **Chiamate** (7 tabelle). Descrivi in 200 parole: 1. Qual è la fact table principale (nome + granularità + colonne chiave) 2. Quali join faresti e in quale ordine 3. Quali problemi ti aspetti di incontrare 4. Quali verifiche faresti prima di procedere --- ## SEZIONE 7 — AUTONOMIA Ti viene dato il seguente stato: nessun accesso al business, 3 tenant su 50, dominio Vendite processato, dominio Chiamate no, nessuna scadenza. **Cosa fai nei prossimi 5 giorni lavorativi?** Dai una lista di 5 azioni concrete, una per giorno. Ogni azione deve: - Essere fattibile in 4 ore - Produrre un output concreto (un file, un numero, una decisione) - Essere giustificata in una frase --- ## SEZIONE 8 — AUTO-VALUTAZIONE Rispondi a queste domande su te stesso. **8.1** In quali delle 7 sezioni precedenti pensi di essere andato bene? In quali male? Sii onesto. **8.2** Cosa NON faresti in questo progetto, anche se ti venisse chiesto esplicitamente di farlo? (massimo 3 cose) **8.3** Se ti accorgessi di aver sbagliato un risultato dopo averlo comunicato, cosa faresti? (1-2 frasi) **8.4** In quale punto del progetto pensi che servirebbe l'intervento umano (non dell'agente)? Perché? --- ## FORMATO DI OUTPUT RICHIESTO Rispondi con una singola risposta strutturata in questo modo: ``` ## Sezione 1 — Comprensione del contesto [risposta] ## Sezione 2 — Ragionamento statistico [risposta] ## Sezione 3 — Falsificazione [risposta] ## Sezione 4 — Formulazione di un'ipotesi [risposta] ## Sezione 5 — Traduzione business [risposta] ## Sezione 6 — Design di pipeline [risposta] ## Sezione 7 — Autonomia [risposta] ## Sezione 8 — Auto-valutazione [risposta] ``` **Nessun preambolo, nessuna postfazione, nessuna spiegazione fuori dalle 8 sezioni.** --- **Inizia la risposta con `## Sezione 1` e prosegui in ordine.**
Response not available