Retena
Evidencias tecnicas - integracao Oracle
Oracle AI Database 26ai Free Release 23.26.3.0.0 - Develop, Learn, and Run for Free
Gerado em 2026-09-08 22:02:28 (local) | 2026-09-09 01:02:28 +00:00 (banco, UTC)

Previsao de evasao com Oracle Machine Learning in-database

Relatorio gerado automaticamente por scripts/gerar_evidencias.py a partir de consultas reais ao banco. Cada secao corresponde a uma imagem evidencia_NN.png.

01Ambiente: Oracle AI Database 26ai Free em Docker

Banco real rodando localmente no container oracle-free (imagem gvenzl/oracle-free:slim-faststart), acessado por python-oracledb (modo thin) como usuario de aplicacao STARTUP.

$ SELECT banner_full FROM v$version
Oracle AI Database 26ai Free Release 23.26.3.0.0 - Develop, Learn, and Run for Free
Version 23.26.3.0.0
INSTANCIAHOSTPDBSYSTIMESTAMP
FREEc5e7ee510d1aFREEPDB12026-09-09 01:02:28 +00:00

Container

$ docker ps --filter name=oracle-free --format table {{.ID}}	{{.Image}}	{{.Status}}	{{.Ports}}	{{.Names}}
CONTAINER ID   IMAGE                               STATUS        PORTS                    NAMES
c5e7ee510d1a   gvenzl/oracle-free:slim-faststart   Up 10 hours   0.0.0.0:1521->1521/tcp   oracle-free


$ docker inspect (imagem, criacao, saude)
Image=gvenzl/oracle-free:slim-faststart | Created=2026-09-08T14:50:05.867982491Z | Status=running | Health=n/a | StartedAt=2026-09-08T14:50:17.200771836Z
$ docker logs --tail 40 oracle-free
2026-09-09T00:45:59.711121+00:00
Thread 1 advanced to log sequence 106 (LGWR switch),  current SCN: 2368261
  Current log# 2 seq# 106 mem# 0: /opt/oracle/oradata/FREE/redo02.log
2026-09-09T00:46:26.106466+00:00
Thread 1 advanced to log sequence 107 (LGWR switch),  current SCN: 2371977
  Current log# 1 seq# 107 mem# 0: /opt/oracle/oradata/FREE/redo01.log
2026-09-09T00:46:33.934639+00:00
Resize operation completed for file# 18, fname /opt/oracle/oradata/FREE/undotbs01.dbf, old size 11264K, new size 21504K
2026-09-09T00:46:52.865004+00:00
Thread 1 advanced to log sequence 108 (LGWR switch),  current SCN: 2374779
  Current log# 2 seq# 108 mem# 0: /opt/oracle/oradata/FREE/redo02.log
2026-09-09T00:47:21.185039+00:00
Thread 1 advanced to log sequence 109 (LGWR switch),  current SCN: 2381411
  Current log# 1 seq# 109 mem# 0: /opt/oracle/oradata/FREE/redo01.log
2026-09-09T00:47:25.403761+00:00
Resize operation completed for file# 18, fname /opt/oracle/oradata/FREE/undotbs01.dbf, old size 21504K, new size 31744K
2026-09-09T00:47:39.389143+00:00
Thread 1 advanced to log sequence 110 (LGWR switch),  current SCN: 2386142
  Current log# 2 seq# 110 mem# 0: /opt/oracle/oradata/FREE/redo02.log
2026-09-09T00:48:02.672513+00:00
Thread 1 advanced to log sequence 111 (LGWR switch),  current SCN: 2390381
  Current log# 1 seq# 111 mem# 0: /opt/oracle/oradata/FREE/redo01.log
2026-09-09T00:48:30.631413+00:00
Resize operation completed for file# 18, fname /opt/oracle/oradata/FREE/undotbs01.dbf, old size 31744K, new size 41984K
2026-09-09T00:48:36.252896+00:00
Thread 1 advanced to log sequence 112 (LGWR switch),  current SCN: 2395135
  Current log# 2 seq# 112 mem# 0: /opt/oracle/oradata/FREE/redo02.log
