💼

Modelo de Negócio

Audissey — Modelo de Negócio

Visão Geral

A Audissey é uma plataforma agregadora de conteúdo áudio que unifica rádios online e podcasts numa experiência única e inteligente. Posiciona-se como o hub central de consumo de áudio digital, inicialmente focado no mercado Português, com expansão planeada para Espanha e Brasil.

Diagrama do Modelo de Negócio

graph TB %% ═══════════════════════════════════════════ %% UTILIZADORES & SEGMENTOS %% ═══════════════════════════════════════════ subgraph USERS["👥 Segmentos de Utilizadores"] direction LR FREE["🆓 Utilizador Free
100 req/15min
Com publicidade"] PREMIUM["⭐ Utilizador Premium
€4.99/mês
Sem publicidade
Offline + Analytics"] RADIO_ST["📻 Estações de Rádio
Submissão de programação
Dashboard de analytics"] PODCASTER["🎙️ Podcasters
Distribuição
Métricas de audiência"] end %% ═══════════════════════════════════════════ %% PROPOSTA DE VALOR %% ═══════════════════════════════════════════ subgraph VALUE["💎 Proposta de Valor"] direction TB V1["🎯 Única app para Rádio + Podcasts"] V2["📡 5000+ rádios online
com EPG e ICY metadata"] V3["🤖 Recomendações ML
personalizadas"] V4["🔍 Pesquisa unificada
cross-content"] V5["📍 Conteúdo localizado
por geolocalização"] V6["📊 Normalização de 38
géneros e 300+ variantes"] end %% ═══════════════════════════════════════════ %% JORNADA DO UTILIZADOR %% ═══════════════════════════════════════════ subgraph JOURNEY["🗺️ Jornada do Utilizador"] direction LR J1["📱 Registo
Email / Google /
Facebook / Apple /
Magic Link"] J2["🏠 Home
Highlights
personalizados"] J3["🔍 Descoberta
Pesquisa unificada
Género / Local"] J4["▶️ Escuta
Rádio ao vivo
Episódios podcast"] J5["📋 EPG
Guia de programação
7 dias"] J6["📚 Biblioteca
Favoritos
Histórico"] J1 --> J2 --> J3 --> J4 J4 --> J5 J4 --> J6 end %% ═══════════════════════════════════════════ %% FONTES DE RECEITA %% ═══════════════════════════════════════════ subgraph REVENUE["💰 Fontes de Receita"] direction TB R1["⭐ Subscrição Premium
€4.99/mês
~€50K MRR @10K subs"] R2["📢 Publicidade Contextual
CPM €3-8
~€3-8K/mês @1M impressões"] R3["🤝 B2B / White-label
API para telcos/broadcasters
€500-2K/mês × 20 clientes"] R4["🎫 Comissões / Afiliados
Eventos, merch, hosting
10-15% sobre €50K vendas"] end %% ═══════════════════════════════════════════ %% CONTEÚDO (O QUE AGREGAMOS) %% ═══════════════════════════════════════════ subgraph CONTENT["📦 Conteúdo Agregado"] direction TB C1["📻 Rádios Online
5000+ estações
Streams ao vivo
Fallback automático"] C2["🎙️ Podcasts
Descoberta via Podcast Index
Sync RSS automático"] C3["📅 Programação EPG
Grades de 7 dias
Manual / Scraped / API"] C4["🎵 Metadados ICY
Now Playing em tempo real
Padrões de programação"] end %% ═══════════════════════════════════════════ %% INTELIGÊNCIA (ML/AI) %% ═══════════════════════════════════════════ subgraph ML["🧠 Inteligência (ML/AI)"] direction TB ML1["🏷️ Classificação de Géneros
BERT/RoBERTa
25+ géneros normalizados"] ML2["🎯 Recomendações
Collaborative filtering
Personalizado por utilizador"] ML3["📐 Embeddings
Texto: MiniLM 384-dim
Áudio: wav2vec2 768-dim"] ML4["📊 Content Features
38 géneros × 300+ variantes
ISO línguas & países"] end %% ═══════════════════════════════════════════ %% CANAIS DE DISTRIBUIÇÃO %% ═══════════════════════════════════════════ subgraph CHANNELS["📲 Canais de Distribuição"] direction LR CH1["📱 App Mobile
Flutter (Android + iOS)
3 flavors: dev/staging/prod"] CH2["🌐 API REST
NestJS Backend
Swagger documentation"] CH3["🏪 App Stores
Google Play + App Store"] CH4["🔥 Firebase
App Distribution
Testes internos"] end %% ═══════════════════════════════════════════ %% PARCEIROS CHAVE %% ═══════════════════════════════════════════ subgraph PARTNERS["🤝 Parceiros & Integrações"] direction TB P1["🔍 Podcast Index API
Descoberta de podcasts"] P2["📻 Radio Browser API
Catálogo de 5000+ rádios"] P3["📅 MyTuner API
EPG e programação"] P4["📧 SendGrid
Magic links & alertas"] P5["🔐 OAuth Providers
Google / Facebook / Apple"] P6["☁️ Azure Cloud
Infrastrutura completa"] end %% ═══════════════════════════════════════════ %% ESTRUTURA DE CUSTOS %% ═══════════════════════════════════════════ subgraph COSTS["📊 Estrutura de Custos"] direction TB COST1["☁️ Azure Infrastructure
App Services × 3 envs
Cosmos DB + Redis
Key Vault + ACR"] COST2["📧 SendGrid
Emails transacionais"] COST3["👨‍💻 Desenvolvimento
Equipa técnica"] COST4["📱 App Stores
Licenças developer
€25 Google + $99 Apple"] COST5["🔄 APIs Externas
Podcast Index (grátis)
Radio Browser (grátis)"] end %% ═══════════════════════════════════════════ %% MÉTRICAS CHAVE %% ═══════════════════════════════════════════ subgraph METRICS["📈 Métricas Chave (KPIs)"] direction LR M1["👥 MAU / DAU
Utilizadores ativos"] M2["⏱️ Tempo de escuta
Minutos por sessão"] M3["⭐ Conversão Premium
Free → Paid rate"] M4["📻 Catálogo
Rádios + Podcasts
indexados"] M5["🎯 Retenção
D1 / D7 / D30"] end %% ═══════════════════════════════════════════ %% CONEXÕES PRINCIPAIS %% ═══════════════════════════════════════════ USERS -->|"Usam"| VALUE VALUE -->|"Entregue via"| CHANNELS JOURNEY -->|"Monetizada"| REVENUE CONTENT -->|"Alimenta"| VALUE ML -->|"Enriquece"| VALUE PARTNERS -->|"Fornecem"| CONTENT COSTS -->|"Sustenta"| VALUE METRICS -->|"Medem"| REVENUE FREE -->|"Converte"| PREMIUM RADIO_ST -->|"Submete programação"| CONTENT PODCASTER -->|"Distribuição via"| CONTENT %% ═══════════════════════════════════════════ %% ESTILOS %% ═══════════════════════════════════════════ classDef userStyle fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#1b5e20 classDef valueStyle fill:#e3f2fd,stroke:#1565c0,stroke-width:2px,color:#0d47a1 classDef revenueStyle fill:#fff3e0,stroke:#ef6c00,stroke-width:2px,color:#e65100 classDef contentStyle fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#4a148c classDef mlStyle fill:#fce4ec,stroke:#c62828,stroke-width:2px,color:#b71c1c classDef channelStyle fill:#e0f7fa,stroke:#00838f,stroke-width:2px,color:#006064 classDef partnerStyle fill:#f1f8e9,stroke:#558b2f,stroke-width:2px,color:#33691e classDef costStyle fill:#fafafa,stroke:#616161,stroke-width:2px,color:#424242 classDef metricStyle fill:#fffde7,stroke:#f9a825,stroke-width:2px,color:#f57f17 classDef journeyStyle fill:#ede7f6,stroke:#4527a0,stroke-width:2px,color:#311b92 class FREE,PREMIUM,RADIO_ST,PODCASTER userStyle class V1,V2,V3,V4,V5,V6 valueStyle class R1,R2,R3,R4 revenueStyle class C1,C2,C3,C4 contentStyle class ML1,ML2,ML3,ML4 mlStyle class CH1,CH2,CH3,CH4 channelStyle class P1,P2,P3,P4,P5,P6 partnerStyle class COST1,COST2,COST3,COST4,COST5 costStyle class M1,M2,M3,M4,M5 metricStyle class J1,J2,J3,J4,J5,J6 journeyStyle

Segmentos de Utilizadores

Consumidores (B2C)

Segmento Descrição Necessidade
Ouvinte Casual Quer uma app única para rádio e podcasts Simplicidade e conveniência
Entusiasta de Podcasts Consumidor regular que quer descobrir novos conteúdos Descoberta inteligente
Fã de Rádio Ouvinte habitual que quer EPG e metadata Informação em tempo real
Commuter Ouve durante deslocações Offline + streaming fiável

Produtores de Conteúdo (B2B2C)

Segmento Descrição Necessidade
Estações de Rádio Querem aumentar audiência digital Distribuição e analytics
Podcasters Querem alcançar novos ouvintes Descoberta e métricas

Empresas (B2B)

Segmento Descrição Necessidade
Telcos/Operadores Querem oferecer áudio como valor acrescentado API white-label
Broadcasters Querem dados de audiência digital Analytics e insights

Proposta de Valor

Diferenciação Competitiva

graph LR subgraph COMPETITORS["Concorrência Atual"] direction TB TUNEIN["TuneIn
Rádio focado
Sem EPG PT"] SPOTIFY["Spotify
Podcasts + Música
Sem rádio ao vivo"] APPLE_P["Apple Podcasts
Só podcasts
Sem rádio"] RADIO_PT["Rádio apps PT
Rádios individuais
Fragmentado"] end subgraph AUDISSEY_V["🎯 Audissey"] direction TB A1["✅ Rádio + Podcasts
numa só app"] A2["✅ EPG completo 7 dias
para rádios PT"] A3["✅ ICY metadata
em tempo real"] A4["✅ Pesquisa unificada
cross-content"] A5["✅ ML personalization
géneros normalizados"] A6["✅ Foco no mercado PT
conteúdo localizado"] end COMPETITORS -->|"Lacunas
de mercado"| AUDISSEY_V classDef compStyle fill:#ffcdd2,stroke:#c62828,color:#b71c1c classDef audStyle fill:#c8e6c9,stroke:#2e7d32,color:#1b5e20 class TUNEIN,SPOTIFY,APPLE_P,RADIO_PT compStyle class A1,A2,A3,A4,A5,A6 audStyle

A Audissey é a única plataforma que combina:

  1. Rádio ao vivo com EPG real para Portugal
  2. Podcasts com descoberta inteligente
  3. Metadados ICY em tempo real (now playing)
  4. Pesquisa unificada em todo o tipo de conteúdo áudio
  5. Recomendações personalizadas por ML
  6. Normalização de conteúdo (38 géneros, 300+ variantes, ISO)

Modelo de Receitas

Fontes de Receita Planeadas

graph TB subgraph REVENUE_MODEL["💰 Modelo de Receitas"] direction TB subgraph TIER1["Subscrição Premium — €4.99/mês"] P_FEATURES["Sem publicidade
Bitrate superior
Downloads offline
Analytics pessoais"] P_TARGET["Target: 10.000 subscribers
MRR: €50.000"] end subgraph TIER2["Publicidade Contextual"] AD_TYPES["Contextual (conteúdo)
Comportamental (histórico)
Geolocalizado
Temporal (hora do dia)"] AD_TARGET["CPM: €3-8
Target: 1M impressões/mês
Receita: €3-8K/mês"] end subgraph TIER3["B2B / White-label"] B2B_TYPES["API licensing para telcos
Dados de audiência
para broadcasters"] B2B_TARGET["€500-2K/mês × 20 clientes
MRR: €10-40K"] end subgraph TIER4["Comissões / Afiliados"] AFF_TYPES["Bilhetes de eventos
Merchandising
Podcast hosting"] AFF_TARGET["10-15% comissão
sobre €50K vendas"] end end subgraph BREAKEVEN["📊 Break-even"] BE["~200 assinantes Premium
cobrem infraestrutura Azure"] end TIER1 --> BREAKEVEN TIER2 --> BREAKEVEN TIER3 --> BREAKEVEN TIER4 --> BREAKEVEN classDef premiumStyle fill:#fff9c4,stroke:#f9a825,stroke-width:2px,color:#f57f17 classDef adStyle fill:#e1f5fe,stroke:#0288d1,color:#01579b classDef b2bStyle fill:#e8f5e9,stroke:#388e3c,color:#1b5e20 classDef affStyle fill:#fce4ec,stroke:#c62828,color:#b71c1c classDef beStyle fill:#e8eaf6,stroke:#3f51b5,stroke-width:3px,color:#1a237e class P_FEATURES,P_TARGET premiumStyle class AD_TYPES,AD_TARGET adStyle class B2B_TYPES,B2B_TARGET b2bStyle class AFF_TYPES,AFF_TARGET affStyle class BE beStyle

Estado Atual de Implementação

Receita Estado Detalhe
Premium 🟡 Schema preparado isPremium e subscriptionExpiry no User model, rate limiting diferenciado
Publicidade 🔴 Não iniciado Sem integração de ads
B2B API 🟡 Parcialmente pronto API REST pública com Swagger, falta licensing
Comissões 🔴 Não iniciado Sem integração de afiliados

Conteúdo Agregado

Pipeline de Ingestão

graph LR subgraph SOURCES["🌐 Fontes Externas"] RB["Radio Browser API
5000+ estações"] PI["Podcast Index API
Milhões de podcasts"] MT["MyTuner API
Programação EPG"] ICY["ICY Streams
Metadata real-time"] end subgraph WORKER["⚙️ Worker (BullMQ)"] direction TB W1["03:00 — Sync Rádios
1 job, rate 1/min"] W2["04:00 — Sync EPG
1 job, rate 1/min"] W3["05:00 — Sync Podcasts
1 job, rate 1/min"] W4["06:00 — Sync Episódios
2 jobs, rate 5/min"] W5["Contínuo — ICY Collector
Metadata streams ao vivo"] W6["Diário — Stream Validator
Testa URLs e fallback"] end subgraph STORAGE["💾 Base de Dados"] DB_R["📻 Rádios
5000+ registos"] DB_P["🎙️ Podcasts
Catálogo indexado"] DB_E["📋 Episódios
RSS sincronizado"] DB_S["📅 Programação
EPG 7 dias"] DB_I["🎵 ICY History
Now playing logs"] DB_CF["📊 Content Features
Metadata normalizada"] end RB --> W1 --> DB_R PI --> W3 --> DB_P PI --> W4 --> DB_E MT --> W2 --> DB_S ICY --> W5 --> DB_I DB_R --> DB_CF DB_P --> DB_CF DB_E --> DB_CF classDef sourceStyle fill:#e3f2fd,stroke:#1565c0,color:#0d47a1 classDef workerStyle fill:#fff3e0,stroke:#ef6c00,color:#e65100 classDef dbStyle fill:#e8f5e9,stroke:#2e7d32,color:#1b5e20 class RB,PI,MT,ICY sourceStyle class W1,W2,W3,W4,W5,W6 workerStyle class DB_R,DB_P,DB_E,DB_S,DB_I,DB_CF dbStyle

Inteligência (ML/AI)

Componentes ML

Componente Tecnologia Função Estado
Genre Classifier BERT/RoBERTa Classificação multi-label em 25+ géneros 🟡 Scaffolded
Recommendation Model Collaborative filtering Recomendações personalizadas 🟡 Scaffolded
Embedding Model MiniLM (texto) + wav2vec2 (áudio) Similaridade 384/768-dim 🟡 Scaffolded
Content Features NestJS normalizer 38 géneros, ISO línguas/países ✅ Implementado

Pipeline ML (Planeado)

graph LR RAW["📦 Raw Content
Rádios + Podcasts
+ Episódios"] CF["📊 Content Features
38 géneros normalizados
ISO metadata"] EMB["📐 Embeddings
Texto: 384-dim
Áudio: 768-dim"] CLASS["🏷️ Genre Classifier
BERT multi-label"] REC["🎯 Recommendations
Collaborative filtering
Per-user"] API_OUT["📱 App
Highlights personalizados
Pesquisa inteligente"] RAW --> CF --> EMB --> CLASS EMB --> REC CLASS --> API_OUT REC --> API_OUT classDef rawStyle fill:#ffccbc,stroke:#bf360c,color:#bf360c classDef processStyle fill:#e1bee7,stroke:#7b1fa2,color:#4a148c classDef outStyle fill:#c8e6c9,stroke:#2e7d32,color:#1b5e20 class RAW rawStyle class CF,EMB,CLASS,REC processStyle class API_OUT outStyle

Jornada Completa do Utilizador

graph TB subgraph ACQUISITION["📲 Aquisição"] ACQ1["App Store / Google Play"] ACQ2["Firebase App Distribution
(testes internos)"] ACQ3["Referrals / Word-of-mouth"] end subgraph ONBOARDING["🎯 Onboarding"] ON1["Registo / Login"] ON2["Email + Password"] ON3["Google OAuth"] ON4["Facebook Login"] ON5["Apple Sign-In"] ON6["Magic Link
(passwordless via SendGrid)"] ON1 --> ON2 & ON3 & ON4 & ON5 & ON6 end subgraph ENGAGEMENT["▶️ Engagement"] ENG1["🏠 Home Highlights
Personalizado por:
• Hora do dia
• Localização
• Histórico"] ENG2["📻 Rádio ao Vivo
Stream + Fallback
ICY Now Playing"] ENG3["🎙️ Podcasts
Descoberta + Escuta
Episódios + RSS"] ENG4["📅 EPG
Guia 7 dias
Ao vivo agora"] ENG5["🔍 Pesquisa
Unificada cross-content
Rádios + Podcasts + Episódios"] end subgraph RETENTION["📚 Retenção"] RET1["⭐ Favoritos
Rádios guardadas"] RET2["📖 Histórico
Escutas recentes"] RET3["🔔 Notificações
Programas favoritos"] RET4["📊 Analytics Pessoais
(Premium)"] end subgraph MONETIZATION["💰 Monetização"] MON1["🆓 Free Tier
Com publicidade
100 req/15min"] MON2["⭐ Premium
€4.99/mês
Sem ads + Offline"] end ACQUISITION --> ONBOARDING --> ENGAGEMENT ENGAGEMENT --> RETENTION RETENTION --> MONETIZATION MON1 -->|"Upgrade"| MON2 classDef acqStyle fill:#e3f2fd,stroke:#1565c0,color:#0d47a1 classDef onbStyle fill:#ede7f6,stroke:#4527a0,color:#311b92 classDef engStyle fill:#e8f5e9,stroke:#2e7d32,color:#1b5e20 classDef retStyle fill:#fff3e0,stroke:#ef6c00,color:#e65100 classDef monStyle fill:#fff9c4,stroke:#f9a825,color:#f57f17 class ACQ1,ACQ2,ACQ3 acqStyle class ON1,ON2,ON3,ON4,ON5,ON6 onbStyle class ENG1,ENG2,ENG3,ENG4,ENG5 engStyle class RET1,RET2,RET3,RET4 retStyle class MON1,MON2 monStyle

Modelo de Dados (Entidades Chave)

erDiagram USER ||--o{ FAVORITE : "tem favoritos" USER ||--o{ LISTENING_HISTORY : "histórico" USER }|--|| SUBSCRIPTION : "subscrição" RADIO ||--o{ RADIO_SCHEDULE : "programação" RADIO ||--o{ RADIO_PROGRAM : "programas" RADIO ||--o{ ICY_HISTORY : "now playing" RADIO ||--o{ CONTENT_FEATURES : "metadata ML" PODCAST ||--o{ EPISODE : "episódios" PODCAST ||--o{ CONTENT_FEATURES : "metadata ML" EPISODE ||--o{ CONTENT_FEATURES : "metadata ML" USER { string email string name int age string preferredLanguage string timezone boolean isPremium date subscriptionExpiry string googleSub string facebookId string appleSub array favoriteRadioIds int tokenVersion } RADIO { string radioId string name string url string urlResolved array alternativeUrls string country array genres string codec int bitrate float geoLat float geoLong string nowPlaying int clickCount } PODCAST { string podcastIndexId string title string author string feedUrl string artwork array categories string language int episodeCount float rating float trendingScore boolean featured } EPISODE { string podcastId string title int duration string enclosureUrl int episodeNumber int seasonNumber int plays int likes } RADIO_SCHEDULE { string radioId json programs string timezone enum source } CONTENT_FEATURES { enum contentType string contentId array normalizedGenres string isoLanguage string isoCountry array textEmbedding array audioEmbedding json popularityMetrics }

Mercado & Expansão

Roadmap Geográfico

Fase Mercado Timeline Estratégia
1 — Lançamento 🇵🇹 Portugal MVP Rádios PT + Podcasts PT/EN
2 — Expansão Ibérica 🇪🇸 Espanha Q3 2026 Rádios ES + conteúdo espanhol
3 — Lusofonia 🇧🇷 Brasil Q4 2026+ Maior mercado lusófono

Vantagem Competitiva por Mercado


Estrutura de Custos

Custos Fixos Mensais (Estimativa)

Item Custo Estimado Notas
Azure App Services (3 envs) ~€100-300/mês B1/B2 plans
Azure Cosmos DB ~€50-200/mês Serverless/autoscale
Azure Cache for Redis ~€30-80/mês C0/C1 tiers
Azure Key Vault ~€5/mês Per-operation
Azure Container Registry ~€5/mês Basic tier
SendGrid ~€0-15/mês Free/Essentials
Apple Developer Program $99/ano (~€8/mês) Obrigatório para iOS
Google Play Developer €25 (único) One-time fee
Total Estimado ~€200-600/mês Depende do tier

Break-even

~200 assinantes Premium a €4.99/mês ≈ €998/mês — cobre toda a infraestrutura com margem.


Resumo Executivo

Dimensão Detalhe
Produto Plataforma unificada de rádio online + podcasts
Mercado Inicial Portugal (5M+ ouvintes de rádio, 2M+ de podcasts)
Diferenciação Única app que combina rádio ao vivo + podcasts + EPG + ML
Modelo de Receita Freemium (€4.99/mês) + Ads + B2B + Afiliados
Break-even ~200 subs Premium
Tecnologia Flutter + NestJS + Python ML + Azure Cloud
Estado MVP com API funcional, ingestão automática, auth completo, app mobile em desenvolvimento
Próximos Passos ML models training, Premium billing, Beta launch PT