SOA Senior — Editor de padrões

A conta é um grafo.
Você é o seu arquiteto.

Como SOA Senior, desenha os templates das contas técnicas de resseguro (padrões). Cada padrão define a estrutura de uma conta: linhas contabilísticas, tipos de ligação e nós FORMULA que referenciam os outputs quantitativos produzidos pelo Manager.

📐 Editor DAG de padrões
🏷 Tipos de ligação SOA
🔗 Cablagem FORMULA
🧩 Dimensões documentais

O seu papel na cadeia

Seis papéis, uma direção. O módulo SOA situa-se no fim da cadeia, traduzindo o trabalho atuarial em contas financeiras.

Junior
Criação de cláusulas
Estrutura o texto em cláusulas tipificadas
Senior
Validação
Valida cláusulas, dimensões, tipos de tratado
Actuary
Formalização DAG
Codifica cláusulas como grafos de cálculo
Manager
Instanciação
Instancia grafos em contratos, introduz valores
SOA Senior — você
Desenho de padrões
Desenha o DAG da conta técnica, cabla nós FORMULA com outputs do Manager
SOA Junior
Produção de contas
Instancia os seus padrões em contratos
💡
Não introduz valores financeiros. Constrói a estrutura de apresentação. O SOA Junior preenche as referências aos dados do Manager. Os valores reais provêm das instâncias de grafo do Manager.

Barra lateral de padrões

A barra lateral esquerda lista todos os seus padrões SOA. Cada padrão é um template reutilizável para uma conta técnica.

Use a caixa de pesquisa para filtrar padrões por nome ou identificador. Clique em + New pattern para criar um: atribua-lhe uma etiqueta descritiva (ex. XL Treaty Statement v1, Quota Share — Annual).

Um crachá junto ao nome de um padrão indica um ciclo detetado: esse padrão não pode ser instanciado pelo Junior até o ciclo ser corrigido. Um pequeno contador de instâncias (ex. ) mostra quantas instâncias SOA ativas referenciam esse padrão.

🔒
Os padrões instanciados estão bloqueados. Assim que o Junior criar uma instância a partir do seu padrão, não pode alterar a estrutura nós/ligações do padrão. Crie uma nova versão (nova etiqueta) para alterar a estrutura em instâncias futuras.

Construir um padrão SOA

Um padrão é um grafo acíclico dirigido de linhas contabilísticas. Cada nó representa uma linha da conta. As ligações codificam a estrutura hierárquica (detalhe → subtotal → total).

1
Selecionar um padrão
Clique num padrão na barra lateral para o carregar no canvas. Se o canvas estiver vazio, o padrão ainda não tem nós.
2
Adicionar nós
Clique em + Node na barra de ferramentas (ou duplo clique no canvas). Preencha a etiqueta, o tipo de ligação contabilística e o tipo de valor. Clique em Add node.
3
Ligar nós
Passe o rato sobre um nó até aparecer a porta de saída na sua borda inferior e arraste para um nó de destino. Um prompt pede o tipo de ligação (DETAIL, SUBTOTAL, etc.).
4
Associar dimensões (opcional)
Selecione um nó → abra o separador Dimensions no inspetor → adicione as dimensões que o SOA Junior deve documentar para esta linha.
5
Guardar
Clique em 💾 Save. O padrão completo é escrito atomicamente. A deteção de ciclos é executada a cada gravação.
⚠️
As alterações não guardadas existem apenas no browser. Navegar para outro local ou atualizar sem guardar perde o trabalho. O cabeçalho mostra sempre ● não guardado / ✓ guardado.

Atalhos de teclado

TeclaAção
Ctrl/Cmd + SGuardar padrão atual
Del / BackspaceEliminar nó ou ligação selecionados
Roda do ratoZoom in / zoom out
Arrastar no canvasMover a vista
Duplo clique canvasAdicionar nó no cursor

Tipos de ligação SOA

Cada nó e cada ligação num padrão SOA tem um tipo de ligação: o seu papel contabilístico na conta. Isto substitui os operandos de cálculo usados pelo Atuário.

HEADER
Título de secção ou cabeçalho principal: sem valor, puramente estrutural.
DETAIL
Linha individual. Alimenta um SUBTOTAL ou TOTAL.
SUBTOTAL
Soma intermédia de linhas DETAIL dentro de uma secção.
TOTAL
Saldo final: a última linha da conta ou de uma secção principal.
OFFSET
Contrapartida: reduz ou ajusta uma linha adjacente (ex. depósito em offset).
NOTE
Anotação informativa: visível na conta mas não faz parte do cálculo.

Pode expandir a lista a partir de 🏷 SOA Link Types na barra lateral. Os novos códigos ficam disponíveis imediatamente no editor de nós. A eliminação de um código é bloqueada se algum nó ou ligação ainda o usar.

💡
Cor do nó = tipo de ligação. O canvas renderiza cada nó com a cor do seu tipo de ligação: HEADER em azul-marinho, DETAIL em azul, SUBTOTAL em verde, TOTAL em verde-escuro, OFFSET em laranja, NOTE em cinzento. A estrutura da conta é imediatamente legível de relance.