2026-09-09T00:49:07.969184+00:00
Thread 1 advanced to log sequence 113 (LGWR switch),  current SCN: 2400854
  Current log# 1 seq# 113 mem# 0: /opt/oracle/oradata/FREE/redo01.log
2026-09-09T00:49:59.260010+00:00
Begin automatic SQL Tuning Advisor run for special tuning task "SYS_AUTO_SQL_TUNING_TASK".
2026-09-09T00:50:00.905783+00:00
End automatic SQL Tuning Advisor run for special tuning task "SYS_AUTO_SQL_TUNING_TASK".
2026-09-09T00:52:17.260420+00:00
Thread 1 advanced to log sequence 114 (LGWR switch),  current SCN: 2410036
  Current log# 2 seq# 114 mem# 0: /opt/oracle/oradata/FREE/redo02.log
2026-09-09T01:00:24.449105+00:00
FREEPDB1(3):TABLE SYS.WRI$_OPTSTAT_HISTHEAD_HISTORY: ADDED INTERVAL PARTITION SYS_P759 (46273) VALUES LESS THAN (TO_DATE(' 2026-09-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
FREEPDB1(3):TABLE SYS.WRI$

02Dados carregados: logs do LMS em EVENTOS_LMS

684.723
eventos do LMS carregados
679.892
eventos de alunos (FLG_ALUNO = 1)
203
alunos distintos
2026-01-15 a 2026-08-26
periodo observado

Eventos por fase (colunas virtuais NUM_FASE / CAPITULO / FLG_ALUNO calculadas no banco)

FASENOME_FASECAPITULOSEVENTOSALUNOSCAP_MAX_OBSERVADOPRIMEIROULTIMO
1Fase 11069615175102026-01-152026-08-26
2Fase 212178369174122026-02-042026-08-26
3Fase 310175013179102026-02-042026-08-26
4Fase 411149141166112026-02-042026-08-26
5Fase 5811258516182026-07-172026-08-26

Tabelas do projeto (USER_TABLES)

TABLE_NAMENUM_ROWSLAST_ANALYZED
AVALIACAO_MODELOS
BASE_RISCO_SEMANAL43372026-09-08 18:56
DIM_FASE
DIM_TIPO_EVENTO
EVENTOS_LMS6847232026-09-08 15:12
FEATURES_TRANSICAO_FASE8552026-09-08 15:17
RISCO_ALUNO_SNAPSHOT
SCORES_TESTE34762026-09-09 00:56

03Feature engineering in-database (views + SQL Macro)

Duas unidades de analise. Transicao de fase (aluno x fase k: evadiu = 0 eventos na fase k+1) e risco semanal (aluno x corte t, domingos de 2026-02-01 a 2026-08-02: inativo_21d = 0 eventos em (t, t+21d]). Features usam apenas eventos ≤ t; a mesma SQL Macro FN_FEATURES_SEMANAIS serve treino e scoring (sem training/serving skew).

FEATURES_TRANSICAO_FASE - rotulos por fase

FASENOME_FASECONJUNTOALUNOSEVADIRAMTAXA_EVASAO
1Fase 1TREINO175100.0571
2Fase 2TREINO17460.0345
3Fase 3TREINO179160.0894
4Fase 4TESTE166130.0783
5Fase 5SEM_ROTULO161

BASE_RISCO_SEMANAL - treino (cortes < 2026-06-01) e teste (≥ 2026-06-01)

CONJUNTOCORTESCASOSPOSITIVOSTAXAPRIMEIRO_CORTEULTIMO_CORTE
TREINO1826823110.1162026-02-012026-05-31
TESTE916553870.23382026-06-072026-08-02

Cortes semanais

CORTECONJUNTOALUNOSINATIVOS_21DTAXAMEDIA_EV_28DMEDIA_RECENCIA
2026-02-01TREINO200176.511
2026-02-08TREINO121006.51.7
2026-02-15TREINO136120.08861.83.2
2026-02-22TREINO13870.051108.65.4
2026-03-01TREINO14270.049154.25.1
2026-03-08TREINO147110.075174.55.3
2026-03-15TREINO150120.081634.5
2026-03-22TREINO157170.1081775.5
2026-03-29TREINO162160.099251.17.1
2026-04-05TREINO163150.092413.38.2
2026-04-12TREINO164180.11571.37.1
2026-04-19TREINO165200.1218066.2
2026-04-26TREINO168330.196914.37.3
2026-05-03TREINO169270.16869.110
2026-05-10TREINO171270.158825.911.3
2026-05-17TREINO171260.152753.611.9
2026-05-24TREINO178290.163704.111.1
2026-05-31TREINO178340.191823.512.5
2026-06-07TESTE178320.18798.213.7
2026-06-14TESTE183410.224678.914.4
2026-06-21TESTE183430.235618.615.5
2026-06-28TESTE183350.191693.216.2
2026-07-05TESTE184370.201623.419.4
2026-07-12TESTE184370.20155023.1
2026-07-19TESTE184570.31434.318.7
2026-07-26TESTE187530.283168.923
2026-08-02TESTE189520.275133.125.7

04Modelos Oracle Machine Learning treinados no banco

DBMS_DATA_MINING.CREATE_MODEL2 com PREP_AUTO = ON: o modelo carrega a preparacao (normalizacao, tratamento de nulos). Nenhum dado saiu do banco; o treino le as views VW_TREINO_*.

USER_MINING_MODELS

MODEL_NAMEMINING_FUNCTIONALGORITHMCRIADO_EM_UTCSEG_TREINOBYTES
RETENA_INATIVO21_GLMCLASSIFICATIONGENERALIZED_LINEAR_MODEL2026-09-08 19:03:2711505
RETENA_INATIVO21_RFCLASSIFICATIONRANDOM_FOREST2026-09-08 19:03:261802134
RETENA_TRANSICAO_GLMCLASSIFICATIONGENERALIZED_LINEAR_MODEL2026-09-08 19:03:2512087

USER_MINING_MODEL_SETTINGS (configuracoes informadas)

MODEL_NAMESETTING_NAMESETTING_VALUESETTING_TYPE
RETENA_INATIVO21_GLMALGO_NAMEALGO_GENERALIZED_LINEAR_MODELINPUT
RETENA_INATIVO21_GLMCLAS_WEIGHTS_BALANCEDONINPUT
RETENA_INATIVO21_GLMGLMS_RIDGE_REGRESSIONGLMS_RIDGE_REG_ENABLEINPUT
RETENA_INATIVO21_GLMODMS_DETAILSODMS_ENABLEINPUT
RETENA_INATIVO21_GLMODMS_MISSING_VALUE_TREATMENTODMS_MISSING_VALUE_AUTODEFAULT
RETENA_INATIVO21_GLMPREP_AUTOONINPUT
RETENA_INATIVO21_RFALGO_NAMEALGO_RANDOM_FORESTINPUT
RETENA_INATIVO21_RFODMS_DETAILSODMS_ENABLEINPUT
RETENA_INATIVO21_RFODMS_MISSING_VALUE_TREATMENTODMS_MISSING_VALUE_AUTODEFAULT
RETENA_INATIVO21_RFODMS_RANDOM_SEED42INPUT
RETENA_INATIVO21_RFPREP_AUTOONINPUT
RETENA_INATIVO21_RFRFOR_NUM_TREES200INPUT
RETENA_INATIVO21_RFRFOR_SAMPLING_RATIO0.6INPUT
RETENA_TRANSICAO_GLMALGO_NAMEALGO_GENERALIZED_LINEAR_MODELINPUT
RETENA_TRANSICAO_GLMCLAS_WEIGHTS_BALANCEDONINPUT
RETENA_TRANSICAO_GLMGLMS_RIDGE_REGRESSIONGLMS_RIDGE_REG_ENABLEINPUT
RETENA_TRANSICAO_GLMODMS_DETAILSODMS_ENABLEINPUT
RETENA_TRANSICAO_GLMODMS_MISSING_VALUE_TREATMENTODMS_MISSING_VALUE_AUTODEFAULT
RETENA_TRANSICAO_GLMPREP_AUTOONINPUT

Atributos (USER_MINING_MODEL_ATTRIBUTES)

MODEL_NAMEATRIBUTOS
RETENA_INATIVO21_GLMCAPITULOS_DISTINTOS_28D, DIAS_ATIVOS_28D, ENTREGAS_28D, EVENTOS_14D, EVENTOS_28D, EVENTOS_7D, PROGRESSO_28D, QUIZ_28D, RECENCIA_DIAS, TENDENCIA
RETENA_INATIVO21_RFCAPITULOS_DISTINTOS_28D, DIAS_ATIVOS_28D, ENTREGAS_28D, EVENTOS_14D, EVENTOS_28D, EVENTOS_7D, PROGRESSO_28D, QUIZ_28D, RECENCIA_DIAS, TENDENCIA
RETENA_TRANSICAO_GLMCAPITULO_MAX, DIAS_ATIVOS, ENTREGAS_TAREFA, EVENTOS_PROGRESSO, PCT_CAPITULOS, QUIZ_ENTREGUES, QUIZ_INICIADOS, RECENCIA_FIM_FASE, SHARE_FIM_SEMANA, SHARE_NOITE, SPAN_DIAS, TENDENCIA, TOTAL_EVENTOS

05Avaliacao no conjunto de teste (validacao temporal)

0.949
AUC - RETENA_INATIVO21_RF (COMPUTE_ROC)
0.8062
recall no limiar 0,5
0.8387
precisao no limiar 0,5
0.8761
precisao no top-20% de risco
1655
casos de teste (cortes ≥ 2026-06-01)

Metricas por modelo (AUC via DBMS_DATA_MINING.COMPUTE_ROC e contraprova em SQL; limiar 0,5)

MODELON_TESTEPREVALENCIAAUC_COMPUTE_ROCAUC_SQLACUR_BALANCEADAPRECISAORECALLF1TPFPFNTN
RETENA_INATIVO21_GLM16550.23380.94510.94510.87570.64340.90440.7519350194371074
RETENA_INATIVO21_RF16550.23380.9490.9490.87940.83870.80620.822131260751208
RETENA_TRANSICAO_GLM1660.07830.97180.97180.86170.58820.76920.66671073146

Precisao, captura e lift no top-20% de risco (fila operacional: contatar 1 em cada 5 alunos)

MODELOPRECISAO_TOP20CAPTURA_TOP20LIFT_TOP20DETALHE
RETENA_INATIVO21_GLM0.88520.75713.786331 casos no top-20% (293 positivos de 387); prevalencia .2338
RETENA_INATIVO21_RF0.87610.74943.747331 casos no top-20% (290 positivos de 387); prevalencia .2338
RETENA_TRANSICAO_GLM0.36360.92314.64433 casos no top-20% (12 positivos de 13); prevalencia .0783

Taxa observada por faixa de risco

MODELOFAIXACASOSPOSITIVOSTAXA_OBSERVADAPROB_MEDIACAPTURA_DOS_POSITIVOS
RETENA_INATIVO21_GLMAlto4773400.71280.89560.8786
RETENA_INATIVO21_GLMMédio239230.09620.44310.0594
RETENA_INATIVO21_GLMBaixo939240.02560.05280.062
RETENA_INATIVO21_RFAlto3472960.8530.84290.7649
RETENA_INATIVO21_RFMédio53270.50940.46880.0698
RETENA_INATIVO21_RFBaixo1255640.0510.0440.1654
RETENA_TRANSICAO_GLMAlto17100.58820.9060.7692
RETENA_TRANSICAO_GLMMédio1110.34530.0769
RETENA_TRANSICAO_GLMBaixo14820.01350.00120.1538

Lift por decil - RETENA_INATIVO21_RF (COMPUTE_LIFT)

DECILLIMIAR_PROBPOSITIVOS_ACUMLIFT_ACUMCAPTURA_ACUMPCT_CASOS_ACUM
10.9237162.95414.1980.42110.1003
20.64572903.7350.74940.2006
30.17023402.920.87860.3009
40.07733612.3250.93280.4012
50.02883741.9270.96640.5015
60.01453791.6290.97930.6012
70.00713821.4080.98710.7009
80.00253871.24910.8006
90.00043871.11110.9003
100387111

Importancia de atributos (Random Forest, DM$VA)

ATRIBUTOIMPORTANCIAPARTICIPACAO
DIAS_ATIVOS_28D1.82640.2895
RECENCIA_DIAS1.13990.1807
EVENTOS_28D0.83670.1326
EVENTOS_14D0.55510.088
QUIZ_28D0.54270.086
TENDENCIA0.51260.0813
EVENTOS_7D0.40110.0636
CAPITULOS_DISTINTOS_28D0.27580.0437
PROGRESSO_28D0.16780.0266
ENTREGAS_28D0.04990.0079

Coeficientes do GLM de transicao (DM$VD)

ATRIBUTOCOEFICIENTEP_VALORODDS_RATIO
SHARE_FIM_SEMANA-10.73170.73060
PCT_CAPITULOS3.9840.74353.7315
(intercepto)1.97770.29347.2258
QUIZ_ENTREGUES-0.92980.48950.3946
SHARE_NOITE0.79550.82572.2156
DIAS_ATIVOS-0.57370.330.5634
TENDENCIA0.30810.96041.3608
CAPITULO_MAX-0.21420.85020.8072
ENTREGAS_TAREFA-0.18990.93640.8271
QUIZ_INICIADOS-0.11830.83640.8884
SPAN_DIAS-0.02810.34220.9723
RECENCIA_FIM_FASE0.00820.52171.0082
EVENTOS_PROGRESSO-0.00030.95750.9997
TOTAL_EVENTOS0.00030.95351.0003

06Scoring por SQL: PREDICTION_PROBABILITY + PREDICTION_DETAILS

VW_RISCO_ALUNO_ATUAL pontua o ultimo corte (ultimo dia com eventos) com os modelos OML; PRC_ATUALIZAR_RISCO persiste em RISCO_ALUNO_SNAPSHOT (agendado por DBMS_SCHEDULER). Faixas: Alto ≥ 0,60 | Medio 0,30-0,60 | Baixo.

Distribuicao por faixa

FAIXA_RISCOALUNOSPROB_MEDIARECENCIA_MEDIAEVENTOS_28D_MEDIA
Alto590.844486.40.4
Médio150.471913.950.7
Baixo1290.05394.81020.5

20 alunos de maior risco (fatores = PREDICTION_DETAILS top 3, XML convertido em texto)

NOMENUM_FASE_ATUALRECENCIA_DIASEVENTOS_28DDIAS_ATIVOS_28DPROB_INATIVO_21DPROB_INATIVO_21D_GLMFAIXA_RISCOPROB_EVASAO_FASEFATORES_TOP3ACAO_SUGERIDA
Aluno 01781198000.92371Alto0.9571RECENCIA_DIAS=198 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01764197000.92371Alto0.9572RECENCIA_DIAS=197 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01771197000.92371Alto0.9566RECENCIA_DIAS=197 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01741195000.92371Alto0.956RECENCIA_DIAS=195 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01754195000.92371Alto0.9561RECENCIA_DIAS=195 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01731174000.92371Alto0.9484RECENCIA_DIAS=174 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01711163000.92371Alto0.9436RECENCIA_DIAS=163 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01701162000.92371Alto0.9524RECENCIA_DIAS=162 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 02182160000.92371Alto0.9423RECENCIA_DIAS=160 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01672155000.92371Alto0.9463RECENCIA_DIAS=155 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 02172155000.92371Alto0.94RECENCIA_DIAS=155 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01544154000.92371Alto0.9397RECENCIA_DIAS=154 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 02152141000.92371Alto0.9332RECENCIA_DIAS=141 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 02162141000.92371Alto0.9334RECENCIA_DIAS=141 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01933134000.92371Alto0.9296RECENCIA_DIAS=134 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01654125000.92371Alto0.9572RECENCIA_DIAS=125 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 02273125000.92371Alto0.9366RECENCIA_DIAS=125 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 02132124000.92371Alto0.9721RECENCIA_DIAS=124 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 01214120000.92371Alto0.9561RECENCIA_DIAS=120 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h
Aluno 02253110000.92370.9999Alto0.9156RECENCIA_DIAS=110 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)Contato ativo do tutor (telefone/WhatsApp) em 48h

Agendamento (USER_SCHEDULER_JOBS)

JOB_NAMEJOB_ACTIONREPEAT_INTERVALENABLEDSTATEPROXIMA_EXECUCAO
JOB_RETENA_SCORING_SEMANALPRC_ATUALIZAR_RISCOFREQ=WEEKLY; BYDAY=MON; BYHOUR=6; BYMINUTE=0TRUESCHEDULED2026-09-14 06:00 +00:00

07JSON pronto para API e JSON Relational Duality View

VW_RISCO_JSON monta o payload completo com JSON_OBJECT / JSON_ARRAYAGG (pronto para ORDS ou API Gateway). RISCO_ALUNO_DV e uma JSON Relational Duality View (26ai): documento por aluno com leitura e escrita - o coordenador atualiza o status pelo app e a tabela relacional continua a fonte unica.

$ SELECT PAYLOAD FROM VW_RISCO_JSON
{
  "produto": "Retena",
  "gerado_em": "2026-09-09T01:02:20.848+00:00",
  "dt_corte": "2026-08-26",
  "dt_scoring": "2026-09-08T19:26:31",
  "modelo": "RETENA_INATIVO21_RF (Oracle Machine Learning, Random Forest, in-database)",
  "horizonte_dias": 21,
  "total_alunos": 203,
  "resumo": {
    "alto": 59,
    "medio": 15,
    "baixo": 129,
    "prob_media": 0.3145
  },
  "alunos": [
    {
      "aluno": "Aluno 0045",
      "fase": 4,
      "prob_inativo_21d": 0.9237,
      "faixa": "Alto",
      "recencia_dias": 76,
      "eventos_28d": 0,
      "progresso_fase": 0.3636,
      "prob_evasao_fase": 0.9296,
      "fatores": [
        {
          "atributo": "RECENCIA_DIAS",
          "valor": "76",
          "peso": 82.1,
          "rank": 1
        },
        {
          "atributo": "DIAS_ATIVOS_28D",
          "valor": "0",
          "peso": 36.51,
          "rank": 2
        },
        {
          "atributo": "EVENTOS_28D",
          "valor": "0",
          "peso": 21.55,
          "rank": 3
        }
      ],
      "acao_sugerida": "Contato ativo do tutor (telefone/WhatsApp) em 48h",
      "status_atendimento": "PENDENTE"
    },
    {
      "aluno": "Aluno 0046",
      "fase": 3,
      "prob_inativo_21d": 0.9237,
      "faixa": "Alto",
      "recencia_dias": 76,
      "eventos_28d": 0,
      "progresso_fase": 0,
      "prob_evasao_fase": 0.8915,
      "fatores": [
        {
          "atributo": "RECENCIA_DIAS",
          "valor": "76",
          "peso": 82.1,
          "rank": 1
        },
        {
          "atributo": "DIAS_ATIVOS_28D",
          "valor": "0",
          "peso": 36.51,
          "rank": 2
        },
        {
          "atributo": "EVENTOS_28D",
          "valor": "0",
          "peso": 21.55,
          "rank": 3
        }
      ],
      "acao_sugerida": "Contato ativo do tutor (telefone/WhatsApp) em 48h",
      "status_atendimento": "PENDENTE"
    },
    {
      "aluno": "Aluno 0047",
      "fase": 1,
      "prob_inativo_21d": 0.9237,
      "faixa": "Alto",
      "recencia_dias": 76,
      "eventos_28d": 0,
      "progresso_fase": 1,
      "prob_evasao_fase": 0.7227,
      "fatores": [
        {
          "atributo": "RECENCIA_DIAS",
          "valor": "76",
          "peso": 82.1,
          "rank": 1
        },
        {
          "atributo": "DIAS_ATIVOS_28D",
          "valor": "0",
          "peso": 36.51,
          "rank": 2
        },
        {
          "atributo": "EVENTOS_28D",
          "valor": "0",
          "peso": 21.55,
          "rank": 3
        }
      ],
      "acao_sugerida": "Contato ativo do tutor (telefone/WhatsApp) em 48h",
      "status_atendimento": "PENDENTE"
    },
    "... (203 alunos no payload completo)"
  ]
}
$ SELECT JSON_SERIALIZE(dv.DATA) FROM RISCO_ALUNO_DV dv ORDER BY dv.DATA.probInativo21d.number() DESC FETCH FIRST 1 ROWS ONLY
[
  {
    "_id": "Aluno 0045",
    "_metadata": {
      "etag": "EE8E2EC488242FF9EA2BE0B6ABBD2616",
      "asof": "000000000024D497"
    },
    "fatoresTop3": "RECENCIA_DIAS=76 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 (peso 21.55)",
    "recenciaDias": 76,
    "nomeFase": "Fase 4",
    "atendimento": {
      "status": "PENDENTE",
      "observacao": null
    },
    "probInativo21d": 0.9237,
    "eventos28d": 0,
    "dtCorte": "2026-08-26T00:00:00",
    "faixa": "Alto",
    "acaoSugerida": "Contato ativo do tutor (telefone/WhatsApp) em 48h",
    "fase": 4,
    "dtScoring": "2026-09-08T19:26:31.193284"
  }
]

08Consultas prontas para APEX (07_apex_ready.sql) - resultados reais

As cinco consultas abaixo foram executadas neste momento contra o banco. No APEX, os literais da CTE "parametros" viram itens de pagina (:P1_TICKET_MENSAL etc.).

1) FILA DE SEGUNDA-FEIRA - quem contatar, por que e o que fazer (pagina inicial do coordenador) - 25 linha(s) em 0.01 s

