Pular para o conteúdo

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/:

  1. Inicial: 25% da receita pra fundo social (rejeitado — complicador fiscal)
  2. Iteração 1: 5% desconto na mensalidade + 1 vaga/ano (rejeitado — pouco impactante)
  3. Iteração 2: R$ 700 plano + R$ 200 desconto/mês + 6 vagas/ano (engenharia de preço; aceito como base)
  4. 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)
  5. 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

  1. 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).
  2. 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.
  3. Solicitação pela clínica (Camada 1) — clínica indica beneficiário e plataforma valida. Camada 2 (instituições parceiras) é opcional, F2.5+.
  4. 7 categorias de elegibilidade com documento obrigatório.
  5. Declaração de hipossuficiência assinada via Assinafy (cláusula penal art. 299 CP).
  6. Auditoria amostral 1 a cada 50 atendimentos (total durante early phase <50 cumulativos).
  7. 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$ 200

3. 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:

#CategoriaDocumento obrigatório
1NIS / CadÚnico ativoPrint do CadÚnico online ou cartão NIS
2Beneficiário do BPC/LOASComprovante de inscrição
3Renda familiar per capita ≤ 1/2 SMDeclaração de hipossuficiência assinada (modelo da plataforma)
4Morador de instituição de longa permanênciaDeclaração da instituição (CNPJ + responsável)
5Idoso 65+ sem renda própriaDeclaração + comprovante de idade
6Situação de ruaDeclaração de assistente social (CRESS) ou serviço público
7Encaminhado por CRAS/CREASCarta 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 de
hipossuficiência econômica conforme critérios do Programa Acolhe da plataforma
ClinicGestor.
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 Assinafy
4. Beneficiário (ou responsável) assina via link Assinafy
5. 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 justificativa
7. Atendimento ocorre na clínica
8. 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 subsequente
10. Auditoria amostral (1 a cada 50): atendimento sorteado pra validação adicional

7. 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 anual
CREATE 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:

  1. Ampliar vagas além de 6/ano pra clínicas que esgotaram
  2. Custear consultas extras pra instituições parceiras (Camada 2 — F2.5+)
  3. 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:

SprintConteú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-*.md
  • docs/platform/programa-acolhe-*.md
  • docs/edge-functions/submit-social-program-request.md etc

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