Painel inspetor

Clicar num nó abre o inspetor à direita: dois separadores para o nó selecionado.

SeparadorO que faz aqui
PropertiesEdite a etiqueta, o tipo de ligação e o tipo de valor do nó. Clique em Apply para atualizar o estado em memória, depois Save (barra de ferramentas) para persistir.
DimensionsAdicione ou remova associações de dimensões documentais. Cada dimensão associada torna-se um formulário de preenchimento que o SOA Junior deve completar para esta linha.

Clicar numa ligação abre o inspetor com um seletor de tipo de ligação: altere o tipo e clique em Apply.

Clicar no fundo do padrão (nenhum nó selecionado) mostra o inspetor do padrão: cláusulas ligadas, restrições de tipos de tratado, contagem de instâncias e botões de ação rápida (renomear, editar cláusulas, editar tipos de tratado, eliminar).

Nós FORMULA — a ponte para os dados do Manager

Um nó FORMULA é uma linha contabilística especial cujo valor não é introduzido diretamente pelo SOA Junior: em vez disso, o Junior cita um nó específico de uma instância de grafo do Manager.

🔗 O sinal de reconciliação
A cablagem FORMULA é um ato de reconciliação entre o domínio atuarial e a realidade contabilística. Se uma linha da conta não encontrar o seu nó de destino nos grafos do Manager, a ferramenta revela o desalinhamento: o que o atuário modelou e o que a conta requer estão desincronizados. O RI-TOOL torna essa lacuna visível.

Como criar um nó FORMULA

1
Adicionar um nó
Clique em + Node. Defina a etiqueta (ex. Perda líquida retida), escolha um tipo de ligação adequado (geralmente DETAIL) e defina o tipo de valor como FORMULA.
2
Guardar
Guarde o padrão. A dimensão FORMULA é associada automaticamente: não é necessário nenhum passo manual. O nó aparece com borda tracejada e o ícone 🔗 no canvas.
💡
Um nó FORMULA por quantidade do Manager. Se a conta tiver dois prémios de reintegração separados, crie dois nós FORMULA: cada um será citado de forma independente pelo Junior.

O que o SOA Junior faz com os nós FORMULA

Quando o Junior abre um nó FORMULA, aparece um seletor de três grupos: Mesmo contrato, Mesmo tipo de tratado, Mesma cláusula. O Junior seleciona o grafo Manager relevante e o nó específico cujo output alimenta essa linha de conta. A referência é armazenada como citação JSON: nenhum valor é copiado, apenas o ponteiro.

📊
Dois modelos prontos a usar são fornecidos com cada nova conta
PC Standard e PC Sliding Scale — 21 nós, 14 ligações FORMULA ligadas aos grafos atuariais Profit Commission. Prontos para instanciar no primeiro dia.

Operandos de ligação IF / THEN / ELSE

Quando um nó de padrão SOA é ligado a um nó de grafo Actuary do tipo CONDITION, três operandos de ligação especializados estruturam explicitamente a relação condicional.

Antes do patch 035, os nós CONDITION usavam o operando genérico ARGUMENT para todos os pais, tornando a intenção gráfica ambígua. Os três operandos dedicados abaixo substituem ARGUMENT nas ligações CONDITION e tornam a lógica de predicado imediatamente legível no canvas.

IF
O predicado a ser avaliado. Exatamente um pai IF por nó CONDITION. Representado a violeta.
THEN
Valor retornado quando o predicado é verdadeiro. Representado a verde.
ELSE
Valor retornado quando o predicado é falso. Pode ser um CONSTANT(0) para um piso em zero. Representado a vermelho.

Quando são relevantes estes operandos para o SOA Senior?

Como SOA Senior, não constrói grafos Actuary — mas liga nós FORMULA aos seus homólogos Manager, que por sua vez referenciam saídas de grafos Actuary. Compreender o que um nó CONDITION produz ajuda-o a etiquetar com precisão a linha FORMULA correspondente no statement.

Exemplo típico: um nó FORMULA Profit Commission Payable after Loss Corridor deve citar a saída de um nó CONDITION no grafo Actuary. Esse CONDITION avalia um limiar de loss corridor — o pai IF é o teste, o pai THEN é a comissão se o corridor for ultrapassado, o pai ELSE é zero. A sua linha FORMULA captura o resultado dessa ramificação.

💡
Um CONDITION = um resultado binário. Se a conta requer duas linhas separadas para os cenários "acima do corridor" e "abaixo do corridor", modele-as como dois nós FORMULA distintos — cada um citando um ramo diferente do grafo Actuary, não o próprio nó CONDITION.

Nós THRESHOLD

Um nó THRESHOLD (laranja, introduzido no patch 035) é um nó folha que representa um único limite — piso, teto, ponto de attachment ou trigger. É sempre pai de um nó CONDITION ou LOOKUP. Os nós THRESHOLD não aparecem diretamente como alvos FORMULA nos padrões SOA: são entradas intermédias no grafo Actuary, não quantidades de saída. Não crie linhas FORMULA que citem nós THRESHOLD.

Dimensões