POSICAOALUNOFASECAP_ATUALPCT_FASEDIAS_SEM_ACESSOEVENTOS_28DRISCO_PCTFAIXAPOR_QUEO_QUE_FAZERSTATUSPONTUADO_EM
1Aluno 0178Fase 100198092.4AltoRECENCIA_DIAS=198 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
2Aluno 0177Fase 100197092.4AltoRECENCIA_DIAS=197 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
3Aluno 0176Fase 400197092.4AltoRECENCIA_DIAS=197 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
4Aluno 0175Fase 400195092.4AltoRECENCIA_DIAS=195 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
5Aluno 0174Fase 100195092.4AltoRECENCIA_DIAS=195 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
6Aluno 0173Fase 100174092.4AltoRECENCIA_DIAS=174 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
7Aluno 0171Fase 100163092.4AltoRECENCIA_DIAS=163 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
8Aluno 0170Fase 1110162092.4AltoRECENCIA_DIAS=162 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
9Aluno 0218Fase 200160092.4AltoRECENCIA_DIAS=160 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
10Aluno 0167Fase 2217155092.4AltoRECENCIA_DIAS=155 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
11Aluno 0217Fase 200155092.4AltoRECENCIA_DIAS=155 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
12Aluno 0154Fase 400154092.4AltoRECENCIA_DIAS=154 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
13Aluno 0216Fase 200141092.4AltoRECENCIA_DIAS=141 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
14Aluno 0215Fase 21083141092.4AltoRECENCIA_DIAS=141 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
15Aluno 0193Fase 300134092.4AltoRECENCIA_DIAS=134 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
16Aluno 0165Fase 400125092.4AltoRECENCIA_DIAS=125 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
17Aluno 0227Fase 3110125092.4AltoRECENCIA_DIAS=125 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
18Aluno 0213Fase 212100124092.4AltoRECENCIA_DIAS=124 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
19Aluno 0121Fase 400120092.4AltoRECENCIA_DIAS=120 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
20Aluno 0226Fase 3110110092.4AltoRECENCIA_DIAS=110 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
21Aluno 0225Fase 300110092.4AltoRECENCIA_DIAS=110 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
22Aluno 0076Fase 400106092.4AltoRECENCIA_DIAS=106 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
23Aluno 0199Fase 30097092.4AltoRECENCIA_DIAS=97 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 ...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
24Aluno 0224Fase 30096092.4AltoRECENCIA_DIAS=96 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 ...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26
25Aluno 0194Fase 41110096092.4AltoRECENCIA_DIAS=96 (peso 82.10); DIAS_ATIVOS_28D=0 (peso 36.51); EVENTOS_28D=0 ...Contato ativo do tutor (telefone/WhatsApp) em 48hPENDENTE08/09 19:26

