0014 — Programa Acolhe (Adesão Obrigatória, Crédito Narrativo, F1 desde dia 1)
Status
Accepted · 2026-04-26 · Autor: Alexandre + Claude. Após 4 turnos de refinamento + decisão de lançar em F1 (não F2) por causa de mídia espontânea.
Esta é decisão arquitetural estratégica + comercial + social. Mudança aqui = mudança de modelo de negócio = ADR explícito + comunicação ampla.
Contexto
ClinicGestor nasce com responsabilidade social embutida. Não é “feature opcional adicionada depois” — é DNA do produto.
Modelo evoluiu em 4 turnos durante sessão de geração do docs/bootstrap-archive/:
- Inicial: 25% da receita pra fundo social (rejeitado — complicador fiscal)
- Iteração 1: 5% desconto na mensalidade + 1 vaga/ano (rejeitado — pouco impactante)
- Iteração 2: R$ 700 plano + R$ 200 desconto/mês + 6 vagas/ano (engenharia de preço; aceito como base)
- Iteração 3: R$ 700 plano + reservar R$ 200/mês + pagar R$ 400/consulta (Opção C — pagamento direto via NF; rejeitado por complexidade fiscal)
- Iteração 4 (FINAL): R$ 700 cheio + crédito narrativo R$ 400 na fatura subsequente (Opção D — sem NF; aceito)
Decisão final consolidada com 17 sub-decisões.
Decisão
Nome oficial: Programa Acolhe.
Slogan: “Cada consulta paga é uma vida que se transforma.”
Princípios fundamentais
- Adesão obrigatória — cláusula contratual de toda clínica. Cumprir é opcional, mas não cumprir significa pagar R$ 700 cheio (sem crédito).
- Modelo de crédito narrativo (Opção D) — clínica paga R$ 700 cheio sempre. Crédito de R$ 400 abatido na fatura subsequente quando vaga cumprida.
- Solicitação pela clínica (Camada 1) — clínica indica beneficiário e plataforma valida. Camada 2 (instituições parceiras) é opcional, F2.5+.
- 7 categorias de elegibilidade com documento obrigatório.
- Declaração de hipossuficiência assinada via Assinafy (cláusula penal art. 299 CP).
- Auditoria amostral 1 a cada 50 atendimentos (total durante early phase <50 cumulativos).
- Pool nunca vira receita — auditoria contábil anual valida.
1. Estrutura financeira (Opção D — Crédito Narrativo)
Mês com vaga cumprida pela Clínica X: Fatura Asaas DA KARLA → Clínica X Linha 1: "Plano Mensal ClinicGestor: R$ 700,00" Linha 2: "Crédito Programa Acolhe (1 consulta cumprida em outubro): -R$ 400,00" Total: R$ 300,00
Mês sem vaga cumprida: Fatura: "Plano Mensal: R$ 700,00" Total: R$ 700,00
Anual (6 vagas cumpridas + 6 não): 6 × R$ 300 + 6 × R$ 700 = R$ 1.800 + R$ 4.200 = R$ 6.000
Equivale a R$ 500/mês fixo, mas com efeito psicológico de "ganho variável".2. Quem absorve o crédito de R$ 400?
Plataforma e consultor split 50/50:
Sem Acolhe (consultoria default): Clínica paga R$ 700 → Asaas Karla Karla recebe: R$ 700 - taxas Asaas Plataforma cobra Karla: R$ 350 (50%) Karla líquido: R$ 700 - R$ 350 = R$ 350 Plataforma líquido: R$ 350
Com Acolhe (vaga cumprida): Clínica paga R$ 300 → Asaas Karla (nova fatura com crédito) Karla recebe: R$ 300 - taxas Asaas Plataforma cobra Karla R$ 350 - R$ 200 (crédito plataforma) = R$ 150 Karla líquido: R$ 300 - R$ 150 = R$ 150 (perda de R$ 200 do que receberia) Plataforma líquido: R$ 150 (perda de R$ 200 do que receberia)
Custo absorvido total = R$ 400 (clínica recebeu de "desconto") - Plataforma: R$ 200 - Consultor: R$ 2003. Adesão obrigatória contratual
Toda clínica que assina contrato comercial (ADR 0006 §6) tem cláusula:
“A CONTRATANTE adere automaticamente ao Programa Acolhe da plataforma ClinicGestor, comprometendo-se a disponibilizar 6 atendimentos sociais por ano (1 a cada 2 meses) a beneficiários em situação de vulnerabilidade econômica, conforme critérios estabelecidos no Anexo I. Em contrapartida, a plataforma concederá crédito de R$ 400,00 por atendimento social cumprido, abatido na fatura subsequente. O não cumprimento de vagas em determinado mês implica em pagamento integral da mensalidade naquele mês, sem direito a crédito.”
Implementação:
-- clinics:ALTER TABLE public.clinics ADD COLUMN social_program_status TEXT NOT NULL DEFAULT 'active' CHECK (social_program_status IN ('active', 'opted_out_paying_full', 'suspended_for_compliance')), ADD COLUMN social_program_joined_at TIMESTAMPTZ DEFAULT NOW(), ADD COLUMN social_program_total_attendances INT DEFAULT 0, ADD COLUMN social_program_total_credits_brl_cents INT DEFAULT 0, ADD COLUMN social_program_compliance_score INT DEFAULT 100;Clínica que persistentemente não quer cumprir pode pedir saída → social_program_status = 'opted_out_paying_full' + paga R$ 700 cheio sem chance de crédito (caso de borda; espera-se ~zero adoção).
4. 7 categorias de elegibilidade do beneficiário
Beneficiário precisa atender pelo menos uma:
| # | Categoria | Documento obrigatório |
|---|---|---|
| 1 | NIS / CadÚnico ativo | Print do CadÚnico online ou cartão NIS |
| 2 | Beneficiário do BPC/LOAS | Comprovante de inscrição |
| 3 | Renda familiar per capita ≤ 1/2 SM | Declaração de hipossuficiência assinada (modelo da plataforma) |
| 4 | Morador de instituição de longa permanência | Declaração da instituição (CNPJ + responsável) |
| 5 | Idoso 65+ sem renda própria | Declaração + comprovante de idade |
| 6 | Situação de rua | Declaração de assistente social (CRESS) ou serviço público |
| 7 | Encaminhado por CRAS/CREAS | Carta de encaminhamento com carimbo CRESS |
Tudo em PDF/foto anexado na solicitação.
5. Declaração de hipossuficiência
PDF gerado automaticamente pela plataforma com dados preenchidos:
DECLARAÇÃO DE HIPOSSUFICIÊNCIA ECONÔMICA
Eu, [Nome do beneficiário], CPF [CPF redacted], declaro estar em situação dehipossuficiência econômica conforme critérios do Programa Acolhe da plataformaClinicGestor.
Categoria de elegibilidade: [Categoria selecionada]Documento comprobatório anexo: [Tipo de doc]
Estou ciente de que:
1. O atendimento que recebo via Programa Acolhe é integralmente gratuito;2. A clínica que me atende recebe da plataforma um crédito de R$ 400,00 por atendimento;3. **Falsa declaração configura crime previsto no art. 299 do Código Penal Brasileiro (falsidade ideológica), com pena de 1 a 5 anos de reclusão**;4. Estou ciente que meu atendimento pode ser auditado pela plataforma para confirmar veracidade.
Assinado digitalmente via Assinafy em [Data], às [Hora].Assinatura via Assinafy — signature_envelope cifrado preservado em social_program_requests.hipossuficiency_signature_envelope_id.
6. Workflow de solicitação
1. Clínica em /clinic/programa-acolhe → "Solicitar atendimento social"2. Formulário: - Especialidade do atendimento (consulta da especialidade da clínica) - Data preferencial - Dados do beneficiário (nome, idade — PII cifrada via pgcrypto) - Categoria de elegibilidade (das 7) - Documento comprobatório (upload PDF/foto)3. Geração automática da declaração de hipossuficiência → envio Assinafy4. Beneficiário (ou responsável) assina via link Assinafy5. social_program_requests row created com status='submitted'6. Curador (platform_admin em F2 inicial; equipe em F2.5+) revisa em /platform/programa-acolhe/fila → Aprova → vaga reservada → atendimento agendado → Solicita docs adicionais → Reprova com justificativa7. Atendimento ocorre na clínica8. Dupla confirmação: → Clínica marca social_program_attendances.status = 'completed_pending_confirmation' + token gerado → Beneficiário recebe SMS/email com link /acolhe/confirmar/<token> → Beneficiário confirma "Sim, fui atendido" → Status = 'completed_confirmed'9. Cron mensal compute-monthly-program-credit-cron: → Soma vagas cumpridas no mês por clínica → Aplica crédito na fatura subsequente10. Auditoria amostral (1 a cada 50): atendimento sorteado pra validação adicional7. Limites cruzados anti-fraude
-- Mesma clínica < 90d com mesmo beneficiário (CPF hash)CREATE UNIQUE INDEX social_program_requests_beneficiary_clinic_period ON public.social_program_requests (beneficiary_cpf_hash, clinic_id) WHERE status IN ('approved', 'completed') AND submitted_at > NOW() - INTERVAL '90 days';
-- Mesmo beneficiário ≤ 4/ano cross-clínicas (registry)CREATE TABLE public.social_program_beneficiaries_registry ( beneficiary_cpf_hash TEXT PRIMARY KEY, total_attendances_lifetime INT DEFAULT 0, total_attendances_current_year INT DEFAULT 0, current_year_started_at DATE, last_attendance_at TIMESTAMPTZ, flagged_for_review BOOLEAN DEFAULT FALSE, flag_reason TEXT);
-- Trigger valida limite anualCREATE OR REPLACE FUNCTION public.enforce_max_4_attendances_per_year()RETURNS TRIGGER AS $$DECLARE v_count INT;BEGIN SELECT total_attendances_current_year INTO v_count FROM social_program_beneficiaries_registry WHERE beneficiary_cpf_hash = NEW.beneficiary_cpf_hash; IF v_count >= 4 THEN RAISE EXCEPTION 'Beneficiário já atingiu limite de 4 atendimentos no ano'; END IF; RETURN NEW;END;$$ LANGUAGE plpgsql;CPF é cifrado via pgcrypto + hash determinístico SHA-256 com salt para unicidade cross-tenant.
8. Auditoria amostral
CREATE TABLE public.social_program_audits ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), attendance_id UUID NOT NULL REFERENCES public.social_program_attendances(id), triggered_at TIMESTAMPTZ DEFAULT NOW(), triggered_by TEXT CHECK (triggered_by IN ('random_sample', 'compliance_alert', 'fraud_report')), audit_method TEXT CHECK (audit_method IN ( 'beneficiary_phone_call', 'beneficiary_whatsapp_confirm', 'cadunico_cross_check', 'in_person_visit', 'doc_forensics' )), audit_result TEXT CHECK (audit_result IN ('pending', 'confirmed_legit', 'fraud_detected', 'inconclusive')), auditor_user_id UUID, auditor_notes TEXT, resolved_at TIMESTAMPTZ, consequence TEXT CHECK (consequence IN ( 'none', 'credit_reversed', 'clinic_warning', 'clinic_suspended', 'clinic_credentialing_revoked', 'criminal_complaint_filed' )));Cron audit-social-program-attendance-cron:
- Roda diariamente
- Sorteia 1 a cada 50 atendimentos
completed_confirmed - Cria audit row com
audit_method = 'beneficiary_phone_call'(default) - Notifica curador
- Curador investiga + atualiza
audit_result
Em early phase (≤50 atendimentos cumulativos): TODOS são auditados (auditoria 100%).
9. Pool de saldo acumulado
CREATE TABLE public.social_program_fund_pool ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), year_month DATE NOT NULL UNIQUE, -- 1º dia do mês total_clinics_billed INT NOT NULL, -- todas que pagaram total_consultations_paid INT NOT NULL, -- vagas cumpridas amount_collected_brl_cents INT NOT NULL, -- R$ 200 × clínicas adessas amount_paid_brl_cents INT NOT NULL, -- R$ 400 × consultations surplus_brl_cents INT NOT NULL, -- collected - paid destination_extra_slots_brl_cents INT DEFAULT 0, destination_institutional_extra_brl_cents INT DEFAULT 0, destination_year_end_donation_brl_cents INT DEFAULT 0, closed_at TIMESTAMPTZ);3 destinações fixas:
- Ampliar vagas além de 6/ano pra clínicas que esgotaram
- Custear consultas extras pra instituições parceiras (Camada 2 — F2.5+)
- Doação ao fim do ano pra ONG parceira
Pool nunca vira receita da plataforma — regra inviolável (§5.14.4 do AGENTS.md). Auditoria contábil anual valida (Sprint 8 inclui revisão).
10. Lançamento em F1 desde dia 1
Decisão revisada (turno final): Programa Acolhe não espera F2. Razão: cara social é diferencial comercial vendável + gera mídia espontânea + contrato da clínica adere desde a primeira venda.
Distribuição entre sprints F1:
| Sprint | Conteúdo |
|---|---|
| Sprint 0 (fundação documental) | Página pública /programa-acolhe (vitrine institucional, KPIs zerados) + cláusula contratual + marketing |
| Sprint 2 (schema + auth) | 8 tabelas do Acolhe na primeira migration estrutural |
| Sprint 3 (funil) | Cláusula no contrato + adesão automática no fluxo de aprovação pública |
| Sprint 4 (M2 clínica) | Rotas /clinic/programa-acolhe/* (dashboard, solicitações, atendimento) |
| Sprint 4.5 (marketplace) | Badge no perfil público + filtro /consultores?social_program=true |
| Sprint 6 (NOVO — Acolhe operacional) | Edge functions completas (submit/approve/audit/credit) + telas platform/* + integração Assinafy + UAT |
Auditoria amostral: total durante early phase (<50 atendimentos cumulativos), depois 1/50.
Camada 2 (instituições parceiras) continua opcional/F2.5+. Não bloqueia F1.
11. Visibilidade tripla (vitrine pública, badge, filtro marketplace)
Vitrine pública /programa-acolhe
- Manifesto do programa
- 7 categorias de elegibilidade publicadas
- Compromisso público de transparência (auditoria 1/50)
- KPIs em tempo real:
- “X atendimentos sociais realizados em 2026”
- “Y beneficiários únicos”
- “Z clínicas participantes”
- Histórias de impacto anônimas (F2+)
- CTAs (clínicas e parceiros)
Badge “Acolhe” em todo lugar
- Marketplace público
/consultores/<slug>— perfil do consultor mostra “X clínicas dele participam” - Perfil público da clínica (futuro F1.5+) — selo destacado
- Email assinatura da clínica (templates futuros)
- Certificado anual emitido pela plataforma (PDF baixável “Em 2026, sua clínica realizou 6 atendimentos sociais”)
Filtro no marketplace
/consultores?social_program=true — visitante filtra “só clínicas que participam do programa”. SEO-friendly.
Consequências
Positivas
- Diferencial comercial enorme vs concorrentes (iClinic/Doctoralia não têm)
- Mídia espontânea (CTAs sociais geram blog posts, podcasts, cases)
- Brand institucional forte (responsabilidade social)
- Modelo financeiramente neutro (Opção D = abatimento, sem implicação fiscal)
- Anti-fraude robusto (declaração + auditoria + limites cruzados)
- Vendável: “6 consultas sociais por ano custeadas pela plataforma”
Negativas
- Complexidade técnica: 8 tabelas + 7 edge functions + curadoria humana
- Carga operacional: curador (Alexandre em F2 inicial; equipe depois)
- Risco reputacional: caso polêmico vira mídia negativa
- Carga jurídica: cláusula penal exige Assinafy funcionando perfeitamente
Riscos
- Fraude descoberta tarde (atendimento “fantasma” sem beneficiário real)
- Mitigação: dupla confirmação + auditoria amostral + limites cruzados
- Curador escala mal (Alexandre não dá conta sozinho em F2.5+)
- Mitigação: contratar 1-2 curadores em F2.5; IA pré-screening em F3
- Pool deficitário (mais vagas cumpridas que clínicas adessas)
- Mitigação: math se torna positiva com escala (mais clínicas = mais R$ 200/mês entrando); plataforma absorve déficit em early phase como custo de aquisição
Alternativas consideradas
1. 25% da receita pra fundo social
- Prós: alto impacto se receita alta
- Contras: complicador fiscal (CNPJ separado, dotação obrigatória, Lei do Bem); compromete margem; modelo opaco
- Rejeitado.
2. 5% desconto + 1 vaga/ano
- Prós: simplicidade
- Contras: pouco impacto (R$ 25/mês não move ninguém; 1 vaga/ano é simbólico)
- Rejeitado.
3. Pagamento direto via NF (Opção C)
- Prós: marketing forte (“pagamos por consulta”)
- Contras: implicação fiscal (NF, ISS, IRRF); clínica recebe ~R$ 320 líquido em vez de R$ 400; complexidade contábil
- Rejeitado — Opção D (crédito narrativo) tem mesma força narrativa sem custo fiscal.
4. Adesão opcional
- Prós: liberdade pra clínica
- Contras: vira “feature ignorada”; sem volume não há impacto real; perde diferencial comercial
- Rejeitado — adesão obrigatória é parte do DNA.
5. Lançamento em F2 (não F1)
- Prós: foco F1 simplificado
- Contras: perde mídia espontânea desde lançamento; cláusula contratual entra atrasada; clínicas iniciais não aderem retroativamente
- Rejeitado após decisão estratégica do Alexandre.
Atualizações de documentos
- AGENTS.md §5.14 (Programa Acolhe), §inventário
- BLUEPRINT.md §1 (DNA)
- ADR 0006 (cláusula contratual no funil)
- ADR 0008 (50/50 split do crédito)
- ADR 0007 (Assinafy pra declaração)
docs/clinic/programa-acolhe-*.mddocs/platform/programa-acolhe-*.mddocs/edge-functions/submit-social-program-request.mdetc
Referências
- ADR 0001 (multi-consultancy)
- ADR 0006 (funil + cláusula)
- ADR 0007 (Assinafy)
- ADR 0008 (modelo financeiro + 50/50 split)
- ADR 0009 (consent — beneficiários têm consent escopado)
- AGENTS.md §5.14