As dimensões são eixos documentais: formulários de preenchimento opcionais associados aos nós do padrão. O SOA Senior pode associar qualquer dimensão do catálogo do tenant a qualquer nó.

O catálogo de dimensões pertence ao Senior Underwriter e é partilhado entre todos os perfis. Uma categoria de dimensões dedicada SOA é disponibilizada na criação do tenant com três eixos base: Periodicidade, Quota e Contraparte: o contexto documental mais comum para uma linha de conta.

💡
Os nós FORMULA têm uma mensagem dedicada no separador Dimensions. Quando um nó está definido como FORMULA, o separador Dimensions no inspetor mostra um aviso explicativo em vez da lista de dimensões: a dimensão FORMULA é gerida automaticamente e não pode ser adicionada ou removida manualmente.
Dimensão baseUso típico num nó SOA
PERIODICITYTrimestral / anual / ajustamento / suplementar: o ciclo contabilístico para esta linha
SHARE100% / quota do ressegurador / quota do cedente: a proporção aplicável
COUNTERPARTRessegurador / corretor: a parte pagante ou recebente
💡
As dimensões são opcionais mas poderosas. Um nó TOTAL raramente necessita de documentação; um nó DETAIL que alimenta uma linha de prémio quase sempre beneficia de PERIODICITY e SHARE. Use o seu critério: menos dimensões bem escolhidas são melhor do que um excesso de formulários.

Restrições de padrões

Duas restrições opcionais ajudam o SOA Junior a encontrar o padrão certo para cada contrato.

Cláusulas ligadas

Um padrão pode ser ancorado a uma ou mais cláusulas validadas (ex. cláusula de reintegração XL). É informativo: sinaliza a família de cláusulas para a qual o padrão foi desenhado. A restrição não é aplicada na instanciação.

Para gerir: clique em 🔗 Clauses na barra de ferramentas, ou use o botão Edit linked clauses no inspetor do padrão.

Restrições de tipos de tratado

Se restringir um padrão a um ou mais tipos de tratado (ex. TREATY_XL), o ecrã de criação de instância do Junior mostra um crachá de compatibilidade: ✓ Compatible ou ⚠ Mismatch. Um mismatch é um aviso, não um bloqueio.

Deixe todos os tipos de tratado desmarcados para tornar o padrão universal, aplicável a qualquer contrato.

Para gerir: clique em 📋 Treaty types na barra de ferramentas, ou use o inspetor do padrão.

Deteção de ciclos

Um DAG deve ser acíclico: nenhuma linha pode ser o seu próprio ancestral. O RI-TOOL deteta ciclos automaticamente a cada gravação.

Se for encontrado um ciclo, aparece um banner laranja no topo do editor e a linha do padrão na barra lateral mostra um crachá ♻ cycle. O padrão é mesmo assim guardado mas fica marcado como não instanciável.

⚠️
A deteção não é bloqueante. Encontre o nó que retorna a um dos seus próprios ancestrais, remova a ligação errada e guarde novamente. O indicador de ciclo limpa-se automaticamente.

Explorador de padrões

Vista de produção de todos os seus padrões, filtrável por estado de instâncias e indicador de ciclo.

Clique em 🔭 Pattern Explorer na barra lateral para abrir a vista em ecrã completo. Cada cartão mostra o identificador do padrão, a etiqueta, a contagem de nós, a percentagem de cobertura de dimensões e a contagem de instâncias. Clique num cartão para ir diretamente a esse padrão no editor.

Cobertura de dimensões

A cobertura é a percentagem de nós com pelo menos uma dimensão associada. 🧩 80% significa que 80% dos nós têm requisitos de documentação. Um padrão com 0% de cobertura é válido mas não produz nenhum formulário de preenchimento para o Junior.

Data Checks

Consultas SQL em tempo real sobre os dados do seu tenant, acessíveis a partir de 📊 Data Checks na barra lateral.

VistaO que mostra
SOA Templates — overviewTodos os padrões com contagem de nós, nós FORMULA, contagem de instâncias, tipos de tratado e cláusulas ligadas
FORMULA nodes — missing dimensionNós FORMULA sem dimensão FORMULA associada: anomalias de configuração a corrigir
Dimension coverage by nodeTodos os nós com as suas dimensões associadas e contagem de instruções: útil para auditoria de cobertura

Cada vista tem um botão ▶ Run. Os resultados aparecem em linha com um link ⬇ Download CSV para exportação completa.

Manutenção

Quatro verificações de limpeza acessíveis a partir da barra lateral. Diagnosticar sempre antes de executar — a execução é irreversível.

CódigoO que limpaRisco
S1Padrões sem nós — cascas vazias deixadas por uma criação abortadaBaixo
S2Padrões com um ciclo detetado — apenas diagnóstico, sem eliminação. Corrigir manualmente no editor.Médio
S3Nós órfãos cujo padrão pai foi eliminado fora do fluxo normalMédio
S4Anexos de dimensões órfãos cujo nó ou dimensão foi eliminadoBaixo

Ordem recomendada: S1 → S3 → S4. S2 é um diagnóstico apenas de leitura — destaca ciclos a corrigir manualmente, não elimina nada.