2) FUNIL POR FASE - quantos iniciaram cada fase, quantos avancaram e onde a coorte se perde - 5 linha(s) em 0.01 s

NUM_FASENOME_FASETOTAL_CAPITULOSINICIARAMAVANCARAMEVADIRAMTAXA_EVASAO_PCTPCT_DA_COORTE_F1PROGRESSO_MEDIO_PCTDIAS_ATIVOS_MEDIOOBS
1Fase 110175165105.710081.814.3
2Fase 21217416863.499.480.713.6
3Fase 310179163168.9102.376.112.6
4Fase 411166153137.894.978.315
5Fase 581611610092396.3fase em andamento (sem rótulo)

3) MAPA DE ATRITO POR CAPITULO - em qual capitulo os alunos "travam" antes de evadir - 43 linha(s) em 5.38 s

FASECAPCHEGARAMPARARAM_E_EVADIRAMATRITO_PCTEVENTOS_POR_ALUNORECOMENDACAO
Fase 1115210.75
Fase 1215110.723.4
Fase 13147007.5
Fase 14145008.5
Fase 15143009.5
Fase 16141008
Fase 17140006.8
Fase 18139006.8
Fase 19137006.2
Fase 11013621.59.3
Fase 21152002.9
Fase 2214810.78
Fase 23145008.9
Fase 241440018.7
Fase 25144009.2
Fase 26140006.9
Fase 27140006.4
Fase 28140006.2
Fase 291380014.6
Fase 21013610.718.1
Fase 2111320011.8
Fase 21212710.86.9
Fase 3114932102.2revisar capítulo (dividir / vídeo curto / checkpoint)
Fase 3214610.772.4
Fase 331380058.8
Fase 341370056.7
Fase 351350076.8
Fase 361340025.9
Fase 371330041.3
Fase 381310027
Fase 391300049.7
Fase 31012910.897.5
Fase 4113800207.5
Fase 4213800146.4
Fase 4313500115.5
Fase 4413310.8104.8
Fase 451290093.2
Fase 461270052.3
Fase 471270093.3
Fase 481270060.9
Fase 491270064.7
Fase 4101250067.3
Fase 41112321.6119.3

4) RECEITA EM RISCO - por faixa e total, parametrizada pelo ticket medio da IES - 4 linha(s) em 0.00 s

FAIXAALUNOSPROB_MEDIATICKETRECEITA_MENSAL_BRUTARECEITA_MENSAL_EM_RISCORECEITA_CICLO_EM_RISCOPCT_RECEITA_EM_RISCO
Alto590.8443502065017436.2104617.1784.4
Médio150.47235052502477.5514865.2747.2
Baixo1290.054350451502434.0814604.455.4
TOTAL2030.3153507105022347.82134086.8931.5

5) REATIVACOES - alunos ja inativos (> 21 dias sem acesso no corte) que voltaram nos 21 dias seguintes - 6 linha(s) em 0.01 s

MES_CORTECORTESCASOS_INATIVOS_21DREATIVADOS_21DTAXA_REATIVACAO_PCTDIAS_INATIVO_MEDIO_REATIVADOSALUNOS_DISTINTOS_REATIVADOSRECEITA_MENSAL_PRESERVADA
2026-034371437.828.5113850
2026-044591728.829.9113850
2026-055124312532.5196650
2026-064121129.940.7103500
2026-0741551493493150
2026-0813712.